인프라 생성 - AMS 고급 애플리케이션 개발자 안내서

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

인프라 생성

시작하기 전에 다음 데이터를 수집하면 배포 속도가 빨라집니다.

필수 데이터 HA 스택:

  • AutoScalingGroup:

    • UserData:이 값은이 자습서에서 제공됩니다. 여기에는 CodeDeploy에 대한 리소스를 설정하고 CodeDeploy 에이전트를 시작하는 명령이 포함되어 있습니다.

    • AMI-ID:이 값은 Auto Scaling 그룹(ASG)이 실행할 EC2 인스턴스의 종류를 결정합니다. 계정에서 "customer-"로 시작하고 원하는 운영 체제의 AMI를 선택해야 합니다. 를 사용하여 AMI IDs를 찾습니다. AMS SKMS API 참조의 경우 AWS 아티팩트 콘솔의 보고서 탭(CLI: list-amis) 또는 AMS 콘솔 VPCs VPCs 세부 정보 페이지를 참조하세요. 이 연습은 Linux ASGs를 위한 것입니다.

  • 데이터베이스:

    • 예제에 표시된 값이 테스트되었지만 상황에 따라 이러한 파라미터 EngineVersion, 및 DBEngine를 설정해야 LicenseModel 합니다.

    • 이러한 파라미터 RDSSubnetIds, MasterUsername, 및 DBNameMasterUserPassword는 애플리케이션 번들을 배포할 때 필요합니다. RDSSubnetIds의 경우 두 개의 프라이빗 서브넷을 사용합니다.

  • LoadBalancer:

    • 예제에 표시된 값이 테스트되었지만 상황에 따라 이러한 파라미터 EngineVersion, 및 DBEngine를 설정해야 LicenseModel 합니다.

    • ELBSubnetIds: 두 개의 퍼블릭 서브넷을 사용합니다.

  • 애플리케이션:이 ApplicationName 값은 CodeDeploy 애플리케이션 이름과 CodeDeploy 배포 그룹 이름을 설정합니다. 이를 사용하여 애플리케이션을 배포합니다. 계정에서 고유해야 합니다. 계정에 CodeDeploy 이름이 있는지 확인하려면 CodeDeploy 콘솔을 참조하세요. 이 예제에서는 "WordPress"를 사용하지만 해당 값을 사용할 경우 아직 사용되지 않았는지 확인합니다.

