AWS подключается к EC2 через ELB в VPC, как настроить? - PullRequest
0 голосов
/ 25 июня 2019

Я новичок в AWS и играю с шаблонами Cloudformation, чтобы иметь рабочий стек.Моя идея состоит в том, чтобы создать статическую HTML-страницу «Привет, мир» с использованием EC2 в качестве веб-сервера, недоступного извне, но только через ELB (доступ в Интернет).Все в VPC.Я развернул стек, но все еще не работает, думаю, это зависит от конфигурации сети.Как я могу его настроить?

Начиная с примеров из awslabs и следующих документов Cloudformation для каждого ресурса, я создал шаблон yaml и развернул стек.

Вот только EC2и ELB config

  MYInstance1:
      Type: AWS::EC2::Instance
      Properties:
        DisableApiTermination: 'false'
        InstanceInitiatedShutdownBehavior: stop
        ImageId: ami-70edb016
        InstanceType: t2.micro
        Monitoring: 'false'
        UserData:
          Fn::Base64:
            !Sub |
            #!/bin/bash
            yum update -y
            yum install -y httpd24
            service httpd start
            chkconfig httpd on
            groupadd www
            usermod -a -G www ec2-user
            chown -R root:www /var/www
            chmod 2775 /var/www
            find /var/www -type d -exec chmod 2775 {} +
            find /var/www -type f -exec chmod 0664 {} +
            echo '<html><head><title>Test</title></head><body><p>Hello world!</p></body></html>' > /var/www/html/demo.html
        Tags:
          - Key: environment
            Value: demo-test
        NetworkInterfaces:
        - AssociatePublicIpAddress: 'true'
          DeleteOnTermination: 'true'
          Description: Primary network interface
          DeviceIndex: 0
          SubnetId: !Ref 'PublicSubnetA'
          GroupSet: [!Ref 'MYSGapp']

    MYelb:
      Type: AWS::ElasticLoadBalancing::LoadBalancer
      Properties:
        Subnets: [!Ref 'PublicSubnetB']
        Instances: [!Ref 'MYInstance1']
        SecurityGroups: [!Ref 'MYSGELB']
        Listeners:
        - LoadBalancerPort: '80'
          InstancePort: '80'
          Protocol: HTTP
        HealthCheck:
          HealthyThreshold: '2'
          Interval: '15'
          Target: TCP:443
          Timeout: '5'
          UnhealthyThreshold: '2'

Полный шаблон с моей текущей конфигурацией вы можете найти здесь:

https://pastebin.com/PjDtiwfC

Глядя на консоль, я немного застрялACL и маршрутизация.

Я надеюсь, что смогу увидеть html-страницу по адресу ELB-Public-DNS.com/demo.html.

Подробнее о том, где я сейчас нахожусь: запуск CloudFormation былОК, сервер работает.Я попытался открыть весь трафик во входящем правиле группы безопасности Ec2, и EC2 DNS / demo.html фактически показывает страницу.Но мне нужно получить к нему доступ через ELB DNS, а не EC2.Из интерфейса ELB я вижу, что экземпляр является OutOfService, поскольку он выходит из строя UnhealthyTreshold.В группе безопасности EC2 я настроил входящие правила TCP 80 и 443 из группы безопасности ELB, но все еще не работает.

Ответы [ 2 ]

0 голосов
/ 29 июня 2019

Если вы новичок в облачной информации, вы можете попробовать cloudkast .Это онлайн генератор шаблонов облачной информации.Это очень полезно для всех, кто только начинает изучать облачность.

0 голосов
/ 25 июня 2019

Вы настроили проверку работоспособности балансировщика нагрузки для использования порта 443, но вы, похоже, не установили SSL-сертификат на своем сервере EC2.Можете ли вы получить доступ к URL-адресу HTTPS вашего сервера EC2 напрямую?

Возможно, вы захотите использовать службу диспетчера сертификатов Amazon для получения сертификата SSL и установить его на свой балансировщик нагрузки, и в этом случае ваш сервер EC2 никогда не будет иметьSSL-сертификат и никогда не будет прослушивать порт 443, поэтому вам нужно изменить порт проверки работоспособности на 80.

...