はじめに
GCP登録して無料クレジット$300もらったので気になってたTerraformをいじる
公式に親切なチュートリアルがあったのでチュートリアル通りに操作
チュートリアル
「Terraform を使用して基本的な Flask ウェブサーバーをデプロイする」
https://cloud.google.com/docs/terraform/get-started-with-terraform?hl=ja
- チュートリアルは右ペインに出ているので、1画面でチュートリアルとコンソール表示して作業できる
- チュートリアルとコンソール画面で操作対象の表示名が違ったりする
→チュートリアルの本文中に、作業手順によってはクリックすると操作するべき場所にスポットライトを当ててくれるボタンがあるので、操作する場所が分からなかったら押してみよう
作業としては、Terraformから仮想マシンをデプロイし、仮想マシンにSSH接続してFlaskアプリ(サーバとエンドポイント)を作成するというシンプルなもの
チュートリアル進めていて引っかかったところを以下にメモ
1. 仮想マシンのデプロイ
必要なコマンドはチュートリアルに書いてくれているので今回はとりあえずコピーしてmain.tfファイルを作成する。
コンソールでデプロイしたらCompute Engine APIを有効にしているはずなのにエラーになった
terraform initで初期化してから再度applyで仮想マシン作成できた
2. カスタムSSHファイアウォールを作成する
SSH接続を許可するようファイアウォールを設定し、VMインスタンスに接続する
main.tfファイルに追記すればOK
ファイアウォールにSSH接続を許可する設定が無いときとか、接続が明らかに失敗するだろうというときは、接続中に上手くいかない可能性が高いってメッセージが出る
(自分はファイアウォールの設定反映されてないままSSH接続しようとした)
3. VMのポート5000を開く
ローカルPCからウェブサーバーに接続できるよう、ファイアウォールルールに追記
ウェブサーバ接続用URLを出力するロジックも追記
main.tfファイルの差分反映は前の手順と同じなのでここはサクサク
4. ウェブサーバにアクセス
URLからアクセスしてHello Cloud!と表示されているのを見る。
5. リソースの削除
terraform destroyでリソースを一気に全消し
終わりに
今回参考にしたチュートリアルはガチで親切なので、IaC全然分からないけどTerraform触ってみたいというときにおすすめ