CDK
「マスタリング AWS CDK」を読んだ 著者の経験から語られる実践的なトピックが満載の一冊だった❗️AWS CDK を使っていると悩むポイントが多く解説されていて,AWS CDK 初学者から日々活用してる人まで幅広く読める内容だった.また本書を読んでいて 積極的に…
AWS CDK で L2 Constructs を使いつつ,L2 Constructs 未サポートのプロパティを L1 Constructs にキャストして設定するテクニックを「エスケープハッチ」と言う.ドキュメントに詳しく載っている docs.aws.amazon.com 「エスケープハッチ」というテクニック…
AWS CDK で IAM OIDC ID プロバイダーを設定するときに OpenIdConnectProvider を使うと内部的に AWS Lambda 関数(カスタムリソース)もデプロイされる仕組みになっているとは言えデプロイのために AWS Lambda 関数が増えるのは避けたいな〜(ちょっと嫌だ…
ちょっと前に既存の AWS CDK プロジェクトに cdk-nag を導入してみようという話があって,導入前に個人的な検証環境に cdk-nag を導入して試してみた❗️cdk-nag は cfn_nag にインスパイアされていると README に書かれていて,AWS CDK プロジェクトでベスト…
AWS CDK の L2 コンストラクト Vpc で Amazon VPC をデプロイするときにデフォルトだとアベイラビリティゾーンごとに NAT Gateway が配置される コスト削減(可用性は考慮した上で)のために NAT Gateway 1つの Multi-AZ VPC にする場合,ドキュメントを読む…
2025年1月25日にリリースされた AWS CDK v2.177.0 で Amazon Cognito の Managed Login(マネージドログイン)が L2 コンストラクト UserPoolDomain でサポートされていたリリースノートには cognito: managed login としか書かれてなく,イメージを掴むため…
AWS CDK で AWS Data Exports の Cost and Usage Reports 2.0 (CUR 2.0) エクスポートを設定する機会があった️ L1 コンストラクトの aws_bcmdataexports.CfnExport を設定するときに AWS CloudFormation のドキュメントも確認しながら試行錯誤が必要だった.…
特にプロダクション環境でウェブサービスを稼働させるときに AWS サービスのクォータ(サービス制限)を理解して運用することが重要で,例えば AWS Well-Architected Framework (Reliability Pillar) の REL01-BP04 では Not configuring monitoring to chec…
Amazon Cognito User Pools から自動的に送信される「招待メッセージ」はデフォルトでは以下のようにシンプルな設定になっていて,実運用では使いにくさがある あと末尾の . までコピーしてログインしようとして「エラーになります」って言われることもよく…
Amazon Cognito User Pools にカスタムドメインを設定する場合,内部的に追加される Amazon CloudFront で「バージニア北部リージョン (us-east-1)」の AWS Certificate Manager (ACM) 証明書が必要になる しかし AWS CDK(もしくは AWS CloudFormation)で…
Amazon API Gateway でアクセスログを有効化してデプロイしようとすると CloudWatch Logs role ARN must be set in account settings to enable logging というエラーが出る場合があるもしかしたら Amazon API Gateway の設定「CloudWatch ログのロール ARN …
AWS CDK で IAM Role に Amazon Cognito User Pools のポリシーを設定する場合は grant(grantee, ...actions) メソッドを使う. docs.aws.amazon.com 第二引数の ...actions は可変長引数を受け取るため,以下のようにポリシーを並べて実装できる❗️ userPool…
AWS CDK で Amazon API Gateway に Amazon Route 53 のカスタムドメインを設定してみた 実際に試したログをまとめておく \( 'ω')/ サンプルコード 今回は Amazon Route 53 でドメインを取得してある前提とする.サンプルコード上では xxxxx.com にしておく…
Amazon S3 でオブジェクトの使用状況(合計サイズ・平均サイズなど)を「プレフィックス別(フォルダ別)」で可視化する場合,Amazon S3 Storage Lens の「高度なメトリクスとレコメンデーション機能」で「プレフィックス集計」を設定する❗️ docs.aws.amazon…
AWS CDK の cdk diff コマンド・cdk deploy コマンドで --exclusively オプションもしくは -e オプションを指定して実行すると,スタック間の依存関係を考慮せずに指定したスタックのみ操作できる実行時間を短くしたり,デプロイの影響範囲を狭めたりすると…
AWS Step Functions から別のサービスを直接統合するときに「最適化された統合 (Optimized integrations)」と「AWS SDK 統合 (AWS SDK integrations)」という選択肢がある.例えば AWS Step Functions から Amazon SageMaker Processing を実行する場合,AWS…
AWS CDK で外部パッケージを含む Python の AWS Lambda 関数をデプロイする場合,requirements.txt から依存関係を解決して,デプロイするアセットとして ZIP にまとめる(バンドルする)必要がある 今回は aws-cdk-lib.aws_lambda module と @aws-cdk/aws-l…
AWS CDK で Amazon SQS x Amazon EventBridge Pipes x AWS Step Functions の構成を設定する流れは前にまとめた kakakakakku.hatenablog.com 前にまとめた設定では Amazon SQS キューに登録したメッセージをデフォルト設定のまま Amazon EventBridge Pipes …
AWS CDK で「Dockerfile をビルドして Amazon ECR リポジトリにイメージを保存する」選択肢として DockerImageAsset と cdklabs/cdk-ecr-deployment を紹介する❗️ aws_ecr_assets.DockerImageAsset を使う まず,1番簡単なのは aws_ecr_assets.DockerImageAs…
Dependabot version updates を使うと package.json に指定しているパッケージのアップデートを自動化できる❗️設定は比較的簡単で package-ecosystem に npm を設定して,あとは必須の directory と schedule.interval でアップデートの対象ディレクトリとス…
AWS CDK の cdk import コマンドを使って既存リソースをインポートする(取り込む)手順を試してみた❗️何かしらの理由があって Infrastructure as Code (IaC) に組み込めず,そのままプロダクションにリリースされてしまうということもあると思う. Amazon S…
AWS CodeBuild で GitHub リポジトリにプッシュをしたら Webhook 経由で自動的にビルドを開始する構成を AWS CDK で実装してみたちなみに AWS CDK で AWS CodeBuild の Webhook を設定するだけだと以下のように Failed to call CreateWebhook というエラーが…
AWS CDK を使っていてリソースに「一括でタグを設定したい」と思ったら Tags.of(SCOPE).add() を使えば簡単に設定できるTags.of に指定する SCOPE は IConstruct インタフェースを実装していれば良くて App も Stack も指定できる docs.aws.amazon.com App(…
2023年12月のリリースで Amazon CloudWatch Alarm から直接 AWS Lambda 関数を呼び出して,何かしらのアクション(復旧処理など)を実行できるようになった❗️今までは Amazon SNS と組み合わせて実行する必要があって,今までよりもシンプルに統合できるよう…
AWS CDK で Amazon EventBridge Pipes を設定する場合,AWS CloudFormation に沿った L1 Construct の CfnPipeを使う必要がある.今回はソース(Amazon SQS キュー)・ターゲット(AWS Step Functions ステートマシン)で Amazon EventBridge Pipes を構成す…
AWS CDK で Amazon EventBridge Pipes を設定する場合,AWS CloudFormation に沿った L1 Construct の CfnPipeを使う必要がある.今回はソース(Amazon SQS キュー)・エンリッチメント(AWS Lambda 関数)・ターゲット(Amazon ECS タスク)で Amazon Event…
AWS CDK で aws_s3_deployment モジュールを使うとローカルにある ZIP ファイル・ディレクトリなどを Amazon S3 にアップロードできる❗️使いどころとしては,静的ファイル・設定ファイル・データセットなどのアップロードも AWS CDK のワークフローに含めて …
2023年11月から VPC IP Address Manager (IPAM) に「無料枠利用枠」が追加されて Public IP Insights など一部の機能が無料で使えるようになった aws.amazon.com AWS アカウント個別に VPC IP Address Manager (IPAM) を有効化する場合,マネジメントコンソ…
AWS CDK で Amazon EventBridge Scheduler を設定する場合,現状では L2 Construct がなく AWS CloudFormation に沿った L1 Construct の CfnSchedule を使う必要がある.以下のドキュメントにも There are no official hand-written (L2) constructs for th…
2023年8月にリリースされた NLB (Network Load Balancer) に対するセキュリティグループ設定のサポートは,今まで NLB のデメリットとして話題に上がることも多かったので,非常に期待されていたアップデートだと思う.アクセス制御を細かく行えるようになり…