Skip to content

10. 추가 AWS 서비스 및 리소스 정리


Part 1: 추가 AWS 서비스 소개

이번 챕터에서는 실무에서 자주 사용되지만 앞선 챕터에서 미처 다루지 못한 AWS 서비스 4가지를 소개한다. 이 서비스들은 각각 캐싱, DNS, 이메일, 메시지 큐라는 서로 다른 영역을 담당하며, 현대 클라우드 아키텍처에서 빠질 수 없는 핵심 구성 요소이다.


1. ElastiCache (엘라스티캐시)

개념

ElastiCache는 AWS가 제공하는 완전관리형 인메모리 데이터 스토어(In-Memory Data Store) 서비스이다. 인메모리란 말 그대로 RAM(Random Access Memory)에 데이터를 저장하는 방식을 의미한다.

일반적인 데이터베이스(RDS, DynamoDB 등)는 데이터를 **디스크(Disk)**에 저장한다. 디스크에서 데이터를 읽는 것은 RAM에서 읽는 것보다 수백 배에서 수천 배 느리다. ElastiCache는 자주 조회되는 데이터를 RAM에 미리 올려두어 응답 속도를 극적으로 개선한다.

비유로 이해하기

도서관에서 책을 찾는다고 생각해보자.

  • 디스크 기반 DB = 서고(창고)에서 책을 찾아오는 것. 서고까지 걸어가서, 선반을 뒤져서, 책을 찾아 돌아와야 한다.
  • ElastiCache = 내 책상 위에 자주 보는 책을 미리 꺼내놓은 것. 손만 뻗으면 바로 볼 수 있다.

책상 공간(RAM)은 서고(디스크)보다 훨씬 작지만, 접근 속도는 비교할 수 없이 빠르다.

지원 엔진

ElastiCache는 두 가지 오픈소스 인메모리 엔진을 지원한다.

항목RedisMemcached
데이터 구조문자열, 해시, 리스트, 셋, 정렬 셋 등 다양단순 키-값(Key-Value)만 지원
데이터 영속성스냅샷(Snapshot) 및 AOF로 디스크 백업 가능순수 캐시 전용, 재시작 시 데이터 소실
복제(Replication)읽기 복제본(Read Replica) 지원미지원
클러스터링Redis Cluster 모드 지원여러 노드에 자동 분산
사용 사례세션 관리, 리더보드, 실시간 분석, 메시지 브로커단순 캐싱, HTML 조각 캐싱

주요 사용 사례

  1. 데이터베이스 캐싱: RDS나 DynamoDB 앞단에 캐시 레이어를 두어 DB 부하를 줄인다.
  2. 세션 스토어(Session Store): 웹 애플리케이션의 사용자 세션 정보를 저장한다. EC2 인스턴스가 여러 대일 때 세션 공유가 가능하다.
  3. 실시간 리더보드: 게임이나 랭킹 시스템에서 정렬된 데이터를 초고속으로 조회한다.
  4. API 응답 캐싱: 외부 API 호출 결과를 캐싱하여 반복 호출을 줄인다.

아키텍처 예시

[사용자] → [ELB] → [EC2 애플리케이션]

                    ┌────┴────┐
                    │         │
              [ElastiCache]  [RDS]
              (캐시 히트 시  (캐시 미스 시
               즉시 응답)    DB 조회 후
                             캐시에 저장)

작동 흐름:

  1. 애플리케이션이 데이터 요청을 받는다.
  2. 먼저 ElastiCache에서 해당 데이터를 찾는다 (캐시 히트, Cache Hit).
  3. 캐시에 데이터가 있으면 즉시 반환한다 (수 밀리초).
  4. 캐시에 없으면(캐시 미스, Cache Miss) RDS에서 조회한다.
  5. RDS에서 가져온 데이터를 ElastiCache에 저장(캐싱)한 뒤 반환한다.
  6. 다음 동일 요청은 캐시에서 바로 응답한다.

비용 고려사항

  • ElastiCache는 노드 유형과 개수에 따라 과금된다.
  • Free Tier에서 cache.t2.micro 또는 cache.t3.micro 노드를 월 750시간 무료로 사용할 수 있다 (12개월간).
  • 실습 후 반드시 클러스터를 삭제해야 한다.

2. Route 53 (라우트 53)

개념

Route 53은 AWS의 완전관리형 DNS(Domain Name System) 서비스이다. "53"이라는 이름은 DNS가 사용하는 포트 번호 53에서 유래했다.

DNS란 사람이 읽을 수 있는 도메인 이름(예: www.example.com)을 컴퓨터가 이해하는 IP 주소(예: 192.0.2.1)로 변환하는 시스템이다.

비유로 이해하기

DNS는 인터넷의 전화번호부이다.

  • 친구에게 전화할 때 전화번호(IP 주소)를 외우지 않고 연락처 이름(도메인 이름)으로 검색하는 것과 같다.
  • www.example.com이라고 입력하면, DNS가 이 이름에 해당하는 IP 주소 192.0.2.1을 찾아 브라우저에 알려준다.
  • Route 53은 이 전화번호부를 AWS가 관리해주는 서비스이다.

DNS 동작 원리 상세

[사용자가 www.example.com 입력]


[브라우저 DNS 캐시 확인] ─── 캐시 히트 → 바로 접속
         │ 캐시 미스

[OS DNS 캐시 확인] ─── 캐시 히트 → 바로 접속
         │ 캐시 미스

[ISP의 DNS 리졸버(Recursive Resolver)]


[루트 네임서버(.)] → [TLD 네임서버(.com)] → [Route 53 네임서버]


                                          [IP 주소 192.0.2.1 반환]


                                          [브라우저가 해당 서버에 접속]

Route 53의 세 가지 핵심 기능

1) 도메인 등록(Domain Registration)

  • example.com 같은 도메인을 직접 구매하고 등록할 수 있다.
  • .com, .net, .org, .io 등 다양한 TLD(Top-Level Domain)를 지원한다.
  • 연간 갱신 비용이 발생한다 (예: .com은 연간 약 $12).

2) DNS 라우팅(DNS Routing)

도메인 이름을 실제 리소스(EC2, ELB, S3, CloudFront 등)에 연결한다. Route 53은 다양한 라우팅 정책을 지원한다.

라우팅 정책설명사용 사례
단순 라우팅(Simple)하나의 리소스로 트래픽을 보냄단일 서버
가중치 기반(Weighted)비율에 따라 트래픽을 분배A/B 테스트, 점진적 배포
지연 시간 기반(Latency)가장 응답이 빠른 리전으로 라우팅글로벌 서비스
장애 조치(Failover)주 서버 장애 시 백업 서버로 전환고가용성(HA) 구성
지리적 위치(Geolocation)사용자 위치 기반 라우팅지역별 콘텐츠 제공
다중 값 응답(Multivalue)여러 IP를 반환, 헬스체크와 결합간단한 부하 분산

3) 헬스 체크(Health Check)

  • 연결된 리소스의 상태를 주기적으로 확인한다.
  • 서버가 응답하지 않으면 해당 리소스로 트래픽을 보내지 않는다.
  • HTTP, HTTPS, TCP 프로토콜로 헬스 체크를 설정할 수 있다.
  • CloudWatch 경보와 연동하여 장애 알림을 보낼 수 있다.

DNS 레코드 타입

레코드 타입설명예시
A도메인 → IPv4 주소example.com → 192.0.2.1
AAAA도메인 → IPv6 주소example.com → 2001:db8::1
CNAME도메인 → 다른 도메인www.example.com → example.com
MX메일 서버 지정example.com → mail.example.com
NS네임서버 지정example.com → ns-1.awsdns.com
AliasAWS 리소스 직접 연결 (Route 53 전용)example.com → d123.cloudfront.net

참고: Alias 레코드는 Route 53 고유의 기능으로, AWS 리소스(ELB, CloudFront, S3 등)를 도메인의 루트(Zone Apex)에 직접 연결할 수 있다. CNAME은 루트 도메인에 사용할 수 없지만 Alias는 가능하다.

비용 고려사항

  • 호스팅 영역(Hosted Zone) 1개당 월 $0.50.
  • DNS 쿼리 100만 건당 $0.40 (표준 쿼리 기준).
  • 도메인 등록비는 TLD에 따라 다르다.
  • Free Tier에 포함되지 않으므로 실습 후 삭제를 권장한다.

