안녕하세요 저는 작은 커머스 스타트업을 운영중인 임승진이라고합니다. AWS 크레딧을 받게…

안녕하세요
저는 작은 커머스 스타트업을 운영중인 임승진이라고합니다.

AWS 크레딧을 받게 되어 이전 중인데
몇 가지 궁금한 점이 있어서 문의를 드리게 되었습니다.
프론트엔드 위주로 개발을 하다보니 운영쪽은 잘 몰라서 그룹의 전문가분의 소견을 여쭙고 싶습니다.

1. EC2 내의 웹 서버에서 같은 리전에 있는 mongo DB 서버로 접속하려고 하는데 private dns는 인스턴스를 내렸다가 올리면 매번 바뀐다고 들었습니다.
일반적으로 aws 서버끼리 통신하실 때 elastic ip를 사용하시는지, 다른 방법이 없는지 궁금합니다.

전에 회사 다닐땐 IDC에 Private DNS가 있어서 DB서버에 alias로 접근했었는데 (ex. mongodb.primary) 그런식으로도 가능한지 궁금합니다. Route 53이나 VPC가 그런 일을 해주는 것인가요?

2. mongodb 프라이머리와 세컨더리 서버 사양을 동일하게 맞추는게 좋을지, 아니면 세컨더리를 조금 낮춰도 괜찮을지 궁금합니다.

3. 웹서버와 API서버의 nginx를 설정하는데 팁이 있으신지 궁금하고, 추천 설정 방법 같은 레퍼런스가 있으시면 소개해주시면 감사하겠습니다.

4. 운영해야할 서버가 많아지고 있는데 각 서버의 nginx 같은 configuration을 ssh 접속하지 않고도 management 서버를 두어 할 수 있는 좋은 방법이 있을지 궁금합니다.

5. git의 master branch 변화를 쳐다보고 있다가 커밋이 뜨면 자동으로 관련 서버에 배포하는 management 서버를 구축하려고 한다면 어떤 방식이 좋을지 소견이 궁금합니다. 배포 간에 이전 배포 버전을 내리지 않고 graceful하게 변경되도록 하고 싶습니다.

6. 순간동접자 5만명, 15분 내 결제유저가 2만명 정도 되는 시스템을 구축해야하는데, aws 상에 있는 인스턴스들의 성능을 실험해볼 수 있는 (n그라인더 등) 프레임워크와 방법론을 추천해주실 수 있을까요?

모르는게 너무 많아서 질문이 많았습니다.
부족한 글 읽어주셔서 감사합니다.

5 thoughts on “안녕하세요 저는 작은 커머스 스타트업을 운영중인 임승진이라고합니다. AWS 크레딧을 받게…

  1. 1. vpc 내부에 놓으면 private ip는 변경되지 않습니다.
    5. git 호스트를 깃허브 이용하시면 깃허브의 webhook을 이용해서 git에 변동사항이 생기면 jenkins로 받고 젠킨스에서 빌드해서 배포하도록 스크립트를 짜면될것같습니다.

  2. 1. VPC에서는 private IP를 고정하여 사용하실수 있습니다. VPC 구성할때는 SG 설계를 잘해주시는것이 좋습니다.
    2. DB의 경우는 사용 용도에 따라 결정해야하는데, 일반적으로는 Active-Active, Active-Standby로 구성하더라도 동일사양으로 구성하는 경우가 많습니다.
    3. NginX의 경우 자세한 설명을 드리지 못하는데, 인터넷을 찾아보면 좋은 자료가 있으니 참고하시면 좋을듯합니다
    4. aws opsworks를 사용하는것을 검토하면 좋을듯 합니다
    6. 성능 테스트를 하려면 성능 부하툴, 모니터링 툴이 필요할듯합니다. 부하툴로는 nGrinder 모니터링으로는 zabbix, collectd 등을 추천합니다. Loopback, Spike 시험으로 부분 성능 및 통합 성능 테스트를 수행하시면 좋을듯 싶습니다.

    전체적인 시스템 상황을 모르는 상태라서 알고 있는 차원에서 글을 적었습니다. 업무에 참고가 되었으면 하네요..

  3. 1. 내부 통신하는 서버 (was-db) 간은 elastic ip 를 쓰지 않습니다. SG그룹으로 통제가능하지만 보상상 이슈가 생길수 있습니다.
    모든 내부 intenal ec2에 elastic ip 를 attach해서 사용하면 비용이 들어 가니 별로 좋은 방법은 아닙니다.

    vpc 생성시에 DNS resolution. DNS hostnames 설정 옵션을 하면 문제 없이 사용할수 있습니다.

    만약 Private dns를 구축하면 리부팅시 ip를 받아 와서 변경 되지 않으나 master-slave dns 로 bind9 application 이용해서 구축해야 하고 관리해야 되서
    정말 운영체계 , 네트워크 , dns 구조를 잘 알지 못하면 힘들겁니다.

    현재 VPC를 수정이 어렵다면 해결책은 2년전에 썼던 방식인데

    internal ec2인경우는 부팅시 ip 변경 되는걸 강제로 예전 ip로 변경 시키는 방법입니다.

    vi /etc/dhcp/dhclient.conf
    제거 : server-domain-search
    추가 : prepend domain-name-servers 최초설정된 aws dns ip;

    /etc/init.d/networking restart

    /etc/rc.local에 추가 (리부팅후 변경되는거 강제 수정)

    sed ‘/search/d’ /etc/resolv.conf > /etc/resolv.conf.tmp ; cp -rf /etc/resolv.conf.tmp /etc/resolv.conf

    db의 경우 내부 ip만 사용한다면 운이긴 한데 ip가 변경 안되는 경우도 많습니다.
    2015년 초 부터 aws에서 elb prewarm 처럼 ip 변경안되게 db도 신청할수 잇게 한다고 하던데..
    지금 구현 되었는지는 모르겠네요.

    2. 대략 active – active 는 동일 사양으로 atcive-standby 인 경우 한단계 아래 정도

    3. nginx 는 찾아 보면 install 및 config 하는 방법 많을겁니다. apache와 비슷해서 그쪽 분야 알면 금방 하실듯

    4. application config 를 auto로 관리하는거 대부분 yumrepo 를 두고 많이 사용합니다.

    구조는 패키지 제작후 yumrepo에 변경 될거 올리면 각 clinet ec2가 변경을 yum update로 일괄 등록 하는 방법과

    배포 관리 서버를(허드슨 등) 두고 배포 서버에서 1번 작성된 스크립터 작성해서 배포하는 인자값만 변경하면 배포 되는 방식입니다.

    스크립터는 ssh 자동 로긴 >> shell 중지 >> cp >> shell 기동 순으로 작성 되겠지요.

    5. git으로는 구성을 안해 봐서..

    6. 성능 관련해서는 jmeter 많이 사용하구요… db를 제외하고는 auto-scale 으로 구성하면 시스템 오픈전에 auto-sccaling 부하 테스트 많이들 합니다.
    예전 IDC 초기 h/w 설계 처럼 TpmC 값으로 예측하여 시스템을 구매 하지 않아도 되니 aws가 휠씬 더 좋죠.

    현재 환경을 몰라 두서 없이 썼네요.. 도움 되었음 합니다.

답글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다.