๋ฐ์ํ
์ปจํ ์ด๋๋?
- ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ ํ๊ฒฝ์ ์๊ด์์ด ์คํ๋๊ธฐ ์ํด ์คํ์ ํ์ํ ๋ชจ๋ ์์๋ฅผ ํฌํจํ ์ํํธ์จ์ด ํจํค์ง์ ๋๋ค.
- ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋์ ์ฝ๋๋ฅผ ์คํํ ์ ์๋ ๋ฐํ์(JVM, Node.js ๋ฑ), ๋ผ์ด๋ธ๋ฌ๋ฆฌ, ์ค์ ํ์ผ๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- ์ปจํ ์ด๋๋ ์ปจํ ์ด๋ ์ด๋ฏธ์ง์ ์ธ์คํด์ค์ด๋ฉฐ ์ข ๋ฃ ์ ๋ชจ๋ ๋ฐ์ดํฐ๊ฐ ํ๋ฐ๋ฉ๋๋ค.
- AWS๋ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๋ Registry๋ก ECR, ์ปจํ ์ด๋๋ฅผ ์ค์ผ์ค๋งํ๊ณ ๊ด๋ฆฌํ๋ Orchestration ๋๊ตฌ๋ก ECS์ EKS๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ์ปจํ ์ด๋ ๋ ์ง์คํธ๋ฆฌ๋ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ๊ณ ์ก์ธ์คํ๋๋ฐ ์ฌ์ฉ๋ฉ๋๋ค.
- ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ๋๊ตฌ๋ ์ปจํ ์ด๋์ ํ๋ก๋น์ ๋๊ณผ ๋ฐฐํฌ, ๋ผ์ดํ ์ฌ์ดํด์ ์๋ํํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
ECR(Elastic Container Registry)
- Amazon ECR์ ์ปจํ ์ด๋ ์ด๋ฏธ์ง ๋ฐ ์ํฐํฉํธ๋ฅผ ๊ณต์ ํ๊ณ ๋ฐฐํฌํ ์ ์๊ฒ ํด์ฃผ๋ ์์ ๊ด๋ฆฌํ ์ปจํ ์ด๋ ๋ ์ง์คํธ๋ฆฌ์ ๋๋ค.
- ECR์ S3๋ฅผ ์ฌ์ฉํ์ฌ ์ปจํ ์ด๋ ์ด๋ฏธ์ง๋ฅผ ์ ์ฅํ์ฌ ๋ฐ์ด๋ ๊ฐ์ฉ์ฑ์ ์ ๊ณตํฉ๋๋ค.
- ECR์ IAM๊ณผ ํตํฉ๋์ด ๊ฐ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ๋ฆฌ์์ค ์์ค์ผ๋ก ์ ์ดํ ์ ์์ผ๋ฏ๋ก ์กฐ์ง๋ฟ๋ง ์๋๋ผ ์ ์ธ๊ณ ๋๊ตฌ์๋ ๊ณต์ ํ ์ ์์ต๋๋ค.
- ECR์ ๋ํ ๋ชจ๋ ์ ๊ทผ์ IAM์ผ๋ก ์ ์ดํ๊ธฐ ๋๋ฌธ์ ECR์ ๊ถํ ์๋ฌ๊ฐ ์๊ธด๋ค๋ฉด IAM ์ ์ฑ ์ ํ์ธํด์ผ ํฉ๋๋ค.
- ECR์ ํ๋ผ์ด๋น ๋ ํฌ์งํ ๋ฆฌ์ ํผ๋ธ๋ฆญ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ํ๋ผ์ด๋น ๋ ํฌ์งํ ๋ฆฌ๋ IAM ๊ธฐ๋ฐ ์ธ์ฆ์ ๊ฑฐ์ณ์ผ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
- ํผ๋ธ๋ฆญ ๋ ํฌ์งํ ๋ฆฌ๋ ๋๊ตฌ๋ ์ด๋์๋ ์ธ์ฆ์ ๊ฑฐ์น์ง ์๊ณ ๋ ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
- ECR์ Docker CLI์ ํตํฉ๋๋ฏ๋ก ‘docker push’ ๋ช ๋ น์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ํธ์ํ๊ณ ‘docker pull’ ๋ช ๋ น์ผ๋ก ์ด๋ฏธ์ง๋ฅผ ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค.
- Tag immutability๋ฅผ ํ์ฑํํ๋ฉด ์ด๋ฏธ์ง ํ๊ทธ๋ฅผ ๋ฎ์ด์ฐ๋ ๊ฑธ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
- ECR Image Scan์ ์ปจํ ์ด๋ ์ด๋ฏธ์ง์ ์ํํธ์จ์ด ์ทจ์ฝ์ฑ์ ์๋ณํ๋ ๋ฐ ์ฌ์ฉํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
- ECR Lifecycle์ ๊ธฐ๊ฐ ๋๋ ๊ฐ์์ ๋ฐ๋ผ ์ด๋ฏธ์ง๋ฅผ ๋ง๋ฃ์ํค๊ณ ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ์ ๋ฆฌํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํฉ๋๋ค.
ECS(Elastic Container Service)
- ECS๋ AWS์์ ๋ง๋ ๋ ์์ ์ธ(opinionated) ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ์๋น์ค์ ๋๋ค.
- ECS๋ AWS์์ ์ปจํ ์ด๋๋ฅผ ์ด์ํ๊ธฐ ์ํ ์์ ๊ด๋ฆฌํ ์๋น์ค์ ๋๋ค.
- ECS๋ ์ปจํ ์ด๋๊ฐ ์คํ๋๋ ์ธํ๋ผ์ธ Capacity์ ์ปจํ ์ด๋๋ฅผ ๋ฐฐํฌํ๊ณ ๊ด๋ฆฌํ๋ Controller๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- Capacity๋ ์ต์ ์ผ๋ก EC2 ์ธ์คํด์ค์ Fargate, On-premise VM(๋๋ ์๋ฒ)๋ฅผ ์ ๊ณตํฉ๋๋ค.
- ECS๋ Task, Task definition, Serivce, Cluster๋ก ๊ตฌ์ฑ๋ฉ๋๋ค.
- ECS Task definition์ ECS์์ ์ปจํ ์ด๋๋ฅผ ์คํํ๊ธฐ ์ํด ์ฌ์ฉํ ์ปจํ ์ด๋ ์ด๋ฏธ์ง์ ๊ฐ๋ฐฉํ ํฌํธ, ํ๊ฒฝ ๋ณ์ ๋ฑ์ ์ ์ํ๋ JSON ํ์์ ํ ์คํธ์ ๋๋ค.
- ECS Task๋ Task definition์ ์ธ์คํด์คํ ํ ๊ฒ์ ๋๋ค.
- ECS Task๋ ECS์์์ ์ ํ๋ฆฌ์ผ์ด์ ์คํ ๋จ์๋ก ํ๋ ์ด์์ ์ปจํ ์ด๋๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
- ECS Task๋ standalone์ผ๋ก ์คํ๋๊ฑฐ๋ service์ ์ผ๋ถ๋ก ์คํ๋ฉ๋๋ค.
- ECS Service๋ ์ํ๋ ์์ Task๋ฅผ ๋์์ ์คํํ๊ณ ์ ์ง ๊ด๋ฆฌํ๋ ์ค์ผ์ค๋ฌ๋ก ๋ก๋ ๋ฐธ๋ฐ์์ ํ์คํฌ๋ฅผ ์คํํ ๋คํธ์ํฌ๋ฅผ ์ง์ ํฉ๋๋ค.
- ECS Task๊ฐ ์ด๋ ํ ์ด์ ๋ผ๋ ์คํจํ๊ฑฐ๋ ์ค์ง๋๋ ๊ฒฝ์ฐ ECS Service scheduler๋ Task definition์ ๋ง๊ฒ Task๋ฅผ ์คํํ์ฌ Task์ ์๋ฅผ ์ ์งํฉ๋๋ค.
- ECS Cluster๋ task ๋๋ service์ ๋ ผ๋ฆฌ์ ๊ทธ๋ฃน์ ๋๋ค.
- Task Role์ ECS Task๊ฐ AWS API๋ฅผ ํธ์ถํ ๋ ์ฌ์ฉํ๋ ์ญํ ์ด๊ณ Task Execution Role์ ECS Agent๊ฐ AWS API๋ฅผ ํธ์ถํ ๋ ์ฌ์ฉํ๋ ์ญํ ์ ๋๋ค.
EKS(Elastic Kubernetes Service)
- Kubernetes๋ ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ์์คํ ์ผ๋ก ์คํ ์์ค์ ๋๋ค.
- EKS๋ AWS์์ Kuberntes๋ฅผ ์ด์ํ๊ธฐ ์ํ ์์ ๊ด๋ฆฌํ ์๋น์ค์ ๋๋ค.
- Kubernetes๋ ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐฐํฌํ๊ณ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉํ๋ ์คํ ์์ค ์ปจํ ์ด๋ ์ค์ผ์คํธ๋ ์ด์ ์์คํ ์ ๋๋ค.
- Kubernetes cluster๋ Control plane๊ณผ Worker node๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค.
- Control plane์ ํด๋ฌ์คํฐ๋ฅผ ๊ด๋ฆฌํ๊ณ Worker node๋ ์ค์ ์ํฌ๋ก๋๊ฐ ์คํ๋๋ ์์น๋ฅผ ์ ๊ณตํฉ๋๋ค.
- EKS๋ Control plane์ ์ค์น, ์ด์ ๋ฐ ์ ์ง๊ด๋ฆฌ ํ ํ์๊ฐ ์์ต๋๋ค.
- EKS๋ ๊ณ ๊ฐ์ฉ์ฑ ๋ฐ ๋ด๊ฒฐํจ์ฑ์ ์ํด ์ฌ๋ฌ AZ์ ๊ฑธ์ณ Control plane์ ํ๋ก๋น์ ๋ํ๊ณ ํ์ฅํฉ๋๋ค.
- EKS๋ Kubernetes ๊ท๊ฒฉ ์ธ์ฆ์ ๋ฐ์ ๊ธฐ์กด์ Kubernetes์์ ๋์ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ ํ์ง ์๊ณ ๋ EKS์์ ์คํํ ์ ์์ต๋๋ค.
ECS์ EKS
- ECS๋ ์คํ์์ค๊ฐ ์๋์ง๋ง Kubernetes๋ ์คํ์์ค์ ๋๋ค.
- ECS๋ ๋ฌ๋์ปค๋ธ๊ฐ ๋ฎ์ง๋ง EKS๋ ๋ฌ๋์ปค๋ธ๊ฐ ๋์ต๋๋ค.
- ECS๋ ๋ฒ์ ์ด ์์ด ํด๋ฌ์คํฐ๋ฅผ ์
๊ทธ๋ ์ด๋ํ์ง ์์๋ ๋ฉ๋๋ค. ๊ทธ๋ฌ๋ EKS๋ ๋ฒ์ ์ด ์์ด ํด๋ฌ์คํฐ๋ฅผ ์ฃผ๊ธฐ์ ์ผ๋ก ์
๊ทธ๋ ์ด๋ํด์ผ ํฉ๋๋ค.
EKS๋ kubernetes ์ต์ ๋ฒ์ ๊ณผ์ ํธํ์ฑ์ ์ ์งํ๊ธฐ ์ํด ์ ์ง ๊ด๋ฆฌ ๊ธฐ๊ฐ์ด ์ง๋๋ฉด ์ปจํธ๋กค ํ๋ ์ธ ๋ฒ์ ์ ์๋์ผ๋ก ์ ๋ฐ์ดํธํฉ๋๋ค. - ECS๋ ์ฌ์ฉํ EC2, Fargate์ ๋ํ ์๊ธ๋ง ๋ถ๊ณผ๋์ง๋ง EKS๋ EC2, Fargate์ EKS ํด๋ฌ์คํฐ ์์ฒด์ ์๊ธ๋ ๋ถ๊ณผ๋ฉ๋๋ค.
- ECS๋ ๋จ์ํจ๊ณผ ์ ์ฐ์ฑ์ ์ค์ฌ์ผ๋ก ์ค๊ณ๋์ด ์ฌ์ฉ์๊ฐ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- EKS๋ ๊ธฐ์กด์ Kubernetes๋ฅผ ์ฌ์ฉํ๊ณ ์๊ฑฐ๋ Kubernetes๋ฅผ AWS์์ ์ฌ์ฉํ๊ณ ์ ํ๋ ๊ฒฝ์ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๊ธฐ์กด์ ์ํฌ๋ก๋๋ฅผ ํด๋ผ์ฐ๋๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ๊ธฐ ์ํด์ ECS๋ก ์์ํ์ฌ EKS๋ก ์ ์ง์ ์ผ๋ก ํ์ฅํ ์ ์์ต๋๋ค.
ECS Anywhere & EKS Anywhere
- ECS Anywhere์ EKS Anywhere๋ ๊ณ ๊ฐ์ด ๊ด๋ฆฌํ๋ ์ธํ๋ผ(on-premise, VM ๋ฑ)์์ ์ปจํ ์ด๋๋ฅผ ์คํํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
- ECS Anywhere๋ ๊ณ ๊ฐ์ ์ธํ๋ผ์์ ์ปจํ ์ด๋ ์ํฌ๋ก๋๋ฅผ ์คํํ๊ณ ๊ด๋ฆฌํ ์ ์๋ Amazon ECS์ ๊ธฐ๋ฅ์ ๋๋ค.
- EKS Anywhere๋ฅผ ์ฌ์ฉํ๋ฉด ๊ณ ๊ฐ์ ์ธํ๋ผ์์ Kubernetes ํด๋ฌ์คํฐ๋ฅผ ์์ฑํ๊ณ ์ด์ํ ์ ์์ต๋๋ค.
- EKS Anywhere๋ EKS ์คํ์์ค ๋ฐฐํฌํ์ธ EKS Distro๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋ฉ๋๋ค.
AWS Copilot
- AWS Copilot์ ์ปจํ ์ด๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๊ฒ ๊ตฌ์ถ, ๋ฐฐํฌ, ์ด์ํ ์ ์๋๋ก ๋์์ฃผ๋ ์คํ ์์ค CLI์ ๋๋ค.
- AWS Copilot์ ๊ณ ๊ฐ์ด ์ธํ๋ผ๋ฅผ ์ค์ ํ๋ ๋์ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ์ง์คํ ์ ์๋๋ก ๋์์ค๋๋ค.
- AWS Copilot์ ํ๋์ ๋ช ๋ น์ผ๋ก ์ปจํ ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์คํํ๋ ๋ฐ ํ์ํ ๋ชจ๋ ์ธํ๋ผ(VPC, ELB, ECR ๋ฑ)๋ฅผ ํ๋ก๋น์ ๋ ํ ์ ์์ต๋๋ค.
- AWS Copilot์ Request-Driven, Load Balanced, Worker, Static Site๋ฑ์ ์๋น์ค๋ฅผ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
- AWS Copilot์ Cloudformation์ผ๋ก ์ธํ๋ผ๋ฅผ ํ๋ก๋น์ ๋ํฉ๋๋ค.
- AWS Copilot์ Amazon ECS, AWS Fargate, AWS App Runner์์ ์ปจํ ์ด๋๋ฅผ ๊ตฌ์ถ ๋ฐ ์ด์ ๊ด๋ฆฌํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ฐ์ํ
'๐ AWS > AWS Developer - Associate' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[AWS] Developer Associate #6 S3 (0) | 2024.07.26 |
---|---|
[AWS] Developer Associate #5 ElastiCache (0) | 2024.05.24 |
[AWS] Developer Associate #3 Elastic Load Balancing(ELB) (0) | 2024.04.14 |
[AWS] Developer Associate #2 Relational DB(RDS, Aurora) (0) | 2024.04.01 |
[AWS] Developer Associate #1 Elastic Beanstalk (0) | 2024.03.06 |