前回の記事でGAE×Serverless NEG構成でWordpressの動作確認が取れましたので、当ブログのシステム構成を変更します。
変更後のシステム構成はこんな感じになります。
ロードバランサ(エンドポイントはServerlessNEG)とSSL証明書がサービスに加わっただけで他大きな変更はないです。
注意事項
当記事執筆時点ではServerless NEGはbeta版となっており、GCPのSLAは保証されません、ご利用される際はご注意下さい。
GAになりました。
Google マネージドSSL証明書の作成
今回のシステム構成変更でロードバランサに設定するSSL証明書が必要になるので、Google マネージドSSL証明書でSSL証明書を作ります。
※マネージドSSL証明書サービスを利用した方が管理、更新の手間が省けます。
Google マネージド SSL 証明書の作成
Cloud SDKで下記コマンドを実行します。
gcloud compute ssl-certificates create CERTIFICATE_NAME
--description=DESCRIPTION
--domains=DOMAIN_LIST
--global
CERTIFICATE_NAME | グローバル SSL 証明書の名前 |
DESCRIPTION | グローバル SSL 証明書の説明 (不要の場合は省略化) |
DOMAIN_LIST | この証明書に使用する単一のドメイン名またはドメイン名のカンマ区切りリスト |
作成したSSL 証明書のステータスの確認
Cloud SDKで下記コマンドを実行し、作成されているか確認します。
gcloud compute ssl-certificates list
--global
Serverless NEGとロードバランサの作成
- 静的IPアドレスの生成
- Serverless NEGの作成
- ロードバランサの作成
を行います。
手順についてはこちらの記事を参考にして下さい。
補足1:ターゲットhttpプロキシ作成手順の箇所について
参考手順6.6.2の箇所をターゲットhttpsプロキシで作成します。
参考手順のコマンドを下記コマンドに置き換えて実行して下さい。
gcloud compute target-https-proxies create 【ターゲットhttpsプロキシ名】
--ssl-certificates=【手順2.2.1で作成したSSL証明書名】
--global-ssl-certificates
--url-map=【URLマップ名】
補足2:フロントエンド(forwarding rule)をロードバランサに追加する手順について
参考手順6.6.3の箇所についてもhttps化します。
参考手順のコマンドを下記コマンドに置き換えて実行して下さい。
gcloud compute forwarding-rules create 【forwarding-rules名】
--address=【作成しておいたIPv4アドレス】
--target-https-proxy=【前述補足1で作成したhttpsプロキシ名】
--global
--ports=443
ドメイン関連の設定変更
ここからはご利用環境によって手順が若干異なると思います。
ご利用環境の内容に適宜読み替えてご対応頂ければと思います。
GAEカスタムドメインの削除
GAEの設定メニューからカスタムドメインの設定を削除します。
Cloud DNSの設定変更
- GAEカスタムドメインの値が設定されているZoneを削除します。
- 新たにZoneを作成し、Aレコードにロードバランサ・フロントエンドで設定したIPアドレスを設定します。
ドメインサービスの設定変更
- ご利用中のドメインサービスで設定しているGAEカスタムドメインの設定値を全て削除します。
- NSレコードはCloud DNSで新たに作成したZoneで発行されたNSレコードの値を設定します。
- Aレコードにロードバランサ・フロントエンドで設定したIPアドレスを設定します。
接続確認
ドメイン設定変更のブロードキャストが終わるを待ち、ドメインアドレスにてサイトにアクセスし、サイトが表示されれば作業完了です。
上手く行かなかった場合は、、、
GAEカスタムドメインを再度設定し、発行された
- Aレコード
- AAAAレコード
- NSレコード
の値をCloudDNS、ドメインサービスに再度設定すれば元の構成(ドメイン→GAEの順ででルーティング)で動きます。
まとめ
ドメイン関連の設定変更の段取りが悪く30分ほどサイトにアクセス出来なくなりましたが、概ねハマる事なくシステム構成変更が出来ました。
今後、
- CDN(Cloud CDN)導入
- WAF(Cloud Armor)導入
- GAEのマルチリージョン化
などをやろうと思います。