そうこのシリーズ!

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

GCPぃいいいいい!!

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


■今回実装すること

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

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

まったく同じ。


■Terraformの構成

・terraform version

・tree gcp

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


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

[GCP][IAM][Google Cloud SDK][Mac]AWSでいうクレデンシャル的なものを設定する

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


■common_backend.tf

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


■common_provider.tf

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


■common_variables.tf

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


■common_vpc.tf

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


■common_firewall.tf

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


■gce_test.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

The following two tabs change content below.

あだちん

1989年生まれ。 ランサーズ/SRE。 ホスティングから大規模なアドテクなどのインフラエンジニアとして携わり、ランサーズにてサーバ系のお仕事も副業で行い、他社インフラレスポンス改善、ansibleでのインフラコード化を推進し、未経験によるエンジニア勉強会なども実施している。 そして「脆弱性スキャナVuls」のOSS活動もしており、自称エバンジェリスト/広報/VulsRepo init file,chatwork通知のコントリビュータでもある。 現在はDocker開発環境の提供,AWSで新サービスのインフラ構築,PHPバージョンアップ,分析基盤を担当しておりDigdag,embulk,BigQueryを使いこなそうと奮闘中。

コメントを残す

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