

# API Gateway에서 REST API의 배포 생성
<a name="set-up-deployments"></a>

 API Gateway에서 REST API 배포는 [Deployment](https://docs.aws.amazon.com/apigateway/latest/api/API_Deployment.html) 리소스로 표현됩니다. [RestApi](https://docs.aws.amazon.com/apigateway/latest/api/API_RestApi.html) 리소스로 표현되는 API의 실행 파일과 유사합니다.

클라이언트가 API를 호출하기 위해서는 배포를 생성하여 단계를 배포에 연결해야 합니다. 단계는 [Stage](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html) 리소스로 표시됩니다. 이 리소스는 메서드, 통합, 모델, 매핑 템플릿 및 Lambda 권한 부여자(이전에는 사용자 지정 권한 부여자라고 함)를 포함한 API의 스냅샷을 나타냅니다. API를 업데이트하면 새 단계를 기존 배포에 연결하여 API를 다시 배포할 수 있습니다. 단계 생성은 [API Gateway에서 REST API에 대한 스테이지 설정](set-up-stages.md)에서 다루고 있습니다.

**Topics**
+ [배포를 생성합니다.](#create-deployment)
+ [API 배포를 위한 다음 단계](#apigateway-deployment-next-steps)

## 배포를 생성합니다.
<a name="create-deployment"></a>

다음 절차에서는 REST API의 배포를 생성하는 방법을 보여줍니다.

------
#### [ AWS Management Console ]

 REST API를 처음 배포하기 이전에 생성해야 합니다. 자세한 내용은 [API Gateway에서 REST API 개발](rest-api-develop.md) 단원을 참조하십시오.

 API Gateway 콘솔에서 배포를 생성하고 새 단계 또는 기존 단계에 연결하여 API를 배포할 수 있습니다.

1. [https://console.aws.amazon.com/apigateway](https://console.aws.amazon.com/apigateway)에서 API Gateway 콘솔에 로그인합니다.

1.  배포하고자 하는 API를 **API(APIs)** 탐색 창에서 선택합니다.

1. **리소스** 창에서 **API 배포**를 선택합니다.

1. **스테이지**의 경우 다음 중 하나를 선택합니다.

   1. 새 스테이지를 생성하려면 **새 스테이지**를 선택한 다음 **스테이지 이름**에 이름을 입력합니다. 선택적으로 **배포 설명**에 배포에 대한 설명을 제공할 수 있습니다.

   1. 기존 스테이지를 선택하려면 드롭다운 메뉴에서 스테이지 이름을 선택합니다. **배포 설명**에 새 배포에 대한 설명을 입력할 수 있습니다.

   1. 스테이지와 연결되지 않은 배포를 생성하려면 **스테이지 없음**을 선택합니다. 나중에 이 배포를 스테이지와 연결할 수 있습니다.

1. **배포(Deploy)**를 선택합니다.

------
#### [ AWS CLI ]

배포를 생성할 때 [Deployment](https://docs.aws.amazon.com/apigateway/latest/api/API_Deployment.html) 리소스를 인스턴스화합니다.

다음 [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) 명령을 사용하면 배포가 새로 생성됩니다.

```
 aws apigateway create-deployment --rest-api-id rest-api-id
```

이 배포를 스테이지에 연결할 때까지는 API를 직접적으로 호출할 수 없습니다. 기존 단계의 경우, 스테이지의 [deploymentId](https://docs.aws.amazon.com/apigateway/latest/api/API_Stage.html#deploymentId) 속성을 새로 생성된 배포 ID로 업데이트하여 이 작업을 수행할 수 있습니다. 다음 [update-stage](https://docs.aws.amazon.com/cli/latest/reference/apigateway/update-stage.html) 명령을 사용하면 스테이지가 새 배포로 업데이트됩니다. 콘솔에서는 이를 **활성 배포**라고 합니다.

```
 aws apigateway update-stage \
    --rest-api-id rest-api-id \ 
    --stage-name 'stage-name' \ 
    --patch-operations op='replace',path='/deploymentId',value='deployment-id'
```

배포를 생성할 때 동시에 새 스테이지와 연결할 수도 있습니다. 다음 [create-deployment](https://docs.aws.amazon.com/cli/latest/reference/apigateway/create-deployment.html) 명령은 새 배포를 생성하고 이를 `beta`라는 새 스테이지와 연결합니다.

```
 aws apigateway create-deployment \
    --rest-api-id rest-api-id \
    --stage-name beta
```

------

API를 재배포하려면 동일한 단계를 수행합니다. 동일한 스테이지를 재사용할 수 있습니다.

## API 배포를 위한 다음 단계
<a name="apigateway-deployment-next-steps"></a>

다음은 API 배포를 위한 다음 단계입니다.

스테이지 설정 수정  
API를 배포한 후 스테이지 설정을 수정하여 API 캐시, 로깅 또는 요청 스로틀을 활성화 또는 비활성화할 수 있습니다. 또한 백엔드에서 API Gateway를 인증하기 위한 클라이언트 인증서를 선택하고, 실행 시간에 배포 컨텍스트를 API 통합에 전달하도록 단계 변수를 설정할 수 있습니다. 자세한 내용은 [스테이지 설정 수정](set-up-stages.md#how-to-stage-settings) 단원을 참조하세요.  
단계 설정을 수정한 후에는 API를 다시 배포해야 변경 사항이 적용됩니다.  
 업데이트된 설정(예: 로깅 활성화)에 새 IAM 역할이 필요한 경우 API를 다시 배포하지 않고 필요한 IAM 역할을 추가할 수 있습니다. 하지만 새 IAM 역할을 적용하려면 몇 분 정도 걸릴 수 있습니다. 적용이 되기 전에는 로깅 옵션을 활성화한 경우에도 API 호출에 대한 트레이스가 기록되지 않습니다.

다양한 배포 스테이지 조합 선택  
 배포는 API 스냅샷을 나타내고 단계는 스냅샷에 대한 경로를 정의하므로 다른 배포-단계 조합을 선택하여 사용자가 API의 다른 버전을 호출하는 방법을 제어할 수 있습니다. 이 기능은 API 상태를 이전 배포로 롤백하거나 API의 '프라이빗 분기'를 퍼블릭 분기로 병합하려는 경우 등에 유용합니다.  
 다음 절차에서는 API Gateway 콘솔에서 **Stage Editor(단계 편집기)**를 사용하여 이 작업을 수행하는 방법을 보여 줍니다. 여기서는 API를 두 번 이상 배포했다고 가정합니다.  

1. 아직 **스테이지** 창에 있지 않은 경우 기본 탐색 창에서 **스테이지**를 선택합니다.

1. 업데이트할 스테이지를 선택합니다.

1. **배포 기록** 탭에서 스테이지를 사용하고자 하는 배포를 선택합니다.

1. **활성 배포 변경**을 선택합니다.

1. 활성 배포를 변경할지 확인하고 **활성 배포로 설정** 대화 상자에서 **활성 배포 변경**을 선택합니다.

배포별 데이터를 API로 전달합니다.  
 배포를 위해 실행 시간에 배포 관련 데이터를 API 통합에 전달하도록 스테이지 변수를 설정하거나 수정할 수 있습니다. 이 작업은 **단계 편집기(Stage Editor)**의 **단계 변수(Stage Variables)** 탭에서 수행할 수 있습니다. 자세한 내용은 [API Gateway에서 REST API용 스테이지 변수 사용](stage-variables.md) 단원의 지침을 참조하세요.