IaaS/퍼블릭클라우드

(AWS) Opsworks 란?

armyost 2022. 3. 4. 14:03
728x90

구성요소

 

Stack

기본적으로 AWS 리소스 (Amazon EC2 인스턴스, Amazon RDS 데이터베이스 인스턴스 등) 용 컨테이너로서 공통된 용도를 가지며 논리적으로 함께 관리해야 합니다. Stack은 이러한 리소스를 그룹으로 관리하는 데 도움이 되며, 인스턴스의 운영 체제와 AWS 리전 같은 일부 기본적인 구성 설정도 정의합니다. 일부 스택 구성 요소를 직접적인 사용자 상호 작용에서 격리하려면 스택을 VPC에서 실행하면 됩니다.

 

사용방법

1. [AWS Console]-[OpsWorks]-[Stacks]에서 "Add Stack"클릭

2. Chef 12 Stack을 선택

3. 기본정보 입력. 필자는 Default OS에 Linux 선택. Stack 생성 완료

 

Layer

AWS OpsWorks Stacks가 배포하는 모든 인스턴스는 적어도 한 Layer에 속해야 하며, 이는 Stack에서 인스턴스의 역할을 정의하며, Layer는 인스턴스 설정 및 구성, 패키지 설치, 애플리케이션 배포 등등에 대한 세부 정보를 제어합니다. 

 

하나 이상의 Layer를 추가하여 Stack의 구성 요소를 정의합니다. Layer는 애플리케이션에 서비스하거나 데이터베이스 서버를 호스팅하는 등 특정 목적에 사용되는 Amazon EC2 인스턴스 집합을 나타냅니다.

패키지의 기본 구성을 수정하고 추가 패키지 설치 등등의 작업을 수행하는 Chef 레시피를 추가하여 Layer를 사용자 지정하거나 확장할 수 있습니다.

모든 스택의 경우, AWS OpsWorks Stacks에는 다음의 AWS 서비스를 나타내는 서비스 Layer가 포함됩니다.

  • Amazon Relational Database Service
  • Elastic Load Balancing
  • Amazon Elastic Container Service

Layer를 통해 어떤 패키지가 설치되고, 어떻게 패키지를 구성하며, 애플리케이션이 어떻게 배포되는지 등을 완전히 제어할 수 있습니다.

 

Layer는 다음과 같은 분류로 갈립니다. 인스턴스가 동작할 타입에 맞추어 Layer를 선정해주어야 합니다.

  • Opswork
  • ECS
  • RDS

사용방법

1. [AWS Console]-[OpsWorks]-[Stack]에서 대상 Stack 접속

2. "Layers" 클릭 및 "Add a Layers" 클릭

3. Network 방식과 Recipes와 볼륨 방식을 선택합니다.

 

Instances

Amazon EC2 인스턴스와 같은 단일 컴퓨팅 리소스를 나타냅니다. 인스턴스는 운영 체제와 크기 같은 리소스의 기본적 구성을 정의합니다. 탄력적 IP 주소 또는 Amazon EBS 볼륨 등 그 밖의 구성 설정은 인스턴스의 Layer에 의해 정의됩니다.

 

AWS OpsWorks Stacks를 사용하여 인스턴스를 생성하고 인스턴스를 하나 이상의 Layer에 연결할 수 있습니다. 인스턴스를 시작할 때AWS OpsWorksStacks는 인스턴스와 그 Layer에 의해 지정된 구성 설정을 사용하여 Amazon EC2 인스턴스를 시작합니다. Amazon EC2 인스턴스 부팅을 마친 후 AWS OpsWorksStacks는 인스턴스와 서비스 간 통신을 처리하고 수명 주기 이벤트에 응답하여 적절한 Recipe를 실행하는 에이전트를 설치합니다.

 

기존 인스턴스를 추가하는 방법, 새 인스턴스를 만드는 방법으로 크게 나뉜다.

  • New—OpsWorks에서 사양에 맞게 구성된 새 인스턴스를 생성하여 계층의 구성원으로 만듭니다.
  • Existing기존 인스턴스는 호환되는 계층의 기존 인스턴스를 추가할 수 있지만 인스턴스가 오프라인 (중지) 상태여야 합니다.

AWS OpsWorks Stacks는 시작 및 중지 타입에 아래와 같은 인스턴스 유형을 지원합니다.

  • 24/7 : 인스턴스는 수동으로 시작되며 중지할 때까지 실행됩니다.
  • 시간 기반 인스턴스 : 지정된 일간 및 주간 일정에 따라 AWS OpsWorks Stacks에 의해 실행됩니다.
    이 인스턴스를 통해 스택은 자동으로 인스턴스를 조정하여 예측 가능한 사용 패턴을 수용할 수 있습니다.
  • 로드 기반 인스턴스 : CPU 사용률 같은 지정된 로드 측정치를 기반으로 AWS OpsWorks Stacks에 의해 자동으로 시작되고 중지됩니다.
    이 인스턴스를 통해 스택은 자동으로 인스턴스 수를 조정하여 수신 트래픽의 변동을 수용할 수 있습니다. 로드 기반 인스턴스는 Linux 기반 스택에서만 사용할 수 있습니다.

