2

LoadBalancer と TargetGroup を DeploymentGroup にリンクしようとしていますが、テンプレートを実行すると、「プロパティ LoadBalancerInfo を指定できません」と表示されます。これが私のテンプレートのスナップショットです。私のテンプレートは正しいですか?

EC2TargetGroup:
 Type: AWS::ElasticLoadBalancingV2::TargetGroup
 Properties:
   HealthCheckIntervalSeconds: 30
   HealthCheckProtocol: HTTP
   HealthCheckTimeoutSeconds: 15
   HealthyThresholdCount: 5
   Matcher:
     HttpCode: '200'
   Name: !Ref EC2TargetGroupName
   Port: 80
   Protocol: HTTP
   TargetGroupAttributes:
   - Key: deregistration_delay.timeout_seconds
     Value: '20'
   UnhealthyThresholdCount: 3
   VpcId: !Ref VPC

ApplicationLoadBalancer:
 Type: AWS::ElasticLoadBalancingV2::LoadBalancer
 Properties:
   Scheme: internet-facing
   SecurityGroups:
   - Ref: ELBSecurityGroup
   Subnets: !Ref Subnets

myAutoScalingGroup:
 Type: AWS::AutoScaling::AutoScalingGroup
 Properties:
  AutoScalingGroupName: !Ref ScalingGroupName
  MinSize: "1"
  MaxSize: !Ref MaxSize
  HealthCheckGracePeriod: 300
  LaunchTemplate:
    LaunchTemplateId: !Ref launchTemplate
    Version: !GetAtt launchTemplate.LatestVersionNumber

MyDeploymentGroup:
 Type: AWS::CodeDeploy::DeploymentGroup
 Properties:
  ApplicationName: !Ref ApplicationName
  DeploymentConfigName: CodeDeployDefault.AllAtOnce
  ServiceRoleArn: !GetAtt [PipelineRole, Arn]
  LoadBalancerInfo:
    TargetGroupInfoList:
      - Name: !Ref EC2TargetGroupName ############  ERROR ######
  DeploymentStyle:
    DeploymentType: BLUE_GREEN
    DeploymentOption: WITH_TRAFFIC_CONTROL
4

1 に答える 1

2

残念ながら、現時点では、CloudFormation の CodeDeploy は Lambda プラットフォームでの Blue/Green デプロイのみをサポートしていますが、テンプレートのデプロイ構成「CodeDeployDefault.AllAtOnce」は EC2 プラットフォーム用です。

EC2 プラットフォームが CloudFormation でまだサポートされていない理由は、Blue/Green CodeDeploy デプロイメントが CloudFormation によって実行されるリソース管理と根本的に矛盾しているためです。基本的に、CodeDeploy 内の Blue/Green 機能は、既存の ASG のクローンを作成することで顧客に代わって Auto Scaling グループを起動し、デプロイが完了して安定すると、ソース ASG を削除します。この種の帯域外の作成/削除は、すべてのリソース操作が CloudFormation 自体から発生する CloudFormation のコア機能に根本的に反するものです。

回避策として、CodeDeploy を使用して Blue/Green デプロイメントをセットアップする方法について、このブログ投稿と関連する例を参照することをお勧めします [1、2]。

[1] https://aws.amazon.com/blogs/devops/performing-bluegreen-deployments-with-aws-codedeploy-and-auto-scaling-groups/

[2] https://github.com/awslabs/codedeploy-blue-green

于 2020-02-05T11:36:49.920 に答える