brunch

You can make anything
by writing

C.S.Lewis

by Master Seo Aug 14. 2023

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

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


목표

컨테이너의 이해

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

배포하고 실행한다.





<2> 컨테이너 관리툴 ECS


강력하면서 심플하다.

컨테이너 쉽게 배포.

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

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

ECS  WorkShop 을 통해 학습하자.






<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 





<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

감사합니다.


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