スケーラブルハンズオンの手順の一部を実装するCDKコードで、以下の要素を含みます
- ハンズオン用のVPC、サブネットのデプロイ
- WordPressを実行するためのEC2のデプロイ(ユーザデータ、IAMロールの設定含む)
(※スケーラブルハンズオンの手順における2.b.Amazon EC2 の作成までをCDKで実装します)
TypeScriptやCDKについて学びたい方はこちらのCDKワークショップをご覧いただけると幸いです。
実際にワークショップをしていただいてもいいですし、記載されている内容を机上で学習していただく使い方もできます。
以下は重要なファイル·ディレクトリのみ記載しています。
.
├── README.md # 本READMEファイル
├── bin # スタックの定義
├── cdk.json # CDKの設定ファイル
├── jest.config.js # JavaScriptのフレームワークJestの設定ファイル
├── lib # CDK(Stack)の実装
│ ├── scalable-stack.ts # VPC、EC2(ユーザデータ含む)、IAM、Security GroupをデプロイするためのStack
│ └── user-data.sh # EC2のセットアップに使用するスクリプト
├── package-lock.json # ライブラリ依存関係の定義ファイル
├── package.json # ライブラリ依存関係の定義ファイル
├── test # CDKのテストコード(未使用)
└── tsconfig.json # TypeScriptの設定ファイル
上記のリソースをAWSにデプロイする方法をまとめます。
デプロイを実行する端末には、下記のソフトウェアが必要です。
- AWS CLI v2
- Node.js 14以上
まず初めに本リポジトリをお手元のCloud9環境にCloneします。
#ソースコードのClone
git clone https://github.com/kenicazu/scalable-webapp.git
cd scalable-webapp
カレントディレクトリにこの README.md が配置されていることを確認し、次のコマンドを実行します
# IaCの依存関係をインストール
npm ci
# CDKをap-northeast-1リージョンで使えるように初期化する
AWS_REGION=ap-northeast-1 npx cdk bootstrap
# CDKで定義したリソースのデプロイ
npx cdk deploy --require-approval never
なお、以下のコマンドでCloudFormationのyamlファイルを出力することも可能です。
cdk synth
一連プロセスは5分ほどで終了します。
この後の手順はスケーラブルハンズオンのWordPressのインストール確認から進めてください