ECS on EC2 Fargate Comparison.md - 100-hours-a-week/KTB4-17th-wiki GitHub Wiki
1์ฐจ: ECS on EC2 ๊ธฐ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์กฐ ์์ฝ
| EC2 (c5a.large) | ECS ๊ด๋ฆฌํ ์ธ์คํด์ค (c5a.large) | Fargate | |
|---|---|---|---|
| ์๊ฐ๋น | $0.086 | $0.086 + $0.01032 | $0.11356 |
| ํ ๋ฌ | $61.29 | $69.35 | $81.00 |
|
|
|
|
![]() |
|
๋ถํ ํ ์คํธ ๊ฒฐ๊ณผ๋ฅผ ๊ธฐ์ค์ผ๋ก ๋ชฉํ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ์ ํ๋ฆฌ์ผ์ด์ ๋ณ ์คํ์ ์ฐ์ ํ์๋ค.
| ์ ํ๋ฆฌ์ผ์ด์ | CPU | Memory |
|---|---|---|
| Spring Boot BE | 2 vCPU | 4 GiB |
| Socket | 1 vCPU | 2 GiB |
| AI BE | 0.5 vCPU | 1 GiB |
V1์ ๋จ์ผ ์ธ์คํด์ค ๊ตฌ์กฐ์์ ๋ฐ์ํ ์ ์๋ ๋จ์ผ ์ฅ์ ์ ๊ณผ ์ปจํ ์ด๋ ๊ฐ ์์ ๊ฒฝํฉ์ ๊ฐ์ ํ๊ธฐ ์ํด ๋ค์๊ณผ ๊ฐ์ด ๊ตฌ์ฑํ์๋ค.
- ์๋ก ๋ค๋ฅธ AZ์ EC2๋ฅผ ๋ฐฐ์นํ์ฌ ์ด์คํ
- ์ปจํ ์ด๋๋ณ CPU/Memory ์ ํ
- ECS Service๋ฅผ ํตํด Task ์ด์คํ
ํ์ฌ ์๋น์ค๋ ๋งค์ผ 19~20์์ ํ์์ ๋๋น ์ฝ 5.4๋ฐฐ์ ํผํฌ ํธ๋ํฝ์ด ๋ฐ์ํ๋ค.
ECS on EC2์ ASG๋ฅผ ๊ตฌ์ฑํ์ฌ ํธ๋ํฝ ์ฆ๊ฐ ์ Task์ EC2๋ฅผ Scale-outํ๊ณ , ํธ๋ํฝ ๊ฐ์ ์ Scale-inํ๋๋ก ์ค๊ณํ์๋ค.
์ด๋ฅผ ํตํด ํผํฌ ํธ๋ํฝ์ ๋์ํ๋ฉด์ ํ์์ ์ ํด ์์์ ์ต์ํํ๊ณ ์ ํ์๋ค.
ํ๋์ EC2์ BE, Socket, AI Task๊ฐ ํจ๊ป ๋ฐฐ์น๋๋ค.
์ปจํ ์ด๋๋ณ ์์ ์ ํ์ ํตํด ์์ ๊ฒฝํฉ์ ์ํํ ์ ์์ง๋ง, EC2 ์์ฒด์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ฉด ํด๋น ์ธ์คํด์ค์ BE, Socket, AI Task๊ฐ ๋์์ ์ค๋จ๋๋ค.
์ฆ, ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ ์์์ ๊ฒฉ๋ฆฌํ์ง๋ง ๋์ผํ ํธ์คํธ ์ฅ์ ๋๋ฉ์ธ์ ๊ณต์ ํ๋ค.
๋น์ฉ ์ ๊ฐ์ ์ํด ํ์์ EC2 Capacity๋ฅผ ํ์ฌ Task๋ฅผ ์์ฉํ ์ ์๋ ์์ค์ผ๋ก ๊ตฌ์ฑํ์๋ค.
์ด ์ํ์์ EC2 ์ฅ์ ๊ฐ ๋ฐ์ํ๊ณ ๊ธฐ์กด ์ธ์คํด์ค์ Task๋ฅผ ์ฌ๋ฐฐ์นํ Capacity๊ฐ ์๋ค๋ฉด ๋ค์ ๊ณผ์ ์ด ํ์ํ๋ค.
EC2 ์์ฑ โ ECS Cluster ๋ฑ๋ก โ Image Pull โ Task ์คํ โ Health Check
๋ฐ๋ผ์ ์๋ก์ด Capacity๊ฐ ํ๋ณด๋๊ธฐ ์ ๊น์ง ์ผ์์ ์ผ๋ก ์ฒ๋ฆฌ ์ฉ๋์ด ๊ฐ์ํ๋ค.
์ด๋ ECS on EC2 ์์ฒด์ ํ๊ณ๊ฐ ์๋๋ผ ์ฌ์ Capacity ์์ด ๊ตฌ์ฑํ ํ์ฌ ์ค๊ณ์ ํ๊ณ์ด๋ค.
์ฅ์ ์ Task๋ฅผ ์ฆ์ ์ฌ๋ฐฐ์นํ๊ธฐ ์ํด์๋ ํ์์์๋ ์ถ๊ฐ EC2 Capacity๋ฅผ ํ๋ณดํด์ผ ํ๋ค.
EC2์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ธ์๋ OS์ ECS Agent๊ฐ ์์์ ์ฌ์ฉํ๋ค.
์ค์ c5a.large (2 vCPU / 4 GiB)์์ ํ์ธํ ๊ฐ์ฉ ๋ฉ๋ชจ๋ฆฌ๋ ์ฝ 3.2 GiB์๋ค.
| Task | Memory |
|---|---|
| BE | 2 GiB |
| Socket | 1 GiB |
| AI | 0.5 GiB |
| ํฉ๊ณ | 3.5 GiB |
๋ฐ๋ผ์ ๊ธฐ์กด ๊ณํ์ฒ๋ผ ํ๋์ c5a.large์ 3๊ฐ์ Task๋ฅผ ๋ชจ๋ ๋ฐฐ์นํ ์ ์๋ค.
c5a.large๋ฅผ ๊ธฐ์กด 2๋์์ 3๋๋ก ์ฆ๊ฐ์ํค๊ณ 6๊ฐ์ Task๋ฅผ ๋ถ์ฐ ๋ฐฐ์นํ๋ค.
์ด๋ฅผ ํตํด:
- Task ๋ฐฐ์น๋ฅผ ์ํ ๋ฉ๋ชจ๋ฆฌ ํ๋ณด
- ์ฅ์ ๋์์ ์ํ ์ฌ์ Capacity ํ๋ณด
- ๋จ์ผ EC2 ์ฅ์ ์ ๋์์ ์ค๋จ๋๋ Task ์ ๊ฐ์
๊ฐ ๊ฐ๋ฅํ๋ค.
๋ค๋ง ํ๋์ EC2์ ์ฌ๋ฌ Task๊ฐ ๋ฐฐ์น๋๋ ๊ตฌ์กฐ๋ ์ ์ง๋๋ฏ๋ก ํธ์คํธ ์ฅ์ ๋๋ฉ์ธ ๊ณต์ ๋ฌธ์ ๋ ๋จ๋๋ค.
๋ํ ํ์ฌ ์๋น์ค๋ ๋น ๋ฅด๊ฒ ์ฑ์ฅํ๊ณ ์์ด ์๊ตฌ Capacity๊ฐ ์ง์์ ์ผ๋ก ๋ณํํ๊ณ ์๋ค.
ASG์ ECS Capacity Provider๋ฅผ ํตํด Scale-out/in ์์ฒด๋ ์๋ํํ ์ ์์ง๋ง, Task ์ฆ๊ฐ์ ๋ฐ๋ผ EC2 ์ธ์คํด์ค ํ์ , ๊ธฐ๋ณธ Capacity, ์ฌ์ Capacity์ ๋ํ Capacity Planning๊ณผ Task ๋ฐฐ์น ์ ๋ต ๊ด๋ฆฌ๋ ์ง์์ ์ผ๋ก ํ์ํ๋ค.
Fargate ์ ํ ์ ๋ค์ ๋ฌธ์ ๋ฅผ ๊ฐ์ ํ ์ ์๋ค.
| ๊ธฐ์กด ๋ฌธ์ | Fargate ์ ํ |
|---|---|
| EC2 ์์คํ ์์ ์ ์ | Task์ ํ์ํ CPU/Memory ์ง์ ํ ๋น |
| EC2 Capacity ๋ถ์กฑ | EC2 Capacity ๊ด๋ฆฌ ๋ถํ์ |
| ํธ์คํธ ์ฅ์ ๋๋ฉ์ธ ๊ณต์ | Task ๋จ์ ๊ฒฉ๋ฆฌ |
| EC2 Capacity ์ด์ ๋ถ๋ด | AWS์ ์์ |
Task์ CPU/Memory, Task ์, Auto Scaling ์ ์ฑ ์ Fargate์์๋ ๊ด๋ฆฌํด์ผ ํ๋ฉฐ ์ด๋ ECS on EC2์์๋ ๋์ผํ๋ค.
์ฐจ์ด๋ Task๋ฅผ ์คํํ๊ธฐ ์ํ EC2 Capacity ๊ด๋ฆฌ ์ฌ๋ถ์ด๋ค.
ํ์ฌ ์๋น์ค๋ ๊ธฐ์กด ๋๋น ์ฝ 80๋ฐฐ ์ด์ ์ฑ์ฅํ์ผ๋ฉฐ ํธ๋ํฝ์ด ๊ณ์ ์ฆ๊ฐํ๊ณ ์๋ค. ๋ํ ์ธํ๋ผ ์ด์ ์ธ์ 2๋ช ์ด DB, ๋คํธ์ํฌ, ๋ชจ๋ํฐ๋ง, ์ฅ์ ๋์์ ํจ๊ป ๋ด๋นํ๊ณ ์๋ค.
๋ฐ๋ผ์ EC2 Capacity ๊ด๋ฆฌ๊น์ง ์ง์ ์ํํ๊ธฐ๋ณด๋ค ํด๋น ์์ญ์ AWS์ ์์ํ๊ณ Task์ ์๋น์ค ์ด์์ ์ง์คํ๋ ๋ฐฉํฅ์ ์ ํํ์๋ค.
| EC2 (c5a.large) | ECS ๊ด๋ฆฌํ ์ธ์คํด์ค (c5a.large) | Fargate | |
|---|---|---|---|
| 2 vCPU / 4 GiB ์๊ฐ๋น | $0.086 | $0.09632 | $0.11356 |
| ์ ๋น์ฉ | $61.29 | $69.35 | $81 |
๋จ์ ์์ ๊ธฐ์ค์ผ๋ก๋ Fargate๊ฐ ๊ฐ์ฅ ๋น์ธ๋ค.
ํ์ง๋ง ํ์ฌ ์ค๊ณ์์ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ์ Capacity๋ฅผ ํ๋ณดํ๋ ค๋ฉด c5a.large 3๋๊ฐ ํ์ํ๋ค.
| ๊ตฌ์ฑ | ํ์ ์์ | ์ ๋น์ฉ |
|---|---|---|
| ECS on EC2 | c5a.large ร 3 | $183.87 |
| Fargate | 3.5 vCPU / 7 GiB | $141.75 |
ํ์ฌ ๊ตฌ์ฑ์์๋ EC2์ ์ ํด Capacity๋ก ์ธํด Fargate๊ฐ ์ฝ $42.12/์ ์ ๋ ดํ๋ค.
๋ค๋ง ํธ๋ํฝ์ด ๋น ๋ฅด๊ฒ ์ฆ๊ฐํ ๊ฒฝ์ฐ Fargate์ ๋น์ฉ์ด EC2๋ณด๋ค ๋์์ง ์ ์๋ค.
๊ฒฐ๋ก : ECS Fargate๋ฅผ ์ ํํ๋ค.
์์ ๊ฒํ ํ ํ์ฌ ์ธํ๋ผ์ ํ๊ณ์ ์๋น์ค ์ด์ ์กฐ๊ฑด์ ๊ธฐ์ค์ผ๋ก ๋ค์๊ณผ ๊ฐ์ด ํ๋จํ์๋ค.
| ํ๋จ ๊ธฐ์ค | ECS on EC2 ์ ์ ์ ๋ฌธ์ | Fargate ์ ํ ๊ทผ๊ฑฐ |
|---|---|---|
| Capacity ๊ด๋ฆฌ | ํธ๋ํฝ ์ฑ์ฅ์ ๋ฐ๋ผ EC2 ๊ธฐ๋ณธ Capacity, ์ฌ์ Capacity ๋ฐ ์ธ์คํด์ค ๊ตฌ์ฑ์ ์ง์์ ์ผ๋ก ์กฐ์ ํด์ผ ํจ | Task ์คํ์ ํ์ํ EC2 Capacity ๊ด๋ฆฌ๋ฅผ AWS์ ์์ |
| ์ฅ์ ๋์ Capacity | EC2 ์ฅ์ ์ Task๋ฅผ ์ฆ์ ์ฌ๋ฐฐ์นํ๋ ค๋ฉด ํ์์์๋ ์ฌ์ EC2 Capacity ํ๋ณด๊ฐ ํ์ํจ | Task ์คํ์ ์ํ EC2 ์ฌ์ Capacity๋ฅผ ์ง์ ํ๋ณดยท๊ด๋ฆฌํ ํ์๊ฐ ์์ |
| ์์ ํ์ฉ | EC2์ OS, ECS Agent๊ฐ ์์์ ์ ์ ํ์ฌ Task ๋ฐฐ์น ์ ์ค์ ๊ฐ์ฉ ์์์ ๋ณ๋๋ก ๊ณ ๋ คํด์ผ ํจ | Task์ ํ์ํ CPU/Memory๋ฅผ ์ง์ ์ง์ ํ์ฌ EC2 ์์คํ ์์์ ๊ณ ๋ คํ ๋ฐฐ์น ๋ถํ์ |
| Task ๋ฐฐ์น | ์ ํ๋ EC2 Capacity ๋ด์์ ์ฌ๋ฌ ์๋น์ค์ Task ๋ฐฐ์น์ ํธ์คํธ ์ฅ์ ์ํฅ์ ๊ณ ๋ คํด์ผ ํจ | EC2 ์ธ์คํด์ค ๋จ์์ Task ๋ฐฐ์น ๋ฐ ํธ์คํธ Capacity ๊ด๋ฆฌ ๋ถ๋ด์ AWS์ ์์ |
| ์ด์ ๋ณต์ก๋ | ์ธํ๋ผ ๋ด๋น 2๋ช ์ด DB, ๋คํธ์ํฌ, ๋ชจ๋ํฐ๋ง, ์ฅ์ ๋์๊ณผ EC2 Capacity ์ด์์ ํจ๊ป ๋ด๋นํด์ผ ํจ | EC2 ์ด์ ๊ณ์ธต์ ์ ๊ฑฐํ์ฌ Task ๋ฐ ์๋น์ค ์ด์์ ์ง์ค |
| ์๋น์ค ์ฑ์ฅ | ๊ธฐ์กด ๋๋น ์ฝ 80๋ฐฐ ์ฑ์ฅํ์ผ๋ฉฐ ํฅํ ์๊ตฌ Capacity๋ ์ง์์ ์ผ๋ก ๋ณํํ ๊ฐ๋ฅ์ฑ์ด ์์ | EC2 Capacity Planning ์์ด Task ์์ ์์ ์๊ตฌ๋์ ์ค์ฌ์ผ๋ก ํ์ฅ ๊ฐ๋ฅ |
| ํ์ฌ ๋น์ฉ | ์ฌ์ Capacity์ Task ๋ฐฐ์น๋ฅผ ์ํด c5a.large 3๋๊ฐ ํ์ํ์ฌ ์ ์ฝ $183.87 ๋ฐ์ |
ํ์ฌ ํ์ํ Task ์์ ๊ธฐ์ค ์ ์ฝ $141.75๋ก ํ์ฌ ๊ตฌ์ฑ์์๋ ์ฝ $42.12 ์ ๊ฐ |
ํ์ฌ ๊ตฌ์ฑ์์๋ Capacity ๊ด๋ฆฌ ๋ถ๋ด, ์ด์ ๋ณต์ก๋ ์ธก๋ฉด์์ ํ์ฌ ์๊ตฌ์ฌํญ์ ๋ ์ ํฉํ๋ค๊ณ ํ๋จํ๋ค.
EC2 Capacity ๊ด๋ฆฌ์ Task ๋ฐฐ์น์ ๋ํ ๊ด๋ฆฌ ๋ถ๋ด์ AWS์ ์์ํ๊ณ , ์ธํ๋ผ ์ด์ ์ Task์ ์๋น์ค ์ด์์ ์ง์คํ ์ ์๋ค๋ ์ ์ ์ฃผ์ ์ ์ ๊ทผ๊ฑฐ๋ก ํ๋จํ์๋ค.
๋ค๋ง ์๋น์ค ๊ท๋ชจ๊ฐ ๋์ฑ ์ฆ๊ฐํ์ฌ Fargate์ Task ๋จ์ ๋น์ฉ์ด EC2 Capacity๋ฅผ ์ง์ ์ด์ํ๋ ๋น์ฉ๋ณด๋ค ์ปค์ง ๊ฒฝ์ฐ, ECS on EC2 ์ ํ์ ๋ค์ ๊ฒํ ํ๋ค.
๋ฐ๋ผ์ ํ์ฌ ์ฑ์ฅ ๋จ๊ณ์์๋ EC2 Capacity๋ฅผ ์ง์ ์ต์ ํํ๋ ๊ฒ๋ณด๋ค ๊ด๋ฆฌ ๊ณ์ธต์ ์ค์ด๋ ๊ฒ์ด ๋ ์ ํฉํ๋ค๊ณ ํ๋จํ์๋ค.
