AWS-CDKでECSの構成作ってみた

 AWS-CDKECS/FargateNativeのBlue/Green使える構成を作ってみた。とはいえほとんどCline任せでしたが・・・・

ECSのCDK構成に関しては他の方々が色々と作成されているし、そちらの方が有益な記事だと思うのでそちらを読んでいただいた方がいいかなと。

まぁ他と違う点としては

・configのtsファイルを使用してパラメータ可変にしているところ

・scripts配下にEC2のユーザスクリプト埋め込める

・configgenerator使えばウィザードとかCSVからconfig生成できるところ

・buildspec.yamlをファイル、Git、インラインから選べる


位ですね。

あまり有益じゃないと思いますが、まぁ備忘録的に残しておこうかと思います。
かなり複雑なので、なんかイケてないし残念な感じです。
CDKは構成決めてからシンプルに作らないと意味がないなという教訓は得られました。


一応、CI/CDをCodePipeline経由でできるようにしています。GitHubとAWS接続させて連動させることはできます。
awscdk_ecs_backendsampleの方がECS用のコードで、awscdk_ecs_frontendsampleがCloudFront+S3のStaticWebSiteHosting用です。buildspec.yamlはGitHub側で制御する感じです。

完全にテストしたってわけでないので挙動怪しいし、意図通り動かないかもしれないです。
ちなみに全リソース構築すると完了までに50分位かかります。CI/CDのSNSのメールのSubscriptionも飛んでくるので許可してやる必要あります。


◆GitHub(作成したCDKなど)

https://github.com/Otazoman/awscdk_ecs_sample

https://github.com/Otazoman/awscdk_ecs_backendsample

https://github.com/Otazoman/awscdk_ecs_frontendsample


◆参考サイト

・ECSのCDK化

https://docs.aws.amazon.com/ja_jp/AmazonECS/latest/developerguide/tutorial-ecs-web-server-cdk.html

https://zenn.dev/nekoniki/articles/c654dfdc217be0

https://qiita.com/Keiwa/items/4d6ff9178e3650f0aefb


・VPCとサブネットを準備

https://qiita.com/jowoooon/items/045d44e23bb34bd7f503

https://blog.future.ad.jp/aws-cdk-v2-%E3%81%A7vpc%E3%82%92%E8%87%AA%E5%88%86%E5%A5%BD%E3%81%BF%E3%81%AB-%E3%81%9D%E3%81%AE%E3%81%AB

https://zenn.dev/issy/articles/aws-cloudfront-vpcorigin-alb

https://qiita.com/masatomix/items/fc414e98d6d0091db90d


・ALB

https://tech.actindi.net/2020/01/17/103836

https://dev.classmethod.jp/articles/enabling-alb-access-log-storage-with-aws-cdk/

https://blog.future.ad.jp/aws-cdk-v2-%E3%81%A7alb%E3%82%92%E8%87%AA%E5%88%86%E5%A5%BD%E3%81%BF%E3%81%AB

https://cloud5.jp/k-aws-cdk-alb/

https://zenn.dev/nekoniki/articles/82357e4b1f4972

https://baresupport.jp/blog/2025/06/10/873/

https://note.com/hiroyu0510/n/nf791237b5204

https://qiita.com/Yusuke-Shimizu/items/bbc4653b65b4726d96dd

https://tech.excite.co.jp/entry/2022/10/21/105138

https://dev.classmethod.jp/articles/alb-condition-values-per-rule/

https://blog.usize-tech.com/aws-cdk-alb-logs-s3-tips/


・EFS

https://cloud5.jp/k-aws-cdk-efs/

https://blog.bedrock.day/wordpress-cdk/%E6%89%8B%E9%A0%86/create-efs

https://zenn.dev/gaji/articles/d116f26c49cb03

https://koudenpa.hatenablog.com/entry/2020/08/28/214712

https://qiita.com/sakai-y/items/5a80e4dbd4db41b28599


・TransferFamily


・ECS
https://zenn.dev/moaikids/articles/ded84b11f5376c

https://blog.father.gedow.net/2024/11/08/aws-ecs-fargate-autoscaling-knowledge/

https://blog.serverworks.co.jp/ecs-on-fargate-scaling-policy

