CDKをLocalStackにデプロイする検証用リポジトリ。
本リポジトリでは2つのデプロイパターンを提供しています:
アーキテクチャ: setup-localstack GitHub Actionを利用した統合アプローチ
特徴:
- LocalStackの起動・停止を自動管理
awslocalCLIの自動インストール- ヘルスチェックや手動クリーンアップ不要
- CI/CD環境での実行を想定した設計
推奨理由: LocalStack公式のアクションにより、セットアップが簡素化され、メンテナンス性が向上します。
アーキテクチャ: Docker Composeを利用した従来型アプローチ
特徴:
docker-compose.ymlを使用して手動でLocalStackを起動- ヘルスチェックとクリーンアップ(
docker compose down)を明示的に実行 - ローカル開発環境との一貫性を重視
適用場面: Docker Composeの動作を細かく制御したい場合や、ローカル環境と同じ構成をCI/CDで再現したい場合に有用です。
# 依存関係のインストールとビルド
npm install
npm run build
# LocalStack起動
docker compose up -d
# CDKデプロイ
npx cdklocal deploy --require-approval never
# LocalStack停止
docker compose downdocker-compose.ymlでSERVICES環境変数を使ってLocalStackのサービスを制限する場合、dynamodbのみに限定しないでください。
❌ 避けるべき設定例:
environment:
- SERVICES=dynamodb # これは動作しません理由: cdklocalの認証処理ではSTS(Security Token Service)などの追加サービスが必要です。サービスを制限すると、以下のようなわかりづらいエラーが発生します:
Unable to resolve AWS account to use. It must be either configured when you define your CDK Stack, or through the environment
推奨: SERVICES環境変数を設定せず、LocalStackのデフォルト設定を使用してください。
- DynamoDBテーブル:
cdk-localstack-table