빠른 요약


현재 t2.micro를 쓰고 있는데 메모리 2기가 <~ 이게 docker 엔진 돌리는데 최소사양임을 알게되어서

2가지 방법을 고민중에 있습니다.


방법 1. docker를 쓰지않고 그냥 바이너리 빌드해서 띄운다


방법 2. 걍 프리티어 포기하고 여유있게

t2.medium(4GiB), t2.large(8GiB) 에서 선택한다.



프리티어 주제에 도커를 쓴다는 발상이 이제와서 보면 참 우습기는 합니다.



깃갤 성님들이면 어떤 선택을 하실 것 같나요..?

만약 방법1을 한다면 nginx 또한 그냥 패키지로 깔아서 돌리는 방향으로 가게 되는 건가요..?


방법2의 가성비는 어떤 것 같나요?

알바하는 거지 학식충에게 너무 사치아닐까요?

인생 첫배포라 그래도 애정이 생겨서 고민이 됩니다.


---



spring profile, docker-compose.prod.yml 싹 작성해서

로컬에서 테스팅 완료했고 (nginx, was 2개)

배포할 생각에 싱글벙글하며 프리티어 계정을 만든뒤

ec2, rds 인스턴스 1개씩 만들어둔 상태였습니다.


환경변수로 셋업도 다해서

아래와 같이 커맨드를 입력했습니다.






거의 10~15초만에 위와 같이 진행되길래 아무 문제 없을줄 알았건만

갑자기 8/9부터 나아갈 생각을 안하더군요..

그러다가..



네. 이렇게 되더라고요.


일단 제 docker-compose.prod.yml은 아래와 같습니다.


version: '3'
services:
app:
build: .
ports:
- "8080:8080"
networks:
- nginx-network
environment:
SPRING_PROFILES_ACTIVE: prod
SPRING_DATASOURCE_URL: ${SPRING_DATASOURCE_URL}
SPRING_DATASOURCE_USERNAME: ${SPRING_DATASOURCE_USERNAME}
SPRING_DATASOURCE_PASSWORD: ${SPRING_DATASOURCE_PASSWORD}
SPRING_JPA_HIBERNATE_DDL_AUTO: update

nginx:
image: nginx:latest
ports:
- "80:80"
volumes:
- ./nginx.conf:/etc/nginx/nginx.conf
networks:
- nginx-network
depends_on:
- app

networks:
nginx-network:
driver: bridge


제 dockerfile은 아래와 같습니다.


FROM openjdk:17-jdk-slim
RUN apt-get update && apt-get install -y findutils

VOLUME /tmp
EXPOSE 8080
WORKDIR /app
COPY . /app
RUN ./gradlew clean build
ENV JAR_FILE=build/libs/server-0.0.1-SNAPSHOT.jar
ENTRYPOINT java -Djava.security.egd=file:/dev/./urandom -jar $JAR_FILE



---


https://forums.docker.com/t/minimum-hardware-requirement-to-run-docker/28072

Minimum hardware requirement to run DockerHello, I want to utilize Docker on IoT devices running Linux. What is the minimum hardware (CPU, memory, disk, etc.) requirements to run Docker Engine?forums.docker.com


요약 했던 바와 같이,

t2.micro 의 문제라고 생각됩니다.


선생님들이면 어떻게 하실 것 같나요?

옳지 않게 생각하고 있는 지점이 있다면 지적 감사히 받겠습니다.