Amazon ECS (EC2) 에 ASP.NET Core 2.0 애플리케이션 배포 - AWS Amazon Q를 사용한 도구 키트

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

Amazon ECS (EC2) 에 ASP.NET Core 2.0 애플리케이션 배포

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

컨테이너 게시 전

사용하기 전에에 컨테이너AWSASP.NET Core 2.0 애플리케이션을 배포하려면 다음을 수행합니다

에 게시AWS마법사

Linux를 대상으로 하는 컨테이너화된 ASP.NET Core 2.0 애플리케이션을 배포하려면 Solution Explorer에서 해당 프로젝트를 마우스 오른쪽 버튼으로 클릭하고에 컨테이너AWS.

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

에 컨테이너AWS마법사

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

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

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

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

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

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

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

시작 구성 페이지

ECS 클러스터 - Docker 이미지가 실행될 클러스터를 선택합니다. 할 수 있습니다ECS 클러스터 생성를 사용하여AWSManagement Console.

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

서비스 구성 서비스

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

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

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

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

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

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

배치 템플릿은 작업이 클러스터로 시작되는 방법을 제어합니다.

  • AZ Balanced Spread - 작업을 가용 영역과 가용 영역의 컨테이너 인스턴스에 분산합니다.

  • AZ Balanced BinPack - 작업을 가용 영역과 가용 메모리가 최소인 컨테이너 인스턴스에 분산합니다.

  • BinPack - 사용 가능한 CPU 또는 메모리 최소량에 따라 작업을 분산합니다.

  • One Task Per Host - 각 컨테이너 인스턴스에 서비스의 작업을 최대 1개 배치합니다.

자세한 내용은 Amazon ECS 작업 배치를 참조하십시오.

Application Load Balancer 페이지

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

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

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

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

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

경로 패턴 - 로드 밸런서는 경로 기반 라우팅을 사용합니다. 기본 /를 수락하거나 다른 패턴을 제공합니다. 경로 이름은 대/소문자를 구별하고 최대 128자이며 선택한 문자 집합을 포함합니다.

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

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

ECS 작업 정의 페이지

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

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

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

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

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

작업 역할- Publish Container 권한을 허용하는 IAM 역할에 대한 작업 역할을 선택합니다.AWS사용자 대신 연결된 정책에 지정된 API입니다. 이것이 바로 애플리케이션에 보안 자격 증명이 전달되는 과정입니다. 단원을 참조하십시오.지정 방법AWS애플리케이션에 대한 보안 자격 증명.

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

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

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

에 컨테이너AWS

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

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