반응형
오늘(2014-02-05) 있었던 SSAG 2차 세미나(http://beyondj2ee.wordpress.com/2014/01/23/2309/) 내용을 두서없이 생각나는대로 정리해 본다.
첫 번째 세션, MongoDB를 사용하면서 알게 된 것들, 한대희님 발표
이음 서비스로 유명한 이음소시어스에서 Hey라는 서비스를 구축하면서 사용했던 MongoDB 적용 후기
- Hey 서비스에 MongoDB를 사용한 이유
- 설치 쉬움
- RDBMS와 유사한 인덱스 지원
- Ruby ORM 존재
- 매칭 데이터가 증가하지 않을까 기대감 (샤딩 고려)
- 인프라 구성
- AWS에서 MongoDB 이미지를 이용해서 3대로 Replica Set 구성
- 구성: Primary 1대, Secondary 1대, Arbiter 1대
- 모니터링
- NewRelic / MMS (mms.mongodb.org): 모니터 + 백업 지원 (연간 50$ 이하 사용시 무료라 함)
- 사용하면서 불편했던 점
- 익숙하지 않은 쿼리 (SQL 만큼 편하지 않음)
- 데이터 타입 문제
- 빈번한 Update시 데이터 블록 재구성에 따른 성능 저하
- DB Level Lock (진짜인지 추가로 확인 필요)
- 서비스의 규모가 최초 예상을 밑돌아 샤딩 등의 확장성 검증은 하지 못했음
- 어디에 쓰면 좋을까?
- 데이터가 간 관계가 없음
- 데이터가 순차적으로 증가
- Insert 위주 (예, 로그나 채팅 메시지 등)
- 수평 확장 대상
- 적용 전 고민
- 데이터 간 조인이 필요 없는지?
- Update나 Delete가 자주 발생하는지?
- Schemaless가 필요한지?
- Write 성능이 중요한지?
- 데이터가 샤딩을 필요로 할 만큼 커지는지?
- 기타 두 분의 배틀 내용 중 기억나는 단어
- MariaDB DokuDB 성능 좋음
두 번째 세션, AWS 인프라 구축 경험, 김민태님 발표
목소리나 발표 모습이 매우 낯이 익다 했더니, 작년 12월에 있었던 OKJSP 13주년 컨퍼런스에서 프론트 관련 주제로 발표한 분이셨다.
- checkit.us 서비스를 만들면서 적용한 이야기
- 서버 측 기술: nodejs, MongoDB
- 최초: heroku를 선택했음
- 프로토타입 목적으로는 적합할지 모르나, 너무 느림
- AWS를 선택한 이유
- 레퍼런스가 많음
- PaaS 보다 자유로움 + PaaS 만큼 편리한 부분도 있음
- 글로벌 서비스에 장점이 있음
- 도입
- 최초: t1.micro로 테스트
- AWS로 이전하는데 약 1달 정도 소요 (최초 2주는 AWS 자체를 알아가는 과정)
- 현재 구성: EC2 1개, MongoDB 3개, ELS (서비스 트래픽에 따라 EC2 인스턴스가 2개까지도 가는 상황)
- 월 비용은 1,000$ ~ 1,300$ 사이
- 한국은 약간 느린 감이 있지만, 서비스엔 충분함
세 번째 세션(?), AWS 비용 최적화 방법 안내
아마존에서 직접 오셔서 최적화 방법을 안내함
- 과하게 자원을 쓰지 말 것 (90% 이상 펑펑 놀고 있다면, 스펙을 낮춰야 함)
- CPU, Disk 등 과도하게 놀지 않도록
- 자동 수평 확장 기능을 사용할 것 (쓴 만큼 내므로)
- 예, 쿠키런의 경우 트래픽이 없을 땐 2대에서 많을 땐 60대로 자동 확장/축소
- RI(Reserved Instance)를 사용해라
- 연 단위 계약을 하면 비용이 절감 됨
- RI를 적용할 인스턴스는 약간 고사양 장비로 맞추고, 자동 확장되는 인스턴스는 RI에 비해 상대적으로 낮은 스펙을 사용하는 방식 등을 고려