른록노트
[llpv] 서버 AWS로 옮기기 본문
1. [시작하기 전]
이전글 - [llpv] PC 사용시간 관리 프로그램 기획
1) 서버를 옮긴 이유
기존의 llpv 서버는 집 PC로 운영되고 있었습니다.
예전부터 VMWare로 여러가지 테스트를 하며 여러 프로그램들을 구성한 경험이 있어서 익숙하였고 사양도 넉넉하였습니다.
CPU는 AMD Ryzen 7 1700로 8 core, 16 Thread이고 램은 32G여서 VMWare 서버 3대 클러스터링 구축에도 문제없이 잘 돌아갔습니다.
문제는 계속 켜져있는 컴퓨터가 신경쓰였고 소음이 크진 않지만 잘 때도 신경쓰여서 클라우드 서비스를 사용해 보기로 결심했고 저는 AWS로 서버를 이전하였습니다.
AWS에서는 처음 가입하면 1년동안 무료로 사용할 수 있는 프리티어의 혜택이 주어져서 이를 활용하였습니다.
단 모든게 무료는 아니고, 조금 찾아보니 정말 여러가지 서비스가 존재하며 요금에 대해서도 여러가지 기준이 있었습니다.
유의하시고 사용하시기 바랍니다.
2. [서버이전 시작]
1) AWS를 등록하면 첫번째로 해야할 것!
- 과금 알림설정
내 계정 -> 결제 기본 설정 (왼쪽) -> 결제 알람 받기 (체크박스 클릭) = 결제가 일어나면 경보 알림을 받을 수 있습니다.
-> 경보 (왼쪽) -> 경보생성 = 일정 금액이 넘어가면 경보 알림을 받을 수 있습니다. - 간혹 aws에 대한 글을 보면 감당할 수 없을만한 과금이 되었다는 사례를 본게 있어서 요금관련 정보는 확실히 짚고 넘어가는게 좋습니다. 이렇게 설정해놔도 자주 과금페이지를 확인하는게 중요합니다. 단순히 서버에 외부 IP로 접속해서(SFTP) 파일을 업로드/다운로드하는 경우에도 과금이 됩니다. 이 문제의 해결책은 aws S3 서비스를 이용해서 wget으로 파일을 이동하는 방법이 있습니다.
Data Transfer 요금 관련 포스팅 - 경보 알림 참고동영상
2) llpv 서버를 AWS로 전환하면서 가장 큰 문제점은 비용 -> 사양
비용을 최대한으로 줄이고 싶어서 aws에서 제공해주는 프리티어를 이용하여 최대한 적은 비용으로 서버를 운영하고 싶었습니다. 그래서 프리티어로 제공되는 EC2 micro instance를 선택했고 사양은 cpu 1core, 램 1GB 입니다...
3) 낮은 사양에서 작동할 수 있도록 프로세스 변경
micro 사양으로는 zookeeper, kafka, Elastic 등 최소사양으로만 맞춘다 하더라도 사양이 터무니 없이 부족합니다.그래서 저는 기존 프로세스를 모두 바꿨습니다.
기존 llpv-rest는 agent로부터 데이터를 전송받으면 kafka로 저장하고 llpv-process(spark) 프로그램으로 데이터를 가공하여 ElasticSearch에 저장하였는데,
이 프로세스를 llpv-rest에서 데이터를 전송받을때 바로 가공하여 MariaDB로 저장하도록 변경하였습니다.
추가로 jenkins를 이용해서 CI를 구축하려고 했는데 llpv 뿐만아니라 다른 python 사이드 프로젝트도 돌아가고 있기 때문에 메모리가 너무 부족해서 jenkins는 서버 최적화를 시킨 후 진행 하기로 하였습니다.
4) AWS 서버 port open하기 - AWS 포트 열기
AWS 서버를 사용하다보면 port를 열어야합니다.
EC2탭에 사용하고있는 instance에서 보안그룹을 수정해주시면 됩니다.
3. 마치며
처음 AWS를 이용해봤는데 서비스가 정말 많은 것 같습니다. 그리고 좋은점은 Volumn 백업, 재사용이 간편한 점이 너무 좋았고, 저는 아직 많이 이용해보지 못했지만 필요한 서비스를 직접 구축 할 필요없이 제공된 서비스를 사용하면 금방 구축할 수 있을 것 같아 좋았습니다.
정말 많은 서비스들이 있지만 제대로 활용하기 위해선 공부가 필요할 것 같고 재밌는 경험이였습니다.