https://zenn.dev/hkdord/articles/process-of-writing-cdk?fbclid=IwY2xjawM0j5tleHRuA2FlbQIxMQABHtm72CDzYpCl2XhvhqivFcfMR9EmS_fFr6P7mJ8HNP_bVAkrGm3WSjc7sYzg_aem_x_cI6N_GeApXq-oWIKcNVg

https://tech-blog.cloud-config.jp/2024-12-15-cdk-for-ecs-task-definition?fbclid=IwY2xjawM0j7dleHRuA2FlbQIxMQABHqd1PTyCt_mT1Jv0ZQVblOviiRRzzAt2js_Fw7NmXb7XVWnmenJuEd5N0rMQ_aem_GjIx2VGWnOOC5BTzxz2gLA

https://qiita.com/bloodiadotnet/items/d37f82a02fdf43f389de?fbclid=IwY2xjawM0kApleHRuA2FlbQIxMQABHojZTRtXaYvoE_NUpcyRazHYGazzGgSxTd92p1iZpVg-HYkmk2ke9hCScYx4_aem_pwYjAtxRc1zIhjZcEKDKxg

https://dev.classmethod.jp/articles/aws-cdk-ecs-fargate-bastion/?fbclid=IwY2xjawM0kGJleHRuA2FlbQIxMQABHsrprc8XQcP6FEMGMj_MZixcPkQWlopCPLjHeRfPq1sBzJOMy0gXWG6R1HIJ_aem_To5GUs6CAf5gAQTqSduFxA

https://www.docswell.com/s/integrated1453/5GXL7N-AWS-CDK-Conference-Japan-2023?fbclid=IwY2xjawM0kJRleHRuA2FlbQIxMQABHjWmeGD7rNwCu8gkxw400n84fqznJtP74bzRS8eRJgH2-j5A3va6a3tG7lPY_aem_UnrqRnDCum_5sHQhP8HMOw#p42

https://qiita.com/masatomix/items/90c16313040394251100

https://tech.techtouch.jp/entry/production-ready-ecs-bg-sample


・ネィティブBlueGreen(L2コンストラクト)

https://dev.classmethod.jp/articles/cdk-l2-ecs-native-blue-green-deployment/

https://blog.serverworks.co.jp/ecs_blue-green

https://kakakakakku.hatenablog.com/entry/2025/07/19/082038

https://note.com/shogo452/n/n8f7ae3dc5b22

https://mazyu36.hatenablog.com/entry/2025/08/15/165537


・Deploy関連

https://blog.serverworks.co.jp/2023/11/06/103148?fbclid=IwY2xjawM0h3hleHRuA2FlbQIxMQABHn4hSHMdtJeFD9lZfiLcY4F1ONsJ8c9alhhnYvFVhXa2T981PO7Eg481Xi6K_aem_nUAw9CHRxGc8qbWGL9rlFg

https://note.com/build_service/n/ne3245dabe219?fbclid=IwY2xjawM0h89leHRuA2FlbQIxMQABHozpwGC5_I420NROH0Vi9lLMTZjFYrARqtFja_hIUMVrLHEz0xQ5uDfjI9Qd_aem_WAhENZ9ADvhBwKHUsroNkQ

https://note.com/build_service/n/n13a79f78416b?fbclid=IwY2xjawM0iMtleHRuA2FlbQIxMQABHvVnQ5qkKqgdUpaLSXjVp3pbk3urAzkQCbzpesbTSJXRYEFSX4hokG4aLey3_aem_Hp7GW1v5S_5to1C28ISeqw

https://qiita.com/theFirstPenguin/items/2c567cc1cdf763ca35db?fbclid=IwY2xjawM0iOhleHRuA2FlbQIxMQABHh2sEESFcVzNEhU1QjZZMuv4XFwbyTWSX_uws8RTEbAg8RJKFlfG6PxmpurI_aem_5pGaqJsMB0ceimO48bjaRA

https://www.seeds-std.co.jp/blog/creators/2020-05-27-153425/?fbclid=IwY2xjawM0i91leHRuA2FlbQIxMQABHqcoRWLXZNQfkF0b_ZfEtzcJUFmMPrcBfGU-Qsde_BzD9wLLo4gTN4TvYH23_aem___mSMso2nn7u9WwFcsvTAg

https://qiita.com/skpn/items/5144c949b1b75acde453?fbclid=IwY2xjawM0jBJleHRuA2FlbQIxMQABHtVhdIIjYDNIBe3DrQWW0dp9tEyfk16b8VhxSV_vfFXYD9HQvpwsBvYXUl2H_aem_RaVKN2AYXAdwEWDBMXucqQ

https://blog.serverworks.co.jp/2023/10/30/094124?fbclid=IwY2xjawM0jHdleHRuA2FlbQIxMQABHswPlwei5nAvqaDKXCw6zi-k3OH7COO753S_qO7uhwaN9HKBvo2GQoi9x2LL_aem_DzSsV3D0nPtL4b1XauLy1Q

https://cloud5.jp/ci-cd-ecs-2/?fbclid=IwY2xjawM0jLtleHRuA2FlbQIxMQABHhOfA-oD_GZwcONAiTN3QvbwMPMLbqPERg7QsFE7Y7gLPoV-uAakpK26mPD3_aem_ul9i4xVTvXy4O5UiOhi1pg

https://www.seeds-std.co.jp/blog/creators/2020-05-27-153520/?fbclid=IwY2xjawM0jgJleHRuA2FlbQIxMQABHmE3TQT2_uDMSgxFYonTmM6a31G5TK2Tn0CVilhWgUGf-qYB5w576Hz3OlV7_aem_ox9Vt7DJg4ksdct3OQKZfA

https://zenn.dev/toccasystems/articles/aws-ecs-autodeploy?fbclid=IwY2xjawM0jhpleHRuA2FlbQIxMQABHvEqYfNhtREbBHbFIgf0PSClfPhcav2BVtfLDwNy8igD7W7JOHask3PouZMN_aem_c9Z6G4L8bryoNLa6-AeTBA

https://developers.play.jp/entry/2024/09/26/183822?fbclid=IwY2xjawM0jjFleHRuA2FlbQIxMQABHmgUbqukxk096wVu37YDSU8wn6SW2C0P5BH9M2MxnNGT4Fib1f4L315RtQaK_aem_5v1ebdpiQdIe6QMfNgw5qQ

https://dev.classmethod.jp/articles/codepipeline-ecs-codedeploy/?fbclid=IwY2xjawM0jkxleHRuA2FlbQIxMQABHjhmGMe3uOG6K3cp_juZFgBVLRWdRBNXyYZfsKm0W7Pr9YVzQQtYI1uxQWR__aem_5WnFeoIkw5dULUF8GzY16A

https://www.ctc-g.co.jp/solutions/cloud/column/article/83.html?fbclid=IwY2xjawM0jmtleHRuA2FlbQIxMQABHnE8zQDZyz4SM5G0gGgDmLZbJgT6rxwnM_bEubF_WzY6eoKTyjsLYT9bsiR6_aem_aDf6Q0C0p9SRuUriwV-FHQ

https://qiita.com/suzuki0430/items/06755312a7757b940e69?fbclid=IwY2xjawM0johleHRuA2FlbQIxMQABHmJOc2tv_zUdcpk0R3P_pBVoZy-9lKHFCcpXi0vpcRE_Km7-xMdnbAZRZdid_aem_cTByOKHis-cD95D3hWnXOg

https://zenn.dev/nenenemo/articles/b32070d5f26804?fbclid=IwY2xjawM0jrBleHRuA2FlbQIxMQABHse15RULONs5trdzVt2P98gz1v95g6Fu3TuTNHSCYniXh1P-ix6xgsCFOZaG_aem_v8wKxjeR3XckpoImhYm3hA

https://blog.serverworks.co.jp/2023/11/06/103148?fbclid=IwY2xjawM0kLVleHRuA2FlbQIxMQABHn4hSHMdtJeFD9lZfiLcY4F1ONsJ8c9alhhnYvFVhXa2T981PO7Eg481Xi6K_aem_nUAw9CHRxGc8qbWGL9rlFg

https://benjamin.co.jp/blog/technologies/codebuild-buildspec-2/?fbclid=IwY2xjawM0ivZleHRuA2FlbQIxMQABHu6SUOKFgxlErWiG2JfJK31m2nyZupbmzSLxR-9-UFrovpYD9mkAqK164-J3_aem_AGZlr281onrONHOjHbj9xA

https://tech.quickguard.jp/posts/cdk-pipeline/?fbclid=IwY2xjawM0ikNleHRuA2FlbQIxMQABHo9Iri-hhXHc987fj350zqVhKNljlpUYZVs2P9HVhu4O4T_s87sMv-bXXZVf_aem_LbQdW5NOrJPLiT6rjq-biA

https://tech.nri-net.com/entry/aws_ecspresso_terraform_ecs_deploy?fbclid=IwY2xjawM0ipNleHRuA2FlbQIxMQABHuvduvu2KaCmwo0bmfMJuGevfgfuNW1x54lO4Geqg4c_7wP9mJP_m4_Zq9pX_aem_Mqs-7zp9R5in25Z04dUVTA

https://blog.spacemarket.com/code/ci-cd-codepipeline/?fbclid=IwY2xjawM0ixRleHRuA2FlbQIxMQABHsSf_jtbUmJuwPHB8QTuxhcC_wg2BgYlw9bwCWVOtUSZe2nWfBjeAKWvXMwB_aem_1KfWZk2fxJYhOZUZELr0zA

https://zenn.dev/alichan/articles/fce0f352402a6d?fbclid=IwY2xjawM0izZleHRuA2FlbQIxMQABHiggB-_Qx2LhtZnsilEBvba9Vna-Sn6swrsMfgtHb14-G-YX3OnFKhQOwDKS_aem_79yRYEpkFsWEHSp9oZo0Lw

https://blog.shikoan.com/fargate-codedeploy/?fbclid=IwY2xjawM0jtdleHRuA2FlbQIxMQABHmxDPyDmgzJSqZlW2VVpjWCCMhVrJo7vdtAjZ-hdcfY-Gc9CCaS86yix4S-r_aem_GNusLwkrNY5Wxx_eJER5oQ

https://dev.classmethod.jp/articles/cdk-ecr-ecs-bluegreen-deployment/?fbclid=IwY2xjawM0iPxleHRuA2FlbQIxMQABHiZvPRJotmbbY60qUw1UNhlqMhocR5aXpgSgpMp3NAv-UoOsZwFDyl_VWXkX_aem_n9A5Hfwx07GFhQte9WuSTg

https://dev.classmethod.jp/articles/cdk-ecr-ecs-rolling-update/?fbclid=IwY2xjawM0iRBleHRuA2FlbQIxMQABHnmYCWSTmepMts8Zh7y5vZ0dpT4sX-X7B7Wmn2z6A_HeAFyJdAdI29Jn5Yru_aem_aS4ztA8D0zgkABHBxBEUdQ

https://persol-serverworks.co.jp/blog/elastic-container-service-ecs/amazon-ecsbluegreen.html?fbclid=IwY2xjawM0i4ZleHRuA2FlbQIxMQABHtI_PITospVecs-K3d-640Ek5UDy-pqyaq0AdIBSnfMGFlTke1a8bVuk__PP_aem_1f2I0QDdg55F08x4R8QkUA

https://www.cloudbuilders.jp/articles/5076/?fbclid=IwY2xjawM0jJJleHRuA2FlbQIxMQABHg27D66BIKhH_xnjXRNqE0Dt0oOvpl9C2hgXLPNO-tV_IOp9NKFCiWiBCRKM_aem_GXK6y4rRIuuKIwpB4NTU-w


・GitHub接続


・パラメータストア

https://zenn.dev/catatsumuri/articles/d2a8b1b69985ef?fbclid=IwY2xjawM0h-NleHRuA2FlbQIxMQABHp8xI_6omvJco7de8pJYlhqejT8twnJrdvV8g_MKS5H2738LWRmK4gpD3Ahb_aem_KbmRhrMtXaTjAaR_eQvIHg

https://engineering.mobalab.net/2019/03/06/allocate-secure-env-in-ssm-parameter-to-ecs-task-definition/?fbclid=IwY2xjawM0jzxleHRuA2FlbQIxMQABHu2K3HGWk3hRzSFhO0yyWfrStbtn9bvu2JXkDMwLsy02yymrM1CaEXFhIrTj_aem_1yiBCMo5gFj2nbzurpKY1A

https://liginc.co.jp/636292?fbclid=IwY2xjawM0j25leHRuA2FlbQIxMQABHoNHWdiBO_TZGZnancl51H1M08cYCYD8zhXHzT8tVW6-xsme1jAEXTwiP0lj_aem_2pizcVQ86e8BTE5Rx1U5RQ

https://dev.classmethod.jp/articles/ecs-deploy-using-cdk/?fbclid=IwY2xjawM0kCZleHRuA2FlbQIxMQABHm7-TsBD8vLFAGMFs31IgHzDzR33jt4FCZxemdSChB8iKG_6QTtqanUlGu1V_aem_C7ADTI4ayaK4UE1aOYoPTQ


・DockerHub制限回避

https://hhhhhskw.hatenablog.com/entry/2020/11/25/180920?fbclid=IwY2xjawM0iBRleHRuA2FlbQIxMQABHq-oAHR2zT5fDINDZiIxk7R0k4Lx-o3cmNqD-Jc4hOyiyW3Y_YeyR0UQp5zP_aem_qwET5LfCMYUPW0lhN9_qww

https://swet.dena.com/entry/2024/12/19/120000?fbclid=IwY2xjawM0iDhleHRuA2FlbQIxMQABHhxYaQ5ZrTICpsFq1TLdpo2Poqusmob1I3T7_PSWb_FeZRVwwj2AD_XJD0rK_aem_j_Wox_-hCPJ3R2OxXqqIbA

https://zenn.dev/devcamp/articles/cf4eb4b15dc50b?fbclid=IwY2xjawM0iEdleHRuA2FlbQIxMQABHqqJVCpq3WxITmb_kQIrDebiz2kRX5BGmPmI7R5PgxiBIICPikhZWcYoWB7l_aem_RfeIRorFaTuf5_UmE9pTFQ

https://dev.classmethod.jp/articles/codebuild-has-to-use-dockerhub-login-to-avoid-ip-gacha/?fbclid=IwY2xjawM0iJVleHRuA2FlbQIxMQABHj5KR5G2KDeKP407s09qj7-CqGPCp1HoGBszUbpN3sDgGRmo97apNmvid5U6_aem_tSN0CA7iKsPb0o7wVF1mOw

https://dev.classmethod.jp/articles/tsnote-codebuild-toomanyrequests-you-have-reached-your-pull-rate-limit/?fbclid=IwY2xjawM0iKNleHRuA2FlbQIxMQABHintCaT3PvKCE9I8eyPWIO1KElwRN4g0IJu4I2QAMPlV9x_U7fqTw9qEgECE_aem_Sn0aLCR39nCsnYyDMAAt2A

https://www.seeds-std.co.jp/blog/creators/2020-12-09-120109/?fbclid=IwY2xjawM0iLJleHRuA2FlbQIxMQABHoymKG61V47sSEVpq5jEglyUOpw9rzNomRaytW7eLtzPYzXihVdpzjer3TFa_aem_AM2DU6yL8I8t8TCQlObPwg

https://random-tech-note.jp/docker-hub-too-many-requests/?fbclid=IwY2xjawM0iFxleHRuA2FlbQIxMQABHp6H4zdLQqJYuOT0q2RtFU6uVsz213WVfUV0QWarbcYU0FRlyo5yFFtGQ9PZ_aem_JM_y6hCdukIbJfQSROtlzw

https://zenn.dev/naoto_takaya/articles/4082321950bf20?fbclid=IwY2xjawM0iHtleHRuA2FlbQIxMQABHsKPFM9XtrfG5ew2SJxER4nkC2CGR44FdPPkEjAwhXkdM5U-JUDcsM5sbT_K_aem_PCiWqBKBIMCiARmDQO7OxA


・タスクロール

https://zenn.dev/sugay0519/articles/88f13ca589fcba

https://blog.serverworks.co.jp/ecs/difference-between-taskrole-and-taskexecutionrole


・ECR

https://dev.classmethod.jp/articles/aws-cdk-v2-create-ecr-repo-push-image-execute-on-lambda/

https://chariosan.com/2021/04/18/aws_cdk_vpc_endpoint/


・CodeBuild

https://blog.serverworks.co.jp/codebuild-codeconnection



・CodeConnection

https://docs.aws.amazon.com/cli/latest/reference/codeconnections/create-connection.html

https://zenn.dev/utaco/articles/841385d9015f62

https://sadayoshi-tada.hatenablog.com/entry/2025/03/01/000753

https://blog.serverworks.co.jp/create-codeconnections

https://techracho.bpsinc.jp/baba/2025_03_11/149364

https://dev.classmethod.jp/articles/aws-codestar-connections-has-renamed-to-aws-codeconnections/

https://skill-for-it.com/aws-codebuild-github/


・InstanceConnectEndpointを使用

https://blog.mmmcorp.co.jp/2025/02/06/cdk-with-ec2-instance-connect-endpoint/

https://zenn.dev/thyt_lab/articles/7fc528985dce9c

https://dev.classmethod.jp/articles/aws-cdk-ec2-instance-connect-endpoint-with-privatewithegress-ec2-instance/

https://tech-blog.s-yoshiki.com/entry/268

https://speakerdeck.com/badmintoncryer/ec2-instance-connect-endpoint-wocdkdeshi-idao-sou?slide=19

https://qiita.com/ryohk/items/7d4d439652e296fe96a6



・WAF

https://kabu-kabu.org/2021/04/25/introduce-cloudfront-for-https/

https://zenn.dev/lea/articles/a2bfef8bdbb2e0

https://dev.classmethod.jp/articles/aws-cdk-create-wafv2/

https://dev.classmethod.jp/articles/setting-the-log-output-of-aws-waf-v2-to-s3-with-aws-cdk-and-cli/

https://zenn.dev/masaminh/articles/69c71812f431b8

https://dev.classmethod.jp/articles/aws-cdk-wafv2-block-ip-example/

https://qiita.com/rm0063vpedc15/items/0147eac0cc3814f98495

https://dev.classmethod.jp/articles/cdk-remote-stack-webacl-cloudfront/

https://zenn.dev/tkg216/articles/57a2ed6a77fd55

https://dev.classmethod.jp/articles/applying-aws-managed-rules-for-waf-v2-to-cloudfront-in-aws-cdk/

https://qiita.com/rm0063vpedc15/items/a719eaa99b7bcdf03d0c

https://zenn.dev/kazuki_inoue/articles/8c6ee41bff5616

https://zenn.dev/akabana/articles/7416d15c7ced18

https://zenn.dev/takeyuwebinc/articles/53fceeb3cd80ca

https://qiita.com/Kept1994/items/a9d1caf5cdb4f382bad9

https://dev.classmethod.jp/articles/aws-cdk-cross-region-aws-waf-web-acl-cloudfront-distribution/

https://techblog.tetemarche.co.jp/entry/2025/02/26/120102

https://www.cloudbuilders.jp/articles/1114/

https://dev.classmethod.jp/articles/slug-LFcjfdytGLcw/

https://zenn.dev/watany/articles/856b6154203fe4

https://tech.furyu.jp/entry/2023/02/14/120000

https://qiita.com/onoh/items/babc4a27c00e22a76d98

https://zenn.dev/funteractiveinc/articles/153581a53ef0fa

https://qiita.com/nasuB7373/items/8a059ef6ad1443701e69

https://zenn.dev/dyoshikawa/articles/fe1ae6743db0b7

https://dev.classmethod.jp/articles/cdk-waf-logs-s3-storage/

https://qiita.com/bukuma/items/4eee911fd8e0a5d043fd

https://qiita.com/k_bobchin/items/7a17f112374b7f637ba5


・Lambda@EdgeとCloudFrontFunctions

https://tech.nri-net.com/entry/aws_cdk_cross_region_stack_deployment_lambda_edge

https://pages.awscloud.com/rs/112-TZM-766/images/H-2_AWSDevDay2021.pdf

https://dev.classmethod.jp/articles/easily-deploy-lae/

https://techblog.zozo.com/entry/lambda-edge

https://qiita.com/tetsuya-zama/items/17674f387443c618f700

https://dev.classmethod.jp/articles/it-seems-better-to-divide-lambda-edgecloudfront-distribution-resources-into-separate-stacks/

https://qiita.com/k_bobchin/items/1067cc0949a9de3e5c5b

https://zenn.dev/yizumi1012xxx/articles/9f4687ab9be52f

https://dev.classmethod.jp/articles/aws-cdk-i-tried-linking-lambda-edge-to-cloudfront-distribution/

https://persol-serverworks.co.jp/blog/cdk/lambdaedge-cdk-delete-failed.html

https://qiita.com/1998_i-airi/items/6ac3a71900504e665cb8

https://dev.classmethod.jp/articles/aws-cdk-cloudfront-s3-website/

https://www.dkrk-blog.net/aws/cloudfront_functions_cdk

https://iret.media/79297

https://sunday-morning.app/posts/2020-06-21-cdk-lambda-edge-environment-variables

https://qiita.com/Kept1994/items/9857be7be7778f9dbc54

https://dev.classmethod.jp/articles/delete-a-stack-that-contains-lambda-edge-function/

https://dev.classmethod.jp/articles/basic-authentication-for-website-with-cloudfront-function-using-aws-cdk/

https://dev.classmethod.jp/articles/aws-cdk-simplifies-oac-setup-for-cloudfront-and-lambda-function-url-origin/

https://zenn.dev/nekoniki/articles/e72e30171bebba

https://dev.classmethod.jp/articles/adding-index-html-to-request-url-using-cloudfront-functions-in-aws-cdk/

https://zenn.dev/datahaikuninja/articles/34bdcae1f32a89

https://dev.classmethod.jp/articles/build-cloudfront-distribution-with-the-aws-cdk-with-aws-cdk/

https://masawada.hatenablog.jp/entry/2022/10/07/170000

https://note.com/yields_llc/n/n8519882d0e1e

https://stackoverflow.com/questions/79685625/how-to-effectively-update-aws-lambdaedge-functions-in-cdk-after-initial-deploym

https://tech.smartcamp.co.jp/entry/lambda-edge-spa

https://blog.i-tale.jp/2023/11/d4/

https://fixel.co.jp/blog/cdk-basic-authentication

https://blog.nijohando.jp/post/2020/partially-managing-lambda-with-terraform/


・CloudWatchLogs

https://qiita.com/tech4anyone/items/131f14f8665476431225

https://dev.classmethod.jp/articles/design-cloudwatchlogs-log-group/

https://blog.serverworks.co.jp/tech/2020/03/13/schedule-delete-log-stream-with-lambda/


・FireHoseでCloudwatchLogsからS3に飛ばす

https://dev.classmethod.jp/articles/cloudwatch-logs-to-s3-via-kinesis-data-firehose/

https://blog.serverworks.co.jp/cloudwatch_logs-s3-kinesis_data_firehose


・タスク定義の更新

https://zenn.dev/trysmr/articles/ecs-taskdef-management

https://www.cloudcentric.co.jp/blog/1865/

https://www.mtioutput.com/entry/ecs-update-taskdefcli



CloudFront周りのCrossリージョンは簡単にしてしまいたかったんですが、そのままだとCloudFront更新の際に引っかかるのでカスタムリソースでややこしいことしています。
また、スタックに関しては分割しない方がベストプラクティスなのですが、個別での更新とか入った際に全体に影響出るの嫌なので細かく分割しています。(全体走らせるとCloudFrontとかでなんか起こることが多いので・・・)
それとLambda@EdgeとかCloudFrontFunctionsの更新とか削除とかがややこしいです。まだその辺がきちんと理解できていません。

constructsもベストプラクティスの考え方とは違うと思いますし、やたらと巨大で運用しにくそうな状態になってしまっててダメダメです。
ブログも中身がスカスカなので、ホントにダメダメですね。

参考サイトがやたらと多いし、これらの内容参照したけど全然、理解できていない。

CDK自体はなんとか動いているものの、汚いし説明もできないしでホントに自分のダメさ加減を痛感させられます。まぁこの先、AWSは仕事であまり触らなくなりそうなので、いったんここまで学びました的な感じで晒します。まぁ生成AIの方が自分よりいい出来なので、今後はそっちに任していくことが多くなるんでしょうね。

コメント

このブログの人気の投稿

GASでGoogleDriveのサブフォルダとファイル一覧を出力する

マクロ経済学(IS-LM分析)

IEのセキュリティ設定をいじくるバッチ