🏰

ALB+EC2+AuroraでMattermost - Terraformのきほんと応用

2022/06/12に公開
2

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万円ぐらいかかります

システム構成

publicサブネットにはALBとNatGWのみという、プライベートなチャットを使いたい組織が好みそうな構成です。
system structure

ソース構成

フラットな構成でnetwork系とmattermost系のソースを分けています。また、ソースを読むのに必要な知識を少なくするため以下の機能を使用していません。

  • for_each文
  • ワークスペース
    source list

使用方法

  1. ホストゾーンIDとドメイン名を変更する
    設定ファイルのホストゾーンIDとドメイン名(以下)を変更します。他の部分も必要に応じて変更します。
    setting.tf
    locals {
       network = {
          zone_id = "Z099999999GHIJKLMNOPQ"
       }
       mattermost = {
          domain_name = "mattermost.change-domain.com"
      }
    }
    
  2. terraformで構築する
    特別な手順は不要でterraformコマンドを順に実行するのみです。Auroraの構築があるため5分~10分程度かかります。terraform完了後もmattermostサーバーの構築に5~10分ぐらいかかります。
    具体的な手順が知りたい場合は別記事(ローカルでhello world)を参照してください。
    terraform.exe init
    terraform.exe plan
    terraform.exe apply
    
  3. ブラウザでアクセス
    ブラウザでアクセスするとmattermostの初期画面が表示されています。
    show in browser

サンプルコード

この記事で作成したコードはgithub上に公開しています。

GitHubで編集を提案

Discussion

jtarohjtaroh

可能であればサンプルコードの公開をお願いします。
現状見れないようです

swaysway

記事内のリンク先が間違っていたのを修正しました。ご指摘ありがとうございます。