はじめに
naritomoと申します。
最近Terraformによるコードでのインフラ作成にハマっていて、
色んなところで使用されているGitHubActionsによるCI/CDにも気になっていたため、
とりあえず一通りの構築ができるTerraform/Laravelソースを公開してみました。
いろいろアドバイスいただけると嬉しいです。
立ち上げ概要
以下のことを実施しています。
-
TerraformによるECSインフラ環境構築
-
Laravelサイトのローカル環境構築/ブランチ更新によるGitHubActionを使用したECS環境への自動デプロイ実施
必要なソースは以下にまとめてあります。
構成図
構築される構成は以下になります。
Terraform(IaC)にてAWS内に構成図のインフラを構築し、
GitHubActionを使用してECS Fargateへlaravelサイトをデプロイします。
動作確認済みのOS
- Windows11(wsl2上のUbuntuから稼働)
参考書籍
TerraformでFargateを構築してGitHub Actionsでデプロイ!Laravel編
TerraformでFargateを構築してGitHub Actionsでデプロイ!Laravel編 同人版
本書籍により、かなり理解が進みました。
ありがとうございます。
参考サイト
【Route53】AWS上で独自ドメインを取得する方法について解説
nodejs、npm の最新版をインストールする(Ubuntu)
参考動画
本サイトを構築した後、本動画を見るとよりコンテナサービスについてイメージが
つくかと思います。
事前作業
以下のコマンドを利用できている状態になっていること。(参考サイト参照)
git
→githubアカウント準備までできてること。
docker-compose
aws
→awsアカウント設定まで実施していること。
npm
brew
tfenv
AWSアカウント作成後、Route53にてドメイン取得すること。
またはお名前ドットコム(又は外部サービス)でドメイン取得し、
Route53に結び付けることもできます。
構築方法(インフラ)
ソースを入手する。
以下のgitコマンドで入手する。
git clone https://github.com/naritomo08/laravel-fargate-infra-public.git laravel-fargate-infra
cd laravel-fargate-infra
rm -rf .git
指定バージョン(1.1.3)のterraformを導入する。
tfenv install
ドメイン名設定
Rout53にて外向けドメインを入手し、
以下のファイル内のドメイン名設定を実施する。
vi envs/prod/routing/appfoobar_link/route53.tf
name = "<外向けドメイン名>"を書き換える。
サブドメインを使用したい場合
xxx.<外向けドメイン名>のように使用したい場合、
以下の設定も行うこと。
今後の設定では、xxx.<外向けドメイン名>でドメイン名設定を
実施すること。
envs/prod/network/routing/appfoobar_link/route53.tf
以下の部分を"xxx.<ドメイン名>"に変更する。
name = data.aws_route53_zone.this.name
envs/prod/network/routing/appfoobar_link/acm.tf
以下の部分を"xxx.<ドメイン名>"に変更する。
domain_name = data.aws_route53_zone.this.name
s3バケット名、dynamodb名変更
全てのソースから以下の名前になっているS3バケット名/dynamodb名を置換する。
特にs3については他の方が使用していない名前にする必要がある。
S3:
terraform-state
dynamodb:
terraform_state_lock
インフラモジュール構築
以下の順番で構築すること。
tfstate用S3
cd tfstate
terraform init
terraform plan
terraform apply
ネットワーク周り
cd ../envs/prod/network/main
terraform init
terraform plan
terraform apply
ALB用ログ取得S3作成
cd ../../log/alb
terraform init
terraform plan
terraform apply
DBロググループ
cd ../../log/db_foobar
terraform init
terraform plan
terraform apply
Laravelロググループ
cd ../../log/app_foobar
terraform init
terraform plan
terraform apply
SSL証明書/DNSCNAME/ALB作成
cd ../../routing/appfoobar_link
terraform init
terraform plan
terraform apply
*6分かかる
ECR/ECS/.env用S3作成
*ECSキャパシティープランナーのエラーが出ても、もう一回行う。
cd ../../app/foobar
terraform init
terraform plan
terraform apply
AIMユーザ/ポリシー/ecspresso設定作成
cd ../../cicd/app_foobar
terraform init
terraform plan
terraform apply
作成コマンド解説:
terraform init
*初回構築実行のみ
terraforn plan
*作成前の確認コマンド
*確認失敗が出た場合適宜対応すること。
terraform apply
terraform apply -target <モジュール名>
*作成失敗が出た場合適宜対応すること。
RDSを作成する
cd ../../db/foobar
terraform init
terraform plan
terraform apply
*12分近くかかる。
RDS/SystemsManagerへのDBパスワード登録
*DB起動時に実施すること。
aws rds modify-db-instance \
--db-instance-identifier "example-prod-foobar" \
--master-user-password "Passw0rd"
*以下のコマンドは初期構築のみでよい。
aws ssm put-parameter \
--name "/example/prod/foobar/DB_PASSWORD" \
--type "SecureString" \
--value "Passw0rd"
Redisを作成する
cd ../../cache/foobar
terraform init
terraform plan
terraform apply
*14分近くかかる。
Redis/RDS CNAMEレコードを作成する
cd ../../routing/foobar_internal
terraform init
terraform plan
terraform apply
EFSを作成する。
EFS作成
cd ../../efs/foobar
terraform init
terraform plan
terraform apply
作成結果から以下の値を控える。
efs_id
efs_point_id
アプリ側の構築実施
続けてアプリ側の構築を実施する。
構築方法(アプリ)
ソースを入手する。
ホームディレクトリにて、
以下のgitコマンドで入手する。
cd
git clone https://github.com/naritomo08/laravel-fargate-app-public.git laravel-fargate-app
cd laravel-fargate-app
rm -rf .git
ローカルdocker立ち上げ
docker-compose build --no-cache --force-rm
docker-compose up -d
.envファイルコピー
cd backend
cp .env.example .env
Laravelコマンド実施
docker-compose exec app composer install -n --prefer-dist --no-dev
docker-compose exec app php artisan key:generate
docker-compose exec app php artisan storage:link
docker-compose exec app chmod -R 777 storage bootstrap/cache
権限設定(macでは不要)
cd ..
sudo chown -R $USER:$USER backend
sudo chgrp -R www-data backend/storage backend/bootstrap/cache
sudo chmod -R ug+rwx backend/storage backend/bootstrap/cache
npmコマンド実施
cd backend
npm ci
npm run prod
DBマイグレート実施
docker-compose exec app php artisan migrate --force
ローカルでのサイト確認
ソースのGit登録
githubでの新規リポジトリを作成していること。
以下のコマンドを入力してソースをgithubに登録する。
[name]は自身のユーザ名,[email]は自身のメールアドレスを入れる。
cd ..
git init
git config --local user.name [name]
git config --local user.email [email]
git add .
git commit -m "first commit"
git branch -M main
git remote add origin <作成したリポジトリパス>
git push -u origin main
.env.prodファイルを更新する。
vi backend/.env.prod
ファイル内容
---------------------
APP_URL=https://<外向けドメイン名>
外向けドメイン名を編集すること。
---------------------
デプロイ設定実施
デプロイ実施ファイルを編集する。
cd .github/workflows
mv deploy.yml.org deploy.yml
vi deploy.yml
修正箇所
run: aws s3 cp .env.$ENV_NAME s3://terraform-state-$SYSTEM_NAME-$ENV_NAME-$SERVICE_NAME-env-file/$IMAGE_TAG/.env
→"terraform-state"のS3バケット名を編集する。
デプロイ設定ファイルも更新する。
cd ../../ecspresso
vi config_prod.yml
修正箇所
url: s3://terraform-state/example/prod/cicd/app_foobar_v1.0.0.tfstate
→"terraform-state"のS3バケット名を編集する。
GitHubへのAWS ID登録
作業実施する前に以下の値を控える。
AWS IAMユーザ一覧から、example-prod-foobar-githubユーザの
アクセスキーを新規作成し、
アクセスキー/シークレットアクセスキーを控える。
GitHubリポジトリページに入り、Settings→secrets→Actionより、
以下の値を追加する。
名前:
PROD_AWS_ACCESS_KEY_ID
→控えたアクセスキーを入れる。
PROD_AWS_SECRET_ACCESS_KEY
→控えたシークレットアクセスキーを入れる。
PROD_AWS_ASSUME_ROLE_ARN
→arn:aws:iam::[AWSアカウントID]:role/example-prod-foobar-deployer
SystemsManagerでのLaravel APP_KEY登録
laravel-fargate-appフォルダで以下のコマンドで入力して出力結果を控える。
docker-compose up -d
docker-compose exec app php artisan key:generate --show
→出てくるコマンド結果を全て控える(base64:も含む。)
AWS SystemsManagerに入り、パラメータストアにて
以下の値を登録する。
名前:
/example/prod/foobar/APP_KEY
値:
先程控えた出力結果。
利用枠は標準とする。
タイプは安全な文字列とする。
KMSキーソースは現在のアカウントとする。
KMSキーIDは「alias/aws/ssm」とする。
以下のコマンドでも登録が可能
aws ssm put-parameter \
--name "/example/prod/foobar/APP_KEY" \
--type "SecureString" \
--value "<前の手順で控えた結果>"
EFS情報登録
以下のコマンドを実施し、EFS情報の登録を実施する。
本ファイルの上の方にそれぞれのコンテナのマウント先を指定しているが、必要に応じ変更すること。
vi ecspresso/ecs-task-def.json
以下の部分について、EFSのパラメータに書き換える。(ファイル最後の部分)
"fileSystemId": "<efs_idの値>",
"accessPointId": "<efs_point_idの値>",
GitHubAction実施
mainブランチへのコミット/プッシュを実施して、
正常にGitHubActionが稼働することを確認する。
稼働状況はgithubの対象リポジトリのActionタブから確認できる。
コミットするものがない場合、以下のコマンドで実施が可能。
git commit --allow-empty -m "empty commit"
git push
失敗した場合は、何回かジョブ再実施してみて、同じところで失敗する場合、
構築している手順に漏れが無いか確認すること。
以降はmainブランチ更新で自動的にデプロイされる。
ECSサイト確認
以下のURLサイトを参照する。
https://<外向けドメイン名>
サービス一時削除/起動方法(インフラソースで実施)
一時削除の際は次の項目から実施し、起動の際は反対から行う。
余計な課金を防ぐため、なるべく環境を使用しない際は本作業で削除しておくとよい。
状況によってはRDS/Redis/CNAMEレコードを残してもよい。
ECSサービス削除/起動
サービス起動後、タスクが自動的に起動しないため、
アプリブランチでのmainブランチコミット/プッシュ
でタスクを立ち上げること。
またはgithubのActionページから最近実行したActionを動かすこと。
cd laravel-fargate-infra/envs/prod/app/foobar
terraform destroy -target aws_ecs_service.this
terraform apply
Redis/RDS CNAMEレコード削除/起動
cd laravel-fargate-infra/envs/prod/routing/foobar_internal
terraform destroy
terraform apply
Redis削除/起動
cd laravel-fargate-infra/envs/prod/cache/foobar
terraform destroy
terraform apply
*14分近くかかる。
RDS削除/起動
cd laravel-fargate-infra/envs/prod/db/foobar
terraform destroy
terraform apply
*12分近くかかる。
RDS/SystemsManagerへのDBパスワード登録
*RDS起動時に実施すること。
aws rds modify-db-instance \
--db-instance-identifier "example-prod-foobar" \
--master-user-password "Passw0rd"
*以下のコマンドは初期構築のみでよい。
aws ssm put-parameter \
--name "/example/prod/foobar/DB_PASSWORD" \
--type "SecureString" \
--value "Passw0rd"
ALB削除/起動
cd laravel-fargate-infra/envs/prod/routing/appfoobar_link
terraform apply -var='enable_alb=false'
terraform apply
NAT削除/起動
cd laravel-fargate-infra/envs/prod/network/main
terraform apply -var='enable_nat_gateway=false'
terraform apply
別ソースから本環境に入れてのECS立ち上げ(アプリソースで実施)
以下の手順で別途立ち上げているLaravelソースを立ち上げることができます。
新規作成の場合、予めインフラリソースを作成していること。
アプリベースソース入れ直し(Laravel9/10の場合)
以下の操作でphp8.2版アプリベースソースを入手する。
cd
git clone -b main2 https://github.com/naritomo08/laravel-fargate-app-public.git laravel-fargate-app
cd laravel-fargate-app
rm -rf .git
上記作業実施後新たにリポジトリを作成しプッシュしておくこと。
git init
git config --local user.name [name]
git config --local user.email [email]
git add .
git commit -m "first commit"
git branch -M main
git remote add origin <作成したリポジトリパス>
git push -u origin main
mainソースから別ブランチを作る。
ブランチ名はsitetestにしておく。
backendフォルダを削除する。
sudo rm -rf backend
backendフォルダでgit cloneを実施する。
git clone <gitソースURL> backend
cd backend
rm -rf .git
.env.prodファイルを作成する。
vi backend/.env.prod
ファイル内容
下記以外必要なパラメータがあれば随時追記すること。
---------------------
APP_NAME=foobar
APP_ENV=production
# APP_KEY=parameter_store
APP_DEBUG=false
APP_URL=https://<外向けドメイン名>←編集すること。
LOG_CHANNEL=stderr
LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=db.foobar.internal
DB_PORT=3306
DB_DATABASE=foobar
DB_USERNAME=foobar
# DB_PASSWORD=parameter_store
SESSION_DRIVER=redis
SESSION_LIFETIME=120
REDIS_HOST=cache.foobar.internal
REDIS_PASSWORD=null
REDIS_PORT=6379
---------------------
deploy.shファイルを作成する。
cd backend
mkdir scripts
vi deploy.sh
ファイル内容
ECSコンテナ立ち上げるコマンドになるため、
他に必要なものがあれば追加すること。
---------------------
#!/bin/bash
set -eu
php artisan storage:link
php artisan config:cache
chown -R www-data:www-data /work/backend/storage
php-fpm
---------------------
chmod +x deploy.sh
ローカル立ち上げ直し
docker-compose build --no-cache --force-rm
docker-compose up -d
.envファイル作成
cd backend
cp ../.env.example .env
* cpコマンド前に編集が必要なところあれば編集すること。
Laravelコマンド実施
docker-compose exec app composer install -n --prefer-dist --no-dev
docker-compose exec app php artisan key:generate
docker-compose exec app php artisan storage:link
docker-compose exec app chmod -R 777 storage bootstrap/cache
権限設定(macでは不要)
sudo chown -R $USER:$USER backend
sudo chgrp -R www-data backend/storage backend/bootstrap/cache
sudo chmod -R ug+rwx backend/storage backend/bootstrap/cache
npmコマンド実施
cd backend
npm ci
npm run prod
合わせて、以下のフォルダについて"backend/.gitignore"でコメントアウトすること。
/public/css
/public/js
/public/mix-manifest.json
httpsアクセス許可
cd backend/app/Http/Middleware
vi TrustProxies.php
protected $proxies;
protected $proxies = "*";
→上記を下記に修正する。
DBマイグレート実施
docker-compose exec app php artisan migrate --force
ローカルでのサイト確認
デプロイ設定実施
デプロイ実施ファイルを編集する。
cd .github/workflows
mv deploy.yml.org deploy.yml
vi deploy.yml
修正箇所
on:
push:
branches:
- main
- sitetest ←追記する
if: github.ref == 'refs/heads/main'
if: github.ref == 'refs/heads/sitetest'
→2箇所ある上記記載について、上から下に修正する。
run: aws s3 cp .env.$ENV_NAME s3://terraform-state-$SYSTEM_NAME-$ENV_NAME-$SERVICE_NAME-env-file/$IMAGE_TAG/.env
→"terraform-state"のS3バケット名を編集する。
デプロイ設定ファイルも更新する。
cd ../../ecspresso
vi config_prod.yml
修正箇所
url: s3://terraform-state/example/prod/cicd/app_foobar_v1.0.0.tfstate
→"terraform-state"のS3バケット名を編集する。
GitHubへのAWS ID登録
作業実施する前に以下の値を控える。
AWS IAMユーザ一覧から、example-prod-foobar-githubユーザの
アクセスキーを新規作成し、
アクセスキー/シークレットアクセスキーを控える。
GitHubリポジトリページに入り、Settings→secrets→Actionより、
以下の値を追加する。
名前:
PROD_AWS_ACCESS_KEY_ID
→控えたアクセスキーを入れる。
PROD_AWS_SECRET_ACCESS_KEY
→控えたシークレットアクセスキーを入れる。
PROD_AWS_ASSUME_ROLE_ARN
→arn:aws:iam::[AWSアカウントID]:role/example-prod-foobar-deployer
SystemsManagerでのLaravel APP_KEY登録
laravel-fargate-appフォルダで以下のコマンドで入力して出力結果を控える。
docker-compose up -d
docker-compose exec app php artisan key:generate --show
→出てくるコマンド結果を全て控える
AWS SystemsManagerに入り、パラメータストアにて
以下の値を登録する。
名前:
/example/prod/foobar/APP_KEY
値:
先程控えた出力結果。
利用枠は標準とする。
タイプは安全な文字列とする。
KMSキーソースは現在のアカウントとする。
KMSキーIDは「alias/aws/ssm」とする。
以下のコマンドでも登録が可能
aws ssm put-parameter \
--name "/example/prod/foobar/APP_KEY" \
--type "SecureString" \
--value "<前の手順で控えた結果>"
EFS情報登録
以下のコマンドを実施し、EFS情報の登録を実施する。
本ファイルの上の方にそれぞれのコンテナのマウント先を指定しているが、必要に応じ変更すること。
vi ecspresso/ecs-task-def.json
以下の部分について、EFSのパラメータに書き換える。(ファイル最後の部分)
"fileSystemId": "<efs_idの値>",
"accessPointId": "<efs_point_idの値>",
GitHubAction実施
mainブランチへのコミット/プッシュを実施して、
正常にGitHubActionが稼働することを確認する。
稼働状況はgithubの対象リポジトリのActionタブから確認できる。
コミットするものがない場合、以下のコマンドで実施が可能。
git commit --allow-empty -m "empty commit"
git push
失敗した場合は、何回かジョブ再実施してみて、同じところで失敗する場合、
構築している手順に漏れが無いか確認すること。
編集後”sitetest"へのコミット/プッシュを実施して、
正常にGitHubActionが稼働することを確認する。
ECSサイト確認
以下のサイトを参照する。
https://<外向けドメイン名>
ECSタスク数変更方法(アプリソースで実施)
標準ではタスク数が1つしか立ち上がらないが、
以下の方法で増やすことができる。
cd ecspresso
vi ecs-service-def.json
変更箇所:
"desiredCount": 2,
→"desiredCount"の数字を変更する。
mainブランチにコミットしてタスクを更新後、
ECSのタスク数が変更されることを確認する。
環境削除(アプリ)
デプロイ設定実施
cd .github/workflows
mv deploy.yml deploy.yml.org
コミット・デプロイを実施してActionが稼働しないことを確認する。
docker環境の削除を実施する。
docker-compose down
作業フォルダ削除する。
sudo rm -rf laravel-fargate-app
GitHubへのAWS情報登録解除
GitHubリポジトリページに入り、Settings→secrets→Actionより、
以下の値を削除する。
名前:
PROD_AWS_ACCESS_KEY_ID
PROD_AWS_SECRET_ACCESS_KEY
PROD_AWS_ASSUME_ROLE_ARN
SystemsManagerでのLaravel APP_KEY/DB_PASS削除
AWS SystemsManagerに入り、パラメータストアにて
以下の値を削除する。
名前:
/example/prod/foobar/APP_KEY
/example/prod/foobar/DB_PASS
環境削除(インフラ)
ECSサービスを削除する。
cd laravel-fargate-infra/envs/prod/app/foobar
terraform destroy -target aws_ecs_service.this
Redis/RDS CNAMEレコードを削除する。
cd ../../routing/foobar_internal
terraform destroy
terraform state list
Redisを削除する。
cd ../../cache/foobar
terraform destroy
→6分かかる
terraform state list
RDSを削除する。
cd ../../db/foobar
terraform destroy
→6分かかる
terraform state list
ALBを削除する。
cd ../../routing/appfoobar_link
terraform apply -var='enable_alb=false'
NATを削除する。
cd ../../network/main
terraform apply -var='enable_nat_gateway=false'
ECSデプロイ用アカウントアクセスキー削除
AWS IAM管理画面から、example-prod-foobar-githubユーザの
アクセスキーを削除する。
その他モジュール削除(Terraform)
以下の順番で削除すること。
EFS
cd ../../efs/foobar
terraform destroy
terraform state list
AIMユーザ/ポリシー/ecspresso設定
cd ../../cicd/app_foobar
terraform destroy
terraform state list
Laravelロググループ
cd ../../log/app_foobar
terraform destroy
terraform state list
DBロググループ
cd ../../log/db_foobar
terraform destroy
terraform state list
ECR/ECS/.env用S3
手動でECR内のリポジトリを削除する。
*ECSキャパシティープランナーのエラーが出ても、もう一回行う。
cd ../../app/foobar
terraform destroy
terraform state list
SSL証明書/DNSCNAME/ALB
cd ../../routing/appfoobar_link
terraform destroy
terraform state list
ALB用ログ取得S3
*バケットエラーが出ても、もう一度行う。
cd ../../log/alb
terraform destroy
terraform state list
ネットワーク周り
cd ../../network/main
terraform destroy
terraform state list
tfstate用S3
cd
cd laravel-fargate-infra/tfstate
terraform destroy
terraform state list
削除コマンド解説
terraform destroy
terraform destroy -target <モジュール名>
以下のコマンドを入力して、残っているモジュールがないことも確認すること。
terraform state list
リスト確認
結果で残っているモジュールがないか確認できる。
残っているものがある場合"aws_"で始まるモジュールを削除するか、
管理コンソール画面から手動で削除すること。
削除しきれていないモジュールの削除
AWS IAM管理画面に入り、以下の設定を削除する。
ロール:
AWSServiceRoleForECS
AWSServiceRoleForElastiCache
AWSServiceRoleForElasticLoadBalancing
AWSServiceRoleForRDS
AWSServiceRoleForAmazonElasticFileSystem
作業フォルダ削除する。
sudo rm -rf laravel-fargate-infra
課金確認
1日放置して、課金されているところがないか確認する。
書籍からの手順修正箇所
参考書籍の内容で構築して私が引っかかった部分を記載します。
1.5.1 Larabel Breezeインストールコマンド
docker-compose exec app composer require laravel/breeze:1.10 --dev
1.5.5 トランスコンパイル実行
コンテナでのnpm系コマンド実施前に、以下のコマンドを直前に行うこと。
macでは必要ない。
sudo chown -R root:root backend
作業後は以下のコマンドを入力して使用できるようにする。
sudo chown -R $USER:$USER backend
sudo chgrp -R www-data backend/storage backend/bootstrap/cache
sudo chmod -R ug+rwx backend/storage backend/bootstrap/cache
コンテナでのnpm系コマンド実施しなくても、いきなり上記の権限修正後
backendフォルダ内で"npm run prod"を稼働しても良い。
ログイン確認した際に画面がおかしくなった場合
vite使用箇所の修正をする。
以下のコマンドを入れる。
sudo rm -f backend/vite.config.js
cd /backend/resource/views/layouts/
sudo vi app.blade.php
sudo vi guest.blade.php
書き換え内容
変更前
<!-- Scripts -->
@vite(['resources/css/app.css', 'resources/js/app.js'])
変更後
<!-- Styles -->
<link rel="stylesheet" href="{{ asset('css/app.css') }}">
<!-- Scripts -->
<script src="{{ asset('js/app.js') }}" defer></script>
make npm-devを実施して、正常に画面表示されるか確認すること。
参照先URL
4.16 トランスコンパイル実行
deploy.ymlでの以下行はなぜかgithubAction上の環境では動かないため、
対象コマンドはコメントアウトすること。
- run: docker-compose exec -T web npm run prod
合わせて、以下のフォルダについて"backend/.gitignore"でコメントアウトすること。
/public/css
/public/js
/public/mix-manifest.json
git rm -r --cached .
→コメントアウト後上記コマンドを入力しコミット/プッシュすること。
7.11.2 ECSサービスの作成
参考書籍を参考中ではそのままで問題ないが、
ECSタスクをecspressoで管理するようになったときは、
以下の書き換えを行いスクが自動稼働しないようにすること。
vi laravel-fargate-infra/envs/prod/app/foobar/variables.tf
以下の部分を書き換える(1を0にする。)
default = 0
ECSサービスヘルスチェックについて、
現状の設定の60秒ではタスクを5などに増やしたとき、
ヘルスチェックに間に合わずタスク再起動が発生し
デプロイし直しが繰り返し発生するため
以下の修正を初回設定時点で行うとよい。
vi laravel-fargate-infra/envs/prod/app/foobar/ecs.tf
以下の部分を書き換える(60を3600にする。)
health_check_grace_period_seconds = 3600
8.6 GitHub Actionによるデプロイ
デプロイ部分追記について以下の内容に修正する。
- name: Download ecspresso
uses: kayac/ecspresso@v1
with:
version: latest
8.7 サービスとタスク定義をTerraform管理外にする。
管理外にすると、ECSサービス削除が行えなくなるため、
実施しなくてもよい。
おわりに
本サイトについて駆け足で作成しているところもあるため、
自分でも誤りや問題に気づきましたら修正いたします。
気になるところなどありましたら、色々コメント頂けますと
嬉しいです。