1. 컨테이너란?
애플리케이션 + 실행환경(라이브러리, 설정)을
하나로 묶어 격리된 상태에서 실행되는 가벼운 가상화 기술
2. 특징
- 경량화: VM에 비해 가볍고 빠름 (훨씬 적은 리소스 사용)
- 독립적: 작은 서비스 단위로 나누어 독립적으로 개발/배포 가능
- 충돌 방지: 이미지 안에 라이브러리 (버전 포함), 실행에 필요한 OS패키기
- 이식성: 개발환경, 테스트환경, 운영환경에서 동일하게 동작
- 배포, 자동화에 최적화: CI/CD와 연계
- 확장성, 탄력성: Auto Scaling
3. 주요 구성 요소
- 이미지(Image)
실행 가능한 컨테이너의 템플릿. 애플리케이션 코드, 라이브러리, 설정이 담긴 파일. - 컨테이너(Container)
이미지를 기반으로 실제 실행 중인 인스턴스. - 레지스트리(Registry)
이미지 저장소. Docker Hub, AWS ECR, Google Container Registry 등
✔️ 컨테이너화
애플리케이션, 라이브러리, 설정 등을 하나의 컨테이너 이미지로 만들어 실행 가능한 상태로 만드는 과정.
4. 대표적인 컨테이너 기술
✔️ Docker
이미지 생성, 실행, 배포 등 컨테이너 플랫폼
이미지 빌드 -> 컨테이너 실행 -> 이미지 배포, 관리
✔️ Kubernetes (K8s)
컨테이너 관리 플랫폼. 컨테이너 오케스트레이션 도구
✔️ AWS ECR
AWS 컨테이너 이미지 저장소
✔️ AWS ECS
AWS 자체 컨테이너 오케스트레이션 서비스
여러 노드에 컨테이너 자동 배포, 스케일링, 서비스 복구, 네트워킹, 로드밸런싱 등
✔️ AWS Fargate
서버리스 방식의 컨테이너 실행 서비스
✔️ AWS EKS
AWS의 관리형 쿠버네티스 서비스
5. AWS 기반 컨테이너
✔️ Amazon ECS (Elastic Container Service)
- AWS에서 제공하는 자체 관리형 컨테이너 오케스트레이션
- Docker 컨테이너 실행, 배포, 관리
- Fargate 또는 EC2 기반 실행 선택 가능
-> Fargate: 서버 없는 방식. 컨테이너만 정의하면 AWS가 인프라 관리
✔️ Amazon EKS (Elastic Kubernetes Service)
- 완전 관리형 쿠버네티스 서비스
- 쿠버네티스를 직접 설치/운영하지 않고도 클러스터 구성 가능
- 표준 K8S 워크로드 실행
- Fargate, EC2 실행 가능
✔️ AWS Fargate
- 서버리스 컨테이너 실행 환경
- ECS/ EKS와 통합 사용 가능
- 인프라x 컨테이너만 정의하면 자동 실행.
- API Gateway → Fargate
✔️ Amazon ECR (Elastic Container Registry)
- AWS에서 제공하는 Docker 이미지 저장소
- 도커처럼 컨테이너 이미지를 Push/Pull 가능
- ECS, EKS, CodePipeline과 통합 쉬움
✔️ AWS로만 컨테이너 운영: ECS + Fargate
서버 리스 백엔드에서 컨테이너 사용
기존방식: .zip 배포 대신 도커 이미지로 Lambda 함수 실행
AWS Lambda + ECR
ECS + Fargate + ECR
✔️구현 순서
1. Docker file 작성
애플리케이션 + 라이브러리 -> 이미지 구성
2. 이미지 빌드 & ECR 푸시
3. Lambda 함수 생성
이미지 URL를 이용해서 람다가 해당 이미지를 가져와서(ECR) 실행
4. API Gateway 연결
✔️ 동작 흐름
사용자 -> API Gateway -> 람다함수 (Docker 이미지 기반) -> ECR에서 이미지를 가져와서 실행(최초1회만) -> 코드 실행 후 응답 반환
사용자
↓
API Gateway
├─> Lambda (간단한 로직 처리, 인증 등)
└─> ECS Fargate (컨테이너 기반 복잡 연산, Go 서버 등)
↓
RDS Proxy → Aurora MySQL (DB 접근)
✔️ API Gateway → ECS (Fargate)
- 기존 Lambda 대신 컨테이너화된 백엔드 애플리케이션 실행
- ECS Fargate가 서버리스 방식으로 컨테이너 실행/스케일링, 인프라 관리 자동화
- Docker 이미지 형태로 코드+라이브러리+환경 포함
- 복잡한 비즈니스 로직, 긴 실행 시간, 메모리 무제한 설정 등 Lambda 한계 극복
✔️ ECS (Fargate) → RDS Proxy → Aurora MySQL
'AWS > AWS' 카테고리의 다른 글
[AWS] EC2, 인스턴스, 리전, 가용 영역 (0) | 2025.05.22 |
---|---|
[AWS] VPC 개념 및 구성 요소 완벽 정리 (0) | 2025.05.22 |
[AWS] RDS Proxy (0) | 2025.05.19 |
[AWS] Route53 - Private Hosted Zone, Health Check (0) | 2025.05.19 |
[AWS] 서버리스(Serverless)란? (1) | 2025.05.19 |