ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • AWS OpsWorks 기본 내용 정리
    amazon web service 2014. 3. 7. 09:00
    반응형

    특징
    * 빈스토크와는 다르게 컨테이너를 원하는 만큼 커스터마이징 가능함
       그만큼 수동설정해줘야하는 것들이 많아서 빈스토크보다 손이 많이 감
    * 기본 EC2에서 제공하는 모니터링 메트릭 외에 CPU사용률, 메모리 사용률, load average등에 관한 모니터링 제공
    * OpsWorks 모니터링 메트릭은 인스턴스가 tokyo에 있더라도 Virginia의 OpsWorks 네임스페이스로 생성됨.(기본으로 1분단위 모니터링이 제공됨)
    * 스택을 삭제할때는 스택에 포함된 app과 인스턴스를 모두 지운다음에 삭제해야 함.
    * Elastic Load Balancing는 직접 생성해서 스택에 추가해 주어야 함. ELB에 인스턴스 추가는 OpsWorks에서 할 수 있음.

    빈스토크에서 지원하는 플랫폼과 OpsWorks에서 지원하는 플랫폼 차이

    빈스토크 OpsWorks
    Java Java 1.6, 1.7
    Tomcat 6, 7
    Apache 2.2
    Open JDK7
    Apache Tomcat 7.0
    Node.js Node.js 0.8.6~0.8.21, 0.8.24, 0.10.10
    Nginx 1.2.9 or Apache 2.4.4
    Node.js 0.8.19, 0.8.26,
                  0.10.11, 0.10.21, 0.10.24, 0.10.25
    Ruby Ruby 1.8.7, 1.9.3
    Passenger 4.0.20
    Ruby  1.8.7, 1.9.3, 2.0.0, 2.1
    Passenger 4.0.33
    Python Python 2.6, 2.7
    Apache with mod_wsgi 3.2
    X
    PHP PHP 5.3, 5.4, 5.5
    Apache 2.4.6
    PHP 5.3
    Apache 2.2
    Windows .NET IIS 7.5, 8 X



    개념

    스택(Stack)
    AWS OpsWorks의 기본 구성요소. 기본적으로 AWS의 자원들에 대한 컨테이너.
    포함된 자원들을 그룹화해서 관리함.
    스택 구성요소들을 사용자와 직접 상호작용하지 않게하고 싶은면 스택을 VPC 안에 두면 됨.
    스택 수정 : region, VPC ID 빼고는 모든 설정을 수정할 수 있음.
    스택 복사 : region을 변경할때 사용할 수 있음.

    레이어(Layer)
    스택의 구성요소들은 하나이상의 레이어로 구성됨.
    AWS OpsWorks는 다음과 같은 기본적인 내장 레이어들을 가지고 있음.
    애플리케이션 서버 : 자바, Node.js, PHP, Rails, Static Web
    데이터베이스 서버 : MySQL
    로드밸런서 : ELB, HAProxy
    모니터링 서버 : Ganglia
    인메모리 키-값 저장소 : Memcached
    기본 레이어외에 Chef 레시피를 이용해서 커스텀 레이어를 추가할 수 있음.
    인스턴스 하나가 여러개의 레이어에 속할 수 있음. : 비용절감, 애플리케이션 서버중 하나를 관리용으로 사용등.

    인스턴스
    인스턴스는 기본 환경설정이 정의된 EC2 인스턴스.
    모든 레이어는 하나이상의 인스턴스를 가지고 있음.
    AWS OpsWorks가 시작되면 
      EC2 인스턴스에 에이전트를 설치하고 서비스와 인스턴스간의 커뮤니케이션을 처리함.
      그리고나서 레이어의 레시피를 설정하고 레이어의 소프트웨어를 시작함.
    인스턴스 타입
    24/7 인스턴스 : 수동으로 시작하고 정지하는 인스턴스
    Load-based 인스턴스 : AWS OpsWorks가 CPU사용률같은 로드 메트릭에 따라 자동으로 시작하고 정지하는 인스턴스
    Time-based 인스턴스 : AWS OpsWorks가 지정된 일정에 따라 자동으로 시작하고 정지하는 인스턴스

    App
    비용절감을 위해 하나의 애플리케이션 서버에 여러개의 애플리케이션을 실행할 수 있음.
    이 경우 로드밸런싱을 하려면 HAProxy를 사용해야 함. ELB에서는 동일 서버에 여러개의 애플리케이션을 지원하지 않음.
    HAProxy에서도 HTTPS라면 여러개의 애플리케이션을 사용하지 못함.


    AWS OpsWorks에서 제공하는 5가지 생명주기 이벤트
    Setup : 인스턴스가 부팅된 다음에 일어남.
    Configure : 인스턴스가 온라인상태가 되거나 오프라인상태가 될때 스택의 모든 인스턴스에 일어남.
    Deploy : 앱을 배폴할때 일어남
    Undeploy : 앱을 삭제할때 일어남
    Shutdown : 인스턴스를 정지했을때 일어남

    기본 PHP App 구성도



    참조
    http://docs.aws.amazon.com/opsworks/latest/userguide
    http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/ops-metricscollected.html

    반응형

    댓글

Designed by Tistory.