ここでは,NAT Instance を ec2.CfnInstance で作成する.
NAT Instance の作成方法で最も手軽なのは ec2.NatProvider.instance だが, この場合,下記の制約がある.
- 提供されているインスタンス用のイメージが古い (Amazon Linux イメージのみで,メンテナンスサポートが 2023 年 12 月 31 日に終了する)
- ARM 系インスタンス用のイメージを提供していない
- ストレージを暗号化できない
そこで,今回は下記条件の Nat Instance を ec2.CfnInstance で作成した.
- Amazon Linux 2
- t4g.nano (ARM 系 CPU のインスタンス)
- ストレージの暗号化
EC2_INSTANCE_ID=$(aws ec2 describe-instances \
--filters "Name=tag:Name,Values=AwsCdkTplStack/General_purpose_ec2" \
--query "Reservations[].Instances[?State.Name=='running'].InstanceId[]" \
--output text)
ssh -i ~/.ssh/ec2/id_ed25519 admis@$EC2_INSTANCE_ID
※ SSM 用の iam role を付けていないので,そのままでは接続できない.
NAT_INSTANCE_ID=$(aws ec2 describe-instances \
--filters "Name=tag:Name,Values=AwsCdkTplStack/NatInstance" \
--query "Reservations[].Instances[?State.Name=='running'].InstanceId[]" \
--output text)
ssh -i ~/.ssh/ec2/id_ed25519 admis@$NAT_INSTANCE_ID
sudo cat /var/log/cloud-init-output.log
Reachability Analyzer を使う
https://nodejs.org/en/download/releases/ から好きなバージョンを探す. 特にこだわりが無ければ,サポートサイクルから LTS のバージョン を選択する.
curl -SLO "https://nodejs.org/dist/latest-v12.x/node-v12.22.3-linux-x64.tar.xz"
sudo tar -xJf ./node-v12.22.3-linux-x64.tar.xz -C /usr/local --strip-components=1 --no-same-owner
rm ./node-v12.22.3-linux-x64.tar.xz
sudo ln -s /usr/local/binnode /usr/local/bin/nodejs
- README なしで git リポジトリを生成
- git clone して cd リポジトリの中に入る
- CDK の Typescript プロジェクトを作成
npx cdk init sample-app --language typescript
npx cdk synth
npx npm run test
npx npm run test -- -u
npx cdk deploy --all --require-approval never
npx cdk destroy --all --force