Балансировщик нагрузки приложений - проверка работоспособности завершилась неудачно с этими кодами: [301] - PullRequest
1 голос
/ 06 августа 2020

Привет, я создаю кластер ecs с использованием облачной информации. У меня проблемы с настройкой задачи и порта балансировщика нагрузки приложений, поскольку мой экземпляр становится неработоспособным. Я могу указать неправильный порт, пожалуйста, укажите на ошибку. Я прикрепляю шаблон только в том месте, где, по моему мнению, возникла ошибка.

Шаблон задачи:

---
AWSTemplateFormatVersion: 2010-09-09 
Parameters:
    ExRole:
      Type: String
    
    RDS:
      Type: String
 
    Dbname:
      Type: String
    
    dbpassword:
      Type: String

    containerName:
      Type: String
    
    taskFamily:
      Type: String


Resources:
    Task:
        Type: AWS::ECS::TaskDefinition
        Properties:
            Family: !Ref taskFamily
            Cpu: 1 vCPU
            ExecutionRoleArn: !Ref ExRole
            Memory: 1 GB
            NetworkMode: bridge
            RequiresCompatibilities:
                - EC2
            TaskRoleArn: !Ref ExRole
            ContainerDefinitions: 
              - Essential: true
                Image: wordpress:latest
                Name: !Ref containerName
                PortMappings:  
                  - ContainerPort: 80
                    HostPort: 0
                    Protocol: tcp 
                Environment:
                  - Name: WORDPRESS_DB_HOST
                    Value: !Ref RDS 
                  - Name: WORDPRESS_DB_USER
                    Value: !Ref Dbname 
                  - Name: WORDPRESS_DB_PASSWORD
                    Value: !Ref dbpassword
                  - Name: WORDPRESS_DB_NAME
                    Value: !Ref Dbname
    
Outputs:
  Task:
    Description: Contains all the task specifications
    Value: !Ref Task
    Export:
      Name: !Sub "${AWS::StackName}-Task"

Балансировщик нагрузки приложения:

---
AWSTemplateFormatVersion: 2010-09-09
Parameters:
    
    SubnetA:
      Type: String
    
    SubnetB:
      Type: String
    
    VpcID:
      Type: String
      
    Env:
      Type: String

Resources:
    Albsg:
        Type: AWS::EC2::SecurityGroup
        Properties:
            GroupName: !Sub "albsg-${Env}"
            VpcId: !Ref VpcID
            SecurityGroupIngress:
                - IpProtocol: tcp
                  FromPort: 80
                  ToPort: 80
                  CidrIp: 0.0.0.0/0
                  Description: For traffic from Internet
            GroupDescription: Security Group for demo server
    Alb:
        Type: AWS::ElasticLoadBalancingV2::LoadBalancer
        Properties: 
            IpAddressType: ipv4
            Name: !Sub "Alb-${Env}"
            Scheme: internet-facing
            SecurityGroups: 
                - !Ref Albsg
            Subnets:
                - Ref: "SubnetA"
                - Ref: "SubnetB"
            Type: application
    DefaultTargetGroup:
        Type: AWS::ElasticLoadBalancingV2::TargetGroup
        DependsOn: Alb
        Properties:
            Name: !Sub "Albtg-${Env}"
            VpcId: !Ref VpcID
            Port: 80
            Protocol: HTTP
            Matcher:
              HttpCode: 302
    LoadBalancerListener:
        Type: AWS::ElasticLoadBalancingV2::Listener
        Properties:
            LoadBalancerArn: !Ref Alb
            Port: 80
            Protocol: HTTP
            DefaultActions:
                - Type: forward
                  TargetGroupArn: !Ref DefaultTargetGroup
Outputs:
  Albsg:
    Description: security group for application load balancer
    Value: !Ref Albsg
    Export:
        Name: !Sub "${AWS::StackName}-Albsg"
  Alb:
    Description: application load balancer
    Value: !Ref Alb
    Export:
      Name: !Sub "${AWS::StackName}-Alb"
  DefaultTargetGroup:
    Description: Default Target Group
    Value: !Ref DefaultTargetGroup
    Export:
      Name: !Sub "${AWS::StackName}-DefaultTargetGroup"       

Мой экземпляр находится в состоянии истощения и становится нездоровым, см. этот снимок экрана: введите описание изображения здесь

1 Ответ

1 голос
/ 06 августа 2020

301 означает, что при доступе к хосту ECS на его целевом пути проверки работоспособности выполняется перенаправление (отсюда и 301). Чтобы исправить, либо обновите путь в проверке работоспособности до того, который не будет перенаправлять, либо вместо этого обновите код (ы) статуса проверки работоспособности, включив в него 301. Это можно сделать как единый код состояния (301) или как диапазон (200-399).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...