3. SES (Simple Email Service, 심플 이메일 서비스)

개념

SES는 AWS의 대규모 이메일 발송 서비스이다. 개발자가 애플리케이션에서 프로그래밍 방식으로 이메일을 보낼 수 있도록 설계되었다.

일반 이메일 서비스(Gmail, Outlook 등)와 달리, SES는 수만에서 수백만 통의 이메일을 안정적으로 발송하는 데 최적화되어 있다.

비유로 이해하기

일반 이메일 = 개인이 편지를 한 통씩 보내는 것. SES = 기업이 운영하는 대형 우편 발송 센터. 수십만 통의 편지를 자동으로 분류하고, 주소를 인쇄하고, 한 번에 발송한다.

개인 편지와 달리, 대량 발송 센터는 배달 성공률 추적, 반송 처리, 수신 거부 관리까지 체계적으로 처리한다.

주요 사용 사례

이메일 유형설명예시
트랜잭션 이메일사용자 행동에 의해 자동 발송회원가입 인증, 비밀번호 재설정, 주문 확인
마케팅 이메일프로모션/홍보 목적 발송할인 쿠폰, 신제품 안내, 뉴스레터
알림 이메일시스템 상태/이벤트 알림결제 완료, 배송 출발, 서버 장애 알림
대량 이메일고객 세그먼트별 타겟 발송지역별 프로모션, 관심사별 콘텐츠

핵심 기능 상세

1) 발신자 인증(Sender Verification)

이메일 스팸 방지를 위해 SES는 발신 도메인 또는 이메일 주소를 인증해야 한다.

  • 이메일 주소 인증: 개별 이메일 주소를 인증 (개발/테스트용).
  • 도메인 인증: 도메인 전체를 인증 (운영 환경용). DNS에 DKIM, SPF 레코드를 추가한다.

2) 발송 평판 관리(Sending Reputation)

  • SES는 바운스율(Bounce Rate), 컴플레인율(Complaint Rate)을 모니터링한다.
  • 바운스율이 5%를 초과하거나 컴플레인율이 0.1%를 초과하면 발송이 제한될 수 있다.
  • 전용 IP(Dedicated IP)를 사용하면 다른 사용자의 평판 영향을 받지 않는다.

3) 샌드박스 모드(Sandbox Mode)

  • 새 SES 계정은 기본적으로 샌드박스 모드로 시작한다.
  • 샌드박스에서는 인증된 이메일 주소로만 발송 가능하다.
  • 운영 환경으로 사용하려면 AWS에 프로덕션 액세스 요청을 해야 한다.

비용 고려사항

  • EC2에서 발송 시: 처음 62,000통/월 무료 (이후 1,000통당 $0.10).
  • EC2 외부에서 발송 시: 1,000통당 $0.10.
  • 첨부 파일은 GB당 $0.12 추가.

4. SQS (Simple Queue Service, 심플 큐 서비스)

개념

SQS는 AWS의 완전관리형 메시지 큐(Message Queue) 서비스이다. 분산 시스템의 구성 요소 간에 메시지를 비동기적으로 전달하는 중간 매개체 역할을 한다.

SQS는 AWS에서 가장 오래된 서비스 중 하나로, 2006년에 출시되었다. 현대 **마이크로서비스 아키텍처(Microservice Architecture)**에서 서비스 간 결합도를 낮추는 데 필수적인 컴포넌트이다.

비유로 이해하기

놀이공원 줄서기를 생각해보자.

  • 놀이기구(처리 서버)는 한 번에 정해진 인원만 태울 수 있다.
  • 손님(요청)이 몰려도 줄(Queue)에서 기다린다.
  • 먼저 줄 선 사람이 먼저 탑승한다 (FIFO: First In, First Out).
  • 줄이 아무리 길어져도 놀이기구가 고장 나지 않는다 (과부하 방지).
  • 놀이기구가 일시적으로 멈춰도 줄에 있는 사람들은 사라지지 않는다 (메시지 보존).

SQS가 바로 이 "줄" 역할을 한다. 보내는 쪽(Producer)과 받는 쪽(Consumer)을 분리하여 시스템 안정성을 확보한다.

큐의 두 가지 유형

