🧩 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 조합이 기본 전제