AWS ECS에서 Java + Spring Boot 어플리케이션 메모리 설정

ECS에서 Java 애플리케이션을 운영할 때, JVM Heap을 얼마나 잡아야 하는지 정리합니다. 컨테이너 환경의 메모리 구조 기존 서버 환경에서는 OS가 물리 메모리를 먼저 차지하고, 나머지를 JVM이 사용했습니다. [VM/서버] 물리 메모리 → OS 커널 + 시스템 프로세스 → JVM ECS 컨테이너는 다릅니다. 호스트 OS 커널을 공유하기 때문에, Task에 할당된 메모리를 OS 몫 없이 컨테이너가 사용할 수 있습니다. 사이드카가 있으면 여러 컨테이너가 나눠 쓰지만, 이 문서에서는 메인 컨테이너만 있는 경우를 다룹니다. [ECS Task] Task 메모리 ≈ JVM 전용 “OS 몫을 남겨야 한다"는 상식은 컨테이너 환경에서는 불필요합니다. Fargate든 EC2든 Task 내부의 메모리 설정은 동일합니다. ...

2026년 2월 11일

AWS ECS Task 메모리 설정

ECS에서 메모리 설정은 Task, Container, Application(JVM 등) 3개 레벨로 나뉩니다. 각 레벨이 어떻게 동작하는지 정리합니다. 메모리 설정의 3개 레벨 Task 메모리 (Task에 할당된 전체 메모리) └→ Container 메모리 (프로세스별 할당) └→ Application 메모리 (JVM Heap 등) 레벨 설정 위치 역할 Task 메모리 Task Definition 전체 메모리 한도 Container 메모리 Task Definition > containerDefinitions 컨테이너별 메모리 한도 Application 메모리 JVM 옵션 (-Xmx 등) 애플리케이션 내부 메모리 Application 레벨(JVM 메모리 설정)은 AWS ECS에서 Java + Spring Boot 어플리케이션 메모리 설정 에서 다룹니다. ...

2026년 2월 10일

컨테이너 기초 용어 정리

물리 서버, 가상 머신 (VM), 컨테이너. 서버 환경이 어떻게 변해왔는지, 컨테이너 관련 용어들의 관계를 정리합니다. 서버 환경의 변천 물리 서버 → VM → 컨테이너 물리 서버와 VM은 사용자 입장에서 거의 동일합니다. OS 설치하고, Java 설치하고, jar 배포하고. 차이는 하드웨어를 직접 만지느냐, 콘솔에서 클릭하느냐 정도입니다. 패러다임이 바뀌는 건 VM → 컨테이너 구간입니다. 컨테이너의 구조 기존 서버 환경 (물리 서버 / VM) Application (jar) Java (JDK) OS (Linux) ───────────── 물리 서버 / VM 기존 서버 환경은 각 계층을 하나하나 직접 설치합니다. ...

2026년 2월 9일