Container

은채의 성장통·2025년 2월 19일
0

AWS

목록 보기
68/79

🚀 컨테이너 기술과 AWS ECS 개요

1️⃣ 컨테이너 기술이란?

컨테이너(Container) 기술은 애플리케이션과 실행 환경을 함께 패키징하여 어디서든 일관된 실행을 보장하는 기술이다.

  • 호환성 문제 없음 → 환경이 달라도 동일하게 실행 가능
  • 가벼움 → 가상머신(VM)보다 빠르고 리소스를 절약

2️⃣ 도커(Docker)란?

도커는 컨테이너 기술의 대표적인 구현체로, 여러 개의 컨테이너를 실행할 수 있다.

  • 도커 이미지는 Docker Hub나 Amazon ECR에 저장 가능
  • 도커 파일(Dockerfile)을 작성하고 빌드하면 도커 이미지가 생성됨
  • 이미지를 실행하면 컨테이너가 되어 애플리케이션을 실행할 수 있음

3️⃣ 도커 vs 가상머신(VM) 차이

도커는 가상화 기술의 일부이지만 VM과는 차이가 있다.

가상머신(VM)도커(Docker)
운영체제개별 OS 포함호스트 OS 공유
무게무거움(GB 단위)가벼움(MB 단위)
속도부팅 속도 느림즉각 실행 가능
리소스 사용중복된 OS로 리소스 소모 큼경량화되어 리소스 절약

💡 도커는 OS 위에서 컨테이너를 실행하지만, VM은 개별 OS를 포함하여 무겁고 느리다.


🛠 AWS에서 컨테이너 관리

AWS에서는 도커 컨테이너를 ECS, EKS, Fargate로 관리할 수 있다.

  • ECS (Elastic Container Service) → AWS의 컨테이너 오케스트레이션 서비스
  • EKS (Elastic Kubernetes Service) → 쿠버네티스(Kubernetes) 기반 컨테이너 관리
  • AWS Fargate → 서버리스(Serverless) 컨테이너 실행

4️⃣ AWS ECS(Elastic Container Service)

AWS ECS는 두 가지 방식으로 컨테이너를 실행할 수 있다.

🔹 EC2 런치 타입

  • EC2 인스턴스에서 직접 컨테이너 실행
  • 클러스터 내 EC2 인프라는 직접 관리해야 함
  • ECS 에이전트를 EC2에 설치해야 함

🔹 Fargate 런치 타입 (Serverless)

  • EC2 인스턴스 없이 컨테이너 실행 가능
  • CPU/RAM 자동 할당, 관리 부담 최소화
  • 확장 시 태스크(Task) 수만 늘리면 됨

5️⃣ IAM 역할(Role) 및 보안

ECS 실행을 위해 IAM 역할을 적절히 설정해야 한다.

  • EC2 인스턴스 프로파일 역할 → EC2 기반의 ECS 태스크 실행 시 필요
  • ECS 태스크 역할(Task Role) → 컨테이너가 AWS 서비스(S3, DynamoDB 등)와 연동할 때 필요

각기 다른 IAM 역할을 부여하는 이유는 보안 및 권한 관리 때문이다.

6️⃣ 로드 밸런서 통합

ECS는 ALB(Application Load Balancer)NLB(Network Load Balancer)를 지원한다.

  • ALB (권장) → HTTP/HTTPS 트래픽 분산
  • NLB → 고성능, 높은 처리량이 필요할 때 사용

7️⃣ 데이터 지속성 (Persistent Storage)

컨테이너의 데이터는 기본적으로 휘발성이지만 EFS(AWS Elastic File System)을 사용하면 지속성을 확보할 수 있다.

EFSS3
파일 시스템가능불가능
서버리스가능가능
컨테이너 마운트가능불가능

💡 Fargate + EFS 조합을 사용하면 완전한 서버리스 환경 구축 가능!


✅ 마무리

  • 도커는 VM보다 가볍고 빠르게 애플리케이션을 배포할 수 있는 컨테이너 기술이다.
  • AWS ECS/Fargate를 활용하면 서버 관리 없이 컨테이너를 실행할 수 있다.
  • EFS를 활용하면 Fargate에서도 데이터 지속성을 유지할 수 있다.
profile
인생 별거 없어

0개의 댓글