Tutorial

[AMAZON] EC2 프리티어로 API서버 구축 + Elaticsearch + Kafka

new_challenge 2020. 1. 22. 01:33
반응형

아마존에서 제공하는 프리티어로

테스트용 API서버 구축일지

 

 

 

Django + Gunicorn + Nginx API서버

- 이전 포스팅을 참고하면 빠르게 API 서버를 구축할 수 있다.

- 테스트용 API 서버이긴 하지만, 실제 서비스로 가정하고 Nginx와 Gunicorn을 장고에 연결한다.

- 서버 구축 관련 사항은 아래 링크 참고

- https://soyoung-new-challenge.tistory.com/62

 

[Nginx + Gunicorn + Django] API 서버 구축

웹서버인 Nginx, 앱서버인 Django, 그리고 그 둘을 통신하게 도와주는 Guniron 인터페이스 이렇게 3개를 함께 구축하여 Rest API 통신을 하는 서버를 구축! 1. 가상환경 구축 (Aanaconda) $ wget https://repo.ana..

soyoung-new-challenge.tistory.com

 

 

연결 테스트

- Django + Gunicorn + Nginx가 잘 연결되었는지 연결 테스트

- 아마존 인스턴스 IP주소:80 포트로 요청을 보냈을 때 장고 시작화면이 나오면 성공

Debug = True 모드 시 위와 같은 화면 확인 가능

 

 

Elasticsearch + Kibana

- 추가적으로 서버로 들어온 요청을 확인 하기 위해 Elasticsearch + Kibana 구축

- 자세한 엘라스틱서치와 키바나의 설치 & 세팅 과정은 아래 포스팅을 참고

https://soyoung-new-challenge.tistory.com/56

 

[Filebeat+ELK 7.5] 로그 모니터링 서버 구축 (설치부터 설정까지)

[Filebeat+ELK] 첫번째 로그 모니터링 서버 구축기 01. 설치부터 설정까지 더보기 실시간으로 쌓이는 로그를 통해 미쳐 발견하지 못했던 문제점 혹은 오류를 발견하고, 의미있는 새로운 데이터를 발견하기 위해 로..

soyoung-new-challenge.tistory.com

 

 

인스턴스에서 Elasticsearch 실행

- 아마존에서 기본적으로 제공해주는 instance의 메모리는 1gb이다.

- 이때 발생하는 문제는, elaticsearch 설치시 기본 자바 최소 메모리가 1gb여서 실행시 메모리 에러 발생

 

[ERROR] : Not enough space, Insufficient memory for Java

insufficient memory error

- 따라서 기본적으로 설정 된 자바 heap memory사이즈를 변경해줘야 한다.

$ vi /etc/elasticsearch/jvm.options

- 최소 Xms512m

- 최대 Xmx512m

 

최소와 최대 메모리를 다르게 설정하면 아래와 같은 에러메세지가 elasticsearch 실행로그에 출력된다.
따라서 최소, 최대 메모리를 같은 사이즈로 바꿔준다.

- 자바 메모리 설정 변경 후에는 정상적으로 elasticsearch 실행 완료

 

엘라스틱 서치 실행 확인

- 정상적으로 실행 했는 지 상태 확인 

$ sudo systemctl status elasticsearch.service

 

 

인스턴스에서 Kafka 실행

- 우선 아래 링크를 참고하여 빠르게 Kafka설치 및 실행 진행

https://soyoung-new-challenge.tistory.com/61?category=872749

 

[Kafka] 처음 시작하는 카프카_Quick Start

카프카를 처음 접했을 때 빠르게 시작할 수 있는 튜토리얼 입니다:) "공식문서를 바탕으로 작성 된 카프카 Quickstart" [ 01 ] Kafka 다운로드 # Kafka 2.4.0 버전 다운로드 : https://www.apache.org/dyn/closer..

soyoung-new-challenge.tistory.com

 

- 아마존에서 기본적으로 제공해주는 instance의 메모리는 1gb... 이번에도 역시나 메모리 에러 발생

- 테스트 용 구축 시 한 인스턴스에서 Kafka와 Elasticsearch를 둘다 설치하는 건 무리여서 카프카만 실행하는 걸로 결정

- 이번에도 java_heap_size를 재 설정 해주어야 함

- 가장 빠르게 해결하는 방법은 아래와 같이 실행

- 메모리 1gb 기준으로 반 정도를 Kafka_heap_opts의 max로 정한다

export KAFKA_HEAP_OPTS="-Xmx512M -Xms256M"

 

## 서버를 껐다 켰을 때도 동일한 설정을 연결해주고 싶을 때 

$ vi ~/.bashrc

export KAFKA_HEAP_OPTS="-Xmx512M -Xms256M"

 

쥬키퍼 & 카프카 실행 확인

- 위 설정을 마친 후 재 시작 시 아래와 같이 잘 실행되는 것을 확인 할 수 있다

# 쥬키퍼 실행 (꼭 선행되어서 실행)
$ bin/zookeeper-server-start.sh config/zookeeper.properties

# 카프카 실행
$ bin/kafka-server-start.sh config/server.properties

> 쥬키퍼 & 카프카 작동 확인 완료

 

반응형