Search
🚡

AWS에서 컨테이너 200% 활용하기(App Runner ECS, EKS, App2Container) (최용호, AWS)

AWS에서 컨테이너 200% 활용하기(AWS)
발표자료_AWS에서_컨테이너_200%_활용하기.pdf
2148.2KB

컨테이너란 무엇일까요?

컨테이너는 격리된 자신만의 환경을 가지게 되면 다른 컨테이너의 간섭을 받지 않음.
컨테이너는 리눅스 커널을 공유하면서 프로세스만 실행하면 된다.

서버리스로 컨테이너 운영하기

AWS App Runner

웹 애플리케이션 배포를 위해 다양한 서비스에 대한 설정 필요 없이 클릭 몇번으로 배포 가능

오케스트레이션 서비스로 컨테이너로 운영하기

컨테이너들을 여러 서버들에 배치하고 운영하는 것을 컨테이너 오케스트레이션이라고 함.
Control Plane
컨테이너의 상태를 관리하고 명령을 전달하는 부분
Data Plane
실제 컨테이너가 실행되는 부분
선언적으로 상태를 관리
Control Plane은 현재 상태와 정의된 상태(원하는 상태)가 맞는지 보고 다를 경우 그 상태 맞춤

Amazon ECS(Elastic Container Service)

EC2/Farget 유형 모두 ECS Agent가 설치되어 ECS 클러스터와 통신
서비스
오토 스케일링 그룹을 만들어서 컨테이너를 실행할 EC2 인스턴스들을 생성하고, 원하는 수 만큼의 작업을 유지

Amazon EKS(Elastic Kubernetes Service)

ClusterIP
Pod간 통신을 위해 클러스터 내부에서만 접근 가능한 서비스 유형
NodePort
각 워커 노드에 동일한 포트를 오픈해서 어떤 노드로 들어오든 대상 Pod로 요청을 전달
LoadBalancer
NodePort를 통해 포트를 오픈한 가가 워커노드 앞단에 로드밸런서를 생성하여 트래픽을 분배하는 서비스

기존 애플리케이션을 컨테이너화 하기

AWS App2Container

기존 애플리케이션을 컨테이너화하는 것을 손쉽게 해줄 수 있다.
App2Container는 CLI 도구로 제공이 되는데, 현재는 Java와 NET을 지원
App2Container 실행하면 애플리케이션에 대해 탐색&분석한 결과각 Analysis.json파일에 저장됨.
Analysis.json 파일 기반으로 컨테이너화 수행
배포를 위한 Deployment.json 파일, Dockerfile 및 컨테이너 이미지 생성
배포 아티팩트 생성
ECS 생성 관련 설정 파일 생성
S3 버킷 저장
작업 정의 파일 생성
ECR에 Docker Image Push
배포 명령 실행 시..
CloudFormation 스택을 생성해서 AWS에 ECS 클러스터와 서비스 생성
추가적으로 파이프라인 명령을 수행하면…
Pipeline.json 파일을 기반으로 코드 시리즈를 사용하여 CI/CD 파이프라인을 생성