시작하기 AWS CLI - AWS Proton

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

시작하기 AWS CLI

AWS Proton 사용을 시작하려면이 자습서를 AWS CLI따르세요. 이 자습서에서는를 기반으로 하는 퍼블릭 대면 로드 밸런싱 AWS Proton 서비스를 보여줍니다 AWS Fargate. 또한 이 튜토리얼에서는 표시된 이미지가 있는 정적 웹사이트를 배포하는 CI/CD 파이프라인을 제공합니다.

시작하기 전에 제대로 설정했는지 확인합니다. 자세한 내용은 사전 조건 단원을 참조하세요.

1단계: 환경 템플릿을 등록합니다.

이 단계에서는 관리자로서 두 개의 퍼블릭/프라이빗 서브넷이 있는 Elastic Container Service(ECS) 클러스터와 Virtual Private Cloud(VPC)가 포함된 예제 환경 템플릿을 등록합니다.

환경 템플릿을 등록하려면
  1. AWS Proton 샘플 CloudFormation 템플릿 리포지토리를 GitHub 계정 또는 조직에 포크합니다. 이 리포지토리에는 이 튜토리얼에서 사용하는 환경 및 서비스 템플릿이 포함되어 있습니다.

    그런 다음 포크된 리포지토리를에 등록합니다 AWS Proton. 자세한 내용은 리포지토리로 연결되는 링크를 생성합니다. 단원을 참조하십시오.

  2. 환경 템플릿을 생성합니다.

    환경 템플릿 리소스는 환경 템플릿 버전을 추적합니다.

    $ aws proton create-environment-template \ --name "fargate-env" \ --display-name "Public VPC Fargate" \ --description "VPC with public access and ECS cluster"
  3. 템플릿 동기화 구성을 생성합니다.

    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"
  4. 환경 템플릿 버전이 성공적으로 등록될 때까지 기다리십시오.

    이 명령이 종료 상태인 0로 반환되면 버전 등록이 완료된 것입니다. 이 기능은 스크립트에서 다음 단계에서 명령을 성공적으로 실행할 수 있도록 하는 데 유용합니다.

    $ aws proton wait environment-template-version-registered \ --template-name "fargate-env" \ --major-version "1" \ --minor-version "0"
  5. 환경 템플릿 버전을 게시하여 환경 생성에 사용할 수 있도록 합니다.

    $ aws proton update-environment-template-version \ --template-name "fargate-env" \ --major-version "1" \ --minor-version "0" \ --status "PUBLISHED"

2단계: 서비스 템플릿 등록하기

이 단계에서는 관리자가 로드 밸런서 뒤에 있는 ECS Fargate 서비스를 프로비저닝하는 데 필요한 모든 리소스와 AWS CodePipeline를 사용하는 CI/CD 파이프라인이 포함된 예제 서비스 템플릿을 등록합니다.

서비스 템플릿을 등록하려면
  1. 서비스 템플릿을 생성합니다.

    서비스 템플릿 리소스는 서비스 템플릿 버전을 추적합니다.

    $ aws proton create-service-template \ --name "load-balanced-fargate-svc" \ --display-name "Load balanced Fargate service" \ --description "Fargate service with an application load balancer"
  2. 템플릿 동기화 구성을 생성합니다.

    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"
  3. 서비스 템플릿 버전이 성공적으로 등록될 때까지 기다립니다.

    이 명령이 종료 상태인 0로 반환되면 버전 등록이 완료된 것입니다. 이 기능은 스크립트에서 다음 단계에서 명령을 성공적으로 실행할 수 있도록 하는 데 유용합니다.

    $ aws proton wait service-template-version-registered \ --template-name "load-balanced-fargate-svc" \ --major-version "1" \ --minor-version "0"
  4. 서비스 템플릿 버전을 게시하여 서비스 생성에 사용할 수 있도록 합니다.

    $ aws proton update-service-template-version \ --template-name "load-balanced-fargate-svc" \ --major-version "1" \ --minor-version "0" \ --status "PUBLISHED"

3단계: 환경 배포

이 단계에서는 관리자가 AWS Proton 환경 템플릿에서 환경을 인스턴스화합니다.

환경 배포하려면
  1. 등록한 환경 템플릿의 예제 사양 파일을 가져옵니다.

    템플릿 예제 리포지토리에서 environment-templates/fargate-env/spec/spec.yaml 파일을 다운로드할 수 있습니다. 또는 전체 리포지토리를 로컬로 가져와서 environment-templates/fargate-env 디렉터리에서 create-environment 명령을 실행할 수도 있습니다.

  2. 환경을 생성합니다.

    AWS Proton 는 환경 사양에서 입력 값을 읽고, 환경 템플릿과 결합하고, AWS Proton 서비스 역할을 사용하여 AWS 계정의 환경 리소스를 프로비저닝합니다.

    $ 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"
  3. 환경이 성공적으로 배포될 때까지 기다리세요.

    $ aws proton wait environment-deployed --name "fargate-env-prod"

4단계: 서비스 배포 [애플리케이션 개발자]

이전 단계에서 관리자는 서비스 템플릿을 등록 및 게시하고 환경을 배포했습니다. 애플리케이션 개발자는 이제 AWS Proton 서비스를 생성하고 AWS Proton 환경에 배포할 수 있습니다.

서비스를 배포하려면
  1. 관리자가 등록한 서비스 템플릿의 예제 사양 파일을 가져오십시오.

    템플릿 예제 리포지토리에서 service-templates/load-balanced-fargate-svc/spec/spec.yaml 파일을 다운로드할 수 있습니다. 또는 전체 리포지토리를 로컬로 가져와서 service-templates/load-balanced-fargate-svc 디렉터리에서 create-service 명령을 실행할 수도 있습니다.

  2. AWS Proton 샘플 서비스 리포지토리를 GitHub 계정 또는 조직으로 포크합니다. 이 리포지토리에는 이 튜토리얼에서 사용하는 애플리케이션 소스 코드가 포함되어 있습니다.

  3. 서비스를 생성합니다.

    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"
  4. 서비스가 성공적으로 배포될 때까지 기다립니다.

    $ aws proton wait service-created --name "static-website"
  5. 출력을 검색하고 새 웹 사이트를 확인합니다.

    다음 명령 실행:

    $ 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 인스턴스 출력 값은 새 서비스 웹 사이트의 엔드포인트입니다. 브라우저를 사용하여 탐색하세요. 정적 페이지에 다음 그래픽이 표시되어야 합니다:

    CLI 시작하기 절차의 결과로 생성된 정적 이미지 사이트를 보여주는 웹 브라우저

5단계: 정리(선택 사항)

이 단계에서는이 자습서의 일부로 생성한 AWS 리소스를 탐색하고 이러한 리소스와 관련된 비용을 절감하기 위해 리소스를 삭제합니다.

튜토리얼 리소스 삭제
  1. 서비스를 다시 시작하려면 다음 명령을 실행합니다.

    $ aws proton delete-service --name "static-website"
  2. 환경을 삭제하려면 다음 명령을 실행합니다.

    $ aws proton delete-environment --name "fargate-env-prod"
  3. 서비스 템플릿을 삭제하려면 다음 명령을 실행합니다.

    $ 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"
  4. 환경 템플릿을 삭제하려면 다음 명령을 실행합니다:

    $ aws proton delete-template-sync-config \ --template-name "fargate-env" \ --template-type "ENVIRONMENT" $ aws proton delete-environment-template --name "fargate-env"