こんにちは。
株式会社クラスアクト インフラストラクチャ事業部の大塚です。
今回はGCPのIaC(Infrastructure as Code)を担うDeployment Managerについてとなります。
折角なら手動で作成した環境をDeployment Managerを使って、一発でデプロイできるようにしよう、という事で用意したコードをここにまとめておきます。
Deployment Managerを使った環境デプロイ手順
GCP画面の左のツールの欄にDeployment Managerがあります。デプロイを押下します。
※もしくは上の検索窓でDeployment Managerと検索しても出てきます。こちらの方が楽かもしれません。
例のごとくAPIを有効化してあげる必要があります。
有効化後、以下のような管理画面が表示されます。どうもDeployment ManagerはAWSのCloudFormationのようにGUI操作でyamlをアップロードして、環境をデプロイするのではなく、Shell上でやる必要があるみたいです。
画面右上のCloud Shellを押下します。★みたいなマークの1つ右です。
CLIが開きます。ここにyamlを配置します。
ファイル名はdjango01_all.yamlとしました。
内容はこの記事の下にあるGitHubを参照ください。
用意したyamlを使ってデプロイしていきます。実際にデプロイした時のコマンドと出力結果が以下となります。
gcloud deployment-managerコマンドに--previewオプションを付けると、実際にデプロイする前にGCPのDeployment Managerの管理画面でレビューをはさむことが出来ます。
ohtsukaaws@cloudshell:~ (classact-420821)$ gcloud deployment-manager deployments create django01all --config django01_all.yaml --preview
The fingerprint of the deployment is b'WPIbZOLDpMBZi1-p8KiUTw=='
Waiting for create [operation-1714718465795-61787010b2564-1fbf195a-49d2ffee]...done.
Create operation operation-1714718465795-61787010b2564-1fbf195a-49d2ffee completed successfully.
NAME: cdm-fw-rule
TYPE: compute.v1.firewall
STATE: IN_PREVIEW
ERRORS: []
INTENT: CREATE_OR_ACQUIRE
NAME: cdm-public-subnet
TYPE: compute.v1.subnetwork
STATE: IN_PREVIEW
ERRORS: []
INTENT: CREATE_OR_ACQUIRE
NAME: cdm-vm-django
TYPE: compute.v1.instance
STATE: IN_PREVIEW
ERRORS: []
INTENT: CREATE_OR_ACQUIRE
NAME: cdm-vpc
TYPE: compute.v1.network
STATE: IN_PREVIEW
ERRORS: []
INTENT: CREATE_OR_ACQUIRE
NAME: cdm-vpc-allow-health-check
TYPE: compute.v1.firewall
STATE: IN_PREVIEW
ERRORS: []
INTENT: CREATE_OR_ACQUIRE
NAME: cdm-vpc-allow-health-check-ipv6
TYPE: compute.v1.firewall
STATE: IN_PREVIEW
ERRORS: []
INTENT: CREATE_OR_ACQUIRE
NAME: cdm-vpc-allow-http
TYPE: compute.v1.firewall
STATE: IN_PREVIEW
ERRORS: []
INTENT: CREATE_OR_ACQUIRE
以下がレビュー画面となります。デプロイを押してみます。
yamlに問題が無ければデプロイすることが出来るはずです。
今回立ち上げたVMを見てみます。外部IPアドレスを持っていることから、このサーバに対してローカルのPCから接続試験が出来そうです。この手順で使用しているyamlではVM起動時にapache2をインストール・起動するようなシェルを加えていますので、HTTP通信をしてみます。
Apacheの画面が出てくれば成功です。
DeployしたものはDeployment Managerの管理画面で一気に削除することが可能です。
Deployment Managerで使用するyaml
GCPにDjangoの環境を整えていく01(VPC/subnet/Internet Gateway/FW/VM)
以下記事の環境構築について
yamlはこちらになります。