運用前の走行確認
パフォーマンスが気になったので、nginxコンテナ とWordpress/My SQLコンテナだけ起動して走確してみました。
結果としては、まともにブラウザ表示できない状況でした。試しに、VMインスタンスのファイアウォール設定で8080を空けて、Wordpressコンテナに直接アクセスできるようにすると問題なかったので、nginxを経由していることが原因と思われます。
以下、設定です。
- ポート80はnginxが待ち受け
- WordPressはポート8080で待ち受け
- nginxのlocaltion設定で、「/」アクセスをポート8080に振り分け
events {
worker_connections 16;
}
http {
server {
listen 80;
server_name localhost;
location / {
proxy_pass http://<ip-address>:8080/;
proxy_redirect default;
}
}
}
方針変更
どうやら、ngnixとサービス(Wordpressなど)を同一インスタンスで動作させるのが厳しそう(マシンタイプを上げればよいのかもしれませんが、費用も嵩むので。。)なので、f1-microインスタンスを2つ使い、それぞれdockerエンジンを駆動することにします。(一つは無料枠で賄えるので、全体をg1-smallインスタンスで動かすより安く上がるはず)
- インスタンス1
- nginxコンテナを駆動、静的IPを割当、windesign.workドメインを関連づけ
- SSL設定
- localtion設定で、インスタンス2で動くWordpressコンテナに振り分け
- Grafana、InfluxDBの各コンテナを駆動
- とりあえず、GrafanaとInfluxDBのSSL対応は先送り
- インスタンス2
- WordPress、MySQLの各コンテナを駆動
- Grafanaとnginx、Wordpress、MySQLを駆動したら、Dockerがout of memoryで落ちてしまった。
- GrafanaとInfluxDBは、インスタンス1で駆動することにする。(リバースプロキシの対象外)
- WordPress、MySQLの各コンテナを駆動
下記は、これまで想定していた流れですが、2つのVMインスタンスとの対応を追記しました。
- Dockerエンジンが動くGCEインスタンス(以下、新サイト)の作成
- インスタンス1と2
- リバースプロキシ・コンテナを起動
- インスタンス1
アクセスすると既存サイトに転送されるように- SSL設定
- windesign.workドメインを外部IPアドレスに紐づけ
- WordPressコンテナを起動し、バックアップからリストア
- インスタンス2
- リバースプロキシの転送先をWordPressコンテナに切り替え
- インスタンス1
- Grafana、InfluxDBコンテナを起動
- インスタンス1
- リバースプロキシの転送先に、GrafanaコンテナとInfluxDBコンテナを追加
- インスタンス1