Meta Boatrace のインフラリソースを一元的に IaC で管理するためのリポジトリ
- AWS CLI: v2.0.0 以上
- Terraform: v1.8.0 以上
- AWS Provider for Terraform: v5.40 以上
$ brew install awscli$ aws configure --profile <profile-name>もしくは
export AWS_PROFILE=<profile-name><profile-name> は適宜置き換えること
プロファイルにはIAMの生成権限が必要
複数バージョンの管理を容易にするために、tfenv の使用を推奨
$ brew install tfenv
$ tfenv install 1.8.5
$ tfenv use 1.8.5
$ terraform -version
Terraform v1.8.5
on darwin_arm64AWS Systems Manager (SSM) Parameter Store で本番・ステージング各々のデータベースアカウントを設定する
パラメータ名は以下とする
/metaboatrace/origin-data/staging/db/username/metaboatrace/origin-data/staging/db/password/metaboatrace/origin-data/production/db/username/metaboatrace/origin-data/production/db/password
以下のコマンドで設定できる
$ aws ssm put-parameter --name "/metaboatrace/origin-data/staging/db/username" --value "root" --type "String"
$ aws ssm put-parameter --name "/metaboatrace/origin-data/staging/db/password" --value <your_staging_db_password> --type "SecureString"
$ aws ssm put-parameter --name "/metaboatrace/origin-data/production/db/username" --value "root" --type "String"
$ aws ssm put-parameter --name "/metaboatrace/origin-data/production/db/password" --value <your_production_db_password> --type "SecureString"<your_staging_db_password> と <your_production_db_password> は適宜置き換えること
必要に応じてユーザーも最小権限のものを生成することを推奨
ルートモジュールは environments/ ディレクトリ以下にある
これらのサブディレクトリから、インフラリソースを生成したい環境を選択する
例えば、ステージング環境で実行するなら以下
$ cd environments/staging
$ terraform init
$ terraform applyこのリポジトリでは、コミットの前にコード品質チェックを自動で行うための pre-commit をサポートしている
これを利用する場合は以下の手順で有効化できる
Python: pre-commit には Python の環境が必要
$ pip install pre-commit$ pre-commit installこのコマンドは、.pre-commit-config.yaml ファイルで指定されたプレコミットフックをインストールする
すべてのファイルに対して pre-commit フックを手動で実行するには、以下を実行する
$ pre-commit run --all-files$ pre-commit autoupdatepre-commit は、変更をコミットするときに自動的に実行される
自動実行したくない場合は以下のように --no-verify オプションで迂回できる
$ git commit --no-verify