#cdk
#VPC
#peering

CDKでマルチリージョン間のVPCのペアリンスをコンフィグしてみる

マルチリージョンのリソースの参照

CDKのv2.50.0からスタック間&リージョン間の参照は自動的に構築できるようになりました。 これらのきっかけでリージョン間のVPCペアリング構成をやってみたいと思います。

※リリースノート: https://github.com/aws/aws-cdk/releases/tag/v2.50.0 core: automatic cross stack, cross region references (under feature flag)

インフラ構成

東京リージョンと大坂リージョンにそれぞれVPCを作成して、VPCペアリングを設定しておきます。 アーキテクチャー

サンプルアプリ

プロジェクト作成

# npm install -g aws-cdk
npm install -g typescript
cdk init app --language typescript

CDK情報

The cdk.json file tells the CDK Toolkit how to execute your app.

環境作成

$ cdk list
PrimaryRegionStack
SecondRegionStack
PrimaryRegionRouteStack
SecondRegionRouteStack

各ステックの概要

スタック説明メモ
PrimaryRegionStack東京リージョンのリソース
SecondRegionStack大坂リージョンのリソース
PrimaryRegionRouteStackVPCペアリングの東京リージョンVPCのルート設定ペアリングリソースもこっちのスタックに追加
SecondRegionRouteStackVPCペアリングの大坂リージョンVPCのルート設定

クロースリージョンの設定

https://github.com/gekal-study-aws/cdk-multi-region-resources/blob/main/bin/cdk-multi-region-resources.ts

環境作成

CDK環境初期化

ACCOUNT_ID=$(aws sts get-caller-identity --query 'Account' --output text)
AWS_PRIMARY_REGION=ap-northeast-1
AWS_SECONDARY_REGION=ap-northeast-3

cdk bootstrap aws://$ACCOUNT_ID/$AWS_PRIMARY_REGION
cdk bootstrap aws://$ACCOUNT_ID/$AWS_SECONDARY_REGION
cdk deploy "*" --tags tester=gekal

環境クリア

$ cdk destroy "*"
Are you sure you want to delete: SecondRegionRouteStack, PrimaryRegionRouteStack, SecondRegionStack, PrimaryRegionStack (y/n)? y
SecondRegionRouteStack: destroying...

 ✅  SecondRegionRouteStack: destroyed
PrimaryRegionRouteStack: destroying...

 ✅  PrimaryRegionRouteStack: destroyed
SecondRegionStack: destroying...

 ✅  SecondRegionStack: destroyed
PrimaryRegionStack: destroying...

 ✅  PrimaryRegionStack: destroyed

おまけ

完成版のソースは下記のリポジトリをご参照ください。

https://github.com/gekal-study-aws/cdk-multi-region-resources

参照

  1. Using CDK to perform continuous deployments in multi-region Kubernetes environments
  2. interface StackProps

cdk
VPC
peering
記事一覧へ戻る