Life is Really Short, Have Your Life!!

ござ先輩の主に技術的なメモ

Terraformをやってみた

AWSを触るのは2年ぶりぐらいかな…

インフラはVPSに逃げがちでしたが、VPSで頑張ってもなんの成長にもならんので、AWSでインフラをコード化することにトライした。CloudFormationは、色々とググったYAMLを見た時にこれをちまちま書くのは無理!と思ったのでスルー。Terraformはシンプルに設定を書き連ねることができるフォーマットなので、流れが追いやすかった。

1日ちょいで、VPC作成からIGWアタッチしてサブネットとルーティング設定、ALBに証明書と独自ドメイン当てて、FargateでnginxをリバースプロキシにしてWSGIアプリを動かすところまできた。結構なタスクになるなぁ。

  1. VPC作成
  2. IGW作成→VPCアタッチ
  3. サブネット作成
    1. パブリック2つ
    2. プライベート2つ
  4. ルートテーブル作成
  5. ルーティング→関連付け
  6. セキュリティグループ作成
    1. HTTP(80)
    2. HTTPS(443)
  7. ALB
    1. ALB作成
    2. リスナー作成(HTTP, HTTPS)
    3. ターゲットグループ作成
    4. リスナールール作成(HTTP→HTTPSのリダイレクト等)
  8. ECR
    1. レポジトリ作成
    2. イメージをPUSH
  9. ECS
    1. クラスタ作成
    2. セキュリティグループ作成
    3. ECS用IAMユーザー作成
  10. Route53
    1. ドメイン登録
    2. ホストゾーン登録
    3. ACMで証明書発行 & 検証用のDNSレコード設置
    4. ALBに証明書をセット
  11. S3
    1. ALB ログバケット作成
  12. Cloudwatch
    1. CloudWatch用グループ作成
  13. Aurora
    1. セキュリティグループ作成(3306)
    2. クラスター作成(サブネットは既に作成済)
    3. インスタンス作成

初めてAWS触ったの、確か2011年ぐらいだけど、10年近く前からVPCあたりのネットワークの仕組み、全然変わってない。各々のサービスを使っていい感じにやれる幅は広がっているけど。

ECSのサービス作成並びにタスク設定は、ecs-cliでやります。docker-compose.yamlとecs-param.yamlのほうがとても直感的に設定ができる。