Я новичок в 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, но все еще не работает.