목차
- 서버리스 (Serverless)
- 스토리지 (Storage)
오늘은 데이터를 안전하게 보관하는 스토리지와 인프라 관리 부담을 덜어주는 서버리스 서비스를 정리하겠다.
1. 서버리스 (Serverless)
서버를 직접 프로비저닝하거나 관리할 필요 없이 코드를 실행하는 서비스다.
- AWS Lambda
- 정의: 서버 관리 없이 실제로 모든 유형의 애플리케이션이나 백엔드 서비스 코드를 실행할 수 있는 이벤트 중심 컴퓨팅 서비스다.
- 핵심 특징:
- 실행 시간: 최대 15분의 실행 시간을 가지며, 그 이상은 적합하지 않다.
- 트리거: S3, DynamoDB, API Gateway 등 다양한 AWS 서비스의 이벤트에 의해 코드가 실행된다.
- Lambda@Edge: CloudFront의 엣지 로케이션에서 실행되어 사용자에게 더 가까운 곳에서 요청을 처리하거나 필터링을 구현할 수 있다.
- Amazon API Gateway
- 정의: 개발자가 API를 손쉽게 게시, 유지 관리, 모니터링 및 보호할 수 있도록 지원하는 완전 관리형 서비스다.
- 핵심 특징:
- Lambda 및 DynamoDB와 통합하여 완전한 서버리스 API를 구축할 수 있다.
- REST API뿐만 아니라 WebSocket 프로토콜도 지원하여 실시간 통신이 가능하다.
- API 키를 통한 사용량 제어(Throttling)와 보안 기능을 제공한다.
2. 스토리지 (Storage)
데이터의 성격(객체, 블록, 파일)과 액세스 빈도에 따라 적절한 스토리지를 선택해야 한다.
- Amazon S3 (Simple Storage Service)
- 정의: 어디서나 원하는 양의 데이터를 저장하고 검색할 수 있는 객체 스토리지 서비스다.
- 핵심 특징:
- 구조: 버킷(Bucket)에 키(파일 경로)와 메타데이터를 가진 객체를 저장한다.
- 정적 호스팅: S3 버킷을 사용하여 정적 웹사이트(HTML/CSS/JS)를 호스팅할 수 있다.
- 스토리지 클래스: 데이터 액세스 빈도에 따라 S3 Standard, S3 Standard-IA, S3 Intelligent-Tiering 등으로 나누어 비용을 최적화한다.
- 보안: 버킷 정책(Bucket Policy)과 ACL, 그리고 암호화(SSE-S3, KMS 등)를 통해 데이터를 보호한다.
- Amazon S3 Glacier
- 정의: 데이터 아카이빙 및 장기 백업을 위한 저비용 스토리지다.
- 특징: 데이터를 즉시 꺼낼 수 없으며, 검색 옵션(Expedited, Standard, Bulk)에 따라 몇 분에서 몇 시간이 소요된다. 버킷 대신 '볼트(Vault)'라는 개념을 사용한다.
- Amazon EBS (Elastic Block Store)
- 정의: EC2 인스턴스에서 사용하는 고성능 블록 스토리지다.
- 핵심 특징:
- 인스턴스가 종료되어도 데이터가 유지되며, 네트워크 드라이브처럼 연결된다.
- 특정 가용 영역(AZ)에 종속되므로, 다른 AZ로 옮기려면 스냅샷을 찍어야 한다.
- 유형: 범용 SSD(gp3), 프로비저닝된 IOPS SSD(io2), HDD(st1, sc1) 등이 있다.
- Amazon EFS (Elastic File System)
- 정의: 여러 EC2 인스턴스에서 동시에 공유할 수 있는 서버리스 파일 시스템이다.
- 특징: Linux 환경(POSIX)을 지원하며, 여러 가용 영역(Multi-AZ)에 걸쳐 데이터를 저장하고 액세스할 수 있다.
- AWS Storage Gateway
- 정의: 온프레미스 환경과 AWS 클라우드 스토리지를 연결해주는 하이브리드 클라우드 서비스다.
- 유형: 파일 게이트웨이(S3 연결), 볼륨 게이트웨이(EBS 스냅샷 연결), 테이프 게이트웨이(Glacier 연결)가 있다.