Terraform
背景 TerraformはInfrastructure as Codeを実現してくれるとても素晴らしいツールである一方、運用時に以下のような問題が発生します。 個々人がローカルで実行する場合のオペミス パブリッククラウドリソースを扱うクレデンシャルの管理 そのため実行環境を…
概要 少し前にECSのサービスディスカバリが東京リージョンにも登場しました。 Amazon ECS Service Discovery がフランクフルト、ロンドン、東京、シドニー、シンガポールの各リージョンで利用可能に 今回Terraformでの使い方を説明します。 環境 Terraform v…
概要 これまでは1インスタンス上に複数のコンテナを使うときは動的ポートマッピングのような方法で対応する必要がありました。 christina04.hatenablog.com しかしawsvpcモードが使えるようになったことでコンテナ毎にPrivateIPを振れるようになり、ポート…
概要 先日新しいL4のロードバランサーであるNLBがAWSからリリースされました。 ALBはL7のロードバランサーであるため、これまでgRPCはCLBの方でしか利用できませんでしたが、これからはNLBを使うことで対応が可能です。 terraform-provider-awsの1.3.1から利…
概要 以前ECSの記事を幾つか書きましたが、 TerraformでECS環境の構築 - Carpe Diem TerraformでECS環境の構築【オートスケール編】 - Carpe Diem 当時のECSは1インスタンス1コンテナにしないとポートが競合して同じ種類のコンテナを載せることはできませ…
概要 Terraformを使う上で、DBなどのデータ系のリソースはそうそう変更することはないので、オペミスなどを防ぐために別ディレクトリに分けておくと安心です。 しかし既に作ってしまっていた場合、*.tfとともにその部分のterraform.tfstateを移動しなくては…
概要 TerraformでECS環境の構築 - Carpe Diemでは書いてなかったオートスケールについてです。 terraform 0.7からServiceでのオートスケールにも対応したので、それを使って構築します。 環境 Ubuntu 14.04 Terraform 0.7.3 実装 完成形はこちら github.com
概要 ECSというコンテナのクラスタ環境構築のサービスをTerraformで作成してみます。 簡単のため、以下の設定はこのコードには含んでいません。 EC2インスタンスのオートスケール用のアラーム設定なし ECSのコンテナのオートスケールはなし(Terraform未対応…
概要 Terraformを使ってAutoScaling環境を構築します。 以下の状態をゴールとします デフォルト1台 CPUが30%超えたら1台増やす CPUが5%以下なら1台減らす 環境 Terraform 0.6.9 Terraform設定 セキュリティグループなどはTerraformでAWSのセキュアな構成…
概要 PublicSubnetとPrivateSubnetを切り分けてよりセキュアに構築する方法。 PrivateSubnetのインスタンスにSSHアクセスする場合は別途VPNを立てる形になると思いますが、今回は割愛させていただきます。 環境 Terraform 0.6.3 構成図とネットワークフロー …
概要 Terraformでインスタンスなどを削除する際、普段xxx.tfファイルの該当箇所削除してterraform applyで消してたんですが、あるとき消す順番の指定が必要になって「仕方ないから2回(消す順に)実行するかー」と思ってtarget指定したのですが、何故かterr…
概要 前回の続きです。ここまで来たら小規模ながらきちんとしたAWS構成を作れます。 環境 Ubuntu 14.04 Terraform 0.6.2 前提 Terraform でセキュリティグループを管理でVPC、サブネット、セキュリティグループの設定が済んでいる状態。 フォルダ構成 ├── co…
概要 セキュリティグループはAWS標準のファイアウォール機能です。 作成したセキュリティグループをEC2インスタンスやELBに設定することで反映されます。 今回はTerraformでそれを作成し、EC2に結びつけてみます。 環境 Ubuntu 14.04 Terraform 0.5.2 前提 T…
概要 TerraformでVPCの設定をします。 基本的な設定ですが、サブネットは一応AZを考慮して2つ作っています。 環境 Ubuntu 14.04 Terraform 0.3.7 設定 以下の設定で構築します。 VPC 設定項目 設定値 名前 vpc-1 ネットワークの範囲 10.0.0.0/16
環境 Ubuntu 14.04 Go 1.4.2 Terraform 0.4.0 事前準備 Goがインストールされている必要があります。 Go言語環境の構築を参考にインストールしてください。 インストール $ go get github.com/hashicorp/terraform バージョンを確認します。 $ terraform ver…
概要 Terraformを使ってインスタンスを作成する方法です。 環境 Ubuntu 14.04 Terraform 0.3.7 インストール TerraformでHerokuをセットアップを参考にしてください。 .tfファイルの作成 .tfファイルを作成します。今回はaws.tfとします。 access_key、secre…
概要 Terraformというオーケストレーションツールを使います。本当ならAWSで試したいのですが無料枠をすでに使いきっていたので今回はHerokuで。 環境 OSX 10.10.2 Terraform 0.3.7 インストール バイナリパッケージを直接ダウンロードしてPATHを通します。 …