인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

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

박지훈님의 프로필 이미지

작성한 질문수

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

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

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

작성

·

147

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 인턴님의 프로필 이미지

안녕하세요, 인프런 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 가 납니다.

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