brunch
매거진 AWS Cloud

33탄-3. AWS-컨테이너-2023

33탄 - (요약) AWS 1일 완성 - 2023

by Master Seo


목표

컨테이너의 이해

ECS 알아보기

EKS 알아보기

서비스 알아보기

CI/CD 알아보기



<1> 왜 컨테이너?

<2> 컨테이너 관리툴 ECS

<3> 컨테이너 관리툴 EKS

<4> Pod에서 내/외부 통신 - 서비스 (Service) 실습

<5> EKS 실습

<6> 시험




<1> 왜 컨테이너?


1

비즈니스의 빠른변화, 예측할수 없는 요구사항.

빠르고 안정적이고 효율적인 시스템이 필요


2

개발팀은 애플리케이션 개발에만 집중 필요.


3

런타임 엔진, 의존성, 코드 ---------- 모두 컨테이너에 포함됨.

컨테이너는 개별 OS를 가지고 있지 않고, 호스트 OS를 공유함.

컨테이너는 별도의 OS낭비 없이 애플리케이션만 사용한다.

운용/관리비용이 최대 40%까지 줄어든다.

도커파일, 어플리케이션 코드, 의존성 , 런타임 -------- 빌드해서 컨테이너 이미지를 만들어 사용함.


4

컨테이너 이미지는 컨테이너 레지스트리인 ECR에 저장해 사용한다.


5

배포하고 실행한다.


10 ecr.png




<2> 컨테이너 관리툴 ECS


강력하면서 심플하다.

컨테이너 쉽게 배포.

EC2 인스턴스 방식과 파게이트 2가지 방식으로 운영 가능하다.

파게이트는 아마존에서 관리하므로 운영에 대한 부하가 적다.

ECS WorkShop 을 통해 학습하자.


20 ecs.png





<3> 컨테이너 관리툴 EKS


1

컨트롤 플래인과 데이터 플래인 (워커노드) 가 있다.


2

컨트롤 플래인?

API Server , 컨트롤러 매니저 , 스케쥴러 , etcd 가 있다.


API Server - 사용자의 명령을 받아 실행하는곳, 컨트롤러 매니저 , 스케쥴러 , etcd가 모두 연결되어 있다.

컨트롤러 매니저 - pod를 복제하거나 인스턴스 노드를 제어하는 역할. 디플로이먼트 컨트롤러, 레플리카셋 컨트롤러, 노드 컨트롤러등이 있다. API서버를 모니터링하며 파드를 유지하는 역할울 수행한다.

스케쥴러 - 파드를 어떤 워커 노드에 배포해야 할지 정해준다.

etcd - 노드의 상태, 파드의 상태를 키값형태로 저장한다.



3

데이터 플래인 (워커노드) ?

kubelet , kube-proxy가 있다.


kubelet ? 모든 인스턴드 노드에 1개씩 생성된다. 컨트롤 플레인의 요청을 받아 파드에서 컨테이너가 동작하도록 관리한다.cpu, mem 관리.

kube-proxy ? 네트워크 통신 역할을 한다.



4

쿠버네티스는 초기에 알아야 할것도 많다.

러닝 커브가 있다. 운영하는데 시간이 필요하다.



5

컨트롤 플래인를 AWS가 관리해주는 EKS가 있다.




<4> Pod에서 내/외부 통신 - 서비스 (Service) 실습


1

Load Balancer - 클라우드 CSP 로드밸런서 이용해 외부 노출 , 인스턴스 모드와 IP 모드가 있음.


2

Node Port - 외부에 네트워킹 제공 , 워커노드에서 트래픽 전달은 클러스터IP 로 사용


3

Cluster IP - 클러스터 내부 통신을 위한 파드간 네트워킹 제공 , 내부 통신만 지원한다.




<5> EKS 실습


1

EKS 생성

명령서버는 cloud9으로 사용


2

터미널1

watch로 모니터링

watch -d kubectl get pod,rs,svc



3

터미널2


#nginx deplyment 생성.

kubectl create deployment nginx --image=nginx --replicas=3


# 서비스 생성

kubectl expose deployment nginx –port=80 –type=loadbalancer


콘솔에서 로드밸런서 생성된것 확인



4

pod의 ip 확인

kubectl describe svc nginx

kubectl get pod -o wide



5

브라우저를 통해 로드밸런서로 웹 접속 확인



참고 자료

https://www.linode.com/docs/guides/how-to-deploy-nginx-on-a-kubernetes-cluster/


https://kubernetes.io/docs/tasks/run-application/run-stateless-application-deployment/




<6> ci/cd on aws


codecommit

codebuild

code deploy


30 cicd.png




<6> 시험


1

ECS , EKS공통점?

관리툴

컨테이너 관리서비스

서버 관리가 아니고, 서비스, 파드 관리툴.



2

ECS , EKS 차이점?

ECS는 AWS 전용서비스

EKS는 쿠버네티스 기반이라 다른 CSP에서도 사용가능하다. 파드등.


ECS는 심플서비스. 간단하다.

EKS는 복잡함. 러닝커브가 있다. 오픈소스등 연동해 다양하게 서비스 가능하다.





다음은 데이터 베이스 모니터링.

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




1일 완성 전체 자료

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

감사합니다.


keyword
매거진의 이전글33탄-2. AWS-VPC-2023