

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 2단계: 간단한 애플리케이션 서버 스택 생성 - Chef 11
<a name="gettingstarted-simple"></a>

**중요**  
이 AWS OpsWorks Stacks 서비스는 2024년 5월 26일에 수명이 종료되었으며 신규 및 기존 고객 모두에서 비활성화되었습니다. 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션하는 것이 좋습니다. 마이그레이션에 대한 질문이 있는 경우 [AWS re:Post](https://repost.aws/) 또는 [AWS Premium Support](https://aws.amazon.com/support)를 통해 AWS Support 팀에 문의하세요.

기본 애플리케이션 서버 스택은 사용자 요청을 수신하기 위한 퍼블릭 IP 주소를 가진 단일 애플리케이션 서버 인스턴스로 구성됩니다. 애플리케이션 코드 및 관련 파일은 별도의 리포지토리에 저장되다가 서버로 배포됩니다. 다음 다이어그램은 이러한 스택을 보여줍니다.

![\[Diagram showing application server stack with users, internet, and AWS components.\]](http://docs.aws.amazon.com/ko_kr/opsworks/latest/userguide/images/php_walkthrough_arch_2.png)


스택은 다음 구성 요소를 갖습니다.
+ *계층* - 인스턴스의 그룹을 나타내며 인스턴스 그룹을 어떻게 구성할지를 지정합니다.

  이 예제에서 계층은 PHP 앱 서버 인스턴스의 그룹을 나타냅니다.
+ Amazon EC2 *인스턴스*를 나타내는 인스턴스입니다.

  이 예제에서 인스턴스는 PHP 앱 서버를 실행하도록 구성됩니다. 계층에는 원하는 수의 인스턴스가 있을 수 있습니다. OpsWorks 스택은 다른 여러 앱 서버도 지원합니다. 자세한 내용은 [애플리케이션 서버 계층](workinglayers-servers.md) 단원을 참조하십시오.
+ *앱* - 애플리케이션 서버에 애플리케이션을 설치하는 데 필요한 정보를 포함합니다.

  코드는 원격 리포지토리(예: Git 리포지토리 또는 Amazon S3 버킷)에 저장됩니다.

다음 섹션에서는 OpsWorks Stacks 콘솔을 사용하여 스택을 생성하고 애플리케이션을 배포하는 방법을 설명합니다. CloudFormation 템플릿을 사용하여 스택을 프로비저닝할 수도 있습니다. 이 항목에서 설명하는 스택을 프로비저닝하는 템플릿 예제는 [AWS OpsWorks 조각](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-opsworks.html)을 참조하세요.

**Topics**
+ [2.1 단계: 스택 생성 - Chef 11](gettingstarted-simple-stack.md)
+ [2.2단계: PHP 앱 서버 계층 추가 - Chef 11](gettingstarted-simple-layer.md)
+ [2.3단계: PHP 앱 서버 계층에 인스턴스 추가 - Chef 11](gettingstarted-simple-instance.md)
+ [2.4단계: 앱 생성 및 배포 - Chef 11](gettingstarted-simple-app.md)

# 2.1 단계: 스택 생성 - Chef 11
<a name="gettingstarted-simple-stack"></a>

**중요**  
이 AWS OpsWorks Stacks 서비스는 2024년 5월 26일에 수명이 종료되었으며 신규 및 기존 고객 모두에서 비활성화되었습니다. 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션하는 것이 좋습니다. 마이그레이션에 대한 질문이 있는 경우 [AWS re:Post](https://repost.aws/) 또는 [AWS Premium Support](https://aws.amazon.com/support)를 통해 AWS Support 팀에 문의하세요.

인스턴스 및 기타 리소스의 컨테이너 역할을 하는 스택을 생성하여 OpsWorks Stacks 프로젝트를 시작합니다. 스택 구성은 AWS 리전, 기본 운영 체제 등 스택의 모든 인스턴스가 공유하는 일부 기본 설정을 지정합니다.

**참고**  
이 페이지에서는 Chef 11 스택을 생성하는 방법을 설명합니다. Chef 12 스택을 생성하는 방법에 대한 자세한 정보는 [스택 생성](https://docs.aws.amazon.com/opsworks/latest/userguide/gettingstarted-intro-create-stack.html) 단원을 참조하세요.

이 페이지에서는 Chef 11에서 스택을 생성하는 방법을 설명합니다.

**새 스택을 생성하려면**

1. 

**stack 추가**

   [OpsWorks Stacks 콘솔](https://console.aws.amazon.com/opsworks/)에 로그인합니다. 계정에 기존 스택이 없는 경우에는 [**AWS OpsWorks 시작하기**] 페이지가 표시되는데 [**첫 번째 스택 추가**]를 클릭합니다. 그렇지 않으면 계정의 OpsWorks 스택을 나열하는 Stacks 대시보드가 표시됩니다. **스택 추가**를 클릭합니다.  
![\[스택이 없는 경우 OpsWorks Stacks 콘솔에 첫 번째 실행 페이지가 표시되고, 그렇지 않으면 계정의 모든 스택 목록이 표시됩니다.\]](http://docs.aws.amazon.com/ko_kr/opsworks/latest/userguide/images/firstrun.png)

1. 

**스택 구성**

   [**스택 추가**] 페이지에서 [**Chef 11 스택**]을 선택하고 다음 설정을 지정합니다.  
**스택 이름**  
스택의 이름을 입력합니다. 이 이름에는 영숫자(a-z, A-Z 및 0-9) 및 하이픈(-)을 사용할 수 있습니다. 이 연습에서 사용되는 예제 스택의 이름은 **MyStack**입니다.  
**리전**  
스택 리전으로 미국 서부(오레곤)를 선택합니다.

   다른 설정에 대해서는 기본값을 수락하고 [**스택 추가**]를 클릭합니다. 다양한 스택 설정에 대한 자세한 정보는 [새 스택 생성](workingstacks-creating.md) 단원을 참조하세요.

# 2.2단계: PHP 앱 서버 계층 추가 - Chef 11
<a name="gettingstarted-simple-layer"></a>

**중요**  
이 AWS OpsWorks Stacks 서비스는 2024년 5월 26일에 수명이 종료되었으며 신규 및 기존 고객 모두에서 비활성화되었습니다. 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션하는 것이 좋습니다. 마이그레이션에 대한 질문이 있는 경우 [AWS re:Post](https://repost.aws/) 또는 [AWS Premium Support](https://aws.amazon.com/support)를 통해 AWS Support 팀에 문의하세요.

스택은 기본적으로 인스턴스의 컨테이너이지만 인스턴스를 스택에 직접 추가하는 것은 아닙니다. 관련된 인스턴스의 그룹을 나타내는 계층을 추가한 후 인스턴스를 계층에 추가합니다.

계층은 기본적으로 OpsWorks Stacks가 동일한 구성으로 Amazon EC2 인스턴스 세트를 생성하는 데 사용하는 블루프린트입니다. 관련된 인스턴스의 그룹 각각에 대해 하나의 계층을 스택에 추가합니다. OpsWorks Stacks에는 MySQL 데이터베이스 서버 또는 PHP 애플리케이션 서버와 같은 표준 소프트웨어 패키지를 실행하는 인스턴스 그룹을 나타내는 기본 제공 계층 세트가 포함되어 있습니다. 또한 사용자가 특정 요구 사항에 맞춰 부분적으로 또는 완전히 사용자 지정된 계층을 생성할 수 있습니다. 자세한 내용은 [OpsWorks 스택 사용자 지정](customizing.md) 섹션을 참조하세요.

MyStack에는 PHP 애플리케이션 서버로 작동하는 인스턴스의 그룹을 나타내는 내장 PHP 앱 서버 계층 하나가 포함되어 있습니다. 내장 계층에 대한 설명을 포함하여 자세한 정보는 [계층](workinglayers.md) 단원을 참조하세요.

**MyStack에 PHP 앱 서버 계층을 추가하려면**

1. 

**계층 추가 페이지 열기**

   스택 생성을 완료하면 OpsWorks 스택에 **스택** 페이지가 표시됩니다. [**계층 추가**]를 클릭하여 첫 번째 계층을 추가합니다.  
![\[MyStack interface showing layers and instances sections with options to add components.\]](http://docs.aws.amazon.com/ko_kr/opsworks/latest/userguide/images/gs2a.png)

1. 

**계층 유형 지정 및 계층 구성**

   **계층 유형** 상자에서 **PHP 앱 서버**를 선택하고 기본 **Elastic Load Balancer** 설정을 수락한 다음 **계층 추가**를 클릭합니다. 계층을 생성한 후에는 [계층을 편집](workinglayers-basics-edit.md)하여 EBS 볼륨 구성과 같은 다른 속성을 지정할 수 있습니다.  
![\[Add layer interface showing PHP App Server layer type selection and Elastic Load Balancer option.\]](http://docs.aws.amazon.com/ko_kr/opsworks/latest/userguide/images/gs3.png)

# 2.3단계: PHP 앱 서버 계층에 인스턴스 추가 - Chef 11
<a name="gettingstarted-simple-instance"></a>

**중요**  
이 AWS OpsWorks Stacks 서비스는 2024년 5월 26일에 수명이 종료되었으며 신규 및 기존 고객 모두에서 비활성화되었습니다. 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션하는 것이 좋습니다. 마이그레이션에 대한 질문이 있는 경우 [AWS re:Post](https://repost.aws/) 또는 [AWS Premium Support](https://aws.amazon.com/support)를 통해 AWS Support 팀에 문의하세요.

 OpsWorks Stacks 인스턴스는 특정 Amazon EC2 인스턴스를 나타냅니다.
+ 인스턴스의 구성은 Amazon EC2 운영 체제 및 크기와 같은 일부 기본 설정을 지정하며, 실행은 되지만 그다지 많은 역할을 수행하지는 않습니다.
+ 인스턴스의 계층은 설치할 패키지, 인스턴스가 탄력적 IP 주소를 갖는지 여부 등을 결정하여 인스턴스에 기능을 추가합니다.

OpsWorks Stacks는 서비스와 상호 작용하는 각 인스턴스에 에이전트를 설치합니다. 인스턴스에 계층의 기능을 추가하기 위해 OpsWorks Stacks는 에이전트에게 [Chef 레시피](http://docs.chef.io/recipes.html)라는 작은 애플리케이션을 실행하도록 지시합니다.이 레시피는 애플리케이션 및 패키지를 설치하고 구성 파일을 생성하는 등의 작업을 수행할 수 있습니다. OpsWorks Stacks는 인스턴스 [수명 주기의](workingcookbook-events.md) 주요 지점에서 레시피를 실행합니다. 예를 들어 OpsWorks는 인스턴스가 소프트웨어 설치와 같은 작업을 처리하기 위해 부팅을 완료하면 설정 레시피를 실행하고, 사용자가 코드 및 관련 파일을 설치하기 위해 앱을 배포할 때 Deploy 레시피를 실행합니다.

**참고**  
레시피의 작동 방식에 대해 궁금한 점이 있는 경우 모든 OpsWorks Stacks 기본 제공 레시피는 퍼블릭 GitHub 리포지토리인 [OpsWorks 쿡북에 있습니다](https://github.com/aws/opsworks-cookbooks). 또한 자체 사용자 지정 레시피를 생성하고, 나중에 설명하는 것처럼 OpsWorks Stacks가 이러한 레시피를 실행하게 할 수 있습니다.

MyStack에 PHP 애플리케이션 서버를 추가하려면 이전 단계에서 생성한 PHP 앱 서버 계층에 인스턴스를 추가합니다.

**PHP 앱 서버 계층에 인스턴스를 추가하려면**

1. 

**인스턴스 추가 열기**

   계층 추가를 완료하면 OpsWorks Stacks에 **계층 페이지가** 표시됩니다. 탐색 창에서 **인스턴스**를 클릭한 다음 **PHP 앱 서버**에서 **인스턴스 추가**를 클릭합니다.

1. 

**인스턴스 구성**

   각 인스턴스에는 OpsWorks Stacks에서 생성한 기본 호스트 이름이 있습니다. 이 예제에서 OpsWorks Stacks는 계층의 짧은 이름에 숫자를 추가하기만 하면 됩니다. 스택 생성 시 지정한 몇 가지 기본 설정(예: 가용 영역 또는 운영 체제) 재정의를 비롯하여 각 인스턴스를 개별적으로 구성할 수 있습니다. 이 연습의 경우 기본 설정을 수락하고 [**인스턴스 추가**]를 클릭하여 계층에 인스턴스를 추가합니다. 자세한 내용은 [인스턴스](workinginstances.md) 섹션을 참조하세요.  
![\[Form for adding a new PHP App Server instance with hostname, size, and subnet options.\]](http://docs.aws.amazon.com/ko_kr/opsworks/latest/userguide/images/gs7.png)

1. 

**인스턴스 시작**

   지금까지 인스턴스의 구성을 지정했습니다. 실행 중인 Amazon EC2 인스턴스를 생성하려면 인스턴스를 시작해야 합니다. 그런 다음 OpsWorks Stacks는 구성 설정을 사용하여 지정된 가용 영역에서 Amazon EC2 인스턴스를 시작합니다. 자세한 인스턴스 시작 방법은 인스턴스의 *조정 유형*에 따라 다릅니다. 이전 단계에서는 기본 조정 유형인 *24/7*을 사용하여 인스턴스를 생성했습니다. 이 조정 유형은 수동으로 시작해야 하며 시작되면 수동으로 중지될 때까지 실행됩니다. OpsWorks Stacks가 일정 또는 현재 로드에 따라 자동으로 시작하고 중지하는 시간 기반 및 로드 기반 조정 유형을 생성할 수도 있습니다. 자세한 내용은 [시간 기반 또는 로드 기반 인스턴스를 사용하여 로드 관리](workinginstances-autoscaling.md) 단원을 참조하십시오.

   **PHP 앱 서버의** **php-app1**로 이동한 다음 행의 **작업** 열에서 **시작**을 클릭하여 인스턴스를 시작합니다.  
![\[PHP App Server instance list showing php-app1 stopped with start and delete options.\]](http://docs.aws.amazon.com/ko_kr/opsworks/latest/userguide/images/gs8.png)

1. 

**시작 중 인스턴스의 상태 모니터링**

   Amazon EC2 인스턴스를 부팅하고 패키지를 설치하는 데는 일반적으로 몇 분 가량 소요됩니다. 시작 프로세스가 진행되는 동안 인스턴스의 [**상태**] 필드에 다음 값이 차례로 표시됩니다.

   1. **요청됨** - OpsWorks Stacks가 Amazon EC2 서비스를 호출하여 Amazon EC2 인스턴스를 생성했습니다.

   1. **pending** - OpsWorks Stacks가 Amazon EC2 인스턴스가 시작될 때까지 기다리고 있습니다.

   1. **booting** - Amazon EC2 인스턴스가 부팅 중입니다.

   1. **running\$1setup** - OpsWorks Stacks 에이전트가 패키지 구성 및 설치와 같은 작업을 처리하는 계층의 Setup 레시피와 인스턴스에 앱을 배포하는 Deploy 레시피를 실행하고 있습니다.

   1. **online** - 인스턴스를 사용할 준비가 되었습니다.

   php-app1이 온라인 상태가 되면 [**인스턴스**] 페이지의 모양은 다음과 같아야 합니다.  
![\[PHP App Server instance table showing php-app1 online with details like size and IP address.\]](http://docs.aws.amazon.com/ko_kr/opsworks/latest/userguide/images/gs9.png)

   이 페이지는 스택의 모든 인스턴스에 대한 간단한 요약으로 시작합니다. 이제 이 페이지에 온라인 인스턴스가 하나 표시됩니다. php-app1 [**작업**] 열에서 인스턴스를 중지하는 [**중지**]가 [**시작**] 및 [**삭제**]로 바뀝니다.

# 2.4단계: 앱 생성 및 배포 - Chef 11
<a name="gettingstarted-simple-app"></a>

**중요**  
이 AWS OpsWorks Stacks 서비스는 2024년 5월 26일에 수명이 종료되었으며 신규 및 기존 고객 모두에서 비활성화되었습니다. 가능한 한 빨리 워크로드를 다른 솔루션으로 마이그레이션하는 것이 좋습니다. 마이그레이션에 대한 질문이 있는 경우 [AWS re:Post](https://repost.aws/) 또는 [AWS Premium Support](https://aws.amazon.com/support)를 통해 AWS Support 팀에 문의하세요.

MyStack을 보다 유용하게 만들려면 PHP 앱 서버 인스턴스에 앱을 배포해야 합니다. 앱의 코드 및 관련 파일은 리포지토리(예: Git)에 저장합니다. 이러한 파일을 애플리케이션 서버로 보내기 위해서는 두 단계가 필요합니다.

**참고**  
이 섹션에서 설명하는 절차는 Chef 11 스택에 적용됩니다. Chef 12 스택에서 계층에 앱을 추가하는 방법에 대한 자세한 정보는 [앱 추가](workingapps-creating.md) 단원을 참조하세요.

1. 앱을 생성합니다.

   앱에는 OpsWorks 리포지토리에서 코드 및 관련 파일을 다운로드하는 데 필요한 정보가 포함되어 있습니다. 앱의 도메인과 같은 추가 정보를 지정할 수도 있습니다.

1. 애플리케이션 서버에 앱을 배포합니다.

   앱을 배포하면 OpsWorks Stacks가 배포 수명 주기 이벤트를 트리거합니다. 그러면 에이전트가 파일을 적절한 디렉터리로 다운로드하고 서버 구성, 서비스 재시작 등의 관련 작업을 수행하는 인스턴스의 Deploy 레시피를 실행합니다.

**참고**  
새 인스턴스를 생성하면 OpsWorks Stacks가 인스턴스에 기존 앱을 자동으로 배포합니다. 하지만 새 앱을 생성하거나 기존 앱을 업데이트하는 경우에는 수동으로 모든 기존 인스턴스에 앱을 배포하거나 업데이트해야 합니다.

이 단계는 수동으로 예제 앱을 퍼블릭 Git 리포지토리에서 애플리케이션 서버로 배포하는 방법을 보여줍니다. 애플리케이션을 검사하려면 [https://github.com/amazonwebservices/opsworks-demo-php-simple-app](https://github.com/amazonwebservices/opsworks-demo-php-simple-app)으로 이동하세요. 이 예제에서 사용되는 애플리케이션은 version1 브랜치에 있습니다. OpsWorks Stacks는 다른 여러 리포지토리 유형도 지원합니다. 자세한 내용은 [애플리케이션 소스](workingapps-creating.md#workingapps-creating-source) 단원을 참조하십시오.

**앱을 생성 및 배포하려면**

1. 

**앱 페이지 열기**

   탐색 창에서 [**앱**]을 클릭한 다음 [**앱**] 페이지에서 [**앱 추가**]를 클릭합니다.  
![\[Apps page showing no apps and an "Add an app" button with a brief description.\]](http://docs.aws.amazon.com/ko_kr/opsworks/latest/userguide/images/gs13.png)

1. 

**앱 구성**

   [**앱**] 페이지에서 다음 값을 지정합니다.  
**이름**  
 OpsWorks Stacks가 표시 목적으로 사용하는 앱의 이름입니다. 예제 앱의 이름은 입니다**SimplePHPApp**. OpsWorks 스택은 또한이 예제에 대해 짧은 이름인 Simplephpapp을 생성합니다.이 이름은 나중에 설명하듯이 내부적으로 그리고 Deploy 레시피에 의해 사용됩니다.  
**Type**  
앱을 배포할 위치를 결정하는 앱 유형. 이 예제에서는 PHP 앱 서버 인스턴스에 앱을 배포하는 **PHP**를 사용합니다.  
**데이터 소스 유형**  
연결된 데이터베이스 서버. 지금은 [**없음**]을 선택합니다. 데이터베이스 서버에 대해서는 [3단계; 백엔드 데이터 스토어 추가](gettingstarted-db.md) 단원에서 소개합니다.  
**리포지토리 유형**  
앱의 리포지토리 유형. 이 예제의 앱은 **Git** 리포지토리에 저장됩니다.  
**리포지토리 URL**  
앱의 리포지토리 URL. 예제 URL은 **git://github.com/awslabs/opsworks-demo-php-simple-app.git**입니다.  
**브랜치/개정**  
앱의 브랜치 또는 버전. 연습의 이 부분에서는 **version1** 브랜치를 사용합니다.

   나머지 설정에 대해서는 기본값을 유지하고 [**앱 추가**]를 클릭합니다. 자세한 내용은 [앱 추가](workingapps-creating.md) 섹션을 참조하세요.  
![\[Add App form with settings for name, type, document root, data sources, and application source.\]](http://docs.aws.amazon.com/ko_kr/opsworks/latest/userguide/images/gs14.png)

1. 

**배포 페이지 열기**

   서버에 코드를 설치하려면 앱을 *배포*해야 합니다. 이렇게 하려면 단순 PHPApp **작업** 열에서 **배포**를 클릭합니다.  
![\[Apps table showing SimplePHPApp with deploy, edit, and delete options in the Actions column.\]](http://docs.aws.amazon.com/ko_kr/opsworks/latest/userguide/images/gs15.png)

1. 

**앱 배포**

   앱을 배포하면 에이전트는 애플리케이션을 다운로드하여 구성하는 Deploy 레시피를 PHP 앱 서버 인스턴스에서 실행합니다.

   [**명령**]은 이미 [**배포**]로 설정되어 있어야 합니다. 다른 설정은 기본값으로 유지하고 [**배포**]를 클릭하여 앱을 배포합니다.  
![\[Deploy app interface with settings for SimplePHPApp and instance selection options.\]](http://docs.aws.amazon.com/ko_kr/opsworks/latest/userguide/images/gs16.png)

   배포가 완료되면 **배포** 페이지에 **성공** **상태**가 표시되고 **php-app1** 옆에 녹색 확인 표시가 나타납니다.

1. 

**SimplePHPApp 실행**

   이제 SimplePHPApp이 설치되어 실행할 준비가 되었습니다. 이 앱을 실행하려면 탐색 창에서 [**인스턴스**]를 클릭하여 [**인스턴스**]로 이동합니다. 그런 다음 php-app1 인스턴스의 퍼블릭 IP 주소를 클릭합니다.  
![\[PHP App Server instance details showing hostname, status, size, and public IP address.\]](http://docs.aws.amazon.com/ko_kr/opsworks/latest/userguide/images/gs20.png)

   브라우저에 다음과 같은 페이지가 표시되어야 합니다.  
![\[Confirmation page for a simple PHP application running on AWS 클라우드 with PHP version 5.3.20.\]](http://docs.aws.amazon.com/ko_kr/opsworks/latest/userguide/images/gs21.png)

**참고**  
이 연습에서는 사용자가 다음 섹션으로 이동하여 최종적으로 단일 세션에서 전체 연습을 완료하는 것으로 가정합니다. 원하는 경우 언제든지 OpsWorks Stacks에 로그인하고 스택을 열어 중지했다가 나중에 계속할 수 있습니다. 단, 사용하는 AWS 리소스(예: 온라인 인스턴스)에 대해 요금이 부과됩니다. 불필요한 요금이 부과되지 않도록 인스턴스를 중지할 수 있습니다. 그러면 해당하는 EC2 인스턴스가 종료됩니다. 계속할 준비가 되었을 때 인스턴스를 다시 시작할 수 있습니다.