고가용성 2계층 스택 | 생성 - AMS 고급 변경 유형 참조

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

고가용성 2계층 스택 | 생성

Auto Scaling 그룹, RDS DB 인스턴스 및 로드 밸런서(ELB)로 구성된 스택을 생성합니다. 선택적으로 ApplicationName에 지정된 값이라는 CodeDeploy 애플리케이션과 배포 그룹을 생성하여 CodeDeploy로 애플리케이션 배포를 허용합니다. 모든 리소스 파라미터를 구성할 수 있습니다.

전체 분류: 배포 | 표준 스택 | 고가용성 2계층 스택 | 생성

변경 유형 세부 정보

유형 ID 변경

ct-06mjngx5flwto

현재 버전

3.0

예상 실행 기간

60분

AWS 승인

필수

고객 승인

불필요

실행 모드

자동

추가 정보

고가용성 2계층 스택 생성

변경 사항 type details for creating a high availability two-tier stack with configurable parameters.

작동 방식:

  1. RFC 생성 페이지로 이동합니다. AMS 콘솔의 왼쪽 탐색 창에서 RFCs 클릭하여 RFCs 목록 페이지를 연 다음 RFC 생성을 클릭합니다.

  2. 기본 변경 유형 찾아보기 보기에서 인기 있는 변경 유형(CT)을 선택하거나 범주별 선택 보기에서 CT를 선택합니다.

    • 변경 유형별 찾아보기: 빠른 생성 영역에서 인기 있는 CT를 클릭하여 RFC 실행 페이지를 즉시 열 수 있습니다. 빠른 생성으로 이전 CT 버전을 선택할 수 없습니다.

      CTs 정렬하려면 카드 또는 테이블 보기에서 모든 변경 유형 영역을 사용합니다. 어느 보기에서든 CT를 선택한 다음 RFC 생성을 클릭하여 RFC 실행 페이지를 엽니다. 해당하는 경우 RFC 생성 버튼 옆에 이전 버전으로 생성 옵션이 나타납니다.

    • 범주별 선택: 범주, 하위 범주, 항목 및 작업을 선택하면 해당하는 경우 이전 버전으로 생성 옵션이 있는 CT 세부 정보 상자가 열립니다. RFC 생성을 클릭하여 RFC 실행 페이지를 엽니다.

  3. RFC 실행 페이지에서 CT 이름 영역을 열어 CT 세부 정보 상자를 확인합니다. 제목은 필수입니다(변경 유형 찾아보기 보기에서 CT를 선택하면 입력됨). 추가 구성 영역을 열어 RFC에 대한 정보를 추가합니다.

    실행 구성 영역에서 사용 가능한 드롭다운 목록을 사용하거나 필요한 파라미터의 값을 입력합니다. 선택적 실행 파라미터를 구성하려면 추가 구성 영역을 엽니다.

  4. 완료되면 실행을 클릭합니다. 오류가 없는 경우 성공적으로 생성된 RFC 페이지에 제출된 RFC 세부 정보와 초기 실행 출력이 표시됩니다.

  5. 실행 파라미터 영역을 열어 제출한 구성을 확인합니다. 페이지를 새로 고쳐 RFC 실행 상태를 업데이트합니다. 선택적으로 RFC를 취소하거나 페이지 상단의 옵션을 사용하여 RFC 사본을 생성합니다.

작동 방식:

  1. 템플릿 생성 방법(RFC 파라미터용 및 실행 파라미터용 JSON 파일 2개 생성)을 사용하고 두 파일을 입력으로 사용하여 create-rfc 명령을 실행합니다. 두 방법 모두 여기에 설명되어 있습니다.

  2. 반환된 RFC ID로 RFC: aws amscm submit-rfc --rfc-id ID 명령을 제출합니다.

    RFC: aws amscm get-rfc --rfc-id ID 명령을 모니터링합니다.

변경 유형 버전을 확인하려면 다음 명령을 사용합니다.

aws amscm list-change-type-version-summaries --filter Attribute=ChangeTypeId,Value=CT_ID
참고

변경 유형에 대한 스키마의 일부인지 여부에 관계없이 모든 RFC에서 CreateRfc 파라미터를 사용할 수 있습니다. 예를 들어 RFC 상태가 변경될 때 알림을 받으려면 요청의 --notification "{\"Email\": {\"EmailRecipients\" : [\"email@example.com\"]}}" RFC 파라미터 부분(실행 파라미터 아님)에이 줄을 추가합니다. 모든 CreateRfc 파라미터 목록은 AMS Change Management API 참조를 참조하세요.