항목표준 큐(Standard Queue)FIFO 큐(FIFO Queue)
순서 보장최선 노력(Best-Effort) 순서엄격한 FIFO 순서 보장
중복 가능성간혹 중복 메시지 발생 가능정확히 한 번만 전달(Exactly-Once)
처리량거의 무제한초당 최대 300건 (배치 시 3,000건)
사용 사례로그 처리, 알림, 일반 작업 큐금융 거래, 주문 처리 등 순서가 중요한 경우

핵심 동작 방식

[생산자(Producer)]          [SQS 큐]              [소비자(Consumer)]
      │                       │                         │
      │──── 메시지 전송 ────▶│                         │
      │                       │──── 메시지 수신 ────▶  │
      │                       │   (Visibility Timeout)  │
      │                       │                         │── 처리 완료
      │                       │◀── 메시지 삭제 ─────── │
  1. **생산자(Producer)**가 메시지를 큐에 전송한다.
  2. 메시지는 큐에 저장되며 최대 14일간 보존된다 (기본 4일).
  3. **소비자(Consumer)**가 큐에서 메시지를 가져간다(Poll).
  4. 메시지를 가져가면 가시성 제한 시간(Visibility Timeout) 동안 다른 소비자에게 보이지 않는다.
  5. 소비자가 처리를 완료하면 큐에서 메시지를 삭제한다.
  6. 가시성 제한 시간 내에 삭제하지 않으면 메시지가 다시 큐에 나타나 다른 소비자가 처리한다.

Apache Kafka와의 비교

SQS는 종종 Apache Kafka와 비교된다. 둘 다 메시지를 중개하는 역할을 하지만 설계 철학이 다르다.

항목SQSApache Kafka
관리AWS 완전관리형직접 설치/운영 또는 MSK(Managed Streaming for Kafka) 사용
메시지 소비소비 후 삭제보존 기간 동안 여러 번 읽기 가능
스케일링자동파티션(Partition) 수동 설정
순서 보장FIFO 큐에서만파티션 내 보장
사용 사례작업 큐, 비동기 처리이벤트 스트리밍, 로그 집계, 실시간 파이프라인

AWS에서 Kafka가 필요하다면 Amazon MSK(Managed Streaming for Apache Kafka) 서비스를 사용할 수 있다.

실무 활용 예시

주문 처리 시스템:

[웹 주문 접수] → [SQS 주문 큐] → [주문 처리 서버]
                      │                  │
                      │             ┌────┴────┐
                      │             │         │
                      │        [재고 확인]  [결제 처리]
                      │             │         │
                      │             └────┬────┘
                      │                  │
                      │            [SQS 알림 큐] → [이메일 발송 서버]

이 구조의 장점:

  • 주문이 폭주해도 큐가 완충 역할을 하여 서버가 과부하되지 않는다.
  • 주문 처리 서버가 일시적으로 다운되어도 메시지가 큐에 보존된다.
  • 각 단계를 독립적으로 확장(Scale)할 수 있다.

비용 고려사항

  • 매월 첫 100만 요청 무료 (Free Tier 기간과 무관, 영구 무료).
  • 이후 100만 요청당 $0.40 (표준 큐) / $0.50 (FIFO 큐).

Part 2: AWS 서비스 전체 요약 맵

지금까지 학습한 모든 AWS 서비스를 카테고리별로 정리한다. 각 서비스가 어떤 역할을 하고, 서로 어떤 관계에 있는지 전체 그림을 파악하는 것이 중요하다.

Mermaid 다이어그램 1: AWS 서비스 전체 맵

카테고리별 서비스 요약표

