{"id":994,"date":"2026-06-29T10:23:11","date_gmt":"2026-06-29T01:23:11","guid":{"rendered":"https:\/\/baresupport.jp\/blog\/?p=994"},"modified":"2026-06-29T10:23:12","modified_gmt":"2026-06-29T01:23:12","slug":"terraform%e3%81%ae%e3%83%87%e3%82%a3%e3%83%ac%e3%82%af%e3%83%88%e3%83%aa%e6%a7%8b%e6%88%90%e3%82%92%e8%a7%a3%e8%aa%ac%ef%bd%9c%e3%83%81%e3%83%bc%e3%83%a0%e9%96%8b%e7%99%ba%e3%83%bb%e3%83%9e%e3%83%ab","status":"publish","type":"post","link":"https:\/\/baresupport.jp\/blog\/2026\/06\/29\/994\/","title":{"rendered":"Terraform\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u6210\u3092\u89e3\u8aac\uff5c\u30c1\u30fc\u30e0\u958b\u767a\u30fb\u30de\u30eb\u30c1\u74b0\u5883\u306b\u5bfe\u5fdc\u3057\u305f\u8a2d\u8a08\u30d1\u30bf\u30fc\u30f3"},"content":{"rendered":"\n<p>Terraform\u3067\u30a4\u30f3\u30d5\u30e9\u3092\u30b3\u30fc\u30c9\u5316\u3059\u308b\u969b\u3001\u6700\u521d\u306b\u60a9\u3080\u70b9\u306e\u3072\u3068\u3064\u304c\u300c\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u6210\u3092\u3069\u3046\u3059\u308b\u304b\u300d\u3067\u306f\u306a\u3044\u3067\u3057\u3087\u3046\u304b\u3002<\/p>\n\n\n\n<p>\u5c0f\u898f\u6a21\u306a\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u3042\u308c\u3070\u5358\u4e00\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u59cb\u3081\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u304c\u3001\u30c1\u30fc\u30e0\u958b\u767a\u30fb\u8907\u6570\u74b0\u5883\uff08dev\/prod\uff09\u30fb\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u3084\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3054\u3068\u306e\u7ba1\u7406\u3068\u3044\u3063\u305f\u73fe\u5b9f\u7684\u306a\u904b\u7528\u3092\u8003\u3048\u308b\u3068\u3001\u9069\u5207\u306a\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u4f53\u7cfb\u306e\u8a2d\u8a08\u304c\u5f8c\u306e\u4fdd\u5b88\u6027\u306b\u5927\u304d\u304f\u5f71\u97ff\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u672c\u8a18\u4e8b\u3067\u306f\u3001Terraform\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u6210\u306e\u57fa\u672c\u304b\u3089\u3001\u3088\u304f\u4f7f\u308f\u308c\u308b\u8a2d\u8a08\u30d1\u30bf\u30fc\u30f3\u3001\u305d\u3057\u3066\u5b9f\u969b\u306e\u904b\u7528\u3067\u5f79\u7acb\u3064\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9\u307e\u3067\u3092\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\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\/2026\/06\/29\/994\/#Terraform%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%BB%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98\" >Terraform\u306e\u30d5\u30a1\u30a4\u30eb\u30fb\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u95a2\u3059\u308b\u57fa\u790e\u77e5\u8b58<\/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\/2026\/06\/29\/994\/#%E3%82%88%E3%81%8F%E4%BD%BF%E3%82%8F%E3%82%8C%E3%82%8B%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E6%A7%8B%E6%88%90%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3\" >\u3088\u304f\u4f7f\u308f\u308c\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u6210\u30d1\u30bf\u30fc\u30f3<\/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\/2026\/06\/29\/994\/#%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B31%EF%BC%9A%E3%83%95%E3%83%A9%E3%83%83%E3%83%88%E6%A7%8B%E6%88%90%EF%BC%88%E5%B0%8F%E8%A6%8F%E6%A8%A1%E3%83%BB%E5%80%8B%E4%BA%BA%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E5%90%91%E3%81%91%EF%BC%89\" >\u30d1\u30bf\u30fc\u30f31\uff1a\u30d5\u30e9\u30c3\u30c8\u69cb\u6210\uff08\u5c0f\u898f\u6a21\u30fb\u500b\u4eba\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5411\u3051\uff09<\/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\/2026\/06\/29\/994\/#%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B32%EF%BC%9A%E7%92%B0%E5%A2%83%C3%97%E3%82%B5%E3%83%96%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%A7%E5%88%86%E5%89%B2%E3%81%99%E3%82%8B%E6%A7%8B%E6%88%90%EF%BC%88%E3%83%81%E3%83%BC%E3%83%A0%E9%96%8B%E7%99%BA%E3%83%BB%E3%83%97%E3%83%AD%E3%83%80%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E5%90%91%E3%81%91%EF%BC%89%E2%98%85%E6%8E%A8%E5%A5%A8\" >\u30d1\u30bf\u30fc\u30f32\uff1a\u74b0\u5883\u00d7\u30b5\u30d6\u30b7\u30b9\u30c6\u30e0\u3067\u5206\u5272\u3059\u308b\u69cb\u6210\uff08\u30c1\u30fc\u30e0\u958b\u767a\u30fb\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3\u5411\u3051\uff09\u2605\u63a8\u5968<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/baresupport.jp\/blog\/2026\/06\/29\/994\/#%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E8%A8%AD%E8%A8%88%E3%81%AE%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88\" >\u30e2\u30b8\u30e5\u30fc\u30eb\u8a2d\u8a08\u306e\u30dd\u30a4\u30f3\u30c8<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/baresupport.jp\/blog\/2026\/06\/29\/994\/#1_%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E5%86%85%E3%81%AF%E3%80%8C%E5%9B%BA%E5%AE%9A%E5%80%A4%E3%80%8D%E3%80%81%E7%92%B0%E5%A2%83%E5%B7%AE%E5%88%86%E3%81%AF%E3%80%8C%E5%A4%89%E6%95%B0%EF%BC%88variablestf%EF%BC%89%E3%80%8D%E3%81%A7%E7%AE%A1%E7%90%86%E3%81%99%E3%82%8B\" >1. \u30e2\u30b8\u30e5\u30fc\u30eb\u5185\u306f\u300c\u56fa\u5b9a\u5024\u300d\u3001\u74b0\u5883\u5dee\u5206\u306f\u300c\u5909\u6570\uff08variables.tf\uff09\u300d\u3067\u7ba1\u7406\u3059\u308b<\/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\/2026\/06\/29\/994\/#2_%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%AE%E7%B2%92%E5%BA%A6\" >2. \u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u7c92\u5ea6<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/baresupport.jp\/blog\/2026\/06\/29\/994\/#%E5%AE%9F%E8%B7%B5%EF%BC%9A%E6%A8%99%E6%BA%96%E6%A9%9F%E8%83%BD%E3%81%A7%E7%B5%84%E3%82%80%E3%80%8C%E7%92%B0%E5%A2%83%C3%97%E3%82%B5%E3%83%96%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%80%8D%E3%81%AE_maintf_%E3%82%B3%E3%83%BC%E3%83%89%E4%BE%8B\" >\u5b9f\u8df5\uff1a\u6a19\u6e96\u6a5f\u80fd\u3067\u7d44\u3080\u300c\u74b0\u5883\u00d7\u30b5\u30d6\u30b7\u30b9\u30c6\u30e0\u300d\u306e main.tf \u30b3\u30fc\u30c9\u4f8b<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/baresupport.jp\/blog\/2026\/06\/29\/994\/#%E2%91%A0_%E5%85%B1%E9%80%9A%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E5%81%B4%EF%BC%88modulesapp_servermaintf%EF%BC%89\" >\u2460 \u5171\u901a\u30e2\u30b8\u30e5\u30fc\u30eb\u5074\uff08modules\/app_server\/main.tf\uff09<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-10\" href=\"https:\/\/baresupport.jp\/blog\/2026\/06\/29\/994\/#%E2%91%A1_%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%81%AE%E3%82%B5%E3%83%96%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A02%EF%BC%88terraformdevsubsystem2maintf%EF%BC%89\" >\u2461 \u958b\u767a\u74b0\u5883\u306e\u30b5\u30d6\u30b7\u30b9\u30c6\u30e02\uff08terraform\/dev\/subsystem2\/main.tf\uff09<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-11\" href=\"https:\/\/baresupport.jp\/blog\/2026\/06\/29\/994\/#%E2%91%A2_%E6%9C%AC%E7%95%AA%E7%92%B0%E5%A2%83%E3%81%AE%E3%82%B5%E3%83%96%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A02%EF%BC%88terraformprodsubsystem2maintf%EF%BC%89\" >\u2462 \u672c\u756a\u74b0\u5883\u306e\u30b5\u30d6\u30b7\u30b9\u30c6\u30e02\uff08terraform\/prod\/subsystem2\/main.tf\uff09<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-12\" href=\"https:\/\/baresupport.jp\/blog\/2026\/06\/29\/994\/#%E3%82%B5%E3%83%96%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E9%96%93%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E9%80%A3%E6%90%BA%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95\" >\u30b5\u30d6\u30b7\u30b9\u30c6\u30e0\u9593\u3067\u30c7\u30fc\u30bf\u3092\u9023\u643a\u3059\u308b\u65b9\u6cd5<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-13\" href=\"https:\/\/baresupport.jp\/blog\/2026\/06\/29\/994\/#%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=\"Terraform%E3%81%AE%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%BB%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E3%81%AB%E9%96%A2%E3%81%99%E3%82%8B%E5%9F%BA%E7%A4%8E%E7%9F%A5%E8%AD%98\"><\/span><strong>Terraform\u306e\u30d5\u30a1\u30a4\u30eb\u30fb\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u95a2\u3059\u308b\u57fa\u790e\u77e5\u8b58<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u307e\u305a\u3001Terraform\u304c\u6271\u3046\u4e3b\u8981\u30d5\u30a1\u30a4\u30eb\u3092\u6574\u7406\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>\u30d5\u30a1\u30a4\u30eb\u540d<\/th><th>\u5f79\u5272<\/th><\/tr><\/thead><tbody><tr><td>main.tf<\/td><td>\u30ea\u30bd\u30fc\u30b9\u5b9a\u7fa9\u306e\u30e1\u30a4\u30f3\u30d5\u30a1\u30a4\u30eb<\/td><\/tr><tr><td>variables.tf<\/td><td>\u5909\u6570\u306e\u5ba3\u8a00<\/td><\/tr><tr><td>outputs.tf<\/td><td>\u51fa\u529b\u5024\u306e\u5b9a\u7fa9<\/td><\/tr><tr><td>providers.tf<\/td><td>\u30d7\u30ed\u30d0\u30a4\u30c0\uff08AWS\u306a\u3069\uff09\u306e\u8a2d\u5b9a<\/td><\/tr><tr><td>terraform.tfvars<\/td><td>\u5909\u6570\u306e\u5b9f\u969b\u306e\u5024\u3092\u8a18\u8ff0<\/td><\/tr><tr><td>versions.tf<\/td><td>Terraform\u304a\u3088\u3073\u30d7\u30ed\u30d0\u30a4\u30c0\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u56fa\u5b9a<\/td><\/tr><tr><td>backend.tf<\/td><td>tfstate\u306e\u4fdd\u5b58\u5148\uff08S3\u306a\u3069\uff09\u306e\u8a2d\u5b9a<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u30d5\u30a1\u30a4\u30eb\u3092<strong>\u3069\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u3069\u3046\u914d\u7f6e\u3059\u308b\u304b<\/strong>\u304c\u3001\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u6210\u8a2d\u8a08\u306e\u91cd\u8981\u306a\u30dd\u30a4\u30f3\u30c8\u3067\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E3%82%88%E3%81%8F%E4%BD%BF%E3%82%8F%E3%82%8C%E3%82%8B%E3%83%87%E3%82%A3%E3%83%AC%E3%82%AF%E3%83%88%E3%83%AA%E6%A7%8B%E6%88%90%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3\"><\/span><strong>\u3088\u304f\u4f7f\u308f\u308c\u308b\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u6210\u30d1\u30bf\u30fc\u30f3<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B31%EF%BC%9A%E3%83%95%E3%83%A9%E3%83%83%E3%83%88%E6%A7%8B%E6%88%90%EF%BC%88%E5%B0%8F%E8%A6%8F%E6%A8%A1%E3%83%BB%E5%80%8B%E4%BA%BA%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E5%90%91%E3%81%91%EF%BC%89\"><\/span><strong>\u30d1\u30bf\u30fc\u30f31\uff1a\u30d5\u30e9\u30c3\u30c8\u69cb\u6210\uff08\u5c0f\u898f\u6a21\u30fb\u500b\u4eba\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u5411\u3051\uff09<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u6700\u3082\u30b7\u30f3\u30d7\u30eb\u306a\u69cb\u6210\u3067\u3059\u3002\u3059\u3079\u3066\u306e\u30ea\u30bd\u30fc\u30b9\u5b9a\u7fa9\u30921\u3064\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306b\u7f6e\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>terraform\/\n\u251c\u2500\u2500 main.tf\n\u251c\u2500\u2500 variables.tf\n\u251c\u2500\u2500 outputs.tf\n\u251c\u2500\u2500 providers.tf\n\u251c\u2500\u2500 versions.tf\n\u2514\u2500\u2500 terraform.tfvars<\/code><\/pre>\n\n\n\n<p><strong>\u30e1\u30ea\u30c3\u30c8<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u69cb\u6210\u304c\u30b7\u30f3\u30d7\u30eb\u3067\u5b66\u7fd2\u30b3\u30b9\u30c8\u304c\u4f4e\u3044<\/li>\n\n\n\n<li>\u5c0f\u898f\u6a21\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u306f\u5c0e\u5165\u3057\u3084\u3059\u3044<\/li>\n<\/ul>\n\n\n\n<p><strong>\u30c7\u30e1\u30ea\u30c3\u30c8<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30ea\u30bd\u30fc\u30b9\u304c\u5897\u3048\u308b\u306b\u3064\u308c main.tf \u304c\u80a5\u5927\u5316\u3059\u308b<\/li>\n\n\n\n<li>\u8907\u6570\u74b0\u5883\u3078\u306e\u5bfe\u5fdc\u304c\u96e3\u3057\u3044<\/li>\n<\/ul>\n\n\n\n<p>PoC\uff08\u6982\u5ff5\u5b9f\u8a3c\uff09\u3084\u500b\u4eba\u5b66\u7fd2\u3001\u7ba1\u7406\u30ea\u30bd\u30fc\u30b9\u304c10\u4ef6\u7a0b\u5ea6\u306e\u5c0f\u898f\u6a21\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306a\u3069\u306e\u7528\u9014\u306b\u5411\u3044\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B32%EF%BC%9A%E7%92%B0%E5%A2%83%C3%97%E3%82%B5%E3%83%96%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%81%A7%E5%88%86%E5%89%B2%E3%81%99%E3%82%8B%E6%A7%8B%E6%88%90%EF%BC%88%E3%83%81%E3%83%BC%E3%83%A0%E9%96%8B%E7%99%BA%E3%83%BB%E3%83%97%E3%83%AD%E3%83%80%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E5%90%91%E3%81%91%EF%BC%89%E2%98%85%E6%8E%A8%E5%A5%A8\"><\/span><strong>\u30d1\u30bf\u30fc\u30f32\uff1a\u74b0\u5883\u00d7\u30b5\u30d6\u30b7\u30b9\u30c6\u30e0\u3067\u5206\u5272\u3059\u308b\u69cb\u6210\uff08\u30c1\u30fc\u30e0\u958b\u767a\u30fb\u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3\u5411\u3051\uff09\u2605\u63a8\u5968<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u30c1\u30fc\u30e0\u958b\u767a\u3084\u4e2d\u301c\u5927\u898f\u6a21\u306a\u904b\u7528\u3067\u6700\u3082\u304a\u3059\u3059\u3081\u306a\u306e\u304c\u3001<strong>\u74b0\u5883\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u306e\u76f4\u4e0b\u306b\u3001\u30b5\u30d6\u30b7\u30b9\u30c6\u30e0\uff08\u6a5f\u80fd\u30fb\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\uff09\u3054\u3068\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3092\u914d\u7f6e\u3059\u308b<\/strong>\u69cb\u6210\u3067\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>terraform\/\n\u251c\u2500\u2500 dev\/                  # \u958b\u767a\u74b0\u5883\n\u2502   \u251c\u2500\u2500 subsystem1\/       # \u30b5\u30d6\u30b7\u30b9\u30c6\u30e01\uff08\u4f8b: \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30fb\u57fa\u76e4\u5c64\uff09\n\u2502   \u2502   \u251c\u2500\u2500 main.tf\n\u2502   \u2502   \u251c\u2500\u2500 variables.tf\n\u2502   \u2502   \u2514\u2500\u2500 outputs.tf\n\u2502   \u2514\u2500\u2500 subsystem2\/       # \u30b5\u30d6\u30b7\u30b9\u30c6\u30e02\uff08\u4f8b: \u30a2\u30d7\u30ea\u30fbECS\u5c64\uff09\n\u2502       \u251c\u2500\u2500 main.tf\n\u2502       \u251c\u2500\u2500 variables.tf\n\u2502       \u2514\u2500\u2500 outputs.tf\n\u251c\u2500\u2500 prod\/                 # \u672c\u756a\u74b0\u5883\n\u2502   \u251c\u2500\u2500 subsystem1\/\n\u2502   \u2502   \u251c\u2500\u2500 main.tf\n\u2502   \u2502   \u2514\u2500\u2500 ...\n\u2502   \u2514\u2500\u2500 subsystem2\/\n\u2502       \u251c\u2500\u2500 main.tf\n\u2502       \u2514\u2500\u2500 ...\n\u2514\u2500\u2500 modules\/              # \u5171\u901a\u30e2\u30b8\u30e5\u30fc\u30eb\uff08\u56fa\u5b9a\u5024\u3068\u5909\u6570\u306e\u5b9a\u7fa9\uff09\n    \u251c\u2500\u2500 network\/\n    \u2502   \u251c\u2500\u2500 main.tf\n    \u2502   \u2514\u2500\u2500 ...\n    \u2514\u2500\u2500 app_server\/\n        \u251c\u2500\u2500 main.tf\n        \u2514\u2500\u2500 ...<\/code><\/pre>\n\n\n\n<p>\u5404\u30b5\u30d6\u30b7\u30b9\u30c6\u30e0\uff08subsystem1\u3001subsystem2\uff09\u306e main.tf \u304b\u3089\u3001modules\/ \u914d\u4e0b\u306e\u5171\u901a\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u547c\u3073\u51fa\u3059\u5f62\u3092\u3068\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p><strong>\u30e1\u30ea\u30c3\u30c8<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u5f71\u97ff\u7bc4\u56f2\uff08Blast Radius\uff09\u306e\u6700\u5c0f\u5316<\/strong><br>subsystem2\uff08\u30a2\u30d7\u30ea\u5c64\uff09\u3092\u5909\u66f4\u30fb\u9069\u7528\u3059\u308b\u969b\u306b\u3001subsystem1\uff08\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u57fa\u76e4\uff09\u306e tfstate \u3092\u5909\u66f4\u3057\u306a\u3044\u305f\u3081\u3001\u8aa4\u64cd\u4f5c\u306b\u3088\u308b\u30a4\u30f3\u30d5\u30e9\u5168\u640d\u30ea\u30b9\u30af\u3092\u6291\u3048\u308b\u3053\u3068\u304c\u3067\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>\u72ec\u7acb\u3057\u305f tfstate \u904b\u7528<\/strong><br>\u74b0\u5883\u00d7\u30b5\u30d6\u30b7\u30b9\u30c6\u30e0\u3054\u3068\u306b\u5b8c\u5168\u306b\u72ec\u7acb\u3057\u305f\u72b6\u614b\u30d5\u30a1\u30a4\u30eb\u3092\u6301\u3066\u307e\u3059\u3002<\/li>\n\n\n\n<li><strong>CI\/CD\u3068\u306e\u76f8\u6027\u304c\u3088\u3044<\/strong><br>Git\u306e\u5dee\u5206\u691c\u77e5\u3092\u4f7f\u3063\u3066\u3001\u300cdev\/subsystem2\/ \u306e\u30b3\u30fc\u30c9\u304c\u5909\u308f\u3063\u305f\u3068\u304d\u3060\u3051\u3001\u305d\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067 terraform apply \u3092\u5b9f\u884c\u3059\u308b\u300d\u3068\u3044\u3063\u305f\u30b9\u30de\u30fc\u30c8\u306a\u81ea\u52d5\u5316\u304c\u5bb9\u6613\u3067\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p><strong>\u30c7\u30e1\u30ea\u30c3\u30c8<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u5171\u901a\u90e8\u5206\u306e\u8a18\u8ff0\u306e\u91cd\u8907<br>\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3054\u3068\u306b backend\uff08S3\u30d0\u30b1\u30c3\u30c8\u3084\u30ad\u30fc\u306e\u5b9a\u7fa9\uff09\u3084 provider \u3092\u66f8\u304f\u5fc5\u8981\u304c\u3042\u308a\u3001\u5171\u901a\u90e8\u5206\u306e\u8a18\u8ff0\u304c\u4e00\u90e8\u91cd\u8907\u3057\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E8%A8%AD%E8%A8%88%E3%81%AE%E3%83%9D%E3%82%A4%E3%83%B3%E3%83%88\"><\/span><strong>\u30e2\u30b8\u30e5\u30fc\u30eb\u8a2d\u8a08\u306e\u30dd\u30a4\u30f3\u30c8<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u3069\u306e\u69cb\u6210\u30d1\u30bf\u30fc\u30f3\u3067\u3082\u3001<strong>\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u8a2d\u8a08\u54c1\u8cea<\/strong>\u304c\u5168\u4f53\u306e\u4fdd\u5b88\u6027\u3092\u5de6\u53f3\u3057\u307e\u3059\u3002\u7279\u306b\u300c\u4f55\u3092\u56fa\u5b9a\u5024\u3068\u3057\u3066\u5b9a\u7fa9\u3057\u3001\u4f55\u3092\u5909\u6570\u306b\u3059\u308b\u304b\u300d\u306e\u5207\u308a\u5206\u3051\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"1_%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E5%86%85%E3%81%AF%E3%80%8C%E5%9B%BA%E5%AE%9A%E5%80%A4%E3%80%8D%E3%80%81%E7%92%B0%E5%A2%83%E5%B7%AE%E5%88%86%E3%81%AF%E3%80%8C%E5%A4%89%E6%95%B0%EF%BC%88variablestf%EF%BC%89%E3%80%8D%E3%81%A7%E7%AE%A1%E7%90%86%E3%81%99%E3%82%8B\"><\/span><strong>1. \u30e2\u30b8\u30e5\u30fc\u30eb\u5185\u306f\u300c\u56fa\u5b9a\u5024\u300d\u3001\u74b0\u5883\u5dee\u5206\u306f\u300c\u5909\u6570\uff08variables.tf\uff09\u300d\u3067\u7ba1\u7406\u3059\u308b<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u30e2\u30b8\u30e5\u30fc\u30eb\uff08modules\/ \u914d\u4e0b\uff09\u3092\u8a2d\u8a08\u3059\u308b\u969b\u306f\u3001<strong>\u300c\u74b0\u5883\u3084\u30b5\u30d6\u30b7\u30b9\u30c6\u30e0\u306b\u3088\u3089\u305a\u5171\u901a\u306e\u8a2d\u5b9a\u306f\u30e2\u30b8\u30e5\u30fc\u30eb\u5185\u306b\u56fa\u5b9a\u5024\u3068\u3057\u3066\u8a18\u8ff0\u3057\u3001\u74b0\u5883\u3054\u3068\u306b\u5909\u3048\u305f\u3044\u5024\u3060\u3051\u3092 <\/strong><strong>variables.tf<\/strong><strong> <\/strong><strong>\u3067\u5909\u6570\u5316\u3059\u308b\u300d<\/strong>\u306e\u304c\u57fa\u672c\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u3059\u3079\u3066\u3092\u5909\u6570\u5316\u3057\u3066\u3057\u307e\u3046\u3068\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u547c\u3073\u51fa\u3059\u5074\u306e\u8a18\u8ff0\u304c\u80a5\u5927\u5316\u3057\u3001\u9006\u306b\u3059\u3079\u3066\u3092\u56fa\u5b9a\u5024\u306b\u3059\u308b\u3068\u518d\u5229\u7528\u304c\u3067\u304d\u306a\u304f\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>\u30e2\u30b8\u30e5\u30fc\u30eb\u5185\u306b\u56fa\u5b9a\u3057\u3066\u3088\u3044\u5024\uff08\u4f8b\uff09<\/strong>\uff1a<ul><li>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30b0\u30eb\u30fc\u30d7\u306e\u30d7\u30ed\u30c8\u30b3\u30eb\uff08&#8221;tcp&#8221; \u306a\u3069\uff09<\/li><\/ul><ul><li>\u6697\u53f7\u5316\u306e\u6709\u52b9\u5316\u30d5\u30e9\u30b0\uff08\u539f\u5247\u5e38\u306b true \u306b\u3059\u3079\u304d\u3082\u306e\uff09<\/li><\/ul>\n<ul class=\"wp-block-list\">\n<li>\u5171\u901a\u306e\u547d\u540d\u898f\u5247\uff08\u30d7\u30ec\u30d5\u30a3\u30c3\u30af\u30b9\u306a\u3069\uff09<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>variables.tf <\/strong><strong>\u3067\u5909\u6570\u5316\u3059\u3079\u304d\u5024\uff08\u4f8b\uff09<\/strong>\uff1a<ul><li>\u74b0\u5883\u3054\u3068\u306b\u30b9\u30b1\u30fc\u30eb\u304c\u5909\u308f\u308b\u5024\uff08EC2\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u30bf\u30a4\u30d7\u3001RDS\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u30af\u30e9\u30b9\u306a\u3069\uff09<\/li><\/ul><ul><li>\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u5e2f\uff08VPC\u3084\u30b5\u30d6\u30cd\u30c3\u30c8\u306eCIDR\u30d6\u30ed\u30c3\u30af\uff09<\/li><\/ul>\n<ul class=\"wp-block-list\">\n<li>\u74b0\u5883\u540d\uff08dev \/ prod \u306a\u3069\u306e\u8b58\u5225\u5b50\uff09<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"2_%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%81%AE%E7%B2%92%E5%BA%A6\"><\/span><strong>2. \u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u7c92\u5ea6<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u30e2\u30b8\u30e5\u30fc\u30eb\u306f\u300c\u5909\u66f4\u306e\u5358\u4f4d\u300d\u3084\u300c\u518d\u5229\u7528\u3059\u308b\u5358\u4f4d\u300d\u3067\u7d30\u304b\u304f\u5206\u3051\u308b\u3053\u3068\u3092\u610f\u8b58\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>modules\/\n\u251c\u2500\u2500 network\/          # VPC\u30fb\u30b5\u30d6\u30cd\u30c3\u30c8\u30fbInternet Gateway\n\u251c\u2500\u2500 security_group\/   # \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30b0\u30eb\u30fc\u30d7\n\u2514\u2500\u2500 app_server\/       # EC2\u3084ECS\u3001\u4ed8\u968f\u3059\u308b\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u5b9a\u7fa9<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E5%AE%9F%E8%B7%B5%EF%BC%9A%E6%A8%99%E6%BA%96%E6%A9%9F%E8%83%BD%E3%81%A7%E7%B5%84%E3%82%80%E3%80%8C%E7%92%B0%E5%A2%83%C3%97%E3%82%B5%E3%83%96%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E3%80%8D%E3%81%AE_maintf_%E3%82%B3%E3%83%BC%E3%83%89%E4%BE%8B\"><\/span><strong>\u5b9f\u8df5\uff1a\u6a19\u6e96\u6a5f\u80fd\u3067\u7d44\u3080\u300c\u74b0\u5883\u00d7\u30b5\u30d6\u30b7\u30b9\u30c6\u30e0\u300d\u306e main.tf \u30b3\u30fc\u30c9\u4f8b<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u5916\u90e8\u30e9\u30c3\u30d1\u30fc\u30c4\u30fc\u30eb\u3092\u4f7f\u308f\u305a\u3001\u6a19\u6e96\u306e\u30b3\u30fc\u30c9\u5171\u901a\u5316\u3092\u9069\u7528\u3057\u305f\u5177\u4f53\u7684\u306a\u8a18\u8ff0\u4f8b\u3067\u3059\u3002\u3053\u3053\u3067\u306f\u3001<strong>\u958b\u767a\u74b0\u5883\uff08dev\uff09\u306e\u30b5\u30d6\u30b7\u30b9\u30c6\u30e02\uff08app_server\u3092\u69cb\u7bc9\u3059\u308b\u30ec\u30a4\u30e4\u30fc\uff09<\/strong> \u3092\u4f8b\u306b\u89e3\u8aac\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E2%91%A0_%E5%85%B1%E9%80%9A%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E5%81%B4%EF%BC%88modulesapp_servermaintf%EF%BC%89\"><\/span><strong>\u2460 \u5171\u901a\u30e2\u30b8\u30e5\u30fc\u30eb\u5074\uff08modules\/app_server\/main.tf\uff09<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u5171\u901a\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u3092\u4f5c\u308a\u307e\u3059\u3002\u30d7\u30ed\u30c8\u30b3\u30eb\u306a\u3069\u306f<strong>\u56fa\u5b9a\u5024<\/strong>\u306b\u3057\u3001\u30b9\u30da\u30c3\u30af\u306a\u3069\u306f\u5916\u304b\u3089\u6ce8\u5165\u3067\u304d\u308b\u3088\u3046<strong>\u5909\u6570<\/strong>\u306b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Terraform\n# modules\/app_server\/main.tf\nresource \"aws_instance\" \"web\" {\n  ami           = var.ami_id\n  instance_type = var.instance_type # \u5909\u6570\n\n  # \u5168\u74b0\u5883\u3067\u7d71\u4e00\u3057\u305f\u3044\u8a2d\u5b9a\u306f\u56fa\u5b9a\u5024\u3068\u3057\u3066\u30cf\u30fc\u30c9\u30b3\u30fc\u30c9\n  monitoring    = true\n  ebs_optimized = true\n\n  tags = {\n    Name = \"my-app-${var.env}-${var.subsystem}\"\n    Env  = var.env\n  }\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E2%91%A1_%E9%96%8B%E7%99%BA%E7%92%B0%E5%A2%83%E3%81%AE%E3%82%B5%E3%83%96%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A02%EF%BC%88terraformdevsubsystem2maintf%EF%BC%89\"><\/span><strong>\u2461 \u958b\u767a\u74b0\u5883\u306e\u30b5\u30d6\u30b7\u30b9\u30c6\u30e02\uff08terraform\/dev\/subsystem2\/main.tf\uff09<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u547c\u3073\u51fa\u3057\u3001\u958b\u767a\u74b0\u5883\uff08dev\uff09\u304b\u3064\u3053\u306e\u30b5\u30d6\u30b7\u30b9\u30c6\u30e0\u7528\u306e\u5909\u6570\u3092\u6ce8\u5165\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Terraform\n# terraform\/dev\/subsystem2\/main.tf\nterraform {\n  required_version = \">= 1.5.0\"\n  required_providers {\n    aws = {\n      source  = \"hashicorp\/aws\"\n      version = \"~> 5.0\"\n    }\n  }\n  # tfstate\u3092\u3010\u74b0\u5883\/\u30b5\u30d6\u30b7\u30b9\u30c6\u30e0\u540d\u3011\u5c02\u7528\u306e\u30d1\u30b9\u306b\u9694\u96e2\n  backend \"s3\" {\n    bucket = \"my-tfstate-bucket\"\n    key    = \"dev\/subsystem2\/terraform.tfstate\"\n    region = \"ap-northeast-1\"\n  }\n}\n\nprovider \"aws\" {\n  region = \"ap-northeast-1\"\n}\n\n# \u5171\u901a\u30e2\u30b8\u30e5\u30fc\u30eb\u3092\u547c\u3073\u51fa\u3057\nmodule \"app_server\" {\n  # \u968e\u5c64\u304c2\u3064\u6df1\u304f\u306a\u3063\u3066\u3044\u308b\u305f\u3081\u3001\u300c..\/..\/..\/\u300d\u3067modules\u3092\u53c2\u7167\n  source = \"..\/..\/..\/modules\/app_server\"\n\n  env           = \"dev\"\n  subsystem     = \"subsystem2\"\n  ami_id        = \"ami-0abc123456789def0\"\n  instance_type = \"t3.micro\" # \u958b\u767a\u74b0\u5883\u7528\u306e\u4f4e\u30b3\u30b9\u30c8\u30b9\u30da\u30c3\u30af\n}<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E2%91%A2_%E6%9C%AC%E7%95%AA%E7%92%B0%E5%A2%83%E3%81%AE%E3%82%B5%E3%83%96%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A02%EF%BC%88terraformprodsubsystem2maintf%EF%BC%89\"><\/span><strong>\u2462 \u672c\u756a\u74b0\u5883\u306e\u30b5\u30d6\u30b7\u30b9\u30c6\u30e02\uff08terraform\/prod\/subsystem2\/main.tf\uff09<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h3>\n\n\n\n<p>\u69cb\u9020\u306fdev\u3068\u540c\u3058\u3067\u3059\u304c\u3001\u30d0\u30c3\u30af\u30a8\u30f3\u30c9\u306e\u4fdd\u5b58\u5148\u30ad\u30fc\uff08prod\/subsystem2\/&#8230;\uff09\u3068\u3001\u6ce8\u5165\u3059\u308b\u30b9\u30da\u30c3\u30af\u5024\u3092\u672c\u756a\u74b0\u5883\u7528\u306b\u5909\u66f4\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Terraform\n# terraform\/prod\/subsystem2\/main.tf\nterraform {\n  required_version = \">= 1.5.0\"\n  required_providers {\n    aws = {\n      source  = \"hashicorp\/aws\"\n      version = \"~> 5.0\"\n    }\n  }\n  # \u672c\u756a\u74b0\u5883\u7528\u306e\u500b\u5225\u30d1\u30b9\u3092\u6307\u5b9a\n  backend \"s3\" {\n    bucket = \"my-tfstate-bucket\"\n    key    = \"prod\/subsystem2\/terraform.tfstate\"\n    region = \"ap-northeast-1\"\n  }\n}\n\nprovider \"aws\" {\n  region = \"ap-northeast-1\"\n}\n\nmodule \"app_server\" {\n  source = \"..\/..\/..\/modules\/app_server\"\n\n  env           = \"prod\"\n  subsystem     = \"subsystem2\"\n  ami_id        = \"ami-0abc123456789def0\"\n  instance_type = \"m6i.large\" # \u672c\u756a\u74b0\u5883\u7528\u306e\u9ad8\u30b9\u30da\u30c3\u30af\n}<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\"><span class=\"ez-toc-section\" id=\"%E3%82%B5%E3%83%96%E3%82%B7%E3%82%B9%E3%83%86%E3%83%A0%E9%96%93%E3%81%A7%E3%83%87%E3%83%BC%E3%82%BF%E3%82%92%E9%80%A3%E6%90%BA%E3%81%99%E3%82%8B%E6%96%B9%E6%B3%95\"><\/span><strong>\u30b5\u30d6\u30b7\u30b9\u30c6\u30e0\u9593\u3067\u30c7\u30fc\u30bf\u3092\u9023\u643a\u3059\u308b\u65b9\u6cd5<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>\u30b5\u30d6\u30b7\u30b9\u30c6\u30e0\u3092\u5206\u5272\u3059\u308b\u3068\u3001\u4f8b\u3048\u3070\u300csubsystem1 \u3067\u4f5c\u3063\u305fVPC\u306eID\u3092\u3001subsystem2 \u306eEC2\u3067\u4f7f\u3044\u305f\u3044\u300d\u3068\u3044\u3046\u5834\u9762\u304c\u51fa\u3066\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u3053\u306e\u5834\u5408\u306f\u3001terraform_remote_state \u30c7\u30fc\u30bf\u30bd\u30fc\u30b9\u3092\u4f7f\u3063\u3066\u3001\u4ed6\u306e\u30b5\u30d6\u30b7\u30b9\u30c6\u30e0\u306e tfstate \u304b\u3089 output \u3055\u308c\u305f\u5024\u3092\u5b89\u5168\u306b\u8aad\u307f\u8fbc\u307f\u307e\u3059\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Terraform\n# terraform\/dev\/subsystem2\/main.tf \u5185\u3067\u306e\u8a18\u8ff0\u4f8b\n\n# subsystem1 \u306e tfstate \u3092\u8aad\u307f\u8fbc\u3080\ndata \"terraform_remote_state\" \"subsystem1\" {\n  backend = \"s3\"\n  config = {\n    bucket = \"my-tfstate-bucket\"\n    key    = \"dev\/subsystem1\/terraform.tfstate\"\n    region = \"ap-northeast-1\"\n  }\n}\n\n# \u8aad\u307f\u8fbc\u3093\u3060VPC ID\u3092\u5225\u306e\u30ea\u30bd\u30fc\u30b9\u3084\u30e2\u30b8\u30e5\u30fc\u30eb\u306b\u6e21\u3059\nmodule \"app_server\" {\n  source = \"..\/..\/..\/modules\/app_server\"\n  # ...\n  vpc_id = data.terraform_remote_state.subsystem1.outputs.vpc_id\n}<\/code><\/pre>\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><strong>\u307e\u3068\u3081<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p>Terraform\u306e\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u6210\u3092 <strong>terraform\/{<\/strong><strong>\u74b0\u5883}\/{\u30b5\u30d6\u30b7\u30b9\u30c6\u30e0}\/<\/strong> \u306e\u5f62\u306b\u843d\u3068\u3057\u8fbc\u3080\u3053\u3068\u3067\u3001\u5909\u66f4\u306e\u5f71\u97ff\u7bc4\u56f2\u3092\u6700\u5c0f\u5316\u3057\u3001\u30c1\u30fc\u30e0\u958b\u767a\u306b\u304a\u3051\u308b\u885d\u7a81\uff08\u30de\u30eb\u30c1\u30ed\u30c3\u30af\u3084\u610f\u56f3\u3057\u306a\u3044\u5dee\u5206\u30d0\u30c3\u30c6\u30a3\u30f3\u30b0\uff09\u3092\u9632\u304e\u3084\u3059\u304f\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p>\u6700\u521d\u306f\u30b7\u30f3\u30d7\u30eb\u306a\u300c\u30d5\u30e9\u30c3\u30c8\u69cb\u6210\u300d\u304b\u3089\u59cb\u3081\u3066\u3082\u554f\u984c\u3042\u308a\u307e\u305b\u3093\u304c\u3001\u898f\u6a21\u306e\u62e1\u5927\u3092\u898b\u636e\u3048\u3066\u300c\u30e2\u30b8\u30e5\u30fc\u30eb\u5185\u3092\u5171\u901a\u5316\u3057\u3066\u56fa\u5b9a\u5024\u3067\u5b88\u308a\u3001\u74b0\u5883\u30fb\u30b5\u30d6\u30b7\u30b9\u30c6\u30e0\u3054\u3068\u306e\u5dee\u5206\u306fvariables.tf\u3067\u7ba1\u7406\u3059\u308b\u300d \u3068\u3044\u3046\u539f\u5247\u3092\u610f\u8b58\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002<\/p>\n\n\n\n<p>\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u7279\u6027\u306b\u5408\u308f\u305b\u3066\u6700\u9069\u306a\u5207\u308a\u53e3\u3092\u898b\u3064\u3051\u3001\u5b89\u5168\u306aIaC\u904b\u7528\u3092\u76ee\u6307\u3057\u307e\u3057\u3087\u3046\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Terraform\u3067\u30a4\u30f3\u30d5\u30e9\u3092\u30b3\u30fc\u30c9\u5316\u3059\u308b\u969b\u3001\u6700\u521d\u306b\u60a9\u3080\u70b9\u306e\u3072\u3068\u3064\u304c\u300c\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u69cb\u6210\u3092\u3069\u3046\u3059\u308b\u304b\u300d\u3067\u306f\u306a\u3044\u3067\u3057\u3087\u3046\u304b\u3002 \u5c0f\u898f\u6a21\u306a\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u3067\u3042\u308c\u3070\u5358\u4e00\u30c7\u30a3\u30ec\u30af\u30c8\u30ea\u3067\u59cb\u3081\u308b\u3053\u3068\u3082\u3067\u304d\u307e\u3059\u304c\u3001\u30c1\u30fc\u30e0\u958b\u767a\u30fb\u8907\u6570\u74b0\u5883\uff08dev [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":990,"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":[17,31,15,19],"class_list":["post-994","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech-blog","tag-aws","tag-terraform","tag-15","tag-19"],"aioseo_notices":[],"views":9,"_links":{"self":[{"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/posts\/994","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=994"}],"version-history":[{"count":1,"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/posts\/994\/revisions"}],"predecessor-version":[{"id":995,"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/posts\/994\/revisions\/995"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/media\/990"}],"wp:attachment":[{"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/media?parent=994"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/categories?post=994"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/baresupport.jp\/blog\/wp-json\/wp\/v2\/tags?post=994"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}