

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

# 앱 추가
<a name="workingapps-creating"></a>

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

애플리케이션을 애플리케이션 서버에 배포하는 첫 단계는 스택에 앱을 추가하는 것입니다. 앱은 애플리케이션을 나타내며, 애플리케이션의 이름과 유형, 애플리케이션을 서버 인스턴스에 배포하는 데 필요한 정보(예: 리포지토리 URL) 등 다양한 메타데이터를 포함합니다. 앱을 스택에 추가하려면 Manage 권한이 있어야 합니다. 자세한 내용은 [사용자 권한 관리](opsworks-security-users.md) 단원을 참조하십시오.

**참고**  
이 섹션의 절차는 Chef 12 이상의 스택에 적용됩니다. Chef 11 스택에서 계층에 앱을 추가하는 방법에 대한 자세한 정보는 [2.4단계: 앱 생성 및 배포 - Chef 11](gettingstarted-simple-app.md) 단원을 참조하세요.

**스택에 앱을 추가하려면**

1. 선호하는 리포지토리(Amazon S3 아카이브, Git 리포지토리, 하위 버전 리포지토리 또는 HTTP 아카이브)에 코드를 저장합니다. 자세한 내용은 [애플리케이션 소스](#workingapps-creating-source) 단원을 참조하십시오.

1. 탐색 창에서 [**앱**]을 클릭합니다. [**앱**] 페이지에서 첫 번째 앱에 대해 [**앱 추가**]를 클릭합니다. 이후의 앱에는 [**\$1앱**]을 클릭합니다.

1. [**앱 새로 만들기**] 페이지에서 다음 단원의 설명대로 앱을 구성합니다.

## 앱 구성
<a name="workingapps-creating-general"></a>

[**앱 추가**] 페이지는 [**설정**], [**애플리케이션 소스**], [**데이터 소스**], [**환경 변수**], [**도메인 추가**], [**SSL 설정**] 섹션으로 구성되어 있습니다.

**Topics**
+ [Settings](#workingapps-creating-settings)
+ [애플리케이션 소스](#workingapps-creating-source)
+ [데이터 원본](#workingapps-creating-data)
+ [환경 변수](#workingapps-creating-environment)
+ [도메인 및 SSL 설정](#workingapps-creating-domain-ssl)

### Settings
<a name="workingapps-creating-settings"></a>

**이름**  
UI에서 앱을 나타내는 데 사용되는 앱 이름입니다. OpsWorks Stacks는 또한이 이름을 사용하여 내부적으로 사용되는 앱의 짧은 이름을 생성하고 [스택 구성 및 배포 속성](workingcookbook-json.md)에서 앱을 식별합니다. 앱을 스택에 추가한 후 탐색 창에서 [**앱**]을 클릭하여 짧은 이름을 볼 수 있으며, 그런 다음 앱의 이름을 클릭하면 세부 정보 페이지를 열 수 있습니다.

**[**문서 루트**]**  
OpsWorks Stacks는 앱 속성의 [`[:document_root]`](attributes-json-deploy.md#attributes-json-deploy-app-root) 속성에 **문서 루트** 설정을 할당합니다`deploy`. 기본값은 `null`입니다. 배포 레시피는 표준 Chef 노드 구문을 사용하여 `deploy` 속성에서 이 값을 가져올 수 있으며, 지정된 코드를 서버의 적절한 위치에 배포할 수 있습니다. 앱을 배포하는 방법에 대한 자세한 정보는 [Deploy 레시피](create-custom-deploy.md) 단원을 참조하세요.

### 애플리케이션 소스
<a name="workingapps-creating-source"></a>

앱을 배포할 수 있는 리포지토리 유형은 Git, Amazon S3 번들, HTTP 번들 등입니다. 모든 리포지토리 유형은 리포지토리 유형과 리포지토리 URL을 지정해야 합니다. 개별 리포지토리 유형에는 아래 설명처럼 고유의 요구 사항이 있습니다.

**참고**  
OpsWorks Stacks는 표준 리포지토리에서 기본 제공 서버 계층으로 애플리케이션을 자동으로 배포합니다. Windows 스택의 유일한 옵션인 기타 리포지토리 유형을 사용하는 경우 OpsWorks Stacks는 리포지토리 정보를 앱의 [`deploy` 속성](workingcookbook-json.md#workingcookbook-json-deploy)에 입력하지만 배포 작업을 처리하기 위해 사용자 지정 레시피를 구현해야 합니다.

**Topics**
+ [HTTP 아카이브](#w2ab1c14c57c13c11b8b8)
+ [Amazon S3 아카이브](#w2ab1c14c57c13c11b8c10)
+ [Git 리포지토리](#w2ab1c14c57c13c11b8c12)
+ [기타 리포지토리](#w2ab1c14c57c13c11b8c14)

#### HTTP 아카이브
<a name="w2ab1c14c57c13c11b8b8"></a>

공용 액세스가 가능한 HTTP 서버를 리포지토리로 사용하려면 

1. 앱 코드 및 관련 파일이 포함된 폴더의 압축 아카이브(zip, gzip, bzip2, Java WAR 또는 tarball)를 생성합니다.
**참고**  
OpsWorks Stacks는 압축되지 않은 tarball을 지원하지 않습니다.

1. 서버에 아카이브 파일을 업로드합니다.

1. 콘솔에서 리포지토리를 지정하려면 리포지토리 유형으로 HTTP 아카이브를 선택하고 해당 URL을 입력합니다.

    아카이브가 암호로 보호된 경우 **애플리케이션 소스**에서 로그인 자격 증명을 지정합니다.

#### Amazon S3 아카이브
<a name="w2ab1c14c57c13c11b8c10"></a>

Amazon Simple Storage Service 버킷을 리포지토리로 사용하려면:

1. 퍼블릭 또는 프라이빗 Amazon S3 버킷을 생성합니다. 자세한 내용은 [Amazon S3 설명서](https://aws.amazon.com/documentation/s3/)를 참조하세요.

1.  OpsWorks Stacks가 프라이빗 버킷에 액세스하려면 Amazon S3 버킷에 대한 읽기 전용 권한이 있는 사용자여야 하며 액세스 키 ID와 보안 액세스 키가 필요합니다. 자세한 내용은 [AWS Identity and Access Management 설명서](https://docs.aws.amazon.com/iam/)를 참조하세요.

1. 코드 및 연결된 모든 파일을 폴더에 저장한 다음 해당 폴더를 압축된 아카이브(zip, gzip, bzip2, Java WAR 또는 tarball)로 저장합니다.
**참고**  
OpsWorks Stacks는 압축되지 않은 tarball을 지원하지 않습니다.

1. 이 아카이브 파일을 Amazon S3 버킷에 업로드하고 URL을 기록해 둡니다.

1. Stacks 콘솔에서 OpsWorks 리포지토리를 지정하려면 **리포지토리 유형을** **S3 아카이브**로 설정하고 아카이브의 URL을 입력합니다. 프라이빗 아카이브의 경우, 정책에 따라 버킷 액세스 권한을 배포하는 AWS 액세스 키 ID 및 보안 액세스 키를 제공해야 합니다. 퍼블릭 아카이브의 경우 이러한 설정을 비워 둡니다.

#### Git 리포지토리
<a name="w2ab1c14c57c13c11b8c12"></a>

[Git](http://git-scm.com/) 리포지토리는 소스 제어 및 버전 관리를 제공합니다. OpsWorks Stacks는 [GitHub](https://github.com/) 또는 [Bitbucket](https://bitbucket.org)과 같은 퍼블릭 호스팅 리포지토리 사이트와 프라이빗 호스팅 Git 서버를 지원합니다. 앱 및 Git 하위 모듈의 경우, [**애플리케이션 소스**]에서 리포지토리의 URL을 지정하는 데 사용하는 형식은 리포지토리가 퍼블릭인지 프라이빗인지에 따라 다릅니다.

**퍼블릭 리포지토리** - HTTPS 또는 Git 읽기 전용 프로토콜을 사용합니다. 예를 들어 [Chef 11 Linux 스택 시작하기](gettingstarted.md)는 다음 URL 형식 중 하나를 사용하여 액세스할 수 있는 퍼블릭 GitHub 리포지토리를 사용합니다.
+ Git 읽기 전용: **git://github.com/amazonwebservices/opsworks-demo-php-simple-app.git**
+ HTTPS: **https://github.com/amazonwebservices/opsworks-demo-php-simple-app.git**

**프라이빗 리포지토리** - 이 예제에 나온 SSH 읽기/쓰기 형식을 사용합니다.
+ Github 리포지토리: **git@github.com:*project*/*repository***.
+ Git 서버의 리포지토리: ***user*@*server*:*project*/*repository***

**소스 제어**에서 **Git**을 선택하면 다음과 같은 두 가지 추가 옵션 설정이 표시됩니다.

**[리포지토리 SSH 키]**  
프라이빗 Git 리포지토리에 액세스하려면 배포 SSH 키를 지정해야 합니다. 이 필드는 프라이빗 키가 필요합니다. 퍼블릭 키는 Git 리포지토리에 할당됩니다. Git 하위 모듈의 경우, 지정된 키는 이러한 하위 모듈에 액세스할 권한이 있어야 합니다. 자세한 내용은 [Git 리포지토리 SSH 키 사용](workingapps-deploykeys.md) 단원을 참조하십시오.  
SSH 키 배포에는 암호가 필요하지 않습니다. OpsWorks Stacks는 암호를 전달할 방법이 없습니다.

**브랜치/개정**  
리포지토리에 여러 브랜치가 있는 경우 OpsWorks Stacks는 기본적으로 마스터 브랜치를 다운로드합니다. 특정 브랜치를 지정하려면 브랜치 이름, SHA1 해시 또는 태그 이름을 입력하세요. 특정 커밋을 지정하려면 완전한 40-hexdigit 커밋 식별자를 입력합니다.

#### 기타 리포지토리
<a name="w2ab1c14c57c13c11b8c14"></a>

표준 리포지토리가 요구 사항을 충족하지 못하는 경우, [Bazaar](http://bazaar.canonical.com/en/) 같은 기타 리포지토리를 사용할 수 있습니다. 그러나 OpsWorks Stacks는 이러한 리포지토리에서 앱을 자동으로 배포하지 않습니다. 배포 프로세스를 처리하고 적절한 계층의 Deploy 이벤트에 할당하려면 사용자 지정 레시피를 구현해야 합니다. Deploy 레시피를 구현하는 방법의 예제는 [Deploy 레시피](create-custom-deploy.md) 단원을 참조하세요.

### 데이터 원본
<a name="workingapps-creating-data"></a>

이 섹션은 데이터베이스를 앱에 연결합니다. 다음과 같은 옵션이 있습니다.
+ **RDS** – 스택의 [Amazon RDS 서비스 계층](workinglayers-db-rds.md) 중 하나를 연결하세요.
+ **None** – 데이터베이스 서버를 연결하지 마세요.

**RDS**를 선택한 경우 다음을 지정해야 합니다.

**데이터베이스 인스턴스**  
목록에는 모든 Amazon RDS 서비스 계층이 포함됩니다. 다음 중 하나도 선택할 수 있습니다.  
(필수) 어떤 데이터베이스 서버를 앱에 연결할지 지정하세요. 목록의 콘텐츠는 데이터 원본에 따라 달라집니다.  
+ **RDS** – 스택의 Amazon RDS 서비스 계층의 목록.

**데이터베이스 이름**  
(선택 사항) 데이터베이스 이름을 지정합니다.  
+ Amazon RDS 계층 - Amazon RDS 인스턴스에 대해 지정한 데이터베이스 이름을 입력합니다.

  [Amazon RDS 콘솔](https://console.aws.amazon.com/rds/)에서 데이터베이스 이름을 가져올 수 있습니다.

연결된 데이터베이스가 있는 앱을 배포하면 OpsWorks Stacks는 데이터베이스 인스턴스의 연결을 앱의 [`deploy` 속성](workingcookbook-json.md#workingcookbook-json-deploy)에 추가합니다.

사용자 지정 레시피를 작성하여 `deploy` 속성에서 정보를 검색하고 애플리케이션이 액세스할 수 있는 파일에 넣을 수 있습니다. 이것은 기타 애플리케이션 유형에 데이터베이스 연결 정보를 제공할 수 있는 유일한 옵션입니다.

데이터베이스 연결을 처리하는 방법에 대한 자세한 정보는 [데이터베이스에 연결](workingapps-connectdb.md)를 참조하세요.

앱에서 데이터베이스 서버를 분리하려면 [앱의 구성을 편집](workingapps-editing.md)하여 다른 데이터베이스 서버를 지정하거나 아무 서버도 지정하지 마십시오.

### 환경 변수
<a name="workingapps-creating-environment"></a>

각 앱마다 앱에 고유한 환경 변수 집합을 지정할 수 있습니다. 예를 들어 2개의 앱이 있는 경우, 첫 번째 앱에 대해 정의하는 환경 변수는 두 번째 앱이 사용할 수 없으며, 그 반대의 경우도 마찬가지입니다. 또 여러 앱에 대해 같은 환경 변수를 지정하여 환경 변수에 앱마다 다른 값을 할당할 수 있습니다.

**참고**  
환경 변수의 수에는 특별한 제한이 없습니다. 다만 변수의 이름, 값, 보호되는 플래그 값을 포함한 연결된 데이터 구조의 크기는 20KB를 초과할 수 없습니다. 이 한도는 전부는 아니더라도 대부분의 사용 사례를 수용해야 합니다. 이 한도를 초과하면 "Environment: is too large (maximum is 20KB)"라는 메시지와 함께 서비스 오류(콘솔) 또는 예외(API)를 초래합니다.

OpsWorks Stacks는 변수를 앱의 속성에 [`deploy` 속성](workingcookbook-json.md#workingcookbook-json-deploy)으로 저장합니다. 표준 Chef 노드 구문을 사용하여 사용자 지정 레시피가 이러한 값을 검색하도록 할 수 있습니다. 앱의 환경 변수에 액세스하는 방법의 예제는 [환경 변수 사용](apps-environment-vars.md)를 참조하세요.

**Key(키)**  
변수 이름. 변수 이름은 최대 64자의 대문자, 소문자, 숫자, 밑줄(\$1)을 포함할 수 있지만 문자나 밑줄로 시작해야 합니다.

**값**  
변수의 값. 변수의 값은 최대 256자를 포함할 수 있으며, 모두 인쇄 가능해야 합니다.

**보호되는 값**  
값이 보호되는지 여부. 이 설정을 통해 암호 같은 중요한 정보를 감출 수 있습니다. 변수에 대해 [**보호된 값**]을 설정하는 경우, 앱 생성 후  
+ 앱의 세부 정보 페이지에 변수의 이름만 표시되며 변수의 값은 표시되지 않습니다.
+ 앱을 편집할 권한이 있는 경우, [**값 업데이트**]를 클릭하여 새 값을 지정할 수 있지만 예전 값을 보거나 편집할 수는 없습니다.

**참고**  
Chef 배포 로그는 종종 환경 변수를 포함하기도 합니다. 다시 말해 콘솔에서 보호된 변수를 볼 수 있습니다. 콘솔에서 보호된 변수를 보지 못하게 하려면 콘솔에서 보지 않기를 원하는 보호된 변수의 스토리지로서 Amazon S3 버킷을 사용하시기 바랍니다. 이런 목적으로 S3 버킷을 사용하는 방법의 예는 이 설명서의 [Amazon S3 버킷 사용하기](gettingstarted.walkthrough.photoapp.md) 단원을 참조하세요.

### 도메인 및 SSL 설정
<a name="workingapps-creating-domain-ssl"></a>

기타 앱 유형의 경우 OpsWorks Stacks는 앱의 `deploy` 속성에 설정을 추가합니다. 레시피는 이러한 속성에서 데이터를 가져와 필요에 맞게 서버를 구성할 수 있습니다.

**도메인 설정**  
이 섹션에는 도메인 지정을 위한 옵션인 [**도메인 추가**] 필드가 있습니다. 자세한 내용은 [사용자 지정 도메인 사용](workingapps-domains.md) 단원을 참조하십시오.

**SSL 설정**  
이 섹션에는 SSL 활성화 또는 비활성화에 사용할 수 있는 [**SSL 지원**] 토글이 있습니다. [**예**]를 클릭하는 경우, SSL 인증서 정보를 제공해야 합니다. 자세한 내용은 [SSL 사용](workingsecurity-ssl.md) 단원을 참조하십시오.