카테고리서비스한 줄 설명
컴퓨팅EC2가상 서버 인스턴스
Elastic Beanstalk코드만 올리면 인프라 자동 구성 (PaaS)
Lightsail소규모 프로젝트용 간편 서버
Auto Scaling트래픽에 따라 EC2 인스턴스 자동 증감
스토리지S3무제한 객체 스토리지 (파일, 이미지, 백업)
EBSEC2에 연결하는 가상 하드디스크
데이터베이스RDS (MySQL)완전관리형 관계형 데이터베이스
DynamoDB완전관리형 키-값/문서 NoSQL 데이터베이스
네트워킹ELB들어오는 트래픽을 여러 서버에 분산
CloudFront전 세계 엣지 로케이션에서 콘텐츠 전송 (CDN)
Route 53DNS 서비스 (도메인 이름 해석)
Elastic IP인스턴스에 연결하는 고정 공인 IP
보안IAM사용자/그룹/역할 기반 접근 제어
Security Group인스턴스 레벨 방화벽 (인바운드/아웃바운드 규칙)
모니터링CloudWatch지표 수집, 경보 설정, 대시보드, 로그 관리
메시징SES대량 이메일 발송
SQS서비스 간 비동기 메시지 큐
캐싱ElastiCacheRedis/Memcached 기반 인메모리 캐시

Mermaid 다이어그램 2: 추가 서비스의 아키텍처 위치

다이어그램 해설:

  1. Route 53 (DNS 계층): 사용자의 첫 관문. 도메인 이름을 IP 주소로 변환하여 어디로 가야 하는지 알려준다.
  2. ElastiCache (캐시 계층): 애플리케이션과 데이터베이스 사이에 위치. DB 부하를 줄이고 응답 속도를 높인다.
  3. SQS (비동기 처리 계층): 즉시 처리할 필요 없는 작업을 큐에 넣어 워커 서버가 순차적으로 처리한다.
  4. SES (알림 계층): 처리 결과나 알림을 이메일로 사용자에게 전달한다.

Part 3: 리소스 일괄 정리 체크리스트

왜 리소스 정리가 중요한가?

AWS는 사용한 만큼 과금되는 구조이다. 실습용으로 생성한 리소스를 삭제하지 않으면 예상치 못한 비용이 발생할 수 있다.

실제 사례: EC2 인스턴스를 중지(Stop)만 하고 종료(Terminate)하지 않아 EBS 볼륨 요금이 계속 청구된 경우, 사용하지 않는 Elastic IP에서 시간당 $0.005가 과금되어 한 달에 $3.60이 청구된 경우 등이 있다.

삭제 순서의 원칙

리소스 간에는 **의존 관계(Dependency)**가 있다. 예를 들어, EC2 인스턴스를 삭제하기 전에 해당 인스턴스에 연결된 Elastic IP를 먼저 릴리즈해야 한다. 아래 순서는 의존 관계를 고려하여 정리한 권장 삭제 순서이다.

Mermaid 다이어그램 3: 리소스 정리 체크리스트 흐름도


상세 삭제 가이드

1단계: 컴퓨팅 리소스 정리

1) EC2: 모든 인스턴스 종료 (Terminate)

EC2 콘솔 → 인스턴스 → 모든 리전 확인 → 실행 중/중지됨 인스턴스 선택
→ 인스턴스 상태 → 인스턴스 종료 (Terminate)
  • 중요: "중지(Stop)"가 아니라 "종료(Terminate)"를 선택해야 한다.
  • 중지는 인스턴스를 일시 정지하는 것이고, 종료는 영구 삭제이다.
  • 중지 상태에서도 EBS 볼륨 요금은 계속 청구된다.
  • 모든 리전을 확인해야 한다. 서울(ap-northeast-2) 리전만 확인하고 다른 리전에 남아있는 인스턴스를 놓치는 경우가 많다.

인스턴스 종료 후 상태가 "terminated"로 바뀌면 잠시 후 목록에서 자동으로 사라진다.

2) EBS: 스냅샷 삭제

EC2 콘솔 → 탄력적 블록 스토어 → 스냅샷 → 선택 → 삭제
  • EC2 인스턴스를 종료하면 기본 EBS 볼륨은 함께 삭제된다 (DeleteOnTermination 기본값이 true인 경우).
  • 하지만 수동으로 생성한 스냅샷은 자동 삭제되지 않는다.
  • 스냅샷은 S3에 저장되며 GB당 월 $0.05가 과금된다.

3) AMI: 등록 취소 + 연관 스냅샷 삭제

EC2 콘솔 → AMI → 선택 → 작업 → AMI 등록 취소
→ 이후 연관된 스냅샷도 별도로 삭제
  • AMI를 등록 취소(Deregister)해도 연관 스냅샷은 자동 삭제되지 않는다.
  • 반드시 AMI 등록 취소 후 연관 스냅샷을 추가로 삭제해야 한다.

