AWS 컨테이너

Inhye Jeong·2020년 11월 25일
0

AWS

목록 보기
3/3

1. Preview


  • VM: 하드웨어 추상화
    ec2
  • Container: OS 추상화
    elastic container service, elastic kubernetes service
  • Serverless: Programming language 런타임 추상화
    AWS lambda

2. Container


  • 필요시 올리고 내릴 수 있어야 하기 때문에, immutable한 구조
  • stateless
  • 선언형 이미지로 만들어야한다.

구성

  • VM + Container를 합친 하이브리드 방식으로 구성된다. hypervisor를 사용하지 않고 VM에 container에 최적화된 OS가 올라가도록 구성

장점

  • SPEED: OS를 reboot할 필요가 없기 때문에
  • Portable: 표준화 되어 있으므로 vendor를 옮기기 쉽다.
  • Efficiency: OS에 대한 오버헤드가 적다.

운영

  • 컨테이너의 수가 많으면 관리가 여려워진다.
  • Orchestration: 도커를 관리하는 것

3. Orchestration


자원을 관리하고, 배치 및 정렬을 자동화 한다는 뜻입니다. 클라우드 컴퓨팅 서비스에서 인스턴스를 하나 생성하기 위해서는 여러 과정이 필요합니다. 인증 키를 발급 받아야 하고, 네트워크가 생성되었는지 확인해야 하며, 보안 룰도 미리 생성해 두어야 합니다. 이런 일련의 과정이 끝나야만 인스턴스를 하나 생성할 수 있습니다.

오케스트레이션은 이런 일련의 과정을 자동화하여 쉽게 인프라를 배포할 수 있도록 지원하는 템플릿 기반의 엔진입니다. 오케스트레이션에서 사용되는 템플릿 언어는 인프라뿐만 아니라 서비스 및 응용 프로그램의 전체 프로비저닝을 자동화하고, 컴퓨팅, 스토리지 및 네트워킹 구성뿐만 아니라 배포 후 작업을 지정할 수 있습니다. 텔레미터 서비스와의 통합을 통해, 오케스트레이션 엔진은 특정 인프라 요소의 자동 스케일링을 수행 할 수 있습니다.
reference

종류

kubernetes, ecs, Docker swarm

4. ECS


장점

  • 컨테이너를 빠르게 올리고 내리는 것에 특화되어있다.
  • cluster에 스케쥴링을 손쉽게 구축할 수 있다.
  • 콘솔로 구성됨. text가 아니다.
  • ec2와 쉬운 호환

아키텍쳐

  • 컨테이너 이미지 생성
  • container 형상관리 - amazon ECR, Docker Hub
  • ECS로 올린다.

용어

  • Cluster: ec2의 집합
  • Task: 컨테이너가 올라가서 동작하는 것. 하나 또는 두개의 컨테이너가 될 수 있다. main, sub도 있을 수 있다. 기본적인 배포 단위가 된다. 보통은 Task에 컨테이너가 하나가 올라간다.
  • Task Definition: cpu memory 등과 같이 컨테이너 정의
  • Cluster management engine: aws에서 돌아가는 vpc에서 관리함. 사용자에서 볼 수 없는 영역
  • Scheduler: 배포를 어떻게 담당할지
  • Agent: cluster management(ecs)가 agent commnunication agent와 통신하면서 ecs agent가 올려져 있는 ec2 컨테이너와 통신가능

load balancer

  • CLB(classic)를 쓰는 경우 하나의 인스턴스에 동일한 task가 올라갈 수 없다. 1:1 mapping
  • 따라서, dynamic porting이 가능한 ALB(application)를 가장 많이 사용한다. 동일한 동작을 하는 task를 올려서 동작할 수 있다. 주의! host를 0으로 해야 dynamic으로 설정된다.

placement strategy

Fargate

  • ec2 없이 severless 구성
  • ec2가 무제한이라서 container 이미지만 클러스터 환경에 올릴 수 있다. 각각 private ip를 할당 받을 수 있기 때문에, elb, alb에도 자유롭다.

profile
Frontend Engineer in @KakaoStyle

0개의 댓글