Google Cloud Platform の無料枠内で Docker を使ってみました。
とりあえず今回使うのは GCE (Google Compute Engine) です。
本格的にやるなら GKE (Googke Kubernetes Engine) のほうがいいみたいですが、よくわかりません。
無料枠の確認
以下で確認できます。
今回は GCE を使うので、2019/06/23 現在の条件は以下になります。
前提
以下は済んでいる前提です。
- Googleアカウントの作成
- Google Cloud Platform の利用登録
GCP の設定
プロジェクトの作成
まずは適当にプロジェクトを作成して選択します。
VM インスタンスの作成
サイドメニューから Compute Engine > VM インスタンスを選択します。
作成をクリックします。
以下のように設定して、作成をクリックします。
- 名前は適当に入力
- マシンタイプは f1-micro を選択
- リージョンは 無料枠対象の米リージョンを選択(ゾーンは適当)
- OS は Ubuntu 19.04 Minimal を選択
- 最初は Docker コンテナの実行に最適化されている Container-Optimized OS にしていましたが、何故かスワップの設定ができなかったため断念
- ディスクのサイズを 30GB に変更
- 「HTTP トラフィックを許可する」「HTTPS トラフィックを許可する」にチェック
尚、無料枠で収まっていれば、画面の右側に以下のように表示されます。
今月の f1-micro インスタンス使用量は、最初の 720 時間分が無料です。
外部 IP アドレスの設定
VM インスタンスを再起動しても IP アドレスが変わらないように静的 IP アドレスを割り当てます。
サイドメニューから VPC ネットワーク > 外部 IP アドレスを選択します。
ファイアウォールの設定
外部からアクセスできるように、必要に応じてポートの解放を行います。
OS の設定
SSH で接続
VM インスタンスに SSH で接続します。
いくつかやり方はありますが、手っ取り早く接続するために、ブラウザからインスタンスの SSH をクリックして接続します。
Swap の設定
メモリ不足になるという話をよく聞くので、スワップを追加しておきます。
現在のスワップを確認
$ free -m
スワップの追加
以下のコマンドを実行します。
$ sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile
$ sudo swapon /swapfile
簡単な解説
$ sudo dd if=/dev/zero of=/swapfile bs=1M count=4096
dd コマンドは、if で指定したファイルを、of で指定したファイルへ、 bs に指定された入出力ブロックサイズ単位で、count に指定された回数コピーを実行するコマンドです。
if
に /dev/zero
を指定しているので、/swapfile
の中身はすべて 0 で埋め尽くされたファイルとなります。
bs=1M
で count=4096
なので、ブロックサイズ(1M)×4096 のサイズのファイルが作成されます。
ここでは 4GB となります。
$ sudo chmod 600 /swapfile
作成した swapfile
の権限を root のみに変更します。
$ sudo mkswap /swapfile
作成した swapfile
をスワップ領域として設定します。
$ sudo swapon /swapfile
スワップ領域を設定しただけではダメなので、 スワップを有効化します。
ブート時にスワップを有効化
ブート時にスワップを有効になるように永続化します。
Docker のインストール
sudo apt-get install docker
sudo apt-get install docker-compose