템플릿 생성:

  1. 이 변경 유형에 대한 실행 파라미터 JSON 스키마를 현재 폴더의 파일로 출력합니다.이 예제에서는 Create2tierStackParams.json.

    aws amscm get-change-type-version --change-type-id "ct-06mjngx5flwto" --query "ChangeTypeVersion.ExecutionInputSchema" --output text > Create2tierStackParams.json
  2. 스키마를 수정하여 변수를 적절하게 바꿉니다.

    { "Description": "HA two tier stack", "Name": "Two-Tier-Stack", "TimeoutInMinutes": 360, "VpcId": "VPC-ID", "AutoScalingGroup": { "AmiId": "AMI-ID", "SubnetIds": [ "Subnet-ID", "Subnet-ID" ] }, "Database": { "DBName": "DB_Name", "DBEngine": "postgres", "EngineVersion": "9.6.3", "LicenseModel": "postgresql-license", "MasterUsername": "masterusername", "SubnetIds": [ "Subnet-ID", "Subnet-ID" ] }, "LoadBalancer": { "SubnetIds": [ "Subnet-ID", "Subnet-ID" ] } }
  3. CreateRfc JSON 템플릿을 현재 폴더의 파일로 출력합니다. 예제 이름은 Create2tierStackRfc.json:.

    aws amscm create-rfc --generate-cli-skeleton > Create2tierStackRfc.json
  4. RFC 템플릿을 적절하게 수정하고 저장합니다. 예약된 RFC의 시작 및 종료 시간을 재설정하거나 ASAP RFC의 시작 및 종료 시간을 해제합니다.

    { "ChangeTypeVersion": 3.0", "ChangeTypeId": "ct-06mjngx5flwto", "Title": "HA-2-Tier-RFC", "RequestedStartTime": "2019-04-28T22:45:00Z", "RequestedEndTime": "2019-04-28T22:45:00Z" }
  5. Create2tierStackRfc.json 파일과 Create2tierStackParams.json 실행 파라미터 파일을 지정하여 RFC를 생성합니다.

    aws amscm create-rfc --cli-input-json file://Create2tierStackRfc.json --execution-parameters file://Create2tierStackParams.json

    응답에서 새 RFC의 ID를 수신하고 이를 사용하여 RFC를 제출하고 모니터링할 수 있습니다. 제출하기 전까지는 RFC가 편집 상태로 유지되고 시작되지 않습니다.

참고

이는 특히 UserData를 추가하는 경우 리소스의 대규모 프로비저닝입니다. 로드 밸런서 Amazon 리소스 이름(ARN)은 RFC 실행 출력에 반환된 로드 밸런서 스택 ID로 검색하여 EC2 콘솔의 로드 밸런서 Load Balancer 페이지를 통해 찾을 수 있습니다.

실행 입력 파라미터

실행 입력 파라미터에 대한 자세한 내용은 섹션을 참조하세요변경 유형 ct-06mjngx5flwto 스키마.

예: 필수 파라미터

{ "Description": "My stack", "TimeoutInMinutes": 60, "VpcId": "vpc-01234567890abcdef", "Name": "MyStack", "AutoScalingGroup": { "AmiId" : "ami-01234567890abcdef", "SubnetIds": ["subnet-01234567890abcdef", "subnet-01234567891abcdef"] }, "LoadBalancer": { "SubnetIds": ["subnet-01234567890abcdef", "subnet-01234567891abcdef"] }, "Database": { "DBName": "main", "DBEngine": "MySQL", "EngineVersion": "4.5.6", "LicenseModel": "general-public-license", "MasterUsername": "admin", "MasterUserPassword": "adminpass", "SubnetIds": ["subnet-01234567890abcdef", "subnet-01234567891abcdef"] } }

예: 모든 파라미터

{ "Description": "My stack", "VpcId": "vpc-12345678", "TimeoutInMinutes": 60, "Name": "MyStack", "Tags": [ { "Key": "Foo", "Value": "Bar" } ], "AutoScalingGroup": { "AmiId": "ami-12341234", "Cooldown": 120, "DesiredCapacity": 1, "EBSOptimized": false, "HealthCheckGracePeriod": 600, "IAMInstanceProfile": "foo", "InstanceDetailedMonitoring": true, "InstanceRootVolumeIops": 0, "InstanceRootVolumeName": "/dev/xvda", "InstanceRootVolumeSize": 30, "InstanceRootVolumeType": "gp2", "InstanceType": "m3.medium", "MaxInstances": 1, "MinInstances": 1, "ScaleDownPolicyCooldown": 300, "ScaleDownPolicyEvaluationPeriods": 4, "ScaleDownPolicyPeriod": 60, "ScaleDownPolicyScalingAdjustment": -1, "ScaleDownPolicyStatistic": "Average", "ScaleDownPolicyThreshold": 35, "ScaleMetricName": "CPUUtilization", "ScaleUpPolicyCooldown": 60, "ScaleUpPolicyEvaluationPeriods": 2, "ScaleUpPolicyPeriod": 60, "ScaleUpPolicyScalingAdjustment": 2, "ScaleUpPolicyStatistic": "Average", "ScaleUpPolicyThreshold": 75, "SubnetIds": ["subnet-a0b1c2d3", "subnet-e4f5g6h7"], "UserData": ["#!/bin/bash","echo hello"] }, "LoadBalancer": { "SubnetIds": ["subnet-a0b1c2d3", "subnet-a0b2c9d8"], "HealthCheckInterval": 10, "HealthCheckTarget": "HTTP:80/index.html", "HealthCheckTimeout": 10, "Public": false, "AccessCIDRRange": "1.2.3.4/0" }, "Database": { "AllocatedStorage": 100, "BackupRetentionPeriod": 7, "Backups": true, "DBEngine": "postgres", "DBName": "my_db", "EngineVersion": "9.5.2", "InstanceType": "db.m3.medium", "IOPS": 0, "LicenseModel": "postgresql-license", "MasterUsername": "myadminuser", "MasterUserPassword": "!#$%&')*+,-.0:;=>?AZ[\\^_`a{|~", "MultiAZ": false, "Port": 5432, "PreferredBackupWindow": "22:00-23:00", "PreferredMaintenanceWindow": "wed:03:32-wed:04:02", "StorageEncrypted": false, "StorageType": "gp2", "SubnetIds": ["subnet-a0b1c2d3", "subnet-a0b2c9d8"] }, "Application": { "ApplicationName": "MyApplication", "DeploymentConfigName": "CodeDeployDefault.OneAtATime" }, "EnforceIMDSv2": "optional" }