🧩 AWS 관리 기초 – CloudFormation & Systems Manager


🏗️ Part 1. Infrastructure as Code & CloudFormation


🕰️ 인프라 관리 방식의 진화

Pre-Cloud
  → 물리 서버 구매 · 설치 · 네트워크 구성
  → 수 주 ~ 수 개월

Cloud
  → 콘솔에서 리소스 선택 · 클릭
  → 수 시간

Infrastructure as Code
  → 코드 작성 → 실행
  → 수 분

🧾 Infrastructure as Code (IaC)

핵심 가치

  • 항상 동일한 아키텍처 보장
  • 휴먼 에러 제거
  • 재사용 가능
  • 변경 이력 관리
  • 일괄 삭제 및 복구 가능

☁️ AWS CloudFormation 개요

  • AWS 공식 IaC 서비스
  • JSON / YAML 템플릿 사용
  • Stack 단위로 리소스 관리
  • 실패 시 자동 Rollback
  • 멀티 리전 / 멀티 계정 프로비저닝 가능

📄 CloudFormation 기본 구조

Template
 ├─ Parameters
 ├─ Mappings
 ├─ Conditions
 ├─ Resources (필수)
 └─ Outputs

📦 Stack 개념

  • 관련 리소스를 묶는 관리 단위
  • Stack 생성 = 리소스 생성
  • Stack 삭제 = 리소스 삭제 (DeletionPolicy 예외)

🔁 Template → Logical Resource → 실제 리소스

Template
  ↓
Logical Resource
  ↓
AWS 실제 리소스 (EC2, S3, ALB 등)

🧱 Resources & Properties

  • Logical ID: 스택 내부 식별자
  • Type: AWS 리소스 타입
  • Properties: 리소스 상세 설정

⚙️ 리소스 속성 (Resource Attributes)

  • CreationPolicy

    → 생성 완료 조건 제어

  • DeletionPolicy

    → Delete / Retain / Snapshot

  • DependsOn

    → 생성 순서 강제

  • UpdatePolicy

    → 업데이트 방식 제어

  • UpdateReplacePolicy

    → 교체 시 기존 리소스 처리


⏳ Wait Condition & Helper Scripts

목적

  • EC2 초기 설정 완료 여부를 CloudFormation이 인지하도록 제어

핵심 구성

  • CreationPolicy
  • cfn-init
  • cfn-signal
  • cfn-hup

🧩 Custom Resource

  • CloudFormation이 기본 제공하지 않는 동작 수행
  • Lambda / SNS / 외부 시스템 연계 가능
  • Create / Update / Delete 이벤트 처리

활용 예

  • S3 버킷 비우기
  • 설정 파일 자동 생성
  • 온프레미스 시스템 연동

🔄 Stack 생명주기

Create → Update → Delete
  • Create 실패 → 전체 Rollback
  • Update는 부분 반영 가능
  • Stack Policy로 핵심 리소스 보호

🧱 Nested Stack

  • 스택 내부에 스택 포함
  • 대규모 아키텍처 모듈화
  • 계층적 구조 설계에 적합

🌍 Stack Set

  • 하나의 템플릿으로

    • 다계정

    • 다리전

      배포

  • 조직 단위 표준화에 최적


🔧 CloudFormation 고급 팁

  • 콘솔에 보이지 않는 리소스 존재
    • Instance Profile
    • VolumeAttachment
  • 기존 리소스 가져오기(Import)
  • Drift Detection으로 변경 감지
  • LLM을 활용한 템플릿 작성·리팩토링

🏗️ 실전 CloudFormation 아키텍처

User
 ↓
ALB
 ↓
Auto Scaling Group
 ├─ EC2 (AZ A)
 └─ EC2 (AZ B)
       ↓
      EFS
       ↓
    Aurora Cluster

🧠 Part 2. AWS Systems Manager


☁️ AWS Systems Manager 개요

  • AWS 및 온프레미스 노드 통합 관리
  • 운영 자동화 중심 서비스
  • SSM Agent + IAM Role 기반

🧩 Systems Manager 주요 영역

Operation Management
Application Management
Change Management
Node Management
Quick Setup

🔐 SSM Agent

  • EC2 / 온프레미스에 설치
  • Systems Manager와 통신
  • IAM Role 필수
  • Private Subnet에서는 Interface Endpoint 필요

🗂️ Parameter Store

특징

  • Key-Value 저장
  • String / StringList / SecureString
  • IAM + KMS 기반 보안
  • 버전 관리 (최대 100개)
  • Label 기반 참조 가능

대표 활용 패턴

  • AMI 관리
  • DB 설정 중앙 관리
  • Queue / Endpoint 전환
  • 환경별 설정 분리

🌍 Public Parameter

  • AWS가 제공하는 공용 파라미터
  • 리전 / 서비스 정보 제공
  • 하드코딩 제거
  • 자동화 신뢰성 향상

▶ Run Command

  • 다수 노드에 명령 일괄 실행
  • Document 기반
  • 비동기 실행
  • 단발성 작업에 적합

🔐 Session Manager

특징

  • SSH 키 불필요
  • 포트 오픈 불필요
  • Bastion Host 불필요
  • IAM 기반 접근 제어
  • CloudTrail / CloudWatch / S3 로깅
User
 ↓
AWS Systems Manager
 ↓
EC2 (Private Subnet)

⚡ Quick Setup

  • SSM 표준 설정 자동화
  • 내부적으로 CloudFormation 사용
  • 다계정 / 다리전 환경에 적합
  • Drift 자동 감지 및 유지

제공 기능

  • Patch Manager
  • Inventory
  • Resource Scheduler
  • EC2 자동 시작 / 종료
  • CloudWatch Agent 설정

🎯 전체 흐름 아키텍처

IaC (CloudFormation)
  ↓
표준 인프라 구성
  ↓
Systems Manager
  ├─ Parameter Store (설정 관리)
  ├─ Run Command (일괄 명령)
  ├─ Session Manager (보안 접속)
  └─ Quick Setup (운영 자동화)

📌 최종 요약

✅ 반드시 기억해야 할 핵심

  • CloudFormation은 인프라의 설계와 생성

  • Systems Manager는 운영과 자동화

  • Parameter Store는 설정 관리의 중심

  • Session Manager는 SSH를 대체하는 표준 접속 방식

  • Run Command는 긴급·단발 작업용

  • Quick Setup은 대규모 환경의 초기 표준화 도구

  • CloudFormation + Systems Manager 조합이 기본 전제