AWS OpsWorks Stacks는 인스턴스 자동 복구를 지원합니다. 에이전트와 서비스의 통신이 중지되면 AWS OpsWorks Stacks는 인스턴스를 자동으로 중지하고 다시 시작합니다.

 

AWS OpsWorks Stacks 외부에서 생성된 스택에 Linux 기반 컴퓨팅 리소스를 통합할 수도 있습니다.

  • Amazon EC2 콘솔, CLI 또는 API를 사용하여 직접 생성한 Amazon EC2 인스턴스.
  • 가상 머신에서 실행되는 인스턴스를 비롯하여 자체 하드웨어에서 실행되는 온프레미스 인스턴스.

이러한 인스턴스 중 하나를 등록한 후에는 이 인스턴스가 AWS OpsWorks Stacks 인스턴스가 되며, AWS OpsWorks Stacks를 사용하여 생성한 인스턴스와 비슷한 방법으로 관리할 수 있습니다.

 

사용방법

- 인스턴스를 신규로 생성하려면

1. [AWS Console]-[OpsWorks]-[Instances] 접속

2. "+Instances" 클릭

3. "New" 탭을 선택합니다. 네트워크 볼륨등의 설정을 수행합니다.

 

- 기존 인스턴스 추가하려면

1. [AWS Console]-[OpsWorks]-[Instances] 접속

2. "+Instances" 클릭

3. "Existing" 탭을 선택합니다. 네트워크 볼륨등의 설정을 수행합니다.

4. "Add Instance"를 클릭하여 추가합니다.

 

 

LifeCycle And Recipes

Layer는 인스턴스에 패키지 설치, 앱 배포, 스크립트 실행 등의 작업을 처리하기 위해 Chef 레시피에 의존합니다. 핵심 중 하나 AWS OpsWorks 스택 기능은 다음과 같은 집합입니다. 수명 주기 이벤트- Setup, Configure, Deploy, Undeploy 및 Shutdown - 각 인스턴스에서 지정된 레시피 세트를 적절한 시간에 실행합니다.

각 Layer에는 각각의 수명 주기 이벤트에 할당되어 해당 이벤트와 Layer를 위해 다양한 작업을 처리하는 Recipes 집합이 있을 수 있습니다. 

 

각 이벤트는 다음을 정의합니다.

Setup : 이 이벤트는 시작된 인스턴스가 부팅을 완료하면 발생합니다.

Configure : 인스턴스 및 LB에 변경사항이 있을때 발생합니다.

  • 인스턴스가 온라인 상태로 전환하거나 온라인 상태를 벗어나는 경우
  • 탄력적 IP 주소를 인스턴스에 연결하거나 인스턴스에서 연결 해제하는 경우
  • 그냥 필요한 만큼Elastic Load Balancing 로드 밸런서계층에 연결하거나 계층에서 분리하는 경우

Deploy : 애플리케이션 서버 인스턴스 집합에 애플리케이션을 배포하기 위해 실행

Undeploy : 앱을 삭제하거나 Undeploy 명령을 실행하여 애플리케이션 서버 인스턴스 집합에 앱을 제거할 때

Shutdown : 서비스 종료와 같은 정리 작업을 수행

 

App

애플리케이션과 관련 파일은 Amazon S3 버킷과 같은 리포지토리에 저장합니다. 각각의 애플리케이션은 애플리케이션 유형을 지정하고 리포지토리에서 인스턴스로 애플리케이션을 배포하는 데 필요한 정보(예: 리포지토리 URL 및 암호)가 포함된 앱으로 표시됩니다. 앱을 배포하면 AWS OpsWorks Stacks는 스택의 인스턴스에서 Deploy 레시피를 실행하는 Deploy 이벤트를 트리거합니다.

앱은 다음 방법으로 배포할 수 있습니다.

  • 자동—인스턴스를 시작할 때AWS OpsWorksStacks는 인스턴스의 Deploy 레시피를 자동으로 실행합니다.
  • 수동—새 앱이 있거나 기존 앱을 업데이트하려는 경우 온라인 인스턴스의 Deploy 레시피를 수동으로 실행할 수 있습니다.

일반적으로는 AWS OpsWorks Stacks가 전체 스택에서 Deploy 레시피를 실행하도록 하십시오. 그러면 다른 계층의 인스턴스가 구성을 적절히 수정할 수 있습니다. 하지만 예컨대 새 앱을 모든 앱 서버 인스턴스에 배포하기 전에 테스트하려는 경우, 인스턴스의 하위 집합으로 배포를 제한할 수 있습니다.

사용방법

1. [AWS Console]-[OpsWorks]-[Apps]에 접속합니다.

2. "Add an App"을 클릭합니다.

3. 기본적인 내용(레파지토리 정보 등)을 입력합니다

4. 대상인스턴스를 선택하고 배포합니다.

 

 

 

'IaaS > 퍼블릭클라우드' 카테고리의 다른 글

(AWS) Kinesis란?  (0) 2022.03.07
(AWS) CloudTrail 이란?  (0) 2022.03.04
(AWS) ECR/ECS를 활용한 CI/CD 파이프라인  (0) 2022.03.03
(AWS) ECS에 CloudWatch를 적용  (0) 2022.03.03
(AWS) ECS와 Capacity Provider에 대해서  (0) 2022.03.02