brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Sep 05. 2022

16탄-9. AWS의 컨테이너 서비스인 ECS


AWS의 컨테이너 서비스인 Amazon ECS를 이용해 손쉽게 애플리케이션 배포하기



<1> 컨테이너

<2> 컨테이너 기반 기술?

<3> 도커

<4> 컨테이너 오케스트레이션

<5> AWS 컨테이너

<6> ECS 서비스는?

<7> 컨테이너 로그 수집 : AWS FireLens 

<8> ECS 실습




<1> 컨테이너


1

애플리케이션이 컴퓨팅 환경에서 실행하기 위해 필요한 코드와 모든 의존성을 패키징 한 소프트웨어 단위


2

컨테이너 = 코드, +디펜던시 + 런타임 엔진 


3

가상 머신과 컨테이너 비교


가상 머신 

 App

Bins/libs

guest OS

하이퍼바이저

호스트 OS

서버



컨테이너

 App

Bins/libs

도커

호스트 OS

서버


도커의 경우 가상 머신보다 적은 스택을 가지게 된다.

가상 머신의 경우  각각 커널이 존재하므로 부트스트랩 과정을 거쳐 도커보다 느리다.

컨테이너 환경에서는 애플리케이션 구동 시간만 필요하기 때문에 빠르고 가볍다.



<2> 컨테이너 기반 기술?


1

Container Runtime

컨테이너는 런타임을 통해 리눅스 기술들을 추상화해 제공한다.


2

리눅스 커널을 공유한다.


3

기반이 되는 기술 3가지?

Namespace 기술  -  파일 시스템 마운트, 네트워크 , 유저, 호스트네임에 대해 프로세스를 격리한다.

Contraol Group (C group) 기술  -  C Group을 통해서 자원에 대한 제어를 한다. 메모리, cpu, io , network   제어

Union  Filesystem 기술 - 서로 다른 파일 시스템이나 디렉터리를  합쳐서 컨테이너에 제공한다.



<3> 도커


1

도커는 컨테이너를 사용하기 쉽게 한  컨테이너 한 종류.


2

Docker?

경량의 컨테이너 가상화 기술.




<4> 컨테이너 오케스트레이션


사용자가 원하는 상태 ( Desired)로  동작하도록 관리하는 것


1

구성?


컨테이너

컨테이너 런타임

호스트 OS



컨테이너

컨테이너 런타임

호스트 OS


컨테이너

컨테이너 런타임

호스트 OS


2

배포?

내부/외부 통신?

시크릿 관리?


3

컨테이너 오케스트레이션 구조?


관리자 --------컨트롤 플래인 ------ 데이터 플래인  구조이다.


사용자가 원하는 상태 ( Desired)로  동작하도록 관리하는 것



<5>  AWS 컨테이너


1

관리?

 ECS , EKS


2

컨테이너가 실행되는 곳?

EC2 , AWS Fargate 



3

구성 4 가지?


ECS - EC2

ECS-Fargate

EKS- EC2

EKS -Fargate 



<6>  ECS 서비스는?


1

컨테이너 애플리케이션을 쉽게 실행, 확장 및 보호를 할 수 있는 컨터이너 오케스트레이션 서비스이다.


2

ECS 구성요소?

Task - 컨테이너의 최소 실행 단위

Serivce - 필요한 태스크 수를 유지, ELB와 연동되어 외부로 서비스 노출을 한다.

Cluster - 태스크가 실행되는 논리적 그룹


3

작업 (Task)?

ECS에서 최소 실행 단위.

작업 정의 내용을 기반으로 인스턴스 및 파 게이트에 배포

한 작업당 최대 10개 컨테이너 가능



4

작업 정의 (Task Definition)?

ECS에서 컨테이너를 실행하려면 작업 정의가 필요.

작업 크기 설정 가능


5

서비스?

설정한 작업 수를 자동 유지 및 복구

서비스 유형, 작업 배치 전략

롤링 업데이트, 블루/그린 배포

ALB를 통한 부하 분산

auto Scaling 적용


6

ECS와  EC2 Auto Scaling그룹?

클러스터 생성

ASG 생성

인스턴스 시작

작업 수행



7

보안 접근  설정은?


구성?

ALB----------ECS--------- Aurora Mysql


설정?

ALB 보안 그룹  -  80, 443 만 접근

ECS 보안 그룹  -   ALB에서만 접근

Aurora Mysql 보안 그룹  -  ECS에서만 접근



8

스크릿 관리?


ECS ------ Aurora Mysql   접근 시 사용


AWS Secret Manager를 사용한다.  

디비 접근 정보를 암호화한다.



9

ECR?

컨테이너 레지스트리.

이미지 취약성 스캐닝 기능



10  

AWS 개발 툴?


IDE?

Cloud9


Source / artifact?

AWS CodeCommit

AWS CodeArtifact


Build?

AWS CodeBuild


Test?

AWS CodeBuild +  서드파티 제품


Deploy?

AWS CodeDeploy


Monitor?

AWS X-Ray , Amazon CloudWatch

CloudWatch Container Insights  (컨테이너 레벨의 지표, 알람 수신 등 가능)



<7> 컨테이너 로그 수집 : AWS FireLens 


ECS나   EKS에서 모두 사용 가능.




<8> ECS 실습


http://ecs.catsdogs.kr.s3-website.ap-northeast-2.amazonaws.com/ko/


https://catalog.us-east-1.prod.workshops.aws/workshops/8c9036a 7-7564-434c-b558-3588754e21f5/en-US


https://ecsworkshop.com/


Amazon ECS Hands-on Lab. pdf





다음 과정

https://brunch.co.kr/@topasvga/2690






https://brunch.co.kr/@topasvga/2678



감사합니다.

브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari