기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
시작하기 AWS CLI
AWS Proton 사용을 시작하려면 이 AWS CLI튜토리얼을 따르세요. 이 자습서에서는 을 기반으로 하는 공개 부하 분산 AWS Proton 서비스를 보여줍니다. AWS Fargate또한 이 튜토리얼에서는 표시된 이미지가 있는 정적 웹사이트를 배포하는 CI/CD 파이프라인을 제공합니다.
시작하기 전에 제대로 설정했는지 확인합니다. 자세한 내용은 사전 조건 단원을 참조하세요.
1단계: 환경 템플릿을 등록합니다.
이 단계에서는 관리자로서 Amazon Elastic Container Service (AmazonECS) 클러스터와 두 개의 퍼블릭/프라이빗 서브넷이 있는 Amazon Virtual Private Cloud (AmazonVPC) 가 포함된 예제 환경 템플릿을 등록합니다.
환경 템플릿을 등록하려면
-
AWS Proton 샘플 CloudFormation 템플릿
리포지토리를 GitHub 계정 또는 조직에 포크하십시오. 이 리포지토리에는 이 튜토리얼에서 사용하는 환경 및 서비스 템플릿이 포함되어 있습니다. 그런 다음, 포크된 리포지토리를 에 등록하세요. AWS Proton자세한 내용은 리포지토리로 연결되는 링크를 생성합니다. 단원을 참조하십시오.
-
환경 템플릿을 생성합니다.
환경 템플릿 리소스는 환경 템플릿 버전을 추적합니다.
$
aws proton create-environment-template \ --name "fargate-env" \ --display-name "Public VPC Fargate" \ --description "VPC with public access and ECS cluster"
-
템플릿 동기화 구성을 생성합니다.
AWS Proton 리포지토리와 환경 템플릿 간의 동기화 관계를 설정합니다. 그런 다음
DRAFT
상태의 템플릿 버전 1.0을 생성합니다.$
aws proton create-template-sync-config \ --template-name "fargate-env" \ --template-type "ENVIRONMENT" \ --repository-name "
your-forked-repo
" \ --repository-provider "GITHUB" \ --branch "your-branch
" \ --subdirectory "environment-templates/fargate-env" -
환경 템플릿 버전이 성공적으로 등록될 때까지 기다리십시오.
이 명령이 종료 상태인
0
로 반환되면 버전 등록이 완료된 것입니다. 이 기능은 스크립트에서 다음 단계에서 명령을 성공적으로 실행할 수 있도록 하는 데 유용합니다.$
aws proton wait environment-template-version-registered \ --template-name "fargate-env" \ --major-version "1" \ --minor-version "0"
-
환경 템플릿 버전을 게시하여 환경 생성에 사용할 수 있도록 합니다.
$
aws proton update-environment-template-version \ --template-name "fargate-env" \ --major-version "1" \ --minor-version "0" \ --status "PUBLISHED"
2단계: 서비스 템플릿 등록하기
이 단계에서는 관리자로서 예제 서비스 템플릿을 등록합니다. 이 템플릿에는 로드 밸런서와 이를 사용하는 CI/CD 파이프라인을 기반으로 Amazon ECS Fargate 서비스를 프로비저닝하는 데 필요한 모든 리소스가 포함되어 있습니다. AWS CodePipeline
서비스 템플릿을 등록하려면
-
서비스 템플릿을 생성합니다.
서비스 템플릿 리소스는 서비스 템플릿 버전을 추적합니다.
$
aws proton create-service-template \ --name "load-balanced-fargate-svc" \ --display-name "Load balanced Fargate service" \ --description "Fargate service with an application load balancer"
-
템플릿 동기화 구성을 생성합니다.
AWS Proton 리포지토리와 서비스 템플릿 간에 동기화 관계를 설정합니다. 그런 다음
DRAFT
상태의 템플릿 버전 1.0을 생성합니다.$
aws proton create-template-sync-config \ --template-name "load-balanced-fargate-svc" \ --template-type "SERVICE" \ --repository-name "
your-forked-repo
" \ --repository-provider "GITHUB" \ --branch "your-branch
" \ --subdirectory "service-templates/load-balanced-fargate-svc" -
서비스 템플릿 버전이 성공적으로 등록될 때까지 기다립니다.
이 명령이 종료 상태인
0
로 반환되면 버전 등록이 완료된 것입니다. 이 기능은 스크립트에서 다음 단계에서 명령을 성공적으로 실행할 수 있도록 하는 데 유용합니다.$
aws proton wait service-template-version-registered \ --template-name "load-balanced-fargate-svc" \ --major-version "1" \ --minor-version "0"
-
서비스 템플릿 버전을 게시하여 서비스 생성에 사용할 수 있도록 합니다.
$
aws proton update-service-template-version \ --template-name "load-balanced-fargate-svc" \ --major-version "1" \ --minor-version "0" \ --status "PUBLISHED"
3단계: 환경 배포
이 단계에서 관리자는 환경 템플릿에서 AWS Proton 환경을 인스턴스화합니다.
환경 배포하려면
-
등록한 환경 템플릿의 예제 사양 파일을 가져옵니다.
템플릿 예제 리포지토리에서
environment-templates/fargate-env/spec/spec.yaml
파일을 다운로드할 수 있습니다. 또는 전체 리포지토리를 로컬로 가져와서environment-templates/fargate-env
디렉터리에서 create-environment 명령을 실행할 수도 있습니다. -
환경을 생성합니다.
AWS Proton 환경 사양에서 입력 값을 읽고, 이를 환경 템플릿과 결합하고, 서비스 역할을 사용하여 AWS 계정의 AWS Proton 환경 리소스를 프로비저닝합니다.
$
aws proton create-environment \ --name "fargate-env-prod" \ --template-name "fargate-env" \ --template-major-version 1 \ --proton-service-role-arn "arn:aws:iam::
123456789012
:role/AWS ProtonServiceRole
" \ --spec "file://spec/spec.yaml" -
환경이 성공적으로 배포될 때까지 기다리세요.
$
aws proton wait environment-deployed --name "fargate-env-prod"
4단계: 서비스 배포 [애플리케이션 개발자]
이전 단계에서 관리자는 서비스 템플릿을 등록 및 게시하고 환경을 배포했습니다. 애플리케이션 개발자는 이제 AWS Proton 서비스를 생성하여 환경에 배포할 수 있습니다. AWS Proton
서비스를 배포하려면
-
관리자가 등록한 서비스 템플릿의 예제 사양 파일을 가져오십시오.
템플릿 예제 리포지토리에서
service-templates/load-balanced-fargate-svc/spec/spec.yaml
파일을 다운로드할 수 있습니다. 또는 전체 리포지토리를 로컬로 가져와서service-templates/load-balanced-fargate-svc
디렉터리에서 create-service 명령을 실행할 수도 있습니다. -
AWS Proton 샘플 서비스
리포지토리를 GitHub 계정 또는 조직에 포크하십시오. 이 리포지토리에는 이 튜토리얼에서 사용하는 애플리케이션 소스 코드가 포함되어 있습니다. -
서비스를 생성합니다.
AWS Proton 서비스 사양에서 입력 값을 읽고, 이를 서비스 템플릿과 결합하고, 사양에 지정된 환경에서 AWS 계정의 서비스 리소스를 프로비저닝합니다. AWS CodePipeline 파이프라인은 명령에서 지정한 리포지토리에서 애플리케이션 코드를 배포합니다.
$
aws proton create-service \ --name "static-website" \ --repository-connection-arn \ "arn:aws:codestar-connections:us-east-1:
123456789012
:connection/your-codestar-connection-id
" \ --repository-id "your-GitHub-account
/aws-proton-sample-services" \ --branch-name "main
" \ --template-major-version 1 \ --template-name "load-balanced-fargate-svc" \ --spec "file://spec/spec.yaml" -
서비스가 성공적으로 배포될 때까지 기다립니다.
$
aws proton wait service-created --name "static-website"
-
출력을 검색하고 새 웹 사이트를 확인합니다.
다음 명령 실행:
$
aws proton list-service-instance-outputs \ --service-name "static-website" \ --service-instance-name load-balanced-fargate-svc-prod
명령 출력은 은 다음과 유사해야 합니다.
{ "outputs": [ { "key": "ServiceURL", "valueString": "http://
your-service-endpoint
.us-east-1.elb.amazonaws.com" } ] }ServiceURL
인스턴스 출력 값은 새 서비스 웹 사이트의 엔드포인트입니다. 브라우저를 사용하여 탐색하세요. 정적 페이지에 다음 그래픽이 표시되어야 합니다:
5단계: 정리(선택 사항)
이 단계에서는 이 자습서의 일부로 만든 AWS 리소스를 모두 살펴보고 이러한 리소스와 관련된 비용을 절약하기 위해 리소스를 삭제합니다.
튜토리얼 리소스 삭제
-
서비스를 다시 시작하려면 다음 명령을 실행합니다.
$
aws proton delete-service --name "static-website"
-
환경을 삭제하려면 다음 명령을 실행합니다.
$
aws proton delete-environment --name "fargate-env-prod"
-
서비스 템플릿을 삭제하려면 다음 명령을 실행합니다.
$
aws proton delete-template-sync-config \ --template-name "load-balanced-fargate-svc" \ --template-type "SERVICE"
$
aws proton delete-service-template --name "load-balanced-fargate-svc"
-
환경 템플릿을 삭제하려면 다음 명령을 실행합니다:
$
aws proton delete-template-sync-config \ --template-name "fargate-env" \ --template-type "ENVIRONMENT"
$
aws proton delete-environment-template --name "fargate-env"