タイトル通り。
この記事で作成する環境の全体図は以下の通り。
GCE (Google Compute Engine)を2つ立てる
このVMをもう一つ立てる。「VMインスタンス」ページで確認するとこんな感じ。
簡単なWebアプリケーションをデプロイ
以前作ったシンプルなWebアプリケーションを使う。
GitHubにソースコード載せてる。
参考程度に必要なコマンドを載せとく。
# yum -y install docker git # systemctl start docker # systemctl enable docker # curl -L "https://github.com/docker/compose/releases/download/1.22.0/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose # chmod +x /usr/local/bin/docker-compose # git clone https://github.com/tetsis/nginx-gunicorn-django-postgres.git # cd nginx-gunicorn-django-postgres/ # sed -i -e "s/443:443/80:80/" docker-compose.yml (外部公開するポートをHTTPの80に変更する) # docker-compose build # docker-compose up -d # docker-compose ps
インスタンスグループを作る
インスタンスグループを作成する。
- ロケーション:「シングルゾーン」
- グループタイプ:「非マネージドインスタンスグループ」
- VMインスタンス:さっき作った2つのVMを追加する
(本当は障害耐性を上げるためマルチゾーンでやりたかったけど、マルチゾーンかつ非マネージドでやる方法が見つからなかった)
HTTP(S)負荷分散(ロードバランサ)を作る
「負荷分散」からロードバランサを作成する。
HTTP(S)負荷分散の「設定を開始」をクリック。
バックエンドの設定
「バックエンドの設定」->「バックエンドサービスとバックエンドバケットの作成または選択」->「バックエンドサービス」->「バックエンドサービスを作成」
バックエンドサービスの設定項目はこんな感じ。
ホストとパスのルール
ここは特に設定しなくてOK。URLパスに応じてバックエンドを変えたい場合に設定するんだろう。
フロントエンドの設定
途中、証明書を設定する。
「証明書を選択してください」->「新しい証明書の作成」で公開鍵証明書、証明書チェーン(あれば)、秘密鍵を入力する。
作成完了
ロードバランサ経由でWebアプリケーションにアクセスする
ロードバランサのフロントエンドにつけられたグローバルIPアドレスにブラウザでアクセスする。
いい感じ。