ECS 비용 절감기 -ECS 태스크 용량 최적화

jiyeong·2025년 4월 24일

https://chatgpt.com/share/680a80fe-bcc4-8010-b5bf-75380922a193

Q. ECS TASK 용량 설정, TASK 내부 Container 용량 설정 관계성?

A. 태스크는 컨테이너들의 묶음이다

Task
├── Container A
└── Container B
태스크: 실행 단위 (AWS 입장에서 CPU/메모리 리소스를 할당해줘야 하는 대상)

즉 , 컨테이너 A/B : 태스크 내에서 실행될 각각의 앱

Q. 도커이미지가 77MB 인데 태스크의 메모리를 0.8GB 까지 쓸 필요는 없지않을까 그럼 태스크 메모리를 확 줄일 수 있지않을까?

항목설명
도커 이미지 크기실행 파일, 코드, 정적 자원(html/css/js 등)의 압축된 용량.
-> 말하자면 "앱의 파일 크기"
태스크 메모리앱이 실행 중일 때 RAM에서 사용하는 공간 (메모리 소비)
-> 말하자면 "앱이 살아서 움직일 때 필요한 공간"

A. 77MB 도커 이미지 ≠ 77MB 메모리 필요

Node, React 등은 실행 시 수백 MiB는 기본

docker stats로 실사용량 체크 → 거기에 1.3~1.5배 여유를 주는 게 안전

docker stats 결과

항목 | 값
메모리 사용량 | 52.41MiB
메모리 제한 (Limit) | 819MiB
메모리 사용률 | 6.4%
CPU 사용량 | 거의 0%
PIDs (프로세스 수) | 11

결론 : 현재 태스크 성능수준이 과하다.

지금 설정된 819MiB는 완전히 과한 수준
52MiB만 쓰는데 819MiB 할당은 낭비.

아래처럼 memory 128MiB 로 할당

   "placementConstraints": [],
    "compatibilities": [
        "EC2"
    ],
    "requiresCompatibilities": [
        "EC2"
    ],
    "cpu": "262",
    "memory": "128",
    "registeredAt": "2025-04-24T19:06:37.440Z",
    "registeredBy": "arn:aws:iam::222634385502:root",
    "tag

cf.

메모리는 soft limit와 hard limit이 있는데:

memoryReservation (soft limit): 컨테이너가 최소한 이만큼은 보장받고 시작됨

memory (hard limit): 초과하면 OOM으로 종료

profile
꿈꾸는 개발자

0개의 댓글