AWS 핵심 서비스
AWS는 수백 개의 서비스를 제공하지만, 실무에서나 시험에서나 반복적으로 등장하는 핵심 서비스는 일곱 개 남짓입니다. 이 페이지는 그 서비스들을 개별로 외우는 대신, 서로 어떻게 연결되는지까지 함께 이해하는 것을 목표로 합니다.
컴퓨팅과 네트워킹의 기본 단위
EC2(Elastic Compute Cloud)는 가상 서버를 임대하는 서비스입니다. 운영체제부터 직접 선택하고 관리해야 하는 IaaS(Infrastructure as a Service)의 대표 사례로, 웹 서버나 애플리케이션 서버처럼 OS 수준 제어가 필요한 워크로드에 사용합니다.
VPC(Virtual Private Cloud)는 EC2를 비롯한 대부분의 리소스가 올라가는 논리적으로 격리된 네트워크 공간입니다. 서브넷, 라우팅 테이블, 인터넷 게이트웨이로 구성되며 “이 리소스가 외부에서 접근 가능한가"를 결정하는 가장 기초적인 경계입니다. EC2를 띄우기 전에는 항상 어떤 VPC, 어떤 서브넷에 배치할지가 먼저 결정됩니다.
데이터를 저장하는 두 가지 방식
S3(Simple Storage Service)는 객체 스토리지로, 파일을 폴더 구조가 아닌 평면적인 버킷+키 구조로 저장합니다. 정적 파일, 백업, 로그, 데이터 레이크 등 거의 모든 비정형 데이터의 기본 저장소이며, 가용성과 내구성이 매우 높습니다.
RDS(Relational Database Service)는 MySQL, PostgreSQL 등 관계형 데이터베이스를 관리형으로 제공합니다. 백업, 패치, 장애 조치(Failover)를 AWS가 대신 처리해주기 때문에, 직접 EC2에 데이터베이스를 설치하는 것보다 운영 부담이 훨씬 적습니다. 일반적으로 EC2 애플리케이션 서버가 RDS에 쿼리를 보내는 구조로 함께 쓰입니다.
누가 무엇을 할 수 있는가
IAM(Identity and Access Management)은 “누가 어떤 리소스에 어떤 작업을 할 수 있는가"를 정의하는 서비스입니다. 사용자, 그룹, 역할(Role), 정책(Policy)으로 구성되며 AWS의 거의 모든 서비스가 IAM 권한 체크를 통과해야 동작합니다. EC2가 S3 버킷에 접근하려면, EC2에 부여된 IAM 역할에 해당 S3 접근 권한이 정책으로 포함되어 있어야 합니다.
서버 없이 코드를 실행하기
Lambda는 서버를 프로비저닝하지 않고 코드를 이벤트 기반으로 실행하는 서버리스 컴퓨팅 서비스입니다. S3에 파일이 업로드되면 자동으로 썸네일을 생성하거나, API 요청이 들어오면 응답을 처리하는 식의 짧고 독립적인 작업에 적합합니다. EC2와 달리 사용한 만큼만 과금되고, 유휴 상태에서는 비용이 발생하지 않습니다.
콘텐츠를 빠르게 전달하기
CloudFront는 AWS의 CDN(Content Delivery Network)으로, S3나 EC2에 있는 콘텐츠를 전 세계 엣지 location에 캐싱하여 사용자에게 더 가까운 위치에서 응답합니다. 정적 웹사이트를 S3에 올리고 CloudFront로 배포하는 구조는 가장 기본적인 AWS 아키텍처 패턴 중 하나입니다.
서비스 간 연결 관계 한눈에 보기
다음은 가장 흔한 웹 애플리케이션 구성에서 각 서비스가 맡는 역할입니다.
| 서비스 | 역할 | 함께 쓰이는 서비스 |
|---|---|---|
| VPC | 네트워크 경계 정의 | EC2, RDS |
| EC2 | 애플리케이션 실행 | VPC, RDS, IAM |
| RDS | 데이터 영속 저장 | EC2, VPC |
| S3 | 정적 자산/백업 저장 | CloudFront, Lambda |
| CloudFront | 콘텐츠 전송 가속 | S3, EC2 |
| Lambda | 이벤트 기반 코드 실행 | S3, IAM |
| IAM | 모든 서비스의 접근 통제 | 전체 |