강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

박지훈님의 프로필 이미지
박지훈

작성한 질문수

비전공자도 이해할 수 있는 Docker 입문/실전

[실습] AWS EC2에 Spring Boot, MySQL, Redis 배포하기

마지막 docker compose up -d후 버퍼링이 심합니다.

작성

·

197

0

저는 조이프로젝트를 진행 중이고, 초반에는 Redis, MySQL, Jasypt, 그리고 회원 CRUD 정도만 구현한 상태입니다. 현재 도커를 이용해 배포 중인데, 배포 과정에서 문제가 발생하고 있습니다.

  1. 문제 발생:

    • EC2에서 MySQL, Redis, Spring을 배포할 때, docker compose up을 실행하면 테스트와 체크는 정상적으로 이루어집니다.

    • 그러나 서버가 실제로 구동되지 않음.

    • EC2 자체의 성능 문제가 발생하여, 로그 확인을 위해 docker logs를 실행하려 할 때 이 너무 심해집니다.

  2. 상황:

    • 배포 과정에서 동시 올리기 작업을 마지막에 시도하고 있는데, 이때 EC2 성능 저하가 심해지고, CPU 사용량50% ~ 100% 사이로 왔다 갔다 하면서 이 발생합니다.

  3. 의문점:

    • 프리티어 인스턴스1GB RAM, CPU 성능 문제 때문인지 의심됩니다.

    • CPU 사용량이 높은 상태에서, 이러한 렉 현상을 해결하려면 어떻게 해야 할지 궁금합니다.

답변 3

1

박지훈님의 프로필 이미지
박지훈
질문자

Swap 메모리를 할당해서 늘려주니 문제 없이 잘 돌아갔습니다! 감사합니다.

0

JSCODE 박재성님의 프로필 이미지
JSCODE 박재성
지식공유자

안녕하세요 지훈님! 해결하신 것 같아 다행이네요:)

지훈님이 해결하신 것처럼 프리티어의 사양을 유지하면서 해당 문제를 해결할 때

Swap 메모리 할당의 방법을 많이 활용합니다!

이 외로 궁금하신 점 생기시면 언제든 질문 남겨주세요~~

0

안녕하세요, 인프런 AI 인턴입니다. 박지훈님 질문 주셔서 감사합니다.

Docker Compose를 사용하여 여러 컨테이너를 돌리고 있을 때, 특히나 Amazon EC2의 프리티어 계정을 사용할 경우, 자원이 부족하여 성능이 저하될 수 있습니다. 아래에서 문제 해결을 위한 몇 가지 접근 방법을 제안드립니다:

  1. EC2 인스턴스 업그레이드:

    • 프리티어 인스턴스는 성능이 매우 제한적입니다. 더 많은 자원이 필요한 경우, 인스턴스를 업그레이드하는 것이 필요할 수 있습니다. 특히, CPU와 메모리가 충분한 인스턴스로 업그레이드하면 성능 문제를 해결할 수 있습니다.
  2. 서비스 최적화:

    • 현재 구동 중인 각 서비스(Spring, MySQL, Redis)가 필요로 하는 최소 리소스를 고려하여 최적화 설정을 적용해보세요. 예를 들어, Spring Boot의 최대 메모리 사용량을 제한하고, MySQL의 캐싱 및 메모리 설정을 조정할 수 있습니다.
  3. 로그 관리:

    • docker logs에서 많은 로그가 출력되도록 설정되어 있을 경우, 로그 크기가 시스템 성능에 영향을 줄 수 있습니다. 로그 레벨을 일시적으로 줄이거나, 파일로 로그를 저장하도록 설정하면 실시간으로 로그를 확인하는 부담을 줄일 수 있습니다.
  4. Swap 메모리 사용:

    • EC2에서 스왑 메모리를 활성화하여 부족한 물리 메모리를 보완할 수 있습니다. 하지만 스왑은 디스크를 사용하기 때문에 I/O 성능이 저하될 수 있으므로 조심스럽게 설정해야 합니다.
  5. Docker Compose 설정 조정:

    • docker-compose.yml 파일에서 depends_onhealthcheck를 적절히 설정하여 각 서비스가 충분히 준비된 후 다음 컨테이너를 실행하도록 설정할 수 있습니다. 이는 성능을 약간 향상시킬 수 있습니다.

위의 방법 외에도, 유사한 문제를 경험한 다른 사용자들의 해결 방법을 참고하면 더욱 도움이 될 수 있습니다. 다음은 관련된 유사 질문 링크입니다:
- docker compose up 시 느려짐 + 프로젝트 실행 안되는 문제
- JDBCConnectionException 가 납니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

박지훈님의 프로필 이미지
박지훈

작성한 질문수

질문하기