[AWS] MSA방식으로 채팅서버를 구성하는데에 발생한 문제

이홍준·2024년 4월 3일
0

AWS

목록 보기
4/4

문제정의

AWS에서 Free tier로 구축하다보니, MSA방식으로 채팅서버를 구축하는데 배포할때 생각보다 고려해야할 부분이 많았다. 비용적인 부분에서 최소로 하고자 스펙을 낮춤으로써 발생한 문제들을 정리해 보았다.

  1. 카프카 실행이 안됨

    [ec2-user@ip-172-31-36-118 ~]$ docker logs kafka
    waiting for kafka to be ready
    [Configuring] 'port' in '/opt/kafka/config/server.properties'
    [Configuring] 'advertised.host.name' in '/opt/kafka/config/server.properties'
    Excluding KAFKA_HOME from broker config
    [Configuring] 'log.dirs' in '/opt/kafka/config/server.properties'
    Excluding KAFKA_VERSION from broker config
    [Configuring] 'zookeeper.connect' in '/opt/kafka/config/server.properties'
    [Configuring] 'broker.id' in '/opt/kafka/config/server.properties'
    #
    # There is insufficient memory for the Java Runtime Environment to continue.
    # Native memory allocation (mmap) failed to map 1073741824 bytes for committing reserved memory.
    # An error report file with more information is saved as:
    # //hs_err_pid1.log
    OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00000000c0000000, 1073741824, 0) failed; error='Not enough space' (errno=12)
    • 메모리가 부족하다는 오류
    • memory 상태 확인
                 total        used        free      shared  buff/cache   available
      Mem:             949         577          64           3         307         230
      Swap:              0           0           0
    • 해결방법: 메모리 할당량 줄이기
      environment:
        KAFKA_HEAP_OPTS: "-Xmx512M -Xms512M"
  2. 인스턴스 무한로딩

    • CPU 사용률 초과로 무한로딩
    • 해결방법: 미해결
  3. Free tier 비용문제

    • EC2를 가동하지 않아도 EBS(볼륨)은 남기 때문에 비용관련 Notification 수신
    • 분리된 인스턴스를 합칠 예정(kafka+mysql+eureka)

결론

어떻게든 무료로 구축하려고 했으나, 세상에 공짜는 없다는 것을 깨달았다. 오히려 개발 생산성에 지장을 주는 것 같아서 어느정도 비용은 감수할 예정이다.

profile
I'm a web developer.

0개의 댓글