빠른 요약
현재 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은 아래와 같습니다.
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 의 문제라고 생각됩니다.
선생님들이면 어떻게 하실 것 같나요?
옳지 않게 생각하고 있는 지점이 있다면 지적 감사히 받겠습니다.
슬림이미지 쓴다해도 2기가는 좀빡센거맞음 ㅋㅋ
답변 감사해영. 보통 현업에서 docker 컨테이너 올린다 하면 최소 인스턴스 사양은 어느정도로 잡나요..?
일할땐 eks 나 ecs 썻엇음
헐.. @-@ 알겠습니당
ecs 써보는걸 추천함
크레딧있다면 써보고 싶네요.. ec2 인스턴스를 여러개 써야하는데 여러개 쓰는순간 바로 750시간 리밋을 초과해버리니까 ㅇㅅㅇ..
물론 밑에분처럼 스왑메모리쓰면 이야기가달라지긴함
2G짜리에 swap 3G만 넘겨도 alpine 이미지 5 ~ 6개는 가뿐히 돌리던데 내가 지금 그렇게 돌리고 있음.
이렇게 돈 없는 그지면 스왑 메모리 올리는 것도 방법 중에 하나
거지는 맞는데 너무 노빠구로 시비거는거 아니노
그냥 서버에 jdk 깔고 띄워 굳이 도커로 하지말고
글고 자바스프링은 원래 메모리 많이먹음
네.. 아무래도 이방식으로 하다가 마이그레이션 하는쪽으로 해야겠어요 ㅜ.ㅜ 감사합니당