์๋ ํ์ธ์ ๐๐๐๐
์ด๋ฒ ํฌ์คํ ์์๋ ECS์ ๋ํด ์กฐ๊ธ ๋ค๋ค๋ณด๋ ค๊ณ ํฉ๋๋ค.
์ ๋ง ๋ค์ํ ์ปจํ
์ด๋ ์ค์ผ์ด์คํธ๋ ์ด์
ํด์ด ์กด์ฌํ๊ณ , ์ต๊ทผ์๋ Kubernetes(k8s)๊ฐ ๊ฑฐ์ ๋ฉ์ธ ์คํธ๋ฆผ์ธ๋ฐ์,
AWS์๋ EKS๋ผ๋ ๊ด๋ฆฌํ ์ฟ ๋ฒ๋คํฐ์ค ์๋น์ค๊ฐ ์์ต๋๋ค.
ํ์ง๋ง, AWS๋ EKS๋ณด๋ค ECS(Amazon Elastic Container Service)๋ฅผ ๋ ๋ฐ๊ณ ์๋๊ฒ ๊ฐ์ต๋๋ค.
์๋ฌดํผ! ์ง๊ธ๋ถํฐ ECS์ ๋ํด ์์๋ด ์๋ค!!
ECS๋ ๋ค๋ฅธ ์ค์ผ์คํธ๋ ์ด์ ํด์ ๋นํด ์ด๋ค ์ฅ์ ์ด ์์๊น์?
1. ๊ฐ๋
์ด ์ ๋ง ๊ฐ๋จํ๊ณ , (์ฟ ๋ฒ๋คํฐ์ค๋ณด๋ค ์ดํดํ๊ธฐ ํจ์ฌ ์ฝ์ต๋๋ค.)
2. ๋ค๋ฅธ AWS์๋น์ค์ ํตํฉ์ด ๊ฐํธํ๊ณ , (์์ ๋ ์ ๋ง ๋ง์ต๋๋ค.)
3. aws Copilot ๊ณผ ๊ฐ์ ECS๋ฅผ ์ํ ์ ์ฉ CLI๊ฐ ์กด์ฌํฉ๋๋ค.
๋ฌผ๋ก , AWS์์ ์ฌ์ฉํ๊ธฐ ๊ธฐ์ค์ด๊ฒ ์ฃ ! ๐
ECS EC2? Fargate? External? ์ฌ๋ฌ๊ฐ์ง๊ฐ ์๋๋ฐ.... ๋ญ๊ฐ ๋ค๋ฅธ๊ฐ์?
ECS๋ ์ปจํ
์ด๋๋ฅผ ์ด์ํ๋ ํธ์คํธ ํํ์ ๋ฐ๋ผ EC2, Fargate, External ๋ก ๋๋ ์ง๋๋ค.
์ฆ, ์ด๋์์ ์ปจํ
์ด๋๋ฅผ ๋์ธ๊ฑด์ง์ ๋ํ ์ ์ ์
๋๋ค. ์ดํดํ๊ธฐ ์ฝ๋๋ก ์๋ ๊ทธ๋ฆผ์ ๋ด
์๋ค
ECS ํธ์คํธ ์ ํ 1) EC2
๊ธฐ๋ณธ ์ ํ์ธ EC2 ์ ํ์
๋๋ค. ์ฆ, ์ปจํ
์ด๋๊ฐ ์ด์๋๋ ์ปดํจํฐ๊ฐ AWS EC2์ธ ํ์
์
๋๋ค.
์ฉ๋๊ณต๊ธ์(Capacity Providers)๋ฅผ ํตํด EC2 Auto-ScalingGroup์ ์ฐ๊ฒฐํฉ๋๋ค.
ECS์์ ์ ๊ณตํ๋ ๊ด๋ฆฌํ ์งํ "CapacityProviderReservation"์ ๋ฐ๋ผ EC2๋ฅผ ์ฉ๋์ ์ถ๊ฐ/์ ๊ฑฐ ํ ์ ์์ผ๋ฉฐ,
์ปจํ
์ด๋์ ์ซ์์ ์ฆ๊ฐ/์ถ์์ ๋ฐ๋ผ EC2๋ ํจ๊ป ์ฆ๊ฐ/์ถ์ํ๊ฒ ๋ฉ๋๋ค.
* EC2 ์ ํ ๋น์ฉ: ํธ์คํธ๋ก ์ฌ์ฉํ๋ EC2 ์๊ธ๋ง ๊ณผ๊ธ๋ฉ๋๋ค.
ECS ํธ์คํธ ์ ํ 2) Fargate
Fargate๋ ์๋ฒ๋ฆฌ์ค ์ ํ์ผ๋ก, EC2๋ฅผ ๋ฐฐํฌํ๊ฑฐ๋ ๊ด๋ฆฌํ ํ์ ์์ด ๊ทธ๋ฅ ์๋น์ค๋ง ์ด์ํ๋ฉด ๋๋ ์ ํ ์
๋๋ค.
์ฆ, ์ปจํ
์ด๋๊ฐ ์ด๋์ ์ด์๋๋์ง ๊ณ ๋ฏผ/๊ด๋ฆฌํ ํ์ ์๋ ํ์
์
๋๋ค.
ํ๊ฐ์ง ๋ฌธ์ ์ ์ EC2์ ๋น๊ตํ์๋ ๋น์ธ๋ค๋๊ฒ์
๋๋ค ใ
ใ
๊ทธ๋๋ Savings Plan ๋ฑ์ ํตํด ์๊ธ์ ํ ์ธ๋ฐ์ ์ ์๊ณ , EC2์ ๋ํ ๊ด๋ฆฌ๊ฐ ํ์์์ผ๋ ์ฅ์ ๋ ํฐ๊ฒ๊ฐ์ต๋๋ค.๐
* Fargate ์ ํ ๋น์ฉ: ์๊ฐ๋น vCPU, Storage ์ฉ๋ ๋น์ฉ์ด ๋ถ๊ณผ๋ฉ๋๋ค. Fargate ์๊ธ
ECS ํธ์คํธ ์ ํ 3) External (ECS AnyWhere)
๋ง์ง๋ง ์ ํ์ธ๋ฐ์, Exrernal ์ธ์คํด์ค ํ์
์
๋๋ค. ์ด ์ ํ์ AWS์ธํ๋ผ๊ฐ ์๋ ๊ณณ์ ์์นํ ํธ์คํธ์์๋ ECS์์ ์ ์ํ ์๋น์ค, ์์
์ ์คํผ ํ ์ ์๋๋ก ํฉ๋๋ค.
์ฆ, ํธ์คํธ&์ปจํ
์ด๋ ๋ฑ ์ค์ ์๋น์ค๋ ๋ฌผ๋ฆฌ์ ์ผ๋ก AWS๋ฐ์์ ๋์ํ์ง๋ง, ๊ด๋ฆฌ๋ AWS์ฝ์์์ ํ ์ ์๋ ํ์
์
๋๋ค.
๋ค๋ฅธ ๋ฐ์ดํฐ์ผํฐ์ ํจ๊ป AWS๋ฅผ ์ด์์คํด์ผํ๋ ํ์ด๋ธ๋ฆฌ๋ ํ๊ฒฝ์ ์ ํฉํ ์ต์
์ด ๋ ๊ฑฐ๊ฐ๋ค์.
๋จ, ํธ์คํธ์๋ ECS Agnet, SSM Agent ๊ฐ ์ค์น ๋์ด์ผ ํ๋ฉฐ, ์ธํฐ๋ท์ฐ๊ฒฐ์ด ์์ ์ ์ด์ด์ผ ํฉ๋๋ค.
* External ์ ํ ๋น์ฉ: ๊ธฑ External ์ธ์คํด์ค๋ง๋ค ์๊ฐ๋น 0.01025USD ๋น์ฉ์ด ๋ถ๊ณผ๋ฉ๋๋ค. External ์๊ธ
ECS๋ ๋ฌด์์ผ๋ก ๊ตฌ์ฑ๋๋์?
์ ๊ฐ ์๊ฐํ์๋.. ECS์ ํต์ฌ ๊ตฌ์ฑ์์(์ปดํฌ๋ํธ)๋, ์์ ์ ์ & ์๋น์ค ์ ๋๋ค. (ECS๊ณต์๋ฌธ์)
์์
์ ์ ํ ์๋น์ค๋ง ์ ์์ฑํด๋ ์ปจํ
์ด๋ ์ด์์ด ๊ฐ๋ฅํ๊ธฐ ๋๋ฌธ์
๋๋ค. ๐ค
์๋ ๊ทธ๋ฆผ์ ๋ณด๋ฉด์ ์์ธํ ํ์ธํด๋ณผ๊น์?
ECS๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์๋ ๊ฐ์ฅ๋จผ์ , ์์
์ ์(Task Definition)์ ์์ฑํด์ผํฉ๋๋ค.
์์
์ ์๋, ์ปจํ
์ด๋๋ฅผ ์ค๋ช
ํ๋ Json ํ์ผ์
๋๋ค. ์ ์ํ ์ ์๋ ๋ด์ฉ์ ์์ฃผ ๋ง์ต๋๋ค.
(Task ๋คํธ์ํฌ ๋ชจ๋(Bridge, Host, awsvpc, None)/ ์ปจํ
์ด๋ ์ด๋ฏธ์ง/ ์ปจํ
์ด๋์ ํ ๋น ๋ ๋ฆฌ์์ค(vCPU/MEM) ๋ฑ..)
์์
์ ์๋ฅผ ์์ฑํ๋ค๋ฉด, ์์๋๋ก ECS Cluster, ECS Service๋ฅผ ์์ฑํฉ๋๋ค.
• ECS Cluster : ๋คํธ์ํฌ ๊ตฌ์ฑ ๋ฐ OS๋ฅผ ์ ์ํ๋ ๋จ๊ณ์
๋๋ค. (์ด๋ค VPC๋ฅผ ์ฌ์ฉํ ์ง, ์ด๋ค OS๋ฅผ ์ฌ์ฉํ ์ง (Windows / Linux ))
• ECS Service : ์์ ๋ง๋ค์ด๋์ ์์
์ ์(Task Definition)์ ์ฐ๊ฒฐํ๊ณ , Task ์๋, Auto-Scaling ์ฌ๋ถ ๋ฑ์ ์ค์ ํฉ๋๋ค.
ECS๋ฅผ ์์ฑํ๊ณ ์ถ์ด์, ์ด๋ค ์์๋ก ํ๋์?
์๋์ ๊ทธ๋ฆผ ์์๋๋ก ์งํํ์ฌ ECS์๋น์ค๋ฅผ ๊ฐ๋จํ ํ ์คํธ ํด๋ณผ ์ ์์ ๊ฒ ๊ฐ์ต๋๋ค.
์คํํ๋ ์์๋ ๋ฐฑ๋ฌธ์ด๋ถ์ฌ์ผ๊ฒฌ! ํ๋ฒ ECS๋ฅผ ์ง์ ๊ตฌ์ฑํด๋ณด์๋๊ฒ์ ๊ถ์ฅ ๋๋ฆฝ๋๋ค!!!
Hands-On ํด๋ณผ ์ ์๋๋ก ๋ช๊ฐ ๋งํฌ ํจ๊ป ๋จ๊น๋๋ค. ๐ ํ์ดํ
!! ๐๐ป
1) CI/CD WORKSHOP FOR AMAZON ECS : https://cicd-for-ecs.workshop.aws/en/
2) DEMOGO - CATS AND DOGS : https://ecs-cats-dogs.workshop.aws/en/
3) Building your first DevOps Blue/Green pipeline with Amazon ECS : https://catalog.us-east-1.prod.workshops.aws/v2/workshops/4b59b9fb-48b6-461c-9377-907b2e33c9df/en-US