そうこのシリーズ!

[AWS][Terraform]EC2とVPCを自動化してみたら素晴らしかった

で試してみました!!AWSが慣れているせいかシンプル過ぎて罠に色々とハマりましたが..
まずはAWSとGCPを比較してきましょう。


■今回実装すること

・VPC
インターネットゲートウェイの設定
サブネットの設定(めんどくさいので1個)
ルートテーブルの設定
ファイアーウォール(セキュリティーグループ的な)の設定

・GCE(1台)
OSはCentOS7
上記のVPC、ファイアーウォールを使用
SSDは100GB
外部IPアドレスも(EIP的な)

まったく同じ。


■Terraformの構成

・terraform version

・tree gcp

今回はちゃんと機能ごとに分けて作りました。


■サービスアカウントの設定(クレデンシャル)

https://blog.adachin.me/archives/6747

これを参考にしましょう。
といってもgcloudコマンドは別に必要ないので、
クレデンシャルだけローカルに保管。


■gcp_backend.tf

tfstateファイルはもちろんS3でいうGoogle cloud storage(GCS)に保管します。
クレデンシャルはサービスアカウントで作ったやつを指定。
ここらへんはAWSと同じ。


■gcp_provider.tf

プロバイダーはもちろんgoogle。プロジェクトはGCPダッシュボードのホームから見れます。


■gcp_variables.tf

変数はregionとGCEはAWSとは違ってユーザと鍵を指定できます。なのでterraformユーザと公開鍵をぶち込んでおきます。あとはインスタンスタイプもカスタマイズできるので、一旦2コアの2GBに変数化もしてます。(メンテしやすいように)ちなみにスケールアップはterraformから行うとdestroyしてしまうので、コンソールから変更し、コードを直せば相違はなくなります。


■gcp_vpc.tf

今回はサブネット1つなのでたったこれだけ!
AWSの場合はルーティング、ゲートウェイの設定も入れないとダメですがGCPは楽ちん。


■gcp_firewall.tf

適当にオフィスは全許可。80.443は公開用に。ファイアーウォール(セキュリティーグループ的な)作ります。


■gcp_gce.tf

外部IPアドレス(EIP的な)作ってGCEはCentOS7でSSD100GB。SSDはコスト高いので標準永続ディスクを使用したい場合は「type = “pd-standard”」にすればOK。ネットワークインターフェースは作ったサブネットを指定してnatIP(外部アドレス)も指定。最後に公開鍵をぶち込んで終わりです。tagの部分はファイアーウォールと同じものを指定しないと読み込んでくれないので注意!

ここらへんはAWSと結構違う。


■まとめ

GCP Terraformは触ってて物足りなさを感じた。AWSのほうがダントツに面白いかもしれん。というかTerraformやってる人少ない….

参考
https://www.terraform.io/docs/providers/google/index.html


カテゴリー: GCPTerraform

adachin

1989年生まれのFindy/SRE。ホスティングから大規模なアドテクなどのインフラエンジニアとして携わる。現在はサービスの信頼性向上、DevOps、可用性、レイテンシ、パフォーマンス、モニタリング、オブザーバビリティ、緊急対応、AWSでのインフラ構築、Docker開発環境の提供、IaC、新技術の検証、リファクタリング、セキュリティ強化、分析基盤の運用などを担当している。個人事業主では数社サーバー保守とベンチャー企業のSREインフラコンサルティングやMENTA/TechBullで未経験者にインフラのコーチング/コミュニティマネージャーとして立ち上げと運営をしている。また、過去「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/技術広報/テクニカルサポート/コントリビュータでもある。

0件のコメント

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください