{"id":873,"date":"2025-06-10T11:59:55","date_gmt":"2025-06-10T02:59:55","guid":{"rendered":"https:\/\/baresupport.jp\/blog\/?p=873"},"modified":"2025-06-10T11:59:57","modified_gmt":"2025-06-10T02:59:57","slug":"aws-cdk-x-fargate%ef%bc%9a%e3%83%86%e3%83%b3%e3%83%97%e3%83%ac%e3%83%bc%e3%83%88%e3%81%a7%e5%a7%8b%e3%82%81%e3%82%8b%e3%82%a4%e3%83%b3%e3%83%95%e3%83%a9%e6%a7%8b%e7%af%89%e3%82%ac%e3%82%a4","status":"publish","type":"post","link":"https:\/\/baresupport.jp\/blog\/2025\/06\/10\/873\/","title":{"rendered":"AWS CDK \u00d7 Fargate\uff1a\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u59cb\u3081\u308b\u30a4\u30f3\u30d5\u30e9\u69cb\u7bc9\u30ac\u30a4\u30c9"},"content":{"rendered":"\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_76 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\"><p class=\"ez-toc-title\" style=\"cursor:inherit\">\u3053\u306e\u8a18\u4e8b\u306e\u76ee\u6b21<\/p>\n<\/div><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/baresupport.jp\/blog\/2025\/06\/10\/873\/#%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB\" >\u306f\u3058\u3081\u306b<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/baresupport.jp\/blog\/2025\/06\/10\/873\/#%E5%85%AC%E5%BC%8F%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6CDK%E3%81%A7Fargate%E7%92%B0%E5%A2%83%E3%82%92%E6%A7%8B%E7%AF%89%E3%81%99%E3%82%8B%E6%89%8B%E9%A0%86\" >\u516c\u5f0f\u30b5\u30f3\u30d7\u30eb\u3092\u4f7f\u3063\u3066CDK\u3067Fargate\u74b0\u5883\u3092\u69cb\u7bc9\u3059\u308b\u624b\u9806<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/baresupport.jp\/blog\/2025\/06\/10\/873\/#%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4%E3%81%99%E3%82%8B%E4%B8%BB%E3%81%AA%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9\" >\u30c7\u30d7\u30ed\u30a4\u3059\u308b\u4e3b\u306a\u30ea\u30bd\u30fc\u30b9<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/baresupport.jp\/blog\/2025\/06\/10\/873\/#%E5%89%8D%E6%8F%90%E6%9D%A1%E4%BB%B6\" >\u524d\u63d0\u6761\u4ef6<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/baresupport.jp\/blog\/2025\/06\/10\/873\/#1_%E5%BF%85%E8%A6%81%E3%81%AA%E3%83%84%E3%83%BC%E3%83%AB%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB\" >1. \u5fc5\u8981\u306a\u30c4\u30fc\u30eb\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/baresupport.jp\/blog\/2025\/06\/10\/873\/#2_AWS_CDK_%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%81%A6%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%82%92%E3%82%B3%E3%83%94%E3%83%9A\" >2. AWS CDK \u30a2\u30d7\u30ea\u3092\u4f5c\u6210\u3057\u3066\u30b5\u30f3\u30d7\u30eb\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u30b3\u30d4\u30da<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/baresupport.jp\/blog\/2025\/06\/10\/873\/#3_%E4%BE%9D%E5%AD%98%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB\" >3. \u4f9d\u5b58\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/baresupport.jp\/blog\/2025\/06\/10\/873\/#4_CDK_Bootstrapping\" >4. CDK Bootstrapping<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/baresupport.jp\/blog\/2025\/06\/10\/873\/#5_%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4\" >5. \u30c7\u30d7\u30ed\u30a4<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/baresupport.jp\/blog\/2025\/06\/10\/873\/#AWS_WAF_%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6IP%E5%88%B6%E9%99%90%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B\" >AWS WAF \u3092\u4f7f\u3063\u3066IP\u5236\u9650\u3092\u8a2d\u5b9a\u3059\u308b<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/baresupport.jp\/blog\/2025\/06\/10\/873\/#1_%E3%80%8CBonjourFargate%E3%80%8D_%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%92%E7%B7%A8%E9%9B%86\" >1.\u00a0 \u300cBonjourFargate\u300d \u30af\u30e9\u30b9\u3092\u7de8\u96c6<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/baresupport.jp\/blog\/2025\/06\/10\/873\/#2_CDK%E3%82%92%E5%86%8D%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4\" >2. CDK\u3092\u518d\u30c7\u30d7\u30ed\u30a4<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/baresupport.jp\/blog\/2025\/06\/10\/873\/#3_%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%82%92%E7%A2%BA%E8%AA%8D\" >3. \u30a2\u30af\u30bb\u30b9\u3092\u78ba\u8a8d<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-14\" href=\"https:\/\/baresupport.jp\/blog\/2025\/06\/10\/873\/#CloudFormation_%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%E7%94%BB%E9%9D%A2%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9\" >CloudFormation \u30b3\u30f3\u30bd\u30fc\u30eb\u753b\u9762\u306e\u4f7f\u3044\u65b9<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-15\" href=\"https:\/\/baresupport.jp\/blog\/2025\/06\/10\/873\/#%E3%81%BE%E3%81%A8%E3%82%81\" >\u307e\u3068\u3081<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB\"><\/span>\u306f\u3058\u3081\u306b<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>AWS CDK\uff08AWS Cloud Development Kit\uff09\u306f\u3001AWS\u30ea\u30bd\u30fc\u30b9\u3092TypeScript\u3084Python\u306a\u3069\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u3067\u5b9a\u7fa9\u30fb\u7ba1\u7406\u3067\u304d\u308b\u3001Infrastructure as Code\uff08IaC\uff09\u30c4\u30fc\u30eb\u3067\u3059\u3002AWS CDK\u306f\u3001\u30a4\u30f3\u30d5\u30e9\u306e\u30b3\u30fc\u30c9\u5316\u3092\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u3067\u5b9f\u73fe\u3057\u305f\u3044\u958b\u767a\u8005\u306b\u3068\u3063\u3066\u3001\u975e\u5e38\u306b\u4f7f\u3044\u3084\u3059\u3044\u9078\u629e\u80a2\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u5f93\u6765\u306eYAML\u30d9\u30fc\u30b9\u306eCloudFormation\u3068\u7570\u306a\u308a\u3001\u30b3\u30fc\u30c9\u3068\u3057\u3066\u306e\u518d\u5229\u7528\u6027\u3084\u4fdd\u5b88\u6027\u306b\u512a\u308c\u3066\u304a\u308a\u3001\u4e00\u8cab\u6027\u306e\u3042\u308b\u74b0\u5883\u3092\u8fc5\u901f\u306b\u69cb\u7bc9\u3067\u304d\u308b\u306e\u304c\u7279\u5fb4\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u672c\u8a18\u4e8b\u3067\u306f\u3001CDK\u516c\u5f0f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u6d3b\u7528\u3057\u3066\u4ee5\u4e0b\u306e\u69cb\u6210\u306e\u30a4\u30f3\u30d5\u30e9\u3092\u6700\u77ed\u3067\u69cb\u7bc9\u3059\u308b\u65b9\u6cd5\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Fargate\u74b0\u5883\uff08ALB\u4ed8\u304d\uff09\uff1a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3092\u30b3\u30f3\u30c6\u30ca\u3067\u5b9f\u884c<\/li><li>Application Load Balancer\uff1a\u5916\u90e8\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u306e\u53d7\u3051\u53e3<\/li><li>AWS WAF\uff08IP\u5236\u9650\uff09\uff1a\u7279\u5b9aIP\u306e\u307f\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a<\/li><\/ul>\n\n\n\n<p>CDK\u3092\u4f7f\u3048\u3070\u3001\u3053\u308c\u3089\u306e\u30ea\u30bd\u30fc\u30b9\u3092\u30b3\u30fc\u30c9\u3067\u4e00\u8cab\u3057\u3066\u7ba1\u7406\u30fb\u30c7\u30d7\u30ed\u30a4\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u300c\u3068\u308a\u3042\u3048\u305a\u52d5\u304b\u3057\u3066\u307f\u305f\u3044\u300d\u300cCDK\u3067\u4f55\u304c\u3067\u304d\u308b\u306e\u304b\u5b9f\u611f\u3057\u305f\u3044\u300d\u3068\u3044\u3046\u65b9\u306f\u3001\u305c\u3072\u305d\u306e\u307e\u307e\u624b\u9806\u306b\u6cbf\u3063\u3066\u8a66\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%85%AC%E5%BC%8F%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6CDK%E3%81%A7Fargate%E7%92%B0%E5%A2%83%E3%82%92%E6%A7%8B%E7%AF%89%E3%81%99%E3%82%8B%E6%89%8B%E9%A0%86\"><\/span>\u516c\u5f0f\u30b5\u30f3\u30d7\u30eb\u3092\u4f7f\u3063\u3066CDK\u3067Fargate\u74b0\u5883\u3092\u69cb\u7bc9\u3059\u308b\u624b\u9806<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u4eca\u56de\u306f\u3001AWS\u304c\u516c\u958b\u3057\u3066\u3044\u308bCDK\u30b5\u30f3\u30d7\u30eb\u30b3\u30fc\u30c9\u3092\u30af\u30ed\u30fc\u30f3\u3057\u3001Fargate\u74b0\u5883\uff08ALB\u4ed8\u304d\uff09\u3092\u69cb\u7bc9\u3059\u308b\u624b\u9806\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4%E3%81%99%E3%82%8B%E4%B8%BB%E3%81%AA%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9\"><\/span>\u30c7\u30d7\u30ed\u30a4\u3059\u308b\u4e3b\u306a\u30ea\u30bd\u30fc\u30b9<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>AWS Fargate\uff1a\u30b5\u30fc\u30d0\u30fc\u30ec\u30b9\u3067\u30b3\u30f3\u30c6\u30ca\u3092\u52d5\u304b\u305b\u308b\u30b5\u30fc\u30d3\u30b9\u3067\u3059\u3002EC2\u306a\u3069\u3092\u610f\u8b58\u305b\u305a\u306b\u4f7f\u3048\u307e\u3059\u3002<\/li><li>Application Load Balancer\uff08ALB\uff09\uff1a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u9069\u5207\u306b\u632f\u308a\u5206\u3051\u3066\u304f\u308c\u308b\u4ed5\u7d44\u307f\u3067\u3059\u3002<\/li><li>AWS WAF\uff1a\u30a2\u30af\u30bb\u30b9\u5143\u3092\u5236\u5fa1\u3067\u304d\u308b\u30d5\u30a1\u30a4\u30a2\u30a6\u30a9\u30fc\u30eb\u3067\u3001\u4e0d\u6b63\u30a2\u30af\u30bb\u30b9\u306e\u9632\u6b62\u306a\u3069\u306b\u4f7f\u3048\u307e\u3059\u3002<\/li><\/ul>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdCk39BW3aRUTmwfBzvwv54_KIJWngUteQHM74ZoDnLAB7ZK8enS0f1NPPxTKNNSzoaFR-i68Pi3uV8FHsoM_FABAnoD8c4JHcNuxTqRdG3q4NA9g239wRwyfb9X8gvu3xT9mfCIA?key=xsetyJ7vtevauS5oHuuPsg\" alt=\"\"\/><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%89%8D%E6%8F%90%E6%9D%A1%E4%BB%B6\"><\/span>\u524d\u63d0\u6761\u4ef6<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<ul class=\"wp-block-list\"><li>AWS CLI\u3068AWS CDK\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u6e08\u307f<ul><li>\u2192 \u307e\u3060\u306e\u65b9\u306f <a href=\"https:\/\/docs.aws.amazon.com\/ja_jp\/cli\/latest\/userguide\/cli-chap-getting-started.html\">AWS CLI \u306e\u958b\u59cb\u65b9\u6cd5<\/a> \u3092\u53c2\u7167<\/li><\/ul><\/li><\/ul>\n\n\n\n<ul class=\"wp-block-list\"><li>AWS\u306e\u8a8d\u8a3c\u60c5\u5831\u304c\u8a2d\u5b9a\u6e08\u307f\uff08aws configure \u7b49\u3067\u8a2d\u5b9a\u6e08\uff09<ul><li>\u2192 \u307e\u3060\u306e\u65b9\u306f <a href=\"https:\/\/docs.aws.amazon.com\/ja_jp\/cli\/latest\/userguide\/cli-configure-sso.html\">AWS CLI \u3092\u4f7f\u7528\u3057\u305f IAM \u30a2\u30a4\u30c7\u30f3\u30c6\u30a3\u30c6\u30a3\u30bb\u30f3\u30bf\u30fc\u8a8d\u8a3c\u306e\u8a2d\u5b9a<\/a>(\u8a2d\u5b9a\u304c\u3084\u3084\u8907\u96d1\u3060\u304c\u63a8\u5968) \u3082\u3057\u304f\u306f <a href=\"https:\/\/docs.aws.amazon.com\/ja_jp\/cli\/latest\/userguide\/cli-authentication-user.html\">Authenticating using IAM user credentials for the AWS CLI<\/a>(\u8a2d\u5b9a\u304c\u7c21\u5358\u3060\u304c\u672c\u756a\u3067\u306f\u975e\u63a8\u5968)\u3092\u53c2\u7167<\/li><\/ul><\/li><\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_%E5%BF%85%E8%A6%81%E3%81%AA%E3%83%84%E3%83%BC%E3%83%AB%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB\"><\/span>1. \u5fc5\u8981\u306a\u30c4\u30fc\u30eb\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u307e\u305a\u3001Node.js\u304c\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u3066\u3044\u308b\u3053\u3068\u3092\u78ba\u8a8d\u3057\u3001AWS CDK\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npm install -g aws-cdk<\/code><\/pre>\n\n\n\n<p>\u30d0\u30fc\u30b8\u30e7\u30f3\u3092\u78ba\u8a8d\u3057\u3066\u3001\u6b63\u5e38\u306b\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3055\u308c\u305f\u3053\u3068\u3092\u78ba\u8a8d\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npx cdk --version<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_AWS_CDK_%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E4%BD%9C%E6%88%90%E3%81%97%E3%81%A6%E3%82%B5%E3%83%B3%E3%83%97%E3%83%AB%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%82%92%E3%82%B3%E3%83%94%E3%83%9A\"><\/span>2. AWS CDK \u30a2\u30d7\u30ea\u3092\u4f5c\u6210\u3057\u3066\u30b5\u30f3\u30d7\u30eb\u30ea\u30dd\u30b8\u30c8\u30ea\u3092\u30b3\u30d4\u30da<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u6b21\u306e\u30b3\u30de\u30f3\u30c9\u3067 CDK \u30a2\u30d7\u30ea\u3092\u4f5c\u6210\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>npx cdk init app --language typescript<\/code><\/pre>\n\n\n\n<p>AWS \u306e\u30b5\u30f3\u30d7\u30eb\u30ea\u30dd\u30b8\u30c8\u30ea\u3001<a href=\"https:\/\/github.com\/aws-samples\/aws-cdk-examples\/tree\/main\/typescript\/ecs\/fargate-application-load-balanced-service\">fargate-application-load-balanced-service<\/a>\u306eBonjourFargate\u30af\u30e9\u30b9\u3092\u30b3\u30d4\u30fc\u3057\u3066bin\/cdk.ts\u306b\u8cbc\u308a\u4ed8\u3051\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p>\u203b \u624b\u5143\u306e\u74b0\u5883\u306b\u5fdc\u3058\u3066\u3001require \u3092 import \u306b\u66f8\u304d\u63db\u3048\u308b\u306a\u3069\u306e\u5fc5\u8981\u3082\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_%E4%BE%9D%E5%AD%98%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8%E3%82%92%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB\"><\/span>3. \u4f9d\u5b58\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>npm install<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"4_CDK_Bootstrapping\"><\/span>4. CDK Bootstrapping<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>CDK\u3092\u521d\u3081\u3066\u4f7f\u3046\u5834\u5408\u3001\u30d6\u30fc\u30c8\u30b9\u30c8\u30e9\u30c3\u30d7\uff08\u521d\u671f\u8a2d\u5b9a\uff09\u304c\u5fc5\u8981\u3067\u3059\u3002\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cdk bootstrap --profile ${YOUR_AWS_PROFILE}<\/code><\/pre>\n\n\n\n<p>\u203b\u521d\u56de\u306ecdk deploy\u3067\u30a8\u30e9\u30fc\u304c\u51fa\u305f\u5834\u5408\u306f\u3001AWS CLI\u306e\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3084\u30ea\u30fc\u30b8\u30e7\u30f3\u8a2d\u5b9a\u3001IAM\u6a29\u9650\u304c\u4e0d\u8db3\u3057\u3066\u3044\u306a\u3044\u304b\u3092\u78ba\u8a8d\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002CloudFormation\u306e\u30a8\u30e9\u30fc\u30ed\u30b0\u3082\u53c2\u8003\u306b\u306a\u308a\u307e\u3059\uff08\u5f8c\u8ff0\uff09\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"5_%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4\"><\/span>5. \u30c7\u30d7\u30ed\u30a4<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u30ea\u30bd\u30fc\u30b9\u3092\u30c7\u30d7\u30ed\u30a4\u3059\u308b\u306b\u306f\u3001\u4ee5\u4e0b\u306e\u30b3\u30de\u30f3\u30c9\u3092\u5b9f\u884c\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cdk deploy --profile ${YOUR_AWS_PROFILE}<\/code><\/pre>\n\n\n\n<p>\u3053\u306e\u307e\u307e\u30c7\u30d7\u30ed\u30a4\u3059\u308b\u3068 ALB \u306f\u3069\u3053\u304b\u3089\u3067\u3082\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u306b\u306a\u308b\u306e\u3067\u3001\u6c17\u306b\u306a\u308b\u65b9\u306f\u6b21\u306e\u300cAWS WAF \u3092\u4f7f\u3063\u3066 IP \u5236\u9650\u3092\u8a2d\u5b9a\u3059\u308b\u300d\u306b\u9032\u3093\u3067\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p>\u30c7\u30d7\u30ed\u30a4\u304c\u5b8c\u4e86\u3059\u308b\u3068\u3001ALB\u306eDNS\u540d\u304c\u51fa\u529b\u3055\u308c\u308b\u306e\u3067\u3001\u305d\u308c\u3092\u4f7f\u3063\u3066\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306b\u30a2\u30af\u30bb\u30b9\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"AWS_WAF_%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6IP%E5%88%B6%E9%99%90%E3%82%92%E8%A8%AD%E5%AE%9A%E3%81%99%E3%82%8B\"><\/span>AWS WAF \u3092\u4f7f\u3063\u3066IP\u5236\u9650\u3092\u8a2d\u5b9a\u3059\u308b<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u30c7\u30d5\u30a9\u30eb\u30c8\u3067\u306f\u3001CDK\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3067\u4f5c\u6210\u3057\u305f ALB\uff08Application Load Balancer\uff09\u306f\u3069\u3053\u304b\u3089\u3067\u3082\u30a2\u30af\u30bb\u30b9\u53ef\u80fd\u306a\u72b6\u614b\u306b\u306a\u3063\u3066\u3044\u307e\u3059\u3002\u3053\u308c\u306f\u691c\u8a3c\u6bb5\u968e\u3067\u306f\u4fbf\u5229\u3067\u3059\u304c\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u7684\u306b\u306f\u30ea\u30b9\u30af\u306e\u3042\u308b\u8a2d\u5b9a\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u7279\u306b\u958b\u767a\u4e2d\u306e\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3084\u793e\u5185\u5411\u3051\u306e\u30b7\u30b9\u30c6\u30e0\u3067\u306f\u3001\u9650\u3089\u308c\u305f\u95a2\u4fc2\u8005\u306e\u307f\u304c\u30a2\u30af\u30bb\u30b9\u3067\u304d\u308b\u72b6\u614b\u306b\u3057\u3066\u304a\u304f\u3053\u3068\u304c\u671b\u307e\u3057\u3044\u3067\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<p>\u305d\u3053\u3067\u6709\u52b9\u306a\u306e\u304c\u3001AWS WAF\uff08Web Application Firewall\uff09\u3092\u6d3b\u7528\u3057\u305fIP\u30a2\u30c9\u30ec\u30b9\u306b\u3088\u308b\u30a2\u30af\u30bb\u30b9\u5236\u9650\u3067\u3059\u3002\u3053\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001CDK\u3092\u4f7f\u3063\u3066WAF\u30eb\u30fc\u30eb\u3092\u4f5c\u6210\u3057\u3001\u7279\u5b9a\u306eIP\u30a2\u30c9\u30ec\u30b9\u306e\u307f\u3092\u8a31\u53ef\u3059\u308b\u65b9\u6cd5\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_%E3%80%8CBonjourFargate%E3%80%8D_%E3%82%AF%E3%83%A9%E3%82%B9%E3%82%92%E7%B7%A8%E9%9B%86\"><\/span>1.\u00a0 \u300cBonjourFargate\u300d \u30af\u30e9\u30b9\u3092\u7de8\u96c6<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u4ee5\u4e0b\u306e\u3088\u3046\u306b \u300cBonjourFargate\u300d\u30af\u30e9\u30b9\u3092\u8ffd\u52a0\u3057\u3001\u7279\u5b9a\u306eIP\u30a2\u30c9\u30ec\u30b9\uff08\u4f8b\uff1a`111.111.111.111\/32`\uff09\u304b\u3089\u306e\u307f\u30a2\u30af\u30bb\u30b9\u3092\u8a31\u53ef\u3059\u308b\u3088\u3046\u306b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>tsx\nexport class BonjourFargate extends cdk.Stack {\n  constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {\n    super(scope, id, props);\n\n    \/\/ Create VPC and Fargate Cluster\n    \/\/ NOTE: Limit AZs to avoid reaching resource quotas\n    const vpc = new ec2.Vpc(this, 'MyVpc', { maxAzs: 2 });\n    const cluster = new ecs.Cluster(this, 'Cluster', { vpc });\n\n    \/\/ Instantiate Fargate Service with just cluster and image\n    const fargateService = new ecs_patterns.ApplicationLoadBalancedFargateService(this, \"FargateService\", {\n      cluster,\n      taskImageOptions: {\n        image: ecs.ContainerImage.fromRegistry(\"amazon\/amazon-ecs-sample\"),\n      },\n    });\n\n    \/\/ ===== \u3053\u3053\u304b\u3089\u8ffd\u52a0 =====\n    const ipSet = new waf.CfnIPSet(this, 'MyIPSet', {\n      name: 'AllowSpecificIPSet',\n      scope: 'REGIONAL',  \/\/ ALB\u306e\u5834\u5408\u306fREGIONAL\n      ipAddressVersion: 'IPV4',  \/\/ IPv4\u30a2\u30c9\u30ec\u30b9\u3092\u4f7f\u7528\n      addresses: &#91;'111.111.111.111\/32'], \/\/ \u8a31\u53ef\u3057\u305f\u3044IP\u30a2\u30c9\u30ec\u30b9\n    });\n\n    const webAcl = new waf.CfnWebACL(this, 'MyWebAcl', {\n      defaultAction: { allow: {} },\n      scope: 'REGIONAL',\n      rules: &#91;\n        {\n          name: 'IPRule',\n          priority: 1,\n          action: { allow: {} },\n          statement: {\n            ipSetReferenceStatement: {\n              arn: ipSet.attrArn,\n            },\n          },\n          visibilityConfig: {\n            sampledRequestsEnabled: true,\n            cloudWatchMetricsEnabled: true,\n            metricName: 'IPRule',\n          },\n        },\n      ],\n      visibilityConfig: {\n        cloudWatchMetricsEnabled: true,\n        sampledRequestsEnabled: true,\n        metricName: 'MyWebAcl',\n      },\n    });\n    const alb = fargateService.loadBalancer; \/\/ \u65e2\u306b\u4f5c\u6210\u3057\u305fALB\u3092\u4f7f\u7528\n\n    new waf.CfnWebACLAssociation(this, 'WebAclAssociation', {\n      resourceArn: alb.loadBalancerArn,\n      webAclArn: webAcl.attrArn,\n    });\n  }\n}\n<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_CDK%E3%82%92%E5%86%8D%E3%83%87%E3%83%97%E3%83%AD%E3%82%A4\"><\/span>2. CDK\u3092\u518d\u30c7\u30d7\u30ed\u30a4<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u3092\u53cd\u6620\u3059\u308b\u305f\u3081\u306b\u3001\u518d\u30c7\u30d7\u30ed\u30a4\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>cdk deploy --all --profile ${YOUR\\_AWS\\_PROFILE}<\/code><\/pre>\n\n\n\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"3_%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E3%82%92%E7%A2%BA%E8%AA%8D\"><\/span>3. \u30a2\u30af\u30bb\u30b9\u3092\u78ba\u8a8d<span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u30d6\u30e9\u30a6\u30b6\u3067ALB\u306eDNS\u540d\u306b\u30a2\u30af\u30bb\u30b9\u3057\u3001\u300c\u6307\u5b9a\u3057\u305fIP\u4ee5\u5916\u306e\u74b0\u5883\u304b\u3089\u306f\u30a2\u30af\u30bb\u30b9\u3067\u304d\u306a\u3044\u3053\u3068\u300d\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"CloudFormation_%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%E7%94%BB%E9%9D%A2%E3%81%AE%E4%BD%BF%E3%81%84%E6%96%B9\"><\/span>CloudFormation \u30b3\u30f3\u30bd\u30fc\u30eb\u753b\u9762\u306e\u4f7f\u3044\u65b9<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>CDK\u3067\u30ea\u30bd\u30fc\u30b9\u3092\u30c7\u30d7\u30ed\u30a4\u3059\u308b\u3068\u3001\u88cf\u5074\u3067\u306f CloudFormation \u304c\u30b9\u30bf\u30c3\u30af\uff08Stack\uff09\u3068\u3057\u3066\u69cb\u6210\u3092\u7ba1\u7406\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3053\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u5b9f\u884c\u4e2d\u306b\u30a8\u30e9\u30fc\u304c\u767a\u751f\u3057\u305f\u3068\u304d\u306e\u78ba\u8a8d\u65b9\u6cd5\u3068\u3057\u3066\u3001AWS\u30de\u30cd\u30b8\u30e1\u30f3\u30c8\u30b3\u30f3\u30bd\u30fc\u30eb\u4e0a\u306e CloudFormation \u30b9\u30bf\u30c3\u30af\u753b\u9762\u306e\u4f7f\u3044\u65b9\u3092\u7d39\u4ecb\u3057\u307e\u3059\u3002\u7279\u306bCDK\u306e\u521d\u5fc3\u8005\u306b\u3068\u3063\u3066\u306f\u3001\u300c\u3069\u3053\u3067\u4f55\u304c\u8d77\u304d\u3066\u3044\u308b\u306e\u304b\u300d\u304c\u308f\u304b\u308a\u306b\u304f\u3044\u3053\u3068\u3082\u3042\u308a\u307e\u3059\u304c\u3001CloudFormation\u306e\u753b\u9762\u3092\u898b\u308b\u3053\u3068\u3067\u3001\u30a8\u30e9\u30fc\u306e\u539f\u56e0\u7279\u5b9a\u3084\u30ea\u30bd\u30fc\u30b9\u306e\u4f5c\u6210\u72b6\u6cc1\u3092\u53ef\u8996\u5316\u3067\u304d\u307e\u3059\u3002\u300cCDK\u3067\u3046\u307e\u304f\u52d5\u304b\u306a\u3044\u300d\u3068\u611f\u3058\u305f\u3068\u304d\u306f\u3001\u307e\u305a\u3053\u306e\u753b\u9762\u3092\u30c1\u30a7\u30c3\u30af\u3057\u3066\u307f\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXflugJ7svojUN-_zTbaHf3rb1mV79Evhqz417cBbFun7FABnTgsMLsPuWGRuSWt7Hr-DeDPz1I5oQ3PqClafuA1agNTYWOXC5TOrmWeOsr6NcBvS1Roh_4mNeKUAa_0Cy7p1THcrw?key=xsetyJ7vtevauS5oHuuPsg\" alt=\"\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<p>\u4ed6\u306b\u3082\u30ea\u30bd\u30fc\u30b9\u30bf\u30d6\u304b\u3089\u306f CDK \u3067\u4f5c\u6210\u3057\u305f\u30ea\u30bd\u30fc\u30b9\u306e\u7ba1\u7406\u753b\u9762\u306b\u9077\u79fb\u3059\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002\u3053\u3053\u3092\u30d9\u30fc\u30b9\u306b\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30b0\u30eb\u30fc\u30d7\u3084IAM\u306e\u8a2d\u5b9a\u3092\u78ba\u8a8d\u3059\u308b\u3053\u3068\u3067\u3001\u308f\u304b\u308a\u306b\u304f\u3044\u7b87\u6240\u306e\u7406\u89e3\u3092\u6df1\u3081\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXf4tFLusg-IbUCumoVYj1MeT8XYsGsId91-jwK9_gl5gnOmHzTHERRzduRUtRCqXZKVRP7u2IsYAvs49HK0u8JIcSyX7L8HrENUkR2deIJajcOYUspLK-dkI0_cn---j7coW79HPA?key=xsetyJ7vtevauS5oHuuPsg\" alt=\"\"\/><\/figure>\n\n\n\n<p><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E3%81%BE%E3%81%A8%E3%82%81\"><\/span>\u307e\u3068\u3081<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u672c\u8a18\u4e8b\u3067\u306f\u3001AWS CDK\u306e\u516c\u5f0f\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f7f\u3063\u3066\u3001Fargate\u74b0\u5883\u3092\u6700\u77ed\u624b\u9806\u3067\u69cb\u7bc9\u3059\u308b\u65b9\u6cd5\u3092\u7d39\u4ecb\u3057\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<p>TypeScript\u3067\u30b3\u30fc\u30c9\u3092\u66f8\u304d\u3001CLI\u3067\u30c7\u30d7\u30ed\u30a4\u3057\u3001IP\u5236\u9650\u3082\u542b\u3081\u305f\u69cb\u6210\u307e\u3067\u5b9f\u8df5\u3059\u308b\u3053\u3068\u3067\u3001CDK\u3068IaC\u306e\u57fa\u672c\u7684\u306a\u6d41\u308c\u3092\u4f53\u9a13\u3067\u304d\u305f\u3068\u601d\u3044\u307e\u3059\u3002\u300c\u30b3\u30fc\u30c9\u3067\u30a4\u30f3\u30d5\u30e9\u3092\u7ba1\u7406\u3059\u308b\u3063\u3066\u3053\u3046\u3044\u3046\u3053\u3068\u304b\uff01\u300d\u3068\u5c11\u3057\u3067\u3082\u5b9f\u611f\u3067\u304d\u305f\u306a\u3089\u3001\u6b21\u306e\u30b9\u30c6\u30c3\u30d7\u306b\u9032\u3080\u6e96\u5099\u306f\u6574\u3063\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u6b21\u306b\u30c1\u30e3\u30ec\u30f3\u30b8\u3057\u305f\u3044\u5185\u5bb9\u3068\u3057\u3066\u306f\u3001\u305f\u3068\u3048\u3070\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u3082\u306e\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>RDS \u3084 ElastiCache \u306a\u3069\u306e\u30ea\u30bd\u30fc\u30b9\u8ffd\u52a0<\/li><li>\u72ec\u81ea\u30c9\u30e1\u30a4\u30f3\u3084HTTPS\u5bfe\u5fdc<\/li><li>\u30aa\u30fc\u30c8\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\u3084\u30b3\u30b9\u30c8\u7ba1\u7406\u306e\u8a2d\u5b9a<\/li><\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306f\u3059\u3050\u306b\u5fc5\u8981\u306a\u304f\u3066\u3082\u3001\u300c\u3069\u3093\u306a\u3053\u3068\u304c\u3067\u304d\u308b\u304b\u300d\u3092\u77e5\u3063\u3066\u304a\u304f\u3060\u3051\u3067\u3082CDK\u6d3b\u7528\u306e\u5e45\u304c\u5e83\u304c\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u307e\u305a\u306f\u4eca\u56de\u306e\u30b3\u30fc\u30c9\u3092\u30d9\u30fc\u30b9\u306b\u3001\u81ea\u5206\u306e\u7528\u9014\u306b\u5408\u308f\u305b\u3066\u5c11\u3057\u305a\u3064\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002IaC\u306f\u300c\u8a66\u3059 \u2192 \u58ca\u3059 \u2192 \u4fee\u6b63\u3059\u308b\u300d\u306e\u30b5\u30a4\u30af\u30eb\u3092\u7e70\u308a\u8fd4\u3059\u3053\u3068\u3067\u3069\u3093\u3069\u3093\u8eab\u306b\u3064\u304d\u307e\u3059\u3002<br>\u3053\u306e\u30d7\u30ed\u30bb\u30b9\u3092\u901a\u3058\u3066\u3001\u30ea\u30bd\u30fc\u30b9\u306e\u4f9d\u5b58\u95a2\u4fc2\u306e\u7406\u89e3\u3001\u69cb\u6210\u306e\u66f8\u304d\u65b9\u3001\u30c8\u30e9\u30d6\u30eb\u6642\u306e\u539f\u56e0\u7279\u5b9a\u3001\u30b3\u30b9\u30c8\u610f\u8b58\u3001\u305d\u3057\u3066\u672c\u756a\u74b0\u5883\u306b\u6d3b\u304b\u305b\u308b\u8a2d\u8a08\u306e\u52d8\u6240\u306a\u3069\u3001\u5b9f\u8df5\u7684\u306a\u30b9\u30ad\u30eb\u304c\u81ea\u7136\u3068\u8eab\u306b\u3064\u3044\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u521d\u3081\u306f\u3046\u307e\u304f\u3044\u304b\u306a\u304f\u3066\u3082\u3001\u624b\u3092\u52d5\u304b\u3057\u3066\u8a66\u3059\u3053\u3068\u304c\u4f55\u3088\u308a\u306e\u8fd1\u9053\u3067\u3059\u3002\u305c\u3072\u4eca\u56de\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u30d9\u30fc\u30b9\u306b\u3001\u81ea\u5206\u306a\u308a\u306e\u69cb\u6210\u3092\u8a66\u3057\u3066\u307f\u3066\u304f\u3060\u3055\u3044\u3002<\/p>\n\n\n\n<p>\u6b21\u56de\u306f\u3001\u4eca\u56de\u3068\u540c\u3058Fargate\u74b0\u5883\u3092\u3001\u4eca\u5ea6\u306fTerraform\u3068\u3044\u3046\u5225\u306e\u30c4\u30fc\u30eb\u3092\u4f7f\u3063\u3066\u69cb\u7bc9\u3059\u308b\u65b9\u6cd5\u3092\u3054\u7d39\u4ecb\u3057\u307e\u3059\u3002Terraform\u306f\u3001\u5c02\u7528\u306e\u30b3\u30fc\u30c9\uff08HCL\uff09\u3067\u30a4\u30f3\u30d5\u30e9\u3092\u5b9a\u7fa9\u3059\u308b\u30c4\u30fc\u30eb\u3067\u3001\u7279\u306b\u30a4\u30f3\u30d5\u30e9\u30a8\u30f3\u30b8\u30cb\u30a2\u306b\u4eba\u6c17\u304c\u3042\u308a\u307e\u3059\u3002\u4eca\u56de\u306f\u305d\u306e\u4e2d\u3067\u3082\u3001\u3067\u304d\u308b\u3060\u3051\u7c21\u5358\u306b\u65e9\u304f\u69cb\u7bc9\u3067\u304d\u308b\u65b9\u6cd5\u3092\u53d6\u308a\u4e0a\u3052\u3001\u516c\u5f0f\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u6d3b\u7528\u3084\u3001CDK\u3068\u306e\u9055\u3044\u306b\u3082\u89e6\u308c\u3066\u3044\u304d\u307e\u3059\u3002\u300cCDK\u3068\u4f55\u304c\u9055\u3046\u306e\uff1f\u300d\u300c\u81ea\u5206\u306b\u306f\u3069\u3063\u3061\u304c\u5408\u3063\u3066\u308b\uff1f\u300d\u3068\u3044\u3063\u305f\u7591\u554f\u3092\u6301\u3064\u65b9\u306b\u3082\u3001\u304d\u3063\u3068\u30d2\u30f3\u30c8\u306b\u306a\u308b\u5185\u5bb9\u3067\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u306f\u3058\u3081\u306b AWS CDK\uff08AWS Cloud Development Kit\uff09\u306f\u3001AWS\u30ea\u30bd\u30fc\u30b9\u3092TypeScript\u3084Python\u306a\u3069\u306e\u30d7\u30ed\u30b0\u30e9\u30df\u30f3\u30b0\u8a00\u8a9e\u3067\u5b9a\u7fa9\u30fb\u7ba1\u7406\u3067\u304d\u308b\u3001Infrastructure as Code [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":878,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[18],"tags":[],"class_list":["post-873","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech-blog"],"aioseo_notices":[],"views":1031,"_links":{"self":[{"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/posts\/873","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/comments?post=873"}],"version-history":[{"count":7,"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/posts\/873\/revisions"}],"predecessor-version":[{"id":881,"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/posts\/873\/revisions\/881"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/media\/878"}],"wp:attachment":[{"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/media?parent=873"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/categories?post=873"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/tags?post=873"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}