2단계: 스토리지 및 데이터베이스 정리

4) S3: 객체 비우기 -> 버킷 삭제

S3 콘솔 → 버킷 선택 → "비우기(Empty)" → 확인
→ 비워진 버킷 선택 → "삭제(Delete)" → 버킷 이름 입력하여 확인
  • S3 버킷은 비어있어야만 삭제할 수 있다.
  • 먼저 "비우기"로 모든 객체를 삭제한 뒤 버킷을 삭제한다.
  • **버전 관리(Versioning)**가 활성화된 버킷은 이전 버전 객체도 모두 삭제해야 한다.

5) RDS: 인스턴스 삭제 + 스냅샷 삭제

RDS 콘솔 → 데이터베이스 → 선택 → 작업 → 삭제
→ "최종 스냅샷 생성 여부" 체크 해제 → 확인
→ 이후 수동 스냅샷도 별도로 삭제
  • 삭제 시 "최종 스냅샷 생성" 옵션이 기본으로 체크되어 있다. 실습용이라면 체크를 해제한다.
  • 자동 백업은 인스턴스 삭제 시 함께 삭제되지만, 수동 스냅샷은 남아있다.
  • 삭제 보호(Deletion Protection)가 활성화되어 있으면 먼저 비활성화해야 한다.

6) DynamoDB: 테이블 삭제

DynamoDB 콘솔 → 테이블 → 선택 → 삭제
→ "CloudWatch 경보 삭제" 체크 → 확인 텍스트 입력 → 삭제
  • DynamoDB는 테이블 단위로 삭제한다.
  • 온디맨드 모드 테이블도 삭제하지 않으면 최소 요금이 발생할 수 있다.

3단계: 네트워크 및 배포 정리

7) CloudFront: 비활성화 -> 삭제

CloudFront 콘솔 → 배포 선택 → "비활성화(Disable)" → 상태가 "Deployed"로 바뀔 때까지 대기
→ 다시 선택 → "삭제(Delete)"
  • CloudFront는 즉시 삭제가 불가능하다. 먼저 비활성화하고 배포가 완료될 때까지 기다려야 한다.
  • 비활성화 후 배포 완료까지 15~20분 소요될 수 있다.

8) CloudWatch: 경보 삭제

CloudWatch 콘솔 → 경보 → 모든 경보 → 선택 → 삭제
  • 경보 자체는 비용이 거의 없지만, 깔끔한 정리를 위해 삭제한다.
  • 경보에 연결된 SNS 주제가 있다면 함께 삭제를 고려한다.

9) ELB: 로드 밸런서 삭제

EC2 콘솔 → 로드 밸런서 → 선택 → 작업 → 삭제
→ 대상 그룹도 확인하여 삭제
  • 로드 밸런서 삭제 후 **대상 그룹(Target Group)**도 별도로 삭제해야 한다.
  • 리스너(Listener) 규칙은 로드 밸런서와 함께 자동 삭제된다.

10) Auto Scaling: 그룹 삭제

EC2 콘솔 → Auto Scaling 그룹 → 선택 → 삭제
→ 시작 템플릿(Launch Template)도 확인하여 삭제
  • Auto Scaling 그룹을 삭제하면 관리 중인 EC2 인스턴스도 자동으로 종료된다.
  • 연관된 시작 템플릿(Launch Template)이나 시작 구성(Launch Configuration)도 삭제한다.

4단계: 관리형 서비스 정리

11) Elastic Beanstalk: 애플리케이션 삭제 + S3 수동 삭제

Elastic Beanstalk 콘솔 → 환경 → 종료(Terminate)
→ 애플리케이션 → 삭제
→ S3 콘솔에서 elasticbeanstalk 관련 버킷 수동 삭제
  • Elastic Beanstalk 환경을 종료하면 EC2, ELB, Auto Scaling 등 관련 리소스가 자동 삭제된다.
  • 하지만 S3 버킷(애플리케이션 소스 코드 저장용)은 자동 삭제되지 않는다.
  • S3 콘솔에서 elasticbeanstalk- 접두사가 붙은 버킷을 찾아 수동으로 삭제해야 한다.

