오늘은 AWS Solutions Architect Associate (SAA-C03) 핵심 요약본을 공부했다. 분석(Analytics)부터 데이터베이스(Database) 영역까지, 클라우드 아키텍처의 허리가 되는 주요 서비스들의 정의와 키워드를 정리해보았다.
1. 데이터 분석 (Analytics)
데이터를 효율적으로 저장, 처리, 분석하는 서비스들이다.
- Amazon Athena: 서버리스로, 표준 SQL을 사용해 S3에 저장된 데이터를 간편하게 분석하는 서비스다. 로드가 필요 없으며 실행한 쿼리 비용만 지불한다.
- Amazon EMR: Hadoop 프레임워크(Spark, Hive 등)를 사용해 빅데이터를 처리하는 클라우드 플랫폼이다.
- AWS Glue: 서버리스 데이터 통합 서비스로, ETL(추출, 변형, 로드) 작업을 수행하고 데이터 카탈로그를 생성해 Athena나 Redshift에서 검색할 수 있게 돕는다.
- Amazon Kinesis: 스트리밍 데이터를 실시간으로 수집, 처리, 분석한다.
- Data Streams: 데이터 스트림 캡처/처리
- Data Firehose: 데이터 스토어(S3, Redshift 등)로 데이터 로드.
- Amazon Redshift: PostgreSQL 기반의 데이터 웨어하우스(OLAP)로, 대규모 병렬 쿼리(MPP) 실행이 가능하다.
2. 애플리케이션 통합 (Application Integration)
마이크로서비스 아키텍처에서 서비스 간의 통신을 돕는 서비스들이다.
- Amazon SQS (Simple Queue Service): 메시지 대기열 서비스로, 생산자와 소비자를 분리(Decoupling)하는 버퍼 역할을 한다. FIFO(순서 보장)와 DLQ(처리 실패 메시지 보관) 기능이 있다.
- Amazon SNS (Simple Notification Service): Pub/Sub 방식을 사용하는 메시징 서비스로, 하나의 메시지를 다수의 수신자(이메일, Lambda, SQS 등)에게 전송(Fan-out)한다.
- Amazon EventBridge: 서버리스 이벤트 버스로, AWS 서비스나 SaaS 애플리케이션의 이벤트를 사용하여 규칙에 따라 대상을 연결한다.
3. 컴퓨팅 (Compute)
AWS의 가장 기본이 되는 서버 및 연산 자원이다.
- Amazon EC2: 크기 조정이 가능한 클라우드 컴퓨팅 서비스다.
- 보안 그룹(Security Group): 인스턴스 레벨의 방화벽으로 트래픽을 제어한다.
- 가격 옵션: 온디맨드, 예약 인스턴스(RI), 스팟 인스턴스(저렴하지만 중단 가능성 있음) 등이 있다
- EC2 Auto Scaling: 트래픽에 따라 인스턴스 수를 자동으로 늘리거나(Scale-out) 줄여(Scale-in) 안정적인 성능을 유지한다.
- AWS Lambda: 서버를 프로비저닝하지 않고 코드를 실행하는 이벤트 중심의 서버리스 컴퓨팅이다 (이 내용은 PDF 뒤쪽 상세 설명 참조).
4. 컨테이너 (Containers)
Docker 컨테이너를 관리하고 오케스트레이션하는 서비스다.
- Amazon ECR: 컨테이너 이미지를 저장하고 관리하는 레지스트리다 (Docker Hub와 유사).
- Amazon ECS: AWS 전용 컨테이너 오케스트레이션 서비스로, EC2 모드와 Fargate(서버리스) 모드가 있다.
- Amazon EKS: 관리형 Kubernetes 서비스로, 기존 쿠버네티스 도구와 호환된다.
5. 데이터베이스 (Database)
데이터의 성격에 따라 관계형과 비관계형을 적절히 선택해야 한다.
- Amazon Aurora: MySQL/PostgreSQL 호환 완전 관리형 DB로, 기존 RDS보다 성능이 뛰어나며 3개 AZ에 데이터 복사본을 6개 저장하여 고가용성을 보장한다.
- Amazon DynamoDB: 완전 관리형 NoSQL(키-값) 데이터베이스로, 규모에 관계없이 빠른 성능을 제공하며 서버리스 형태다.
- Amazon ElastiCache: Redis 또는 Memcached 호환 인메모리 데이터 스토어로, 읽기 중심 워크로드의 DB 부하를 줄이고 속도를 높인다.
- Amazon RDS: SQL을 사용하는 관계형 데이터베이스(MySQL, PostgreSQL, MariaDB 등)를 쉽게 설치 및 운영하게 해주는 서비스다. Multi-AZ를 통해 재해 복구를 지원한다.
오늘의 학습 회고 백엔드 개발을 공부하면서 접했던 Spring Boot와 연동되는 RDS, Redis(ElastiCache) 등의 개념을 다시 정리할 수 있었다. 특히 MSA 환경에서 중요한 SQS와 SNS의 차이, 그리고 데이터 분석을 위한 Redshift와 Athena의 용도 차이를 명확히 하는 데 집중했다. 다음 모각코 때는 네트워킹(VPC)과 보안 파트를 집중적으로 파헤쳐 봐야겠다.