Skip to content

EcsImmersionDay.json CloudFormation 템플릿 소개

작성일: 2026-05-02 | 수정일: 2026-05-02

EcsImmersionDay.json CloudFormation 템플릿 소개

Amazon ECS Workshop에서는 EcsImmersionDay.json CloudFormation 템플릿을 제공합니다. 이 템플릿은 랩 실습에 필요한 모든 인프라를 한 번에 배포할 수 있게 해줍니다. 그 후 각 랩에서는 이 인프라를 바탕으로 추가적인 인프라를 설치하는 것을 실습하게 됩니다.

이 템플릿의 코드를 뜯어보는 것은 AWS 핵심 인프라를 학습하는 데 큰 도움이 됩니다. 각각의 인프라가 어떻게 연결되어 있는지를 알 수 있고, 세부 설정이 어떻게 되어 있는지도 파악할 수 있습니다.

EcsImmersionDay.json 템플릿 내부 구조 소개

{
 "Description": "ECS Immersion Day Workshop Stack - Created on 2026-03-31 - Version 1.0.4",
 "Metadata": {...
 },
 "Mappings": {...
 },
 "Resources": {...
 },
 "Parameters": {...
 },
 "Outputs": {...
 }
}

EcsImmersionDay.json CloudFormation 템플릿은 위와 같은 구조를 가지고 있습니다. 이 중 Resources에는 랩 실습에서 사용될 인프라 리소스들에 대한 정보가 담겨 있습니다. 예를 들면,

  "BasicRetailStoreVPCPublicSubnet1EIP375531A2": {
   "Type": "AWS::EC2::EIP",
   "Properties": {
    "Domain": "vpc",
    "Tags": [
     {
      "Key": "CreationDate",
      "Value": "2026-03-31"
     },
     {
      "Key": "Name",
      "Value": "EcsImmersionDay/Basic/RetailStoreVPC/PublicSubnet1"
     },
     {
      "Key": "Version",
      "Value": "1.0.4"
     },
     {
      "Key": "WorkshopName",
      "Value": "ECSImmersionDay"
     }
    ]
   }
  },

이런 JSON 코드가 존재합니다.

이 템플릿에는 약 150개의 리소스가 존재하고, 각 리소스은 prefix를 가지고 있습니다. 위 리소스의 prefix는 Basic으로, Fundamentals 랩 실습의 기반이 되는 리소스입니다.

또 다른 예시로, 아래 리소스는 Network prefix를 가지고 있고, Networking 랩 실습의 기반이 되는 리소스입니다.

  "NetworkRetailStoreVPC2PublicSubnet1RouteTableAssociation370D0C06": {
   "Type": "AWS::EC2::SubnetRouteTableAssociation",
   "Properties": {
    "RouteTableId": {
     "Ref": "NetworkRetailStoreVPC2PublicSubnet1RouteTable8340B426"
    },
    "SubnetId": {
     "Ref": "NetworkRetailStoreVPC2PublicSubnet1Subnet880F5AC3"
    }
   }
  },

즉, 각 랩 실습의 기반이 되는 리소스들이 있고, 그 리소스들은 각기 다른 prefix를 가지고 있습니다. 참고로 Fundamentals 랩에서 사용되는 Basic prefix를 가진 리소스들은 다른 랩에서도 기반이 되는 리소스들입니다.

이 프로젝트는 각 랩 실습을 진행하기 전에 각 랩의 기반이 되는 prefix를 가진 리소스들을 먼저 분석합니다. 이를 통해 각 랩 실습 진행에 필요한 리소스들이 왜 필요한지, 어떤 기능을 하는지 파악할 수 있습니다.