12) Lightsail: 인스턴스 삭제

Lightsail 콘솔 → 인스턴스 → 삭제 아이콘(쓰레기통) → 확인
→ 고정 IP가 있다면 별도로 분리 및 삭제
→ 스냅샷이 있다면 별도로 삭제
  • Lightsail은 EC2 콘솔이 아닌 별도의 Lightsail 콘솔에서 관리한다.
  • 고정 IP(Static IP)가 연결되어 있으면 인스턴스 삭제 후 자동 해제되지 않으므로 직접 삭제한다.

5단계: IP 및 보안 정리

13) Elastic IP: 릴리즈

EC2 콘솔 → 탄력적 IP → 선택 → 작업 → 탄력적 IP 주소 릴리즈
  • 핵심: Elastic IP는 인스턴스에 연결되어 있을 때는 무료이지만, 연결되지 않은 상태에서는 시간당 과금된다.
  • EC2 인스턴스를 종료한 후 Elastic IP를 릴리즈하지 않으면 비용이 계속 발생한다.
  • 시간당 약 $0.005로 적은 금액이지만, 여러 개가 쌓이면 무시할 수 없다.

14) IAM: 사용자/그룹 삭제 (필요시)

IAM 콘솔 → 사용자 → 선택 → 삭제
→ 그룹 → 선택 → 삭제
→ 역할 → 불필요한 역할 삭제
→ 정책 → 커스텀 정책 삭제
  • IAM 자체는 무료 서비스이므로 비용 발생은 없다.
  • 하지만 보안 측면에서 불필요한 사용자와 액세스 키는 삭제하는 것이 좋다.
  • 루트 계정의 액세스 키가 있다면 반드시 비활성화 또는 삭제한다.

삭제 시 주의사항 요약

주의사항설명
운영 데이터 백업삭제 전 반드시 필요한 데이터는 백업한다. S3에서 다운로드하거나 RDS 스냅샷을 생성해둔다.
모든 리전 확인AWS 콘솔은 리전별로 리소스를 표시한다. 서울(ap-northeast-2)만 확인하지 말고 사용한 모든 리전을 점검한다.
의존 관계 확인삭제 순서를 지키지 않으면 "리소스가 사용 중"이라는 오류가 발생할 수 있다.
삭제 보호 비활성화RDS, EC2 등에 삭제 보호(Deletion Protection)가 설정되어 있으면 먼저 해제해야 한다.
CloudFront 비활성화 대기CloudFront는 비활성화 후 즉시 삭제할 수 없다. 15~20분 대기가 필요하다.

Part 4: 비용 관리 실전 가이드

Free Tier 한도 관리

AWS Free Tier는 크게 세 가지 유형이 있다.

유형설명예시
12개월 무료계정 생성 후 12개월간 제공EC2 t2.micro 750시간/월, S3 5GB, RDS db.t2.micro 750시간/월
항상 무료기간 제한 없이 영구 제공DynamoDB 25GB, Lambda 100만 요청/월, SQS 100만 요청/월
단기 체험특정 서비스 최초 사용 시Lightsail 첫 3개월, Redshift 2개월 등

Free Tier 12개월 기한 관리 팁:

  • 계정 생성일을 기록해두고 11개월차에 미사용 리소스를 정리한다.
  • 12개월이 지나면 t2.micro EC2도 시간당 요금이 부과된다.
  • 결제 대시보드에서 Free Tier 사용량을 수시로 확인한다.

결제 대시보드 활용

AWS 콘솔 우측 상단 → 계정 이름 클릭 → "결제 대시보드(Billing Dashboard)"

결제 대시보드에서 확인해야 할 핵심 항목:

메뉴용도
청구서(Bills)이번 달 서비스별 상세 비용 확인
Free Tier 사용량각 서비스별 Free Tier 한도 대비 현재 사용량
비용 탐색기(Cost Explorer)기간별, 서비스별 비용 추이 그래프
예산(Budgets)월별 예산 설정 및 초과 시 알림

청구 알림 설정 (강력 권장)

실습 시 예상치 못한 요금 발생을 방지하기 위해 청구 알림을 반드시 설정하자.

방법 1: 예산 알림 (AWS Budgets)

