기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS CDK로 Amazon ECS Anywhere를 설정하여 온프레미스 컨테이너 애플리케이션을 관리
작성자: Dr. Rahul Sharad Gaikwad(AWS)
요약
Amazon ECS Anywhere
이 패턴은 AWS Cloud Development Kit(AWS CDK
사전 조건 및 제한 사항
사전 조건
활성 상태의 AWS 계정.
AWS Command Line Interface(AWS CLI), 설치 및 구성됨. (AWS CLI 문서에서 AWS CLI 설치, 업데이트, 제거 참조)
AWS CDK Toolkit, 설치 및 구성됨. (AWS CDK 설명서의 AWS CDK Toolkit을 참조하고 지침에 따라 버전 2를 전역적으로 설치합니다.)
노드 패키지 관리자(npm), TypeScript에서 AWS CDK용으로 설치 및 구성됨. (npm 문서에서 Node.js 및 npm 다운로드 및 설치
참조)
제한 사항
제한 사항 및 고려 사항은 Amazon ECS 설명서의 외부 인스턴스(Amazon ECS Anywhere)를 참조하세요.
제품 버전
AWS CDK Toolkit 버전 2
npm 버전 7.20.3 이상
Node.js 버전 16.6.1 이상
아키텍처
대상 기술 스택
AWS CloudFormation
AWS CDK
Amazon ECS Anywhere
Identity and Access Management(IAM)
대상 아키텍처
다음 다이어그램은 이 패턴으로 구현된 AWS CDK와 TypeScript를 사용하여 ECS Anywhere를 설정하는 상위 수준의 시스템 아키텍처를 보여줍니다.
AWS CDK 스택을 배포하면 AWS에 CloudFormation 스택이 생성됩니다.
CloudFormation 스택은 Amazon ECS 클러스터 및 관련 AWS 리소스를 프로비저닝합니다.
Amazon ECS 클러스터에 외부 인스턴스를 등록하려면 가상 머신(VM)에 AWS Systems Manager Agent(SSM Agent)를 설치하고 해당 VM을 AWS Systems Manager 관리형 인스턴스로 등록해야 합니다.
또한 VM을 Amazon ECS 클러스터에 외부 인스턴스로 등록하려면 VM에 Amazon ECS 컨테이너 에이전트와 Docker를 설치해야 합니다.
Amazon ECS 클러스터에 외부 인스턴스를 등록하고 구성하면, 외부 인스턴스로 등록된 VM에서 여러 컨테이너를 실행할 수 있습니다.

자동화 및 규모 조정
이 패턴과 함께 제공되는 GitHub 리포지토리
도구
AWS Cloud Development Kit(AWS CDK)는 AWS 클라우드 인프라를 코드로 정의하고 프로비저닝하는 데 도움이 되는 소프트웨어 개발 프레임워크입니다.
AWS Command Line Interface(AWS CLI)는 명령줄 쉘에서 명령을 사용하여 AWS 서비스와 상호 작용할 수 있는 오픈 소스 도구입니다.
코드
이 패턴의 소스 코드는 GitHub의 Amazon ECS Anywhere CDK 샘플
에픽
작업 | 설명 | 필요한 기술 |
---|---|---|
AWS CDK 버전을 확인합니다. | 다음 명령을 실행하여 AWS CDK Toolkit 버전을 확인하세요.
이 패턴에는 AWS CDK 버전 2가 필요합니다. 이전 버전의 AWS CDK를 사용 중이면 AWS CDK 문서에 있는 지침에 따라 업데이트하세요. | DevOps 엔지니어 |
AWS 보안 인증 정보를 설정합니다. | 보안 인증 정보를 설정하려면
| DevOps 엔지니어 |
작업 | 설명 | 필요한 기술 |
---|---|---|
AWS CDK 코드 리포지토리를 복제합니다. | 다음 명령을 사용하여 이 패턴의 GitHub 코드 리포지토리를 복제합니다.
| DevOps 엔지니어 |
환경을 부트스트랩합니다. | 사용하려는 계정 및 AWS 리전에 AWS CloudFormation 템플릿을 배포하려면 다음 명령을 실행합니다.
자세한 내용은 AWS CDK 설명서의 부트스트래핑을 참조하세요. | DevOps 엔지니어 |
작업 | 설명 | 필요한 기술 |
---|---|---|
패키지 종속성을 설치하고 TypeScript 파일을 컴파일합니다. | 다음 명령을 실행하여 패키지 종속성을 설치하고 TypeScript 파일을 컴파일하세요.
이 명령은 샘플 저장소의 모든 패키지를 설치합니다. 중요누락된 패키지에 오류가 발생하면 다음 명령 중 하나를 사용합니다.
—또는—
자세한 내용은 npm 설명서에 있는 npm ci | DevOps 엔지니어 |
프로젝트를 빌드합니다. | 다음 명령을 실행하여, 프로젝트를 구축합니다.
프로젝트 구축 및 배포에 대한 자세한 내용은 AWS CDK 설명서의 첫 AWS CDK 앱을 참조하세요. | DevOps 엔지니어 |
프로젝트를 배포합니다. | 프로젝트 코드를 배포하려면 다음 명령을 실행합니다.
| DevOps 엔지니어 |
스택 생성 및 출력을 확인합니다. | https://console.aws.amazon.com/cloudformation | DevOps 엔지니어 |
작업 | 설명 | 필요한 기술 |
---|---|---|
Vagrant를 사용하여 VM을 설정하세요. | 데모를 위해 HashiCorp Vagrant | DevOps 엔지니어 |
VM을 외부 인스턴스로 등록합니다. | 1. 2. AWS Systems Manager에 VM을 등록하고 외부 인스턴스를 활성화하는 데 사용할 수 있는 활성화 코드와 ID를 생성합니다. 이 명령의 출력에는 다음과 같이
3. 활성화 ID 및 코드 값 내보내기:
4. 온프레미스 서버 또는 VM에서 설치 스크립트를 다운로드합니다.
5. 온프레미스 서버 또는 VM에서 설치 스크립트를 실행합니다.
VM 설정 및 등록에 대한 자세한 내용은 Amazon ECS 설명서의 클러스터에 외부 인스턴스 등록 | DevOps 엔지니어 |
ECS Anywhere와 외부 VM의 상태를 확인합니다. | 가상 박스가 Amazon ECS 컨트롤 플레인에 연결되어 실행 중인지 확인하려면 다음 명령을 사용하세요.
| DevOps 엔지니어 |
작업 | 설명 | 필요한 기술 |
---|---|---|
리소스를 정리하고 삭제합니다. | 이 패턴을 수행한 다음에는 추가 요금이 발생하지 않도록 생성한 리소스를 제거해야 합니다. 정리하려면 다음 명령을 실행합니다.
| DevOps 엔지니어 |