Closed6

[Terraform]WordPressをECS on Fargateで作ってみる

mappimappi

背景

  • TerraformでECS on Fargateの構成を1から作ってみたい
  • せっかくメモ残すならZennで整理したい
  • これをベースにCI/CDやセキュリティ面含めてTerraformで拡張していきたい

構築順序(仮)

  • 環境構築
    • AWSアカウントリソース整理
    • Terraformインストール
  • AWS構成図作成(叩き台レベル)
  • 構築開始
mappimappi

AWSアカウントリソース整理

完了

Terraformインストール

以下ページを参考に環境構築を開始
https://dev.classmethod.jp/articles/beginner-terraform-install-mac/

以下エラー発生

Planning failed. Terraform encountered an error while generating this plan.

│ Error: No valid credential sources found
│ 
│   with provider["registry.terraform.io/hashicorp/aws"],
│   on main.tf line 1, in provider "aws":
│    1: provider "aws" {
│ 

環境変数の設定が失敗していた
以下ページを参考に設定。
https://qiita.com/takaikeee12/items/c28153fb0528c3d6e3a7

mappimappi

AWS構成図作成(叩き台レベル)

  • AWSコンテナ設計の本を参考に、超雑に構成作成
  • 本当はファイルシステムにEFS必要な記事見つけたが、一旦ここまでTerraformで構築してみる
mappimappi

[緩和休題]Fish Shellのインストール

Fish Shellが視認性がいいという噂を聞き、インストール
(本来であれば、インストール手順を記載すべきだが、以下記事を参考とした)

https://zenn.dev/meihei/articles/390d6dbbb4c936
https://zenn.dev/ryo_kawamata/articles/vscode-fish-shell

注意点として、M1以上のMacだと fishのインストールディレクトリが異なる点
/usr/local/bin/fishの記載が多いが実際は

$ which fish
/opt/homebrew/bin/fish

となる

(追記)
Fish Shellインストール時にHomeBrewコマンドを実行できるようにする設定

https://zenn.dev/antapp/articles/2193a793a15a37#ついでにfishでhome-brewを使えるようにする

mappimappi

Terraformのソースコード構成についてメモ

モノリポジトリ vs マルチリポジトリ

  • 以下記事を参考に整理。
    https://gihyo.jp/article/2022/10/mitene-01terraform
  • 規模に依存するが、モノリポジトリだと影響範囲が大きいため、複数開発者の場合はマルチリポジトリ採用がベターなのか?
  • 今回は個人開発のため、一旦モノリポジトリで構築してみる
mappimappi

Terraformモジュール構成

取り急ぎ以下構成で試してみる。

$ tree
.
├── main.tf
├── modules
│   ├── alb
│   ├── ecr
│   ├── ecs
│   ├── iam
│   └── network
└── variable.tf
このスクラップは2024/03/30にクローズされました