결제 대시보드 → 예산(Budgets) → 예산 생성
→ 비용 예산 → 월별 예산 금액 설정 (예: $5)
→ 알림 임계값 설정 (예: 예산의 80% 도달 시)
→ 이메일 수신자 입력 → 생성

방법 2: CloudWatch 결제 알림

CloudWatch → 경보 → 경보 생성
→ 지표: Billing → EstimatedCharges
→ 임계값: 예상 비용 > $1 (원하는 금액)
→ SNS 주제 생성 → 이메일 구독 확인
→ 경보 생성

두 방법 중 AWS Budgets가 더 직관적이고 설정이 간편하므로 초보자에게 권장한다.


Part 5: 전체 강의 학습 로드맵

Mermaid 다이어그램 4: 학습 로드맵

학습 단계별 요약

단계챕터핵심 학습 내용
기초00~01클라우드 컴퓨팅 개념, AWS 계정 생성, IAM으로 보안 체계 수립
컴퓨팅02~04EC2로 서버 생성/관리, AMI와 스냅샷으로 백업, ELB와 Auto Scaling으로 확장성 확보
스토리지/CDN05~06S3로 파일 저장, CloudFront로 전 세계에 빠르게 배포
데이터07RDS로 관계형 DB 운영, DynamoDB로 NoSQL 활용
배포/운영08~09Elastic Beanstalk로 간편 배포, CloudWatch로 모니터링
마무리10ElastiCache, Route 53, SES, SQS 추가 서비스 학습, 리소스 정리

핵심 정리

추가 서비스 한눈에 보기

서비스핵심 역할비유실무 사용 사례
ElastiCache인메모리 캐싱책상 위에 꺼내놓은 자주 보는 책DB 캐싱, 세션 스토어, 리더보드
Route 53DNS 관리인터넷 전화번호부도메인 등록, DNS 라우팅, 헬스 체크
SES대량 이메일 발송대형 우편 발송 센터마케팅 메일, 트랜잭션 메일
SQS메시지 큐놀이공원 줄서기비동기 작업 처리, 마이크로서비스 간 통신

비용 관리 3대 원칙

  1. 실습 후 리소스 정리는 습관화한다. 매 실습 종료 시 생성한 리소스를 즉시 삭제한다.
  2. AWS Billing Dashboard를 주기적으로 확인한다. 최소 주 1회 결제 대시보드에서 비용을 점검한다.
  3. Free Tier 한도 초과 감지를 위한 청구 알림을 설정한다. AWS Budgets에서 월 $1~$5 예산 알림을 설정해두면 예상 외 과금을 즉시 감지할 수 있다.

리소스 정리 핵심 체크리스트

  • [ ] EC2 인스턴스 모두 종료(Terminate) 확인
  • [ ] EBS 스냅샷 삭제 확인
  • [ ] AMI 등록 취소 + 연관 스냅샷 삭제 확인
  • [ ] S3 버킷 비우기 + 삭제 확인
  • [ ] RDS 인스턴스 삭제 + 스냅샷 삭제 확인
  • [ ] DynamoDB 테이블 삭제 확인
  • [ ] CloudFront 비활성화 + 삭제 확인
  • [ ] CloudWatch 경보 삭제 확인
  • [ ] ELB 로드 밸런서 삭제 확인
  • [ ] Auto Scaling 그룹 삭제 확인
  • [ ] Elastic Beanstalk 환경 종료 + S3 수동 삭제 확인
  • [ ] Lightsail 인스턴스 삭제 확인
  • [ ] Elastic IP 릴리즈 확인
  • [ ] IAM 불필요한 사용자/그룹 삭제 확인
  • [ ] 모든 리전 리소스 확인 완료
  • [ ] 결제 대시보드에서 잔여 과금 항목 없음 확인

이것으로 AWS 클라우드 컴퓨팅 기초 학습을 마무리한다. 클라우드 서비스는 빠르게 발전하고 있으므로, 이 기초를 바탕으로 공식 문서와 실습을 통해 지속적으로 학습하는 것이 중요하다. 특히 AWS Well-Architected Framework의 5대 원칙(운영 우수성, 보안, 안정성, 성능 효율성, 비용 최적화)을 항상 염두에 두고 아키텍처를 설계하길 권장한다.