Carpe Diem

備忘録

Terraform

Atlantisを用いてPRを介したTerraformオペレーションの自動化

背景 TerraformはInfrastructure as Codeを実現してくれるとても素晴らしいツールである一方、運用時に以下のような問題が発生します。 個々人がローカルで実行する場合のオペミス パブリッククラウドリソースを扱うクレデンシャルの管理 そのため実行環境を…

TerraformでECSのService Discoveryを使う

概要 少し前にECSのサービスディスカバリが東京リージョンにも登場しました。 Amazon ECS Service Discovery がフランクフルト、ロンドン、東京、シドニー、シンガポールの各リージョンで利用可能に 今回Terraformでの使い方を説明します。 環境 Terraform v…

TerraformでECSのawsvpcモードを使って各コンテナにPrivate IPを振る

概要 これまでは1インスタンス上に複数のコンテナを使うときは動的ポートマッピングのような方法で対応する必要がありました。 christina04.hatenablog.com しかしawsvpcモードが使えるようになったことでコンテナ毎にPrivateIPを振れるようになり、ポート…

TerraformでNLBを使う

概要 先日新しいL4のロードバランサーであるNLBがAWSからリリースされました。 ALBはL7のロードバランサーであるため、これまでgRPCはCLBの方でしか利用できませんでしたが、これからはNLBを使うことで対応が可能です。 terraform-provider-awsの1.3.1から利…

TerraformでECSを動的ポートマッピングに

概要 以前ECSの記事を幾つか書きましたが、 TerraformでECS環境の構築 - Carpe Diem TerraformでECS環境の構築【オートスケール編】 - Carpe Diem 当時のECSは1インスタンス1コンテナにしないとポートが競合して同じ種類のコンテナを載せることはできませ…

Terraformで過去に作ったリソースを別ディレクトリに分けたい

概要 Terraformを使う上で、DBなどのデータ系のリソースはそうそう変更することはないので、オペミスなどを防ぐために別ディレクトリに分けておくと安心です。 しかし既に作ってしまっていた場合、*.tfとともにその部分のterraform.tfstateを移動しなくては…

TerraformでECS環境の構築【オートスケール編】

概要 TerraformでECS環境の構築 - Carpe Diemでは書いてなかったオートスケールについてです。 terraform 0.7からServiceでのオートスケールにも対応したので、それを使って構築します。 環境 Ubuntu 14.04 Terraform 0.7.3 実装 完成形はこちら github.com

TerraformでECS環境の構築

概要 ECSというコンテナのクラスタ環境構築のサービスをTerraformで作成してみます。 簡単のため、以下の設定はこのコードには含んでいません。 EC2インスタンスのオートスケール用のアラーム設定なし ECSのコンテナのオートスケールはなし(Terraform未対応…

TerraformでAutoScaling環境の構築

概要 Terraformを使ってAutoScaling環境を構築します。 以下の状態をゴールとします デフォルト1台 CPUが30%超えたら1台増やす CPUが5%以下なら1台減らす 環境 Terraform 0.6.9 Terraform設定 セキュリティグループなどはTerraformでAWSのセキュアな構成…

TerraformでAWSのセキュアな構成を構築

概要 PublicSubnetとPrivateSubnetを切り分けてよりセキュアに構築する方法。 PrivateSubnetのインスタンスにSSHアクセスする場合は別途VPNを立てる形になると思いますが、今回は割愛させていただきます。 環境 Terraform 0.6.3 構成図とネットワークフロー …

Terraformでtarget指定の削除

概要 Terraformでインスタンスなどを削除する際、普段xxx.tfファイルの該当箇所削除してterraform applyで消してたんですが、あるとき消す順番の指定が必要になって「仕方ないから2回(消す順に)実行するかー」と思ってtarget指定したのですが、何故かterr…

Terraform で ELB の設定とインスタンス作成

概要 前回の続きです。ここまで来たら小規模ながらきちんとしたAWS構成を作れます。 環境 Ubuntu 14.04 Terraform 0.6.2 前提 Terraform でセキュリティグループを管理でVPC、サブネット、セキュリティグループの設定が済んでいる状態。 フォルダ構成 ├── co…

Terraform でセキュリティグループを管理

概要 セキュリティグループはAWS標準のファイアウォール機能です。 作成したセキュリティグループをEC2インスタンスやELBに設定することで反映されます。 今回はTerraformでそれを作成し、EC2に結びつけてみます。 環境 Ubuntu 14.04 Terraform 0.5.2 前提 T…

TerraformでAWSのVPCを設定

概要 TerraformでVPCの設定をします。 基本的な設定ですが、サブネットは一応AZを考慮して2つ作っています。 環境 Ubuntu 14.04 Terraform 0.3.7 設定 以下の設定で構築します。 VPC 設定項目 設定値 名前 vpc-1 ネットワークの範囲 10.0.0.0/16

最新のTerraformを導入する

環境 Ubuntu 14.04 Go 1.4.2 Terraform 0.4.0 事前準備 Goがインストールされている必要があります。 Go言語環境の構築を参考にインストールしてください。 インストール $ go get github.com/hashicorp/terraform バージョンを確認します。 $ terraform ver…

TerraformでAMIをセットアップ

概要 Terraformを使ってインスタンスを作成する方法です。 環境 Ubuntu 14.04 Terraform 0.3.7 インストール TerraformでHerokuをセットアップを参考にしてください。 .tfファイルの作成 .tfファイルを作成します。今回はaws.tfとします。 access_key、secre…

TerraformでHerokuをセットアップ

概要 Terraformというオーケストレーションツールを使います。本当ならAWSで試したいのですが無料枠をすでに使いきっていたので今回はHerokuで。 環境 OSX 10.10.2 Terraform 0.3.7 インストール バイナリパッケージを直接ダウンロードしてPATHを通します。 …