備忘録になります。
なぜ間違えた?
AWS学習中にCDKで定義したVPCやサブネットをデプロイした際に、シンプルにリージョン周りを正しく確認していなかったためです...。
具体的には以下のような状態でした。
-
aws configure
でアクセスキーなどを入力する際にリージョンをデフォルトにしたまま。 -
bin/~.ts
に明示的にリージョンを記述していなかった。
bin/~.ts
import * as cdk from "aws-cdk-lib";
import { AwsTestStack } from "../lib/aws-test-stack";
const app = new cdk.App();
new AwsTestStack(app, "AwsTestStack", {
});
解決策
1. デフォルトのリージョンを変更
aws configure set region
でリージョンを設定
aws configure set region ap-northeast-1 # 東京リージョンをセット
bin/~.ts
リージョンを記述
bin/~.ts
import * as cdk from "aws-cdk-lib";
import { AwsTestStack } from "../lib/aws-test-stack";
const app = new cdk.App();
new AwsTestStack(app, "AwsTestStack", {
env: { region: 'ap-northeast-1' }, // 東京リージョンを明示的に指定
});
2. 間違えてデプロイしたリージョンのリソースを削除
# cdk destroy --region [削除対象のリージョン]
cdk destroy --region us-east-1 # バージニア北部のリソースを削除
安全に削除するために
削除対象の確認
# cdk diff --region [削除対象のリージョン]
cdk diff --region us-east-1
スタック名を指定して削除
# cdk destroy [スタック名] --region [削除対象のリージョン]
cdk destroy AwsTestStack --region us-east-1
3. 再デプロイ
# cdk bootstrap --region [デプロイ対象のリージョン]
cdk bootstrap --region ap-northeast-1
# cdk deploy --region [デプロイ対象のリージョン]
cdk deploy --region ap-northeast-1
最後にAWS Console上より、Cloud Formationメニューへ遷移し、
正しいリージョンにデプロイされていることを確認する。