[AWS] AWS CloudFormation

yjshin·2025년 9월 2일

AWS

목록 보기
9/42

🏗️ AWS CloudFormation 정리


1️⃣ CloudFormation이란?

AWS CloudFormation 은
인프라(AWS 리소스)를 코드(JSON 또는 YAML)로 정의하고, 자동으로 생성·수정·삭제할 수 있게 해주는 서비스입니다.

👉 쉽게 말해,
“클라우드 리소스를 사람이 클릭해서 만들지 않고, 코드로 선언하면 AWS가 대신 만들어주는 서비스” 입니다.

2️⃣ CloudFormation의 주요 특징

📝 Infrastructure as Code (IaC)

인프라를 코드(YAML/JSON)로 관리

🔄 자동화

반복적인 리소스 생성·삭제를 자동 처리

🛡️ 일관성

같은 코드로 여러 환경(개발/테스트/운영)에서 동일한 인프라 생성 가능

⏱️ 시간 절약

클릭 몇 번보다 훨씬 빠르고 실수 없는 인프라 배포

📑 변경 추적(Change Set)

인프라 변경 사항을 사전에 미리 확인 가능

3️⃣ CloudFormation 아키텍처 개념도

graph TD
    User[👩‍💻 개발자/운영자] --> Template["YAML/JSON Template"]
    Template --> CFN[🏗️ CloudFormation]

    CFN --> Stack["Stack (리소스 집합)"]

    subgraph AWS Resources
        EC2[EC2 Instances]
        S3[S3 Buckets]
        RDS[RDS Database]
        VPC[VPC Network]
    end

    Stack --> EC2
    Stack --> S3
    Stack --> RDS
    Stack --> VPC

4️⃣ CloudFormation 동작 방식

템플릿 작성

YAML/JSON 형식으로 인프라 정의

예: EC2, VPC, S3, RDS 등

스택(Stack) 생성

CloudFormation이 템플릿을 읽고 리소스를 자동 생성

스택 업데이트

코드 변경 → 기존 인프라 자동 수정

스택 삭제

스택 삭제 시 모든 관련 리소스 자동 삭제

5️⃣ 템플릿 예시 (YAML)

AWSTemplateFormatVersion: "2010-09-09"
Description: "EC2와 S3를 포함한 간단한 예시"

Resources:
  MyEC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      InstanceType: t2.micro
      ImageId: ami-0abcd1234efgh5678
  MyS3Bucket:
    Type: AWS::S3::Bucket
    Properties:
      BucketName: my-til-blog-bucket

📝 코드 설명

Resources : 생성할 리소스를 정의하는 섹션

MyEC2Instance : EC2 인스턴스 리소스 이름

Type: AWS::EC2::Instance → EC2를 생성

InstanceType: t2.micro → 서버 크기 지정

ImageId → AMI 이미지 ID

MyS3Bucket : S3 버킷 리소스

BucketName → 버킷 이름 지정

6️⃣ 현업에서의 활용

현업에서는 CloudFormation을 다음과 같이 씁니다.

🛠 인프라 자동 배포

개발/테스트/운영 환경을 동일하게 복제

🚀 CI/CD 파이프라인 통합

CodePipeline, CodeDeploy와 연동 → 앱과 인프라 동시 배포

🛡️ 보안/컴플라이언스 준수

표준 템플릿을 작성해 조직 내 인프라 규칙 강제

📈 비용 관리 및 추적

스택 단위로 리소스 관리 → 불필요한 리소스 쉽게 정리

✅ 정리

AWS CloudFormation은

인프라를 코드로 관리(IaC) 하고,

자동화·일관성·보안을 강화하며,

시간과 비용을 절약할 수 있는 서비스입니다.

👉 한마디로, “클라우드 인프라 자동 생성기” 입니다.

profile
study

0개의 댓글