

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

# 애플리케이션 배포
<a name="serverlessrepo-consuming-applications"></a>

이 단원에서는 AWS Serverless Application Repository에 게시된 서버리스 애플리케이션을 찾고 배포하는 방법을 알아볼 수 있습니다. 퍼블릭 [사이트를](https://aws.amazon.com/serverless/serverlessrepo) 방문하여 AWS 계정이 없어도 공개적으로 사용할 수 있는 애플리케이션을 찾아볼 수 있습니다. 또는 AWS Lambda 콘솔 내에서 애플리케이션을 찾아볼 수 있습니다.

일부 애플리케이션에는 작성자 프로필 링크와 함께 **검증된 작성자** 배지가 있습니다. AWS 가 합리적이고 신중한 서비스 공급자로서 요청자가 제공한 정보를 성실하게 검토하고 요청자의 자격 증명이 신청한 것과 같다고 확인하면 작성자는 **검증된 작성자**로 간주됩니다.

에서 애플리케이션을 배포하기 전에 다음 주제를 AWS Serverless Application Repository참조하여 애플리케이션 배포 권한 및 애플리케이션 기능에 대해 알아봅니다.

**Topics**
+ [

# 애플리케이션 배포 권한
](application-deployment-permissions.md)
+ [

# 애플리케이션 기능: IAM 역할, 리소스 정책 및 중첩 애플리케이션
](acknowledging-application-capabilities.md)
+ [

# 애플리케이션을 배포하는 방법
](serverlessrepo-how-to-consume.md)

# 애플리케이션 배포 권한
<a name="application-deployment-permissions"></a>

에 애플리케이션을 배포하려면 그렇게 할 수 있는 권한이 AWS Serverless Application Repository있어야 합니다. 배포할 수 있는 권한이 있는 애플리케이션에는 다음과 같은 3가지 범주가 있습니다.
+ **프라이빗** - 동일한 계정으로 생성되었으며 다른 계정과 공유되지 않은 애플리케이션입니다. 계정을 사용하여 생성된 애플리케이션을 배포할 수 있는 권한이 있습니다 AWS .
+ **비공개 공유** - 게시자가 특정 AWS 계정 집합과 명시적으로 공유한 애플리케이션입니다. 계정과 공유된 애플리케이션을 배포할 수 있는 권한이 있습니다 AWS .
+ **공개 공유** - 게시자가 모든 사람과 공유한 애플리케이션입니다. 소비자는 공개적 공유 애플리케이션을 배포할 수 있는 권한이 있습니다.

권한이 있는 애플리케이션만 검색하고 찾아볼 수 있습니다. 여기에는 계정을 사용하여 생성되고, AWS 계정과 비공개로 공유되고 AWS , 공개적으로 공유된 애플리케이션이 포함됩니다. 다른 모든 애플리케이션은 표시되지 않습니다.

**중요**  
중첩 애플리케이션이 포함된 애플리케이션은 중첩 애플리케이션의 공유 제한을 상속합니다. 예를 들어 애플리케이션이 공개적으로 공유되지만 상위 애플리케이션을 생성한 AWS 계정과 비공개로만 공유되는 중첩 애플리케이션이 포함되어 있다고 가정해 보겠습니다. 이 경우 AWS 계정에 중첩된 애플리케이션을 배포할 권한이 없는 경우 상위 애플리케이션을 배포할 수 없습니다. 중첩 애플리케이션에 대한 자세한 내용은 *AWS Serverless Application Model 개발자 안내서*의 [중첩 애플리케이션을](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-nested-applications.html) 참조하세요.

# 애플리케이션 기능: IAM 역할, 리소스 정책 및 중첩 애플리케이션
<a name="acknowledging-application-capabilities"></a>

애플리케이션을 배포하기 전에는 애플리케이션의 템플릿에서 템플릿이 생성하도록 지정하는 IAM 역할, AWS 리소스 정책 및 중첩 애플리케이션을 AWS Serverless Application Repository 확인합니다. 전체 액세스 권한이 있는 IAM 역할과 같은 IAM 리소스는 AWS 계정의 모든 리소스를 수정할 수 있습니다. 따라서 에스컬레이션된 권한을 가진 리소스를 실수로 생성하는 일이 없도록 계속하기 전에 각 애플리케이션에 연결된 권한을 검토하는 것이 좋습니다. 이렇게 하려면가 사용자를 대신하여 애플리케이션을 AWS Serverless Application Repository 배포하기 전에 애플리케이션에 기능이 포함되어 있음을 확인해야 합니다.

애플리케이션에는 `CAPABILITY_IAM`, `CAPABILITY_NAMED_IAM`, `CAPABILITY_RESOURCE_POLICY`, `CAPABILITY_AUTO_EXPAND` 등의 기능이 포함될 수 있습니다.

다음 리소스에는 `CAPABILITY_IAM` 또는 `CAPABILITY_NAMED_IAM`을 지정해야 합니다. [AWS::IAM::Group](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html), [AWS::IAM::InstanceProfile](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html), [AWS::IAM::Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html), and [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html). 애플리케이션에 사용자 지정 이름을 가진 IAM 리소스가 포함되어 있는 경우 `CAPABILITY_NAMED_IAM`을 지정해야 합니다. 기능을 지정하는 방법에 대한 예제는 [애플리케이션 기능 확인 및 승인(AWS CLI)](serverlessrepo-how-to-consume.md#acknowledging-application-capabilities-api) 단원을 참조하십시오.

다음 리소스에는 `CAPABILITY_RESOURCE_POLICY`를 지정해야 합니다. [AWS::Lambda::LayerVersionPermission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-layerversionpermission.html), [AWS::Lambda::Permission](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html), [AWS::Events::EventBusPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-events-eventbuspolicy.html), [AWS::IAM:Policy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html), [AWS::ApplicationAutoScaling::ScalingPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-applicationautoscaling-scalingpolicy.html), [AWS::S3::BucketPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html), [AWS::SQS::QueuePolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sqs-policy.html), and [AWS::SNS::TopicPolicy](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sns-policy.html).

중첩 애플리케이션을 한 개 이상 포함하는 애플리케이션은 `CAPABILITY_AUTO_EXPAND`를 지정해야 합니다. 중첩 애플리케이션에 대한 자세한 내용은 *AWS Serverless Application Model 개발자 안내서*의 [중첩 애플리케이션을](https://docs.aws.amazon.com/serverless-application-model/latest/developerguide/serverless-sam-template-nested-applications.html) 참조하세요.

## 애플리케이션 기능 확인 및 승인(콘솔)
<a name="acknowledging-application-capabilities-console"></a>

 AWS Serverless Application Repository [AWS Serverless Application Repository 웹 사이트의](https://aws.amazon.com/serverless/serverlessrepo/) 또는 [Lambda 콘솔(탭 아래의 **함수 생성** 페이지)에서 사용 가능한 애플리케이션을 찾을 수 있습니다 AWS Serverless Application Repository](https://console.aws.amazon.com/lambda/home?region=us-east-1#/create?tab=serverlessApps).

사용자 지정 IAM 역할이나 리소스 정책을 생성하기 위해 기능을 승인해야 하는 애플리케이션은 기본적으로 검색 결과에 표시되지 않습니다. 이러한 기능을 포함하는 애플리케이션을 검색하려면 **Show apps that create custom IAM roles or resource policies(사용자 지정 IAM 역할 또는 리소스 정책을 생성하는 앱 표시)** 확인란을 선택해야 합니다.

애플리케이션을 선택할 때 **권한** 탭에서 애플리케이션 기능을 검토할 수 있습니다. 애플리케이션을 배포하려면 **I acknowledge this application creates custom IAM roles or resource polices(이 애플리케이션이 사용자 지정 IAM 역할이나 리소스 정책을 생성함을 승인함)** 확인란을 선택해야 합니다. 이러한 기능을 승인하지 않으면 **승인 필요 오류 메시지가 표시됩니다. 배포하려면 애플리케이션 파라미터 구성 섹션의 확인란을 선택합니다**.

## 애플리케이션 기능 보기(AWS CLI)
<a name="acknowledging-application-capabilities-cli"></a>

를 사용하여 애플리케이션의 기능을 보려면 AWS CLI먼저 애플리케이션의 Amazon 리소스 이름(ARN)이 필요합니다. 그리고 다음 명령을 실행할 수 있습니다.

```
aws serverlessrepo get-application \
--application-id application-arn
```

[requiredCapabilities](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/applications-applicationid.html#applications-applicationid-prop-version-requiredcapabilities) 응답 속성에는 애플리케이션을 배포하려면 승인해야 하는 애플리케이션 기능 목록이 들어 있습니다. [requiredCapabilities](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/applications-applicationid.html#applications-applicationid-prop-version-requiredcapabilities) 속성이 비어 있으면 애플리케이션에 필요한 기능이 없습니다.



# 애플리케이션을 배포하는 방법
<a name="serverlessrepo-how-to-consume"></a>

이 섹션에서는 AWS Management Console 또는를 AWS Serverless Application Repository 사용하여에서 서버리스 애플리케이션을 배포하는 절차를 제공합니다 AWS CLI.

## 새 애플리케이션 배포(콘솔)
<a name="consuming-applications-console"></a>

이 섹션에서는를 AWS Serverless Application Repository 사용하여에서 새 애플리케이션을 배포하는 방법을 보여줍니다 AWS Management Console. 기존 애플리케이션의 새 버전을 배포하는 지침은 [애플리케이션 업데이트](serverlessrepo-how-to-consume-new-version.md) 단원을 참조하십시오.

### 애플리케이션 찾기, 검색 및 배포
<a name="browse-and-search-applications"></a>

다음 절차에 AWS Serverless Application Repository 따라에서 애플리케이션을 찾아 구성하고 배포합니다.

**에서 애플리케이션을 찾고 구성하려면 AWS Serverless Application Repository**

1. [AWS Serverless Application Repository 공개 홈 페이지](https://aws.amazon.com/serverless/serverlessrepo)를 열거나 [AWS Lambda 콘솔](https://console.aws.amazon.com/lambda/)을 엽니다. **함수 생성**을 선택한 다음 **Browse serverless app repository(서버리스 앱 리포지토리 찾아보기)**를 선택합니다.

1. 애플리케이션을 찾거나 검색합니다.
**참고**  
사용자 지정 IAM 역할이나 리소스 정책을 포함하는 애플리케이션을 표시하려면 **Show apps that create custom IAM roles or resource policies(사용자 지정 IAM 역할 또는 리소스 정책을 생성하는 앱 표시)** 확인란을 선택합니다. 사용자 지정 IAM 역할 및 리소스 정책에 대한 자세한 정보는 [애플리케이션 기능 승인](acknowledging-application-capabilities.md)을 참조하십시오.

1. 애플리케이션을 선택하여 권한, 기능 및 AWS 고객이 배포한 횟수와 같은 세부 정보를 봅니다.

   배포 수는 애플리케이션을 배포하려는 AWS 리전에 대해 표시됩니다.

1. 애플리케이션 세부 정보 페이지에서 AWS SAM 템플릿, 라이선스 및 readme 파일을 확인하여 애플리케이션의 권한 및 애플리케이션 리소스를 확인합니다. 이 페이지에서 공개적으로 공유된 애플리케이션에 대한 **소스 코드 URL**을 찾을 수도 있습니다. 애플리케이션에 중첩 애플리케이션이 포함되어 있으면 이 페이지에서 중첩 애플리케이션의 세부 정보를 볼 수도 있습니다.

1. **애플리케이션 설정** 섹션에서 애플리케이션을 구성합니다. 특정 애플리케이션 구성에 대한 지침은 애플리케이션의 readme 파일을 참조하십시오.

   예를 들어 구성 요구 사항에는 애플리케이션에서 액세스하고자 하는 리소스의 이름 지정이 포함될 수 있습니다. 이러한 리소스는 Amazon DynamoDB 테이블, Amazon S3 버킷 또는 Amazon API Gateway API일 수 있습니다.

1. **배포(Deploy)**를 선택합니다. 그러면 [**Deployment status**] 페이지로 이동하게 됩니다.
**참고**  
애플리케이션에 승인이 필요한 기능이 있는 경우 애플리케이션을 배포하기 전에 **I acknowledge this application creates custom IAM roles or resource polices(이 애플리케이션이 사용자 지정 IAM 역할이나 리소스 정책을 생성함을 승인함)** 확인란을 선택해야 합니다. 이렇게 하지 않으면 오류가 발생합니다. 사용자 지정 IAM 역할 및 리소스 정책에 대한 자세한 정보는 [애플리케이션 기능 승인](acknowledging-application-capabilities.md)을 참조하십시오.

1. **배포 상태** 페이지에서 배포의 진행 상황을 볼 수 있습니다. 배포가 완료될 때까지 기다리는 동안 다른 애플리케이션을 검색하고 찾아 Lambda 콘솔을 통해이 페이지로 돌아갈 수 있습니다.

애플리케이션이 성공적으로 배포되면 기존 AWS 도구를 사용하여 생성된 리소스를 검토하고 관리할 수 있습니다.

## 새 애플리케이션 배포(AWS CLI)
<a name="consuming-applications-cli"></a>

이 섹션에서는를 사용하여에서 새 애플리케이션을 배포 AWS Serverless Application Repository 하는 방법을 보여줍니다 AWS CLI. 기존 애플리케이션의 새 버전을 배포하는 지침은 [애플리케이션 업데이트](serverlessrepo-how-to-consume-new-version.md) 단원을 참조하십시오.

### 애플리케이션 기능 확인 및 승인(AWS CLI)
<a name="acknowledging-application-capabilities-api"></a>

를 사용하여 애플리케이션의 기능을 승인하려면 다음 단계를 AWS CLI따릅니다.

1. **애플리케이션의 기능을 검토합니다. ** 다음 AWS CLI 명령을 사용하여 애플리케이션의 기능을 검토합니다.

   ```
   aws serverlessrepo get-application \
   --application-id application-arn
   ```

   [requiredCapabilities](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/applications-applicationid.html#applications-applicationid-prop-version-requiredcapabilities) 응답 속성에는 애플리케이션을 배포하려면 승인해야 하는 애플리케이션 기능 목록이 들어 있습니다. AWS SDKs에서 [GetApplication API](https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/GetApplication)를 사용하여이 데이터를 가져올 수도 있습니다.

1. **변경 세트를 생성합니다. ** CloudFormation 변경 세트를 생성할 때 필요한 [기능](https://docs.aws.amazon.com/serverlessrepo/latest/devguide/applications-applicationid-changesets.html#applications-applicationid-changesets-createcloudformationchangesetinput-capabilities) 세트를 제공해야 합니다. 예를 들어 다음 AWS CLI 명령을 사용하여 기능을 확인하여 애플리케이션을 배포합니다.

   ```
   aws serverlessrepo create-cloud-formation-change-set \
   --application-id application-arn \
   --stack-name unique-name-for-cloud-formation-stack \
   --capabilities list-of-capabilities
   ```

   이 명령이 성공적으로 실행되면 변경 세트 ID가 반환됩니다. 다음 단계를 위해 변경 세트 ID가 필요합니다. AWS SDKs에서 [CreateCloudFormationChangeSet API](https://docs.aws.amazon.com/goto/WebAPI/serverlessrepo-2017-09-08/CreateCloudFormationChangeSet)를 사용하여 변경 세트를 생성할 수도 있습니다.

   예를 들어 다음 AWS CLI 명령은 사용자 지정 이름과 하나 이상의 중첩된 애플리케이션이 있는 [AWS::IAM::Role](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html) 리소스가 포함된 애플리케이션을 승인합니다.

   ```
   aws serverlessrepo create-cloud-formation-change-set \
   --application-id application-arn \
   --stack-name unique-name-for-cloud-formation-stack \
   --capabilities CAPABILITY_NAMED_IAM CAPABILITY_AUTO_EXPAND
   ```

1. **변경 세트를 실행합니다. ** 변경 세트를 실행하면 실제로 배포가 수행됩니다. 이전 단계에서 변경 세트를 생성할 때 반환된 변경 세트 ID를 입력합니다.

   다음 예제 AWS CLI 명령은 애플리케이션 변경 세트를 실행하여 애플리케이션을 배포합니다.

   ```
   aws cloudformation execute-change-set \
   --change-set-name changeset-id-arn
   ```

   또한 AWS SDKs에서 [ExecuteChangeSet API](https://docs.aws.amazon.com/goto/WebAPI/cloudformation-2010-05-15/CreateChangeSet)를 사용하여 변경 세트를 실행할 수 있습니다.

## 애플리케이션 스택 삭제
<a name="delete-application-stack"></a>

를 사용하여 이전에 배포한 애플리케이션을 삭제하려면 CloudFormation 스택 삭제와 동일한 절차를 AWS Serverless Application Repository따릅니다.
+ **AWS Management Console**:를 사용하여 애플리케이션을 삭제하려면 사용 설명서[의 CloudFormation 콘솔에서 스택 삭제](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/cfn-console-delete-stack.html)를 AWS Management Console참조하세요. *AWS CloudFormation * 
+ **AWS CLI**:를 사용하여 애플리케이션을 삭제하려면 사용 설명서의 [스택 삭제](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-cli-deleting-stack.html)를 AWS CLI참조하세요. *AWS CloudFormation * 

# 애플리케이션 업데이트
<a name="serverlessrepo-how-to-consume-new-version"></a>

에서 애플리케이션을 배포한 후 업데이트할 AWS Serverless Application Repository수 있습니다. 예를 들어 애플리케이션 설정을 변경하거나 애플리케이션을 게시된 최신 버전으로 업데이트할 수 있습니다.

다음 섹션에서는 AWS Management Console 또는를 사용하여 애플리케이션의 새 버전을 배포하는 방법을 설명합니다 AWS CLI.

## 애플리케이션 업데이트(콘솔)
<a name="update-applications"></a>

이전에 배포한 애플리케이션을 업데이트하려면 새 애플리케이션을 배포하는 것과 동일한 절차를 사용하고 *원래 배포에 사용한 것과 동일한 애플리케이션 이름을 지정합니다*. 특히는 `serverlessrepo-` 애플리케이션 이름 AWS Serverless Application Repository 앞에 추가됩니다. 새 버전의 애플리케이션을 배포하려면 앞에 `serverlessrepo-`를 추가하지 않고 원래 애플리케이션 이름을 지정해야 합니다.

예를 들어, 이름이 `MyApplication`인 애플리케이션을 배포한 경우 스택 이름은 `serverlessrepo-MyApplication`이 됩니다. 해당 애플리케이션을 업데이트하려면 이름을 `MyApplication` 다시 제공해야 합니다.의 전체 스택 이름을 지정*하지* 마십시오`serverlessrepo-MyApplication`.

다른 모든 애플리케이션 설정의 경우 값을 이전 배포와 동일하게 유지하거나 새 값을 지정할 수 있습니다.

## 애플리케이션 업데이트(AWS CLI)
<a name="update-applications-cli"></a>

이전에 배포한 애플리케이션을 업데이트하려면 새 애플리케이션을 배포하는 것과 동일한 절차를 사용하고 *원래 배포에 사용한 것과 동일한 `--stack-name`을 지정합니다*. 특히 AWS Serverless Application Repository 는 스택 이름 `serverlessrepo-` 앞에 옵니다. 새 버전의 애플리케이션을 배포하려면 앞에 `serverlessrepo-`를 추가하지 않고 원래 스택 이름을 지정해야 합니다.

예를 들어, 스택 이름이 `MyApplication`인 애플리케이션을 배포한 경우 생성되는 스택 이름은 `serverlessrepo-MyApplication`이 됩니다. 해당 애플리케이션을 업데이트하려면 이름을 `MyApplication` 다시 제공해야 합니다.의 전체 스택 이름을 지정*하지* 마십시오`serverlessrepo-MyApplication`.