

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

# Amazon EC2 컨테이너 서비스에 배포
<a name="deployment-ecs"></a>

**중요**  
새로운 **AWS에 게시** 기능은 .NET 애플리케이션을 AWS에 게시하는 방법을 단순화하도록 설계되었습니다. **AWS에 컨테이너 게시**를 선택한 후 이 게시 환경으로 전환할지 묻는 메시지가 표시될 수 있습니다. 자세한 내용은 [Visual Studio에서 AWS에 게시 작업](publish-experience.md) 섹션을 참조하세요.

고도의 확장성과 우수한 성능을 갖춘 컨테이너 관리 서비스인 Amazon Elastic Container Service는 도커 컨테이너를 지원하며, Amazon EC2 인스턴스의 관리형 클러스터에서 손쉽게 애플리케이션을 실행할 수 있습니다.

Amazon Elastic Container Service에서 애플리케이션을 배포하려면 애플리케이션 구성 요소가 도커 컨테이너에서 실행되도록 개발되어야 합니다. 도커 컨테이너는 소프트웨어 애플리케이션이 필요한 모든 것(코드, 런타임, 시스템 도구, 시스템 라이브러리 등)을 포함하는, 소프트웨어 개발의 표준화된 단위입니다.

Toolkit for Visual Studio는 Amazon ECS를 통한 애플리케이션 게시를 간소화하는 마법사를 제공합니다. 마법사에 대해서는 다음 단원에서 설명합니다.

Amazon ECS에 대한 자세한 정보는 [Elastic Container Service 설명서](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/Welcome.html)를 참조하세요. [Docker 기본 사항](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/docker-basics.html) 및 [클러스터 생성](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create_cluster.html)에 대한 개요가 포함되어 있습니다.

**Topics**
+ [AWS 자격 증명 지정](deployment-ecs-specify-credentials.md)
+ [ASP.NET Core 2.0 앱 배포(Fargate)(레거시)](deployment-ecs-aspnetcore-fargate.md)
+ [ASP.NET Core 2.0 애플리케이션 배포(EC2)](deployment-ecs-aspnetcore-ec2.md)

# ASP.NET Core 2 애플리케이션의 AWS 자격 증명 지정
<a name="deployment-ecs-specify-credentials"></a>

Docker 컨테이너에 애플리케이션을 배포하면 배포 자격 증명과 인스턴스 자격 증명이라는 두 가지 유형의 자격 증명이 실행됩니다.

배포 자격 증명은 Publish Container to AWS 마법사에서 Amazon ECS에 환경을 생성하는 데 사용됩니다. 여기에는 작업, 서비스, IAM 역할, Docker 컨테이너 리포지토리 및 로드 밸런서(선택한 경우)가 포함되어 있습니다.

인스턴스 자격 증명은 인스턴스(애플리케이션 포함)에서 다양한 AWS 서비스에 액세스하는 데 사용됩니다. 예를 들어 ASP.NET Core 2.0 애플리케이션이 Amazon S3 객체에 대해 읽기 및 쓰기를 수행하려면 적절한 권한이 필요합니다. 환경에 따라 서로 다른 방법을 사용하여 다양한 자격 증명을 제공할 수 있습니다. 예를 들어 ASP.NET Core 2 애플리케이션이 *개발* 및 *프로덕션* 환경을 대상으로 할 수 있습니다. 개발 및 프로덕션 환경에서 정의된 역할을 위해 Docker 인스턴스 및 자격 증명을 사용할 수 있습니다.

## 배포 자격 증명 지정
<a name="tkv-ecs-deploy-creds"></a>

에 **컨테이너 게시 AWS** 마법사에서 지정하는 AWS 계정은 마법사가 Amazon ECS에 배포하는 데 사용할 AWS 계정입니다. 계정 프로필에는 Amazon Elastic Compute Cloud, Amazon Elastic Container Service 및에 대한 권한이 있어야 합니다 AWS Identity and Access Management.

드롭다운 목록에서 옵션이 누락되어 있다면 여러분이 권한이 없기 때문일 수 있습니다. 예를 들어 애플리케이션에 대한 클러스터를 생성했지만 **AWS에 컨테이너 게시 AWS** 마법사의 클러스터 페이지에서 확인할 수 없는 경우가 여기에 해당됩니다. 이 문제가 발생하면 누락된 권한을 추가하고 다시 마법사를 시도해 보십시오.

## 개발 인스턴스 자격 증명 지정
<a name="tkv-ecs-dev-creds"></a>

프로덕션 환경이 아닌 경우에는 appsettings에서 자격 증명을 구성할 수 있습니다. <environment>.json 파일. 예를 들어 Visual Studio 2017의 appsettings.Development.json 파일에서 자격 증명을 구성하려면

1. 프로젝트에 AWSSDK.Extensions.NETCore.Setup NuGet 패키지를 추가합니다.

1. appsettings.Development.json에 AWS 설정을 추가합니다. 아래는 `Profile` 및 `Region`을 설정하는 구성 옵션입니다.

   ```
   {
       "AWS": {
           "Profile": "local-test-profile",
           "Region": "us-west-2"
       }
   }
   ```

## 프로덕션 인스턴스 자격 증명 지정
<a name="id1"></a>

프로덕션 인스턴스의 경우 IAM 역할을 사용하여 액세스할 수 있는 애플리케이션 및 서비스를 제어하는 것이 좋습니다. 예를 들어 AWS Management Console에서 Amazon Simple Storage Service 및 Amazon DynamoDB에 대한 권한을 가진 서비스 보안 주체로서 Amazon ECS와 함께 IAM 역할을 구성하려면 다음을 수행하세요.

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) IAM 콘솔을 엽니다.

1. IAM 콘솔의 탐색 창에서 역할을 선택하고 역할 생성을 선택합니다.

1. **AWS 서비스** 역할 유형을 선택한 다음, **EC2 Container Service**를 선택하세요.

1. **EC2 Container Service Task(EC2 Container Service 작업)** 사용 사례를 선택합니다. 사용 사례는 서비스에 필요한 신뢰 정책을 포함하도록 서비스에서 정의합니다. 그런 다음 **다음: 권한**을 선택합니다.

1. **AmazonS3FullAccess** 및 **AmazonDynamoDBFullAccess** 권한 정책을 선택합니다. 각 정책 옆 확인란을 선택한 다음, **다음: 검토**를 선택합니다.

1. **역할 이름**에서 이 역할의 목적을 식별하는 데 도움이 되는 역할 이름이나 역할 이름 접두사를 입력합니다. 역할 이름은 AWS 계정 내에서 고유해야 합니다. 대/소문자를 구분하지 않습니다. 예를 들어, 이름이 `PRODROLE`과 `prodrole`, 두 가지로 지정된 역할을 만들 수는 없습니다. 다양한 주체가 역할을 참조할 수 있기 때문에 역할이 생성된 후에는 역할 이름을 편집할 수 없습니다.

1. (선택 사항) **역할 설명**에 새 역할에 대한 설명을 입력합니다.

1. 역할을 검토한 다음 **역할 생성**을 선택합니다.

** AWS에 컨테이너 게시** 마법사의 **ECS 작업 정의** 페이지에서 이 역할을 **작업 역할**로 사용할 수 있습니다.

자세한 내용은 [서비스 기반 역할 사용](https://docs.aws.amazon.com/IAM/latest/UserGuide/using-service-linked-roles.html)을 참조하십시오.

# Amazon ECS에 ASP.NET Core 2.0 앱 배포(Fargate)(레거시)
<a name="deployment-ecs-aspnetcore-fargate"></a>

**중요**  
이 설명서에서는 레거시 서비스 및 기능을 참조합니다. 업데이트된 안내서와 정보는 [AWS .NET 배포 도구](https://aws.github.io/aws-dotnet-deploy/) 안내서 및 업데이트된 [AWS목차 배포](https://docs.aws.amazon.com/toolkit-for-visual-studio/latest/user-guide/deployment-chapt.html)를 참조하세요.

이 섹션에서는 Toolkit for Visual Studio의 일부로 제공되는 ** AWS에 컨테이너 게시** 마법사를 사용하여 Fargate 시작 유형을 이용해 Amazon ECS를 통해 Linux를 대상으로 하는 컨테이너화된 ASP.NET Core 2.0 애플리케이션을 배포하는 방법을 설명합니다. 웹 애플리케이션은 연속 실행이 되도록 설계되었기 때문에 서비스 방식으로 배포가 됩니다.

## 컨테이너 게시 전
<a name="tkv-deploy-ecs-netcore-prerequisites"></a>

** AWS에 컨테이너 게시** 마법사를 사용하여 ASP.NET Core 2.0 애플리케이션을 배포하기 전에 다음을 수행합니다.
+  [AWS 보안 인증 정보를 지정](deployment-ecs-specify-credentials.md)하고 [Amazon ECS를 설정](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/get-set-up-for-amazon-ecs.html)하세요.
+  [Docker를 설치합니다](https://docs.docker.com/engine/installation). [Windows용 Docker](https://docs.docker.com/docker-for-windows/install/)를 포함하여 서로 다른 설치 옵션이 몇 가지 제공됩니다.
+ Visual Studio에서, Linux를 대상으로 하는 ASP.NET Core 2.0 컨테이너화된 앱용 프로젝트를 만들거나 엽니다.

## 에 컨테이너 게시 AWS 마법사 액세스
<a name="tkv-deployment-ecs-netcore-accessing"></a>

Linux를 대상으로 하는 ASP.NET Core 2.0 컨테이너화된 애플리케이션을 배포하려면 솔루션 탐색기에서 해당 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 ** AWS에 컨테이너 게시**를 선택하세요.

![\[Context menu showing "Publish Container to AWS" option highlighted for deployment.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/wiz-ecspub-fargate-step0a.png)


Visual Studio 빌드 메뉴에서 ** AWS에 컨테이너 게시**를 선택할 수도 있습니다.

## AWS 마법사에 컨테이너 게시
<a name="tkv-deploy-ecs-pubtoaws"></a>

![\[AWS Publish Container interface showing profile, Docker image, and deployment options for ECR.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/wiz-ecspub-fargate-step1.png)


 **사용할 계정 프로필** - 사용할 계정 프로필을 선택합니다.

 **리전** - 배포 리전을 선택합니다. 프로필과 리전은 배포 환경 리소스를 설정하고 기본 Docker 레지스트리를 선택하는 데 사용됩니다.

 **구성** - Docker 이미지 빌드 구성을 선택합니다.

 **Docker 리포지토리** - 기존의 Docker 레지스트리를 선택하거나 새 레지스트리의 이름을 입력하여 레지스트리를 생성합니다. 이 레지스트리에 빌드된 컨테이너가 게시됩니다.

 **태그** - 기존 태그를 선택하거나 새 태그의 이름을 입력합니다. 태그는 Docker 컨테이너의 버전, 옵션 또는 기타 고유의 구성 요소 같이 중요한 세부 정보를 추적할 수 있습니다.

 **배포 대상** - **Service on an ECS Cluster(ECS 클러스터 서비스)**를 선택합니다. 이 배포 옵션은 애플리케이션이 장기 실행용으로 개발된 경우(예: ASP.NET Core 웹 애플리케이션)에 사용합니다.

 **설정을 `aws-docker-tools-defaults.json`에 저장하고 명령줄에 대한 프로젝트를 구성** - 명령줄에서 유연하게 배포하고 싶은 경우에 이 옵션을 선택합니다. 배포할 프로젝트 디렉터리의 `dotnet ecs deploy`와 `dotnet ecs publish` 컨테이너를 사용합니다.

## 시작 구성 페이지
<a name="tkv-deploy-ecs-launch-configuration"></a>

![\[AWS Launch Configuration interface for creating an empty ECS 클러스터 with FARGATE launch type.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/wiz-ecspub-fargate-step2.png)


 **ECS 클러스터** - Docker 이미지가 실행될 클러스터를 선택합니다. 빈 클러스터를 생성하겠다고 선택한 경우에는 새 클러스터의 이름을 입력합니다.

 **시작 유형** - **FARGATE**를 선택합니다.

 **CPU 최대 용량(vCPU)** - 애플리케이션에 필요한 최대 컴퓨팅 파워를 선택합니다. CPU 및 메모리 값의 허용 범위는 [작업 크기](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html)를 참조하십시오.

 **메모리 최대 용량(GB)** - 애플리케이션에서 사용할 수 있는 최대 메모리 용량을 선택합니다.

 **VPC 서브넷** - 단일 VPC에 있는 서브넷을 하나 이상 선택합니다. 서브넷을 하나 이상 선택하면 여러 서브넷에 작업이 분산됩니다. 따라서 가용성을 높일 수 있습니다. 자세한 내용은 [기본 VPC 및 기본 서브넷](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/default-vpc.html)을 참조하십시오.

 **보안 그룹** - 보안 그룹을 선택합니다.

보안 그룹은 연결된 Amazon EC2 인스턴스에 대해 방화벽 역할을 하여 인스턴스 수준에서 인바운드 트래픽과 아웃바운드 트래픽을 모두 제어합니다.

 [기본 보안 그룹](https://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_SecurityGroups.html)은 동일한 보안 그룹에 할당된 인스턴스에서의 인바운드 트래픽과 모든 아웃바운드 IPv4 트래픽을 허용하도록 구성되어 있습니다. 서비스가 컨테이너 리포지토리에 도달할 수 있으려면 아웃바운드 트래픽이 허용되어야 합니다.

 **퍼블릭 IP 주소 할당** - 인터넷에서 작업을 액세스할 수 있도록 하려면 이 확인란을 선택합니다.

## 서비스 구성 서비스
<a name="tkv-deploy-ecs-service"></a>

![\[AWS Service Configuration interface for deploying an application with customizable parameters.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/wiz-ecspub-fargate-step3.png)


 **서비스** - 드롭다운에서 서비스 중 하나를 선택하여 기존 서비스에 컨테이너를 추가합니다. 또는 **새로 생성**을 선택하여 서비스를 새로 생성합니다. 서비스 이름은 클러스터 내에서 고유해야 하지만, 한 리전 또는 여러 리전에 걸쳐 존재하는 여러 클러스터에서 비슷한 서비스 이름을 사용할 수 있습니다.

 **작업 수** - 클러스터에 배포하여 계속 실행할 작업의 수입니다. 각 작업은 컨테이너 인스턴스의 하나입니다.

 **최소 정상 상태 백분율** - 배포 동안 `RUNNING` 상태를 반드시 유지해야 하는 작업의 백분율을 가장 가까운 정수로 반올림한 값입니다.

 **최대 정상 상태 백분율** - 배포 중에 `RUNNING` 또는 `PENDING` 상태가 허용되는 작업의 백분율을 가장 가까운 정수로 반내림한 값입니다.

## Application Load Balancer 페이지
<a name="tkv-deploy-ecs-app-load-balancer"></a>

![\[Application Load Balancer configuration interface for AWS with options for load balancer and target group settings.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/wiz-ecspub-fargate-step4.png)


 **Application Load Balancer 구성** - Application Load Balancer를 구성했는지 확인합니다.

 **로드 밸런서** - 기존 로드 밸런서를 선택하거나 **새로 생성**을 선택하고 새 로드 밸런서의 이름을 입력합니다.

 **리스너 포트** - 기존 리스너 포트를 선택하거나 **새로 생성**을 선택하고 포트 번호를 입력합니다. 기본 포트인 `80`은 대부분의 웹 애플리케이션에 적합합니다.

 **대상 그룹** - Amazon ECS가 서비스를 위해 작업을 등록할 대상 그룹을 선택합니다.

 **경로 패턴** - 로드 밸런서는 경로 기반 라우팅을 사용합니다. 기본 `/`를 수락하거나 다른 패턴을 제공합니다. 경로 이름은 대/소문자를 구별하고 최대 128자이며 [선택한 문자 집합](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#path-conditions)을 포함합니다.

 **상태 확인 경로** - 상태 확인을 위한 대상에서 목적지가 되는 ping 경로입니다. 기본 설정은 `/`입니다. 필요할 경우 다른 이름을 입력하십시오. 입력한 경로가 잘못된 경우에는 상태 확인이 실패하게 되고 상태가 비정상으로 간주됩니다.

여러 서비스가 배포되었고 각 서비스가 서로 다른 경로나 위치에 배포된 경우에는 사용자 지정 확인 경로가 필요할 수 있습니다.

## 작업 정의 페이지
<a name="tkv-deploy-ecs-task-definition"></a>

![\[AWS Task Definition interface for configuring Docker container parameters and permissions.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/wiz-ecspub-fargate-step5.png)


 **작업 정의** - 기존 작업 정의를 선택하거나 **새로 생성**을 선택하고 새 작업 정의 이름을 입력합니다.

 **컨테이너** - 기존 컨테이너를 선택하거나 **새로 생성**을 선택하고 새 컨테이너 이름을 입력합니다.

 **작업 역할** - 앱이 AWS 서비스에 액세스하는 데 필요한 자격 증명이 있는 IAM 역할을 선택합니다. 이것이 바로 애플리케이션에 보안 자격 증명이 전달되는 과정입니다. [애플리케이션에 대해 AWS 보안 인증 정보를 지정하는 방법](deployment-ecs-specify-credentials.md)을 참조하세요.

 **작업 실행 역할** - 프라이빗 이미지를 가져오고 로그를 게시할 권한이 있는 역할을 선택합니다. AWS Fargate는 사용자를 대신하여 해당 역할을 사용합니다.

 **포트 매핑** - 자동 할당된 호스트 포트에 바인딩되는 컨테이너에서 포트 번호를 선택합니다.

 **환경 변수** - 컨테이너의 환경 변수를 추가, 수정 또는 삭제합니다. 배포에 맞게 수정이 가능합니다.

구성에 만족하면 **게시**를 클릭하여 배포 프로세스를 시작합니다.

## 에 컨테이너 게시 AWS
<a name="tkv-deploy-ecs-publishing"></a>

![\[AWS container publishing progress window showing steps for deploying to ECS and ECR.\]](http://docs.aws.amazon.com/ko_kr/toolkit-for-visual-studio/latest/user-guide/images/wiz-ecspub-fargate-step6.png)


배포 중에 이벤트가 표시됩니다. 이 마법사는 작업이 성공적으로 완료되면 자동으로 닫힙니다. 페이지 맨 아래에 있는 상자를 선택 해제하면 재정의를 할 수 있습니다.

 AWS 탐색기에서 새 인스턴스의 URL을 찾을 수 있습니다. Amazon ECS and Clusters 노드를 확장하고 클러스터를 클릭합니다.

# Amazon ECS에 ASP.NET Core 2.0 앱 배포(EC2)
<a name="deployment-ecs-aspnetcore-ec2"></a>

이 섹션에서는 Toolkit for Visual Studio의 일부로 제공되는 ** AWS에 컨테이너 게시** 마법사를 사용하여 Amazon ECS를 통해 Linux를 대상으로 하는 컨테이너화된 ASP.NET Core 2.0 애플리케이션을 EC2 시작 유형으로 배포하는 방법을 설명합니다. 웹 애플리케이션은 연속 실행이 되도록 설계되었기 때문에 서비스 방식으로 배포됩니다.

## 컨테이너 게시 전
<a name="tkv-deploy-ecs-netcore-prerequisites"></a>

** AWS에 컨테이너 게시**를 사용하여 ASP.NET Core 2.0 애플리케이션을 배포하기 전에 다음을 수행합니다.
+  [AWS 보안 인증 정보를 지정](deployment-ecs-specify-credentials.md)하고 [Amazon ECS를 설정](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/get-set-up-for-amazon-ecs.html)하세요.
+  [Docker를 설치합니다](https://docs.docker.com/engine/installation). [Windows용 Docker](https://docs.docker.com/docker-for-windows/install/)를 포함하여 서로 다른 설치 옵션이 몇 가지 제공됩니다.
+  웹 애플리케이션의 요구에 따라 [Amazon ECS 클러스터를 생성](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-cluster.html)합니다. 이 작업은 몇 가지 단계만 거치면 됩니다.
+ Visual Studio에서, Linux를 대상으로 하는 ASP.NET Core 2.0 컨테이너화된 애플리케이션용 프로젝트를 만들거나 엽니다.

## 에 컨테이너 게시 AWS 마법사 액세스
<a name="tkv-deployment-ecs-netcore-accessing"></a>

Linux를 대상으로 하는 ASP.NET Core 2.0 컨테이너화된 애플리케이션을 배포하려면 솔루션 탐색기에서 해당 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 ** AWS에 컨테이너 게시**를 선택하세요.

Visual Studio 빌드 메뉴에서 ** AWS에 컨테이너 게시**를 선택할 수도 있습니다.

## AWS 마법사에 컨테이너 게시
<a name="tkv-deploy-ecs-pubtoaws"></a>

 **사용할 계정 프로필** - 사용할 계정 프로필을 선택합니다.

 **리전** - 배포 리전을 선택합니다. 프로필과 리전은 배포 환경 리소스를 설정하고 기본 Docker 레지스트리를 선택하는 데 사용됩니다.

 **구성** - Docker 이미지 빌드 구성을 선택합니다.

 **Docker 리포지토리** - 기존의 Docker 레지스트리를 선택하거나 새 레지스트리의 이름을 입력하여 레지스트리를 생성합니다. 이 레지스트리에 빌드된 컨테이너 이미지가 게시됩니다.

 **태그** - 기존 태그를 선택하거나 새 태그의 이름을 입력합니다. 태그는 Docker 컨테이너의 버전, 옵션 또는 기타 고유의 구성 요소 같이 중요한 세부 정보를 추적할 수 있습니다.

 **배포** - **Service on an ECS Cluster(ECS 클러스터 서비스)**를 선택합니다. 이 배포 옵션은 애플리케이션이 장기 실행용으로 개발된 경우(예: ASP.NET Core 2.0 웹 애플리케이션)에 사용합니다.

 **설정을 `aws-docker-tools-defaults.json`에 저장하고 명령줄에 대한 프로젝트를 구성** - 명령줄에서 유연하게 배포하고 싶은 경우에 이 옵션을 선택합니다. 배포할 프로젝트 디렉터리의 `dotnet ecs deploy`와 `dotnet ecs publish` 컨테이너를 사용합니다.

## 시작 구성 페이지
<a name="tkv-deploy-ecs-launch-config"></a>

 **ECS 클러스터** - Docker 이미지가 실행될 클러스터를 선택합니다. AWS 관리 콘솔[을 사용하여 ECS 클러스터](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/create_cluster.html)를 생성할 수 있습니다.

 **시작 유형** - EC2를 선택합니다. Fargate 시작 유형을 사용하는 방법은 [Amazon ECS에 ASP.NET Core 2.0 애플리케이션 배포(Fargate)](deployment-ecs-aspnetcore-fargate.md)를 참조하십시오.

## 서비스 구성 서비스
<a name="tkv-deploy-ecs-service"></a>

 **서비스** - 드롭다운에서 서비스 중 하나를 선택하여 기존 서비스에 컨테이너를 추가합니다. 또는 **새로 생성**을 선택하여 서비스를 새로 생성합니다. 서비스 이름은 클러스터 내에서 고유해야 하지만, 한 리전 또는 여러 리전에 걸쳐 존재하는 여러 클러스터에서 비슷한 서비스 이름을 사용할 수 있습니다.

 **작업 수** - 클러스터에 배포하여 계속 실행할 작업의 수입니다. 각 작업은 컨테이너 인스턴스의 하나입니다.

 **최소 정상 상태 백분율** - 배포 동안 `RUNNING` 상태를 반드시 유지해야 하는 작업의 백분율을 가장 가까운 정수로 반올림한 값입니다.

 **최대 정상 상태 백분율** - 배포 중에 `RUNNING` 또는 `PENDING` 상태가 허용되는 작업의 백분율을 가장 가까운 정수로 반내림한 값입니다.

 **배치 템플릿** - 작업 배치 템플릿을 선택합니다.

작업을 클러스터로 시작할 때 Amazon ECS는 CPU와 메모리 등 작업 정의에서 지정한 요구 사항에 따라 작업을 어디에 배치할지 결정해야 합니다. 마찬가지로 작업 수를 축소하는 경우, Amazon ECS는 어떤 태스크를 종료할지 결정해야 합니다.

배치 템플릿은 작업이 클러스터로 시작되는 방법을 제어합니다.
+ AZ Balanced Spread - 작업을 가용 영역과 가용 영역의 컨테이너 인스턴스에 분산합니다.
+ AZ Balanced BinPack - 작업을 가용 영역과 가용 메모리가 최소인 컨테이너 인스턴스에 분산합니다.
+ BinPack - 사용 가능한 CPU 또는 메모리 최소량에 따라 작업을 분산합니다.
+ One Task Per Host - 각 컨테이너 인스턴스에 서비스의 작업을 최대 1개 배치합니다.

자세한 내용은 [Amazon ECS 작업 배치](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-placement.html)를 참조하십시오.

## Application Load Balancer 페이지
<a name="tkv-deploy-ecs-app-load-balancer"></a>

 **Application Load Balancer 구성** - Application Load Balancer를 구성했는지 확인합니다.

 **서비스의 IAM 역할 선택** - 기존 역할을 선택하거나 **새로 생성**을 선택하여 새 역할을 생성합니다.

 **로드 밸런서** - 기존 로드 밸런서를 선택하거나 **새로 생성**을 선택하고 새 로드 밸런서의 이름을 입력합니다.

 **리스너 포트** - 기존 리스너 포트를 선택하거나 **새로 생성**을 선택하고 포트 번호를 입력합니다. 기본 포트인 `80`은 대부분의 웹 애플리케이션에 적합합니다.

 **대상 그룹** - 기본적으로 로드 밸런서는 대상 그룹에 대해 지정한 포트와 프로토콜을 사용하여 등록된 대상으로 요청을 전송합니다. 또는 대상 그룹에 각 대상을 등록할 때 이 포트를 재정의할 수 있습니다.

 **경로 패턴** - 로드 밸런서는 경로 기반 라우팅을 사용합니다. 기본 `/`를 수락하거나 다른 패턴을 제공합니다. 경로 이름은 대/소문자를 구별하고 최대 128자이며 [선택한 문자 집합](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-listeners.html#path-conditions)을 포함합니다.

 **상태 확인 경로** - 상태 확인을 위한 대상에서 목적지가 되는 ping 경로입니다. 기본 설정인 `/`는 대부분의 웹 애플리케이션에 적합합니다. 필요할 경우 다른 이름을 입력하십시오. 입력한 경로가 잘못된 경우에는 상태 확인이 실패하게 되고 상태가 비정상으로 간주됩니다.

여러 서비스가 배포되었고 각 서비스가 배포된 경로나 위치가 서로 다른 경우에는 사용자 지정 확인 경로가 필요할 수 있습니다.

## ECS 작업 정의 페이지
<a name="tkv-deploy-ecs-task-definition"></a>

 **작업 정의** - 기존 작업 정의를 선택하거나 **새로 생성**을 선택하고 새 작업 정의 이름을 입력합니다.

 **컨테이너** - 기존 컨테이너를 선택하거나 **새로 생성**을 선택하고 새 컨테이너 이름을 입력합니다.

 **메모리(MiB)** - **소프트 제한** 또는 **하드 제한** 값을 입력하거나 두 값을 모두 입력합니다.

컨테이너용으로 예약할 메모리의 *소프트 제한*(MiB)입니다. Docker는 소프트 한계 내에서 컨테이너 메모리를 유지하려고 합니다. 컨테이너는 메모리 파라미터에 지정된 하드 한계까지 추가 메모리를 사용하거나 컨테이너 인스턴스의 모든 가용 메모리를 사용할 수 있습니다(둘 중 먼저 발생하는 쪽).

컨테이너에 표시할 메모리의 *하드 제한*(MiB)입니다. 컨테이너가 여기서 지정된 메모리를 초과하려 하면 해당 컨테이너가 중지됩니다.

 **작업 역할** - 컨테이너 권한이 사용자를 대신하여 연결된 정책에 지정된 AWS APIs를 호출할 수 있도록 허용하는 IAM 역할에 대한 작업 역할을 선택합니다. 이것이 바로 애플리케이션에 보안 자격 증명이 전달되는 과정입니다. [애플리케이션의 AWS 보안 자격 증명을 지정하는 방법을](deployment-ecs-specify-credentials.md) 알아봅니다.

 **포트 매핑** - 컨테이너의 포트 매핑을 추가, 수정 또는 삭제합니다. 로드 밸런서가 활성화되어 있는 경우, 호스트 포트는 기본적으로 0으로 설정되고 포트 할당이 동적으로 이루어집니다.

 **환경 변수** - 컨테이너의 환경 변수를 추가, 수정 또는 삭제합니다.

구성에 만족하면 **게시**를 클릭하여 배포 프로세스를 시작합니다.

## 에 컨테이너 게시 AWS
<a name="tkv-deploy-ecs-publishing"></a>

배포 중에 이벤트가 표시됩니다. 이 마법사는 작업이 성공적으로 완료되면 자동으로 닫힙니다. 페이지 맨 아래에 있는 상자를 선택 해제하면 재정의를 할 수 있습니다.

 AWS 탐색기에서 새 인스턴스의 URL을 찾을 수 있습니다. Amazon ECS and Clusters 노드를 확장하고 클러스터를 클릭합니다.