컨테이너 기반 아키텍처와 서버리스 아키텍처를 혼합한 쇼핑몰 웹서비스를 구축하려면 AWS의 다양한 기술을 익혀야 합니다. 이를 위해 필요한 AWS 기술들을 기본 개념부터 고급 아키텍처 관리까지 단계별로 정리해보겠습니다. 이 순서는 학습 난이도와 실습 연계 가능성을 고려한 것입니다.
1. 기초 개념 학습
1-1. AWS 기본 개념 및 관리
- AWS 콘솔과 AWS CLI: AWS 리소스를 관리하기 위한 기본 도구.
- CLI 사용법과 AWS 계정 관리 방법 학습.
- IAM (Identity and Access Management): 사용자 및 권한 관리.
- 사용자 및 역할 정의, 권한 부여, 정책 설정 등.
1-2. 네트워크 및 보안
- VPC (Virtual Private Cloud): 네트워크 구성의 기초. 서브넷, 라우팅 테이블, 인터넷 게이트웨이, NAT 게이트웨이 등 학습.
- Security Groups와 Network ACLs: 인스턴스 및 네트워크 보안 설정.
- Route 53: DNS 설정 및 도메인 관리.
2. 컴퓨팅 리소스
2-1. Amazon EC2
- EC2 인스턴스 생성 및 관리: 기본적인 서버 설정과 EC2 인스턴스 관리 방법.
- EBS (Elastic Block Store): EC2 인스턴스의 블록 스토리지 관리.
- EC2 Auto Scaling: 오토스케일링 그룹을 사용해 서버 수를 자동으로 조절하는 방법.
2-2. Elastic Load Balancing (ELB)
- Application Load Balancer (ALB): 트래픽 부하를 여러 EC2 인스턴스 또는 컨테이너로 분산.
- ALB 타겟 그룹 설정 및 헬스체크.
3. 컨테이너 관리 및 오케스트레이션
3-1. Docker 및 컨테이너 기초
- Docker 기본 개념: 컨테이너 이미지 생성 및 실행 방법 학습.
- Dockerfile 작성: 애플리케이션 컨테이너화 방법.
3-2. Amazon ECS (Elastic Container Service)
- ECS 클러스터 구성: EC2 기반과 Fargate 기반 클러스터 설정.
- 컨테이너 태스크 및 서비스: 여러 컨테이너를 ECS에 배포하고 자동 확장하는 방법 학습.
3-3. Amazon ECR (Elastic Container Registry)
- ECR 활용: Docker 이미지를 저장하고 ECS 또는 EKS로 배포.
3-4. Amazon EKS (Elastic Kubernetes Service)
- Kubernetes 기초: 컨테이너를 관리하는 Kubernetes의 기본 개념 학습.
- EKS 클러스터 관리: Kubernetes 클러스터를 통해 애플리케이션 확장 및 관리.
4. 서버리스 아키텍처
4-1. AWS Lambda
- Lambda 함수: 이벤트 기반으로 실행되는 서버리스 함수 생성 및 실행 방법.
- Lambda 트리거 설정: API Gateway, S3, DynamoDB 등과 Lambda를 연동하는 방법.
4-2. API Gateway
- API Gateway 기초: API 엔드포인트 생성, 경로 설정, Lambda 함수 연결 방법.
- 경로별 Lambda 연결 및 API 호출 흐름 이해.
5. 데이터베이스 및 스토리지
5-1. 데이터베이스
- Amazon RDS (Relational Database Service): MySQL, PostgreSQL 등 관계형 데이터베이스 관리 및 연결.
- Amazon DynamoDB: 서버리스 NoSQL 데이터베이스 설정 및 사용법.
5-2. 스토리지 서비스
- Amazon S3 (Simple Storage Service): 파일 저장소로서의 S3 학습.
- S3 버킷 정책 설정, 파일 업로드 및 다운로드.
5-3. 캐시 및 인메모리 데이터 저장소
- Amazon ElastiCache: Redis 또는 Memcached를 사용해 캐시 관리.
- 읽기 성능 향상을 위한 캐시 활용.
6. 메시징 서비스
6-1. Amazon SQS (Simple Queue Service)
- SQS 큐 설정: 메시지 큐를 사용해 비동기 작업 처리.
- Lambda와 SQS 통합: 이벤트 트리거 방식으로 메시지를 처리하는 방법.
6-2. Amazon SNS (Simple Notification Service)
- SNS 주제 설정: 이메일, 문자, 푸시 알림 발송.
7. 모니터링 및 로깅
7-1. Amazon CloudWatch
- CloudWatch 로그 및 메트릭: EC2, Lambda, ECS/EKS의 성능 모니터링.
- 경고 및 알람 설정: 성능 문제나 오류 발생 시 알림 설정.
7-2. AWS X-Ray
- X-Ray를 사용한 분산 추적: 분산 시스템에서의 성능 분석과 문제 해결.
8. 인프라 자동화 및 코드 관리
- CloudFormation 템플릿 작성: 인프라를 코드로 정의하고 자동으로 배포하는 방법.
- 스택 관리: 인프라 변경 사항을 자동으로 관리.
8-2. AWS CDK (Cloud Development Kit)
- CDK 기초: 코드로 인프라를 정의하고 배포하는 방법.
- 프로그래밍 언어를 사용한 인프라 자동화.
9. 네트워크 및 엣지 서비스
9-1. AWS Route 53
- DNS 관리: 도메인 이름 설정 및 트래픽 라우팅.
- 지리적 라우팅 및 장애 조치 설정.
9-2. Amazon CloudFront
- CDN 설정: 콘텐츠를 엣지 로케이션에 캐싱하여 전 세계에 빠르게 배포.
- CloudFront와 S3 통합: 정적 웹사이트 또는 리소스 캐싱.
10. 고급 관리 및 보안
10-1. Amazon Cognito
- 사용자 인증: 사용자 인증, 회원가입/로그인 기능 제공.
- OAuth2.0 및 JWT 토큰 기반 인증.
10-2. AWS Secrets Manager
- 비밀 정보 관리: API 키, DB 자격 증명 등의 안전한 관리.
- Lambda나 ECS에서 비밀 정보 호출.
학습 순서
- AWS 기본 개념 및 관리 (IAM, VPC, Security Groups)
- 컴퓨팅 리소스 관리 (EC2, EBS, Auto Scaling, ELB)
- 컨테이너 및 오케스트레이션 (Docker, ECS/EKS, ECR)
- 서버리스 아키텍처 (Lambda, API Gateway)
- 데이터베이스 및 스토리지 (RDS, DynamoDB, S3)
- 메시징 서비스 (SQS, SNS)
- 모니터링 및 로깅 (CloudWatch, X-Ray)
- 인프라 자동화 (CloudFormation, CDK)
- 네트워크 및 엣지 서비스 (Route 53, CloudFront)
- 고급 보안 및 관리 (Cognito, Secrets Manager)
결론
이 순서로 학습하면 AWS에서 쇼핑몰 웹서비스와 같은 애플리케이션을 구축하고, 컨테이너 기반 또는 서버리스 기반으로 확장 가능한 서비스를 구현할 수 있습니다. 각각의 서비스는 실습을 통해 익히며, 프로젝트에 필요한 부분만 선택적으로 사용해도 좋습니다.