이 절차는 고가용성 2계층 스택(고급) CT(ct-06mjngx5flwto) 및 S3 스토리지 CT 생성(ct-1a68ck03fn98r)을 활용합니다. 인증된 계정에서 명령줄의 다음 단계를 따릅니다.

  1. 인프라 스택을 시작합니다.

    1. HA 2계층 스택 CT의 실행 파라미터 JSON 스키마를 CreateStackParams.json.

      aws amscm get-change-type-version --change-type-id "ct-06mjngx5flwto" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateStackParams.json
    2. 스키마를 수정합니다. 변수를 적절하게 바꿉니다. 예를 들어 ASG가 생성할 EC2 인스턴스에 대해 원하는 OS를 사용합니다. 나중에 애플리케이션을 배포하는 데 ApplicationName 사용할를 기록합니다. 최대 50개의 태그를 추가할 수 있습니다.

      { "Description": "HA two tier stack for WordPress", "Name": "WordPressStack", "TimeoutInMinutes": 360, "Tags": [ { "Key": "ApplicationName", "Value": "WordPress" } ], "AutoScalingGroup": { "AmiId": "AMI-ID", "UserData": "#!/bin/bash \n REGION=$(curl 169.254.169.254/latest/meta-data/placement/availability-zone/ | sed 's/[a-z]$//') \n yum -y install ruby httpd \n chkconfig httpd on \n service httpd start \n touch /var/www/html/status \n cd /tmp \n curl -O https://aws-codedeploy-$REGION.s3.amazonaws.com/latest/install \n chmod +x ./install \n ./install auto \n chkconfig codedeploy-agent on \n service codedeploy-agent start" }, "LoadBalancer": { "Public": true, "HealthCheckTarget": "HTTP:80/status" }, "Database": { "DBEngine": "MySQL", "DBName": "wordpress", "EngineVersion": "8.0.16 ", "LicenseModel": "general-public-license", "MasterUsername": "admin", "MasterUserPassword": "p4ssw0rd" }, "Application": { "ApplicationName": "WordPress" } }
    3. CreateRfc JSON 템플릿을 CreateStackRfc.json:이라는 현재 폴더의 파일로 출력합니다.

      aws amscm create-rfc --generate-cli-skeleton > CreateStackRfc.json
    4. 다음과 같이 RFC 템플릿을 수정하고 저장하면 콘텐츠를 삭제하고 바꿀 수 있습니다. 이제 RequestedStartTimeRequestedEndTime는 선택 사항입니다. 제외하면 승인되는 즉시 실행되는 ASAP RFC가 생성됩니다(일반적으로 자동으로 발생함). 예약된 RFC를 제출하려면 해당 값을 추가합니다.

      { "ChangeTypeVersion": "3.0", "ChangeTypeId": "ct-06mjngx5flwto", "Title": "HA-Stack-For-WP-RFC" }
    5. CreateStackRfc.json 파일과 CreateStackParams.json 실행 파라미터 파일을 지정하여 RFC를 생성합니다.

      aws amscm create-rfc --cli-input-json file://CreateStackRfc.json --execution-parameters file://CreateStackParams.json

      응답에서 RFC ID를 수신합니다. 후속 단계를 위해 ID를 저장합니다.

    6. RFC를 제출합니다.

      aws amscm submit-rfc --rfc-id RFC_ID

      RFC가 성공하면 출력이 수신되지 않습니다.

    7. RFC 상태를 확인하려면를 실행합니다.

      aws amscm get-rfc --rfc-id RFC_ID

    RFC ID를 기록해 둡니다.

  2. S3 버킷 시작

    시작하기 전에 다음 데이터를 수집하면 배포 속도가 빨라집니다.

    필수 데이터 S3 버킷:

    • VPC-ID:이 값은 S3 버킷의 위치를 결정합니다. 이전에 사용한 것과 동일한 VPC ID를 사용합니다.

    • BucketName:이 값은 S3 버킷 이름을 설정하며, 이를 사용하여 애플리케이션 번들을 업로드합니다. 계정의 리전 전체에서 고유해야 하며 대문자를 포함할 수 없습니다. 계정 ID를 BucketName의 일부로 포함하는 것은 요구 사항이 아니지만 나중에 버킷을 더 쉽게 식별할 수 있습니다. 계정에 있는 S3 버킷 이름을 확인하려면 계정의 Amazon S3 콘솔로 이동합니다.

    1. S3 스토리지 생성 CT에 대한 실행 파라미터 JSON 스키마를 CreateS3StoreParams.json.

      aws amscm get-change-type-version --change-type-id "ct-1a68ck03fn98r" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > CreateS3StoreParams.json
    2. 다음과 같이 스키마를 수정하면 콘텐츠를 삭제하고 바꿀 수 있습니다. VPC_ID를 적절하게 바꿉니다. 예제의 값은 테스트되었지만 적합하지 않을 수 있습니다.

      작은 정보

      는 계정 리전 전체에서 고유BucketName해야 하며 대문자를 포함할 수 없습니다. 계정 ID를 BucketName의 일부로 포함하는 것은 요구 사항이 아니지만 나중에 버킷을 더 쉽게 식별할 수 있습니다. 계정에 있는 S3 버킷 이름을 확인하려면 계정의 Amazon S3 콘솔로 이동합니다.

      { "Description": "S3BucketForWordPressBundle", "VpcId": "VPC_ID", "StackTemplateId": "stm-s2b72beb000000000", "Name": "S3BucketForWP", "TimeoutInMinutes": 60, "Parameters": { "AccessControl": "Private", "BucketName": "ACCOUNT_ID-BUCKET_NAME" } }
    3. CreateRfc용 JSON 템플릿을 CreateS3StoreRfc.json:

      aws amscm create-rfc --generate-cli-skeleton > CreateS3StoreRfc.json
    4. CreateS3StoreRfc.json 파일을 수정하고 저장하면 콘텐츠를 삭제하고 바꿀 수 있습니다. 이제 RequestedStartTimeRequestedEndTime는 선택 사항입니다. 제외하면 승인되는 즉시 실행되는 ASAP RFC가 생성됩니다(일반적으로 자동으로 발생함). 예약된 RFC를 제출하려면 해당 값을 추가합니다.

      { "ChangeTypeVersion": "1.0", "ChangeTypeId": "ct-1a68ck03fn98r", "Title": "S3-Stack-For-WP-RFC" }
    5. CreateS3StoreRfc.json 파일과 CreateS3StoreParams.json 실행 파라미터 파일을 지정하여 RFC를 생성합니다.

      aws amscm create-rfc --cli-input-json file://CreateS3StoreRfc.json --execution-parameters file://CreateS3StoreParams.json

      응답에서 새 RFC의 RfcId를 수신합니다. 후속 단계를 위해 ID를 저장합니다.

    6. RFC를 제출합니다.

      aws amscm submit-rfc --rfc-id RFC_ID

      RFC가 성공하면 출력이 수신되지 않습니다.

    7. RFC 상태를 확인하려면를 실행합니다.

      aws amscm get-rfc --rfc-id RFC_ID