🏰
ALB+EC2+AuroraでMattermost - Terraformのきほんと応用
TerraformでAWSを構築する際のひな形となるコードを公開しています。個別のコンポーネントではなくコードベース全体です。
Terraform関連の他の記事は「Terraformのきほんと応用」からどうぞ。
特徴
ALB+EC2+Aurora+S3の構成による実践的なmattermost環境です。システム構成の特徴は以下の通り沢山ありますが、細かい説明はしていません。今後、1つ1つ記事にしていきます。
- ドメイン名&SSLによるアクセス
- DNSレコードの作成とALBへの割り当て
- ACMによるSSL証明書の作成
- EC2はプライベートサブネットに配置
- インターネットからのアクセスはALB経由
- インターネットへのアクセスはNatGW(Nat GateWay)経由
- プライベートセグメントへのセッションマネージャー接続
- データはAurora(mysql)とs3に保管
- EC2はオートヒーリング
- 起動テンプレートとAutoScalingグループによる管理
- ALBからAutoScalingグループへの分散
- 1カ月動かすと2.5万円ぐらいかかります
- EC2とAuroraは最小構成
- 3AZで動かしているNatGWが費用の大半で2万円/月ぐらいかかります
- AWS Pricing Calculatorで見積を表示
システム構成
publicサブネットにはALBとNatGWのみという、プライベートなチャットを使いたい組織が好みそうな構成です。
ソース構成
フラットな構成でnetwork系とmattermost系のソースを分けています。また、ソースを読むのに必要な知識を少なくするため以下の機能を使用していません。
- for_each文
- ワークスペース
使用方法
- ホストゾーンIDとドメイン名を変更する
設定ファイルのホストゾーンIDとドメイン名(以下)を変更します。他の部分も必要に応じて変更します。setting.tflocals { network = { zone_id = "Z099999999GHIJKLMNOPQ" } mattermost = { domain_name = "mattermost.change-domain.com" } }
- terraformで構築する
特別な手順は不要でterraformコマンドを順に実行するのみです。Auroraの構築があるため5分~10分程度かかります。terraform完了後もmattermostサーバーの構築に5~10分ぐらいかかります。
具体的な手順が知りたい場合は別記事(ローカルでhello world)を参照してください。terraform.exe init terraform.exe plan terraform.exe apply
- ブラウザでアクセス
ブラウザでアクセスするとmattermostの初期画面が表示されています。
サンプルコード
この記事で作成したコードはgithub上に公開しています。
Discussion
可能であればサンプルコードの公開をお願いします。
現状見れないようです
記事内のリンク先が間違っていたのを修正しました。ご指摘ありがとうございます。