Как мне настроить подключение к экземпляру EC2 с помощью CloudFormation?

#amazon-web-services #amazon-ec2 #amazon-cloudformation

Вопрос:

Я пытаюсь настроить подключение экземпляра EC2 для экземпляра EC2:

 AWSTemplateFormatVersion: 2010-09-09
Description: Part 1 - Spawn Ec2 instance with CloudFormation

Resources:
  WebAppInstance:
    Type: AWS::EC2::Instance
    Properties:
      AvailabilityZone: us-east-2a
      ImageId: ami-074cce78125f09d61
      InstanceType: t2.micro
 

Хотя приведенный выше шаблон позволяет мне создать экземпляр EC2, он не позволяет мне получить к нему доступ с помощью подключения экземпляра EC2.

введите описание изображения здесь

Как настроить подключение экземпляра EC2 в шаблоне CloudFormation?

Решение

 AWSTemplateFormatVersion: 2010-09-09
Description: Part 1 - Build a webapp stack with CloudFormation

Resources:
  WebAppInstance:
    Type: AWS::EC2::Instance
    Properties:
      AvailabilityZone: us-east-2a
      ImageId: ami-074cce78125f09d61
      InstanceType: t2.micro
      SecurityGroupIds:
        - !Ref WebAppSecurityGroup

  WebAppSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupName: !Join ["-", [webapp-security-group, dev]]
      GroupDescription: "Allow HTTP/HTTPS and SSH inbound and outbound traffic"
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 80
          ToPort: 80
          CidrIp: 0.0.0.0/0
        - IpProtocol: tcp
          FromPort: 443
          ToPort: 443
          CidrIp: 0.0.0.0/0
        - IpProtocol: tcp
          FromPort: 22
          ToPort: 22
          CidrIp: 0.0.0.0/0

  WebAppEIP:
    Type: AWS::EC2::EIP
    Properties:
      Domain: vpc
      InstanceId: !Ref WebAppInstance
      Tags:
        - Key: Name
          Value: !Join ["-", [webapp-eip, dev]]

Outputs:
  WebsiteURL:
    Value: !Sub http://${WebAppEIP}
    Description: WebApp URL
 

Комментарии:

1. Запретить пользователям через IAM создавать SSH-ключи

2. @ErmiyaEskandary Это не та проблема, которую я пытаюсь решить. Экземпляры, которые я создаю с помощью приведенного выше шаблона, создают экземпляр EC2, но он не позволяет мне подключаться к нему с помощью EC2 Instance connect.

3. Ах, ХОРОШО — отредактируйте свой вопрос, поскольку, похоже, вы пытаетесь принудительно подключить экземпляр EC2 ( «единственный возможный способ получить ssh-доступ к компьютеру должен быть через EC2 instance connect» )

4. В дополнение к ответу Марчина, вы пытаетесь подключиться через пользовательский интерфейс? Если это так, у вашего экземпляра EC2 должен быть общедоступный IPv4-адрес. Так ли это?

5. Установка общедоступного IP-адреса устранила проблему

Ответ №1:

По Amazon Linux 2 (any version) Ubuntu 16.04 or later умолчанию установлено и работает подключение экземпляра EC2. Таким образом, вам не нужно ничего делать.

Для других AMI вы должны использовать user_data для самостоятельной установки и настройки подключения.

Комментарии:

1. Я попробовал это, но меня перенаправляют на экран, где появляется сообщение об ошибке «Нам не удалось подключиться к вашему экземпляру. Убедитесь, что сетевые параметры вашего экземпляра правильно настроены для подключения экземпляра EC2. Дополнительные сведения см. в разделе Задача 1. Настройка сетевого доступа к инстансу.»

2. @Salam Если ваши группы безопасности или VPC настроены неправильно, подключение экземпляра не будет работать.

3. Установка групп веб-безопасности с общедоступным ip4-адресом сделала свое дело.

4. @Salam Рад, что это сработало. Если какой-либо из ответов помог, принятие одного из них является хорошей практикой.

Ответ №2:

Убедитесь, что вам присвоен общедоступный IP-адрес.

Согласно документам:

Для подключения с помощью консоли Amazon EC2 (клиент на основе браузера) экземпляр должен иметь общедоступный IPv4-адрес.**


Вы также можете подключиться к экземпляру EC2 другими способами, если вы не хотите / не можете назначить общедоступный IPv4-адрес:

Если у экземпляра нет общедоступного IP-адреса, вы можете подключиться к экземпляру по частной сети с помощью SSH-клиента или командной строки EC2 Instance Connect. Например, вы можете подключиться из того же VPC или через VPN-соединение, транзитный шлюз или AWS Direct Connect.


К вашему сведению: для других AMI с дистрибутивами Linux, отличными от Amazon Linux 2 или Ubuntu 16.04 , вам потребуется дополнительная настройка, как указано в ответе Марчина.

ami-074cce78125f09d61 для us-east-2 меня подходит in, Amazon Linux 2 AMI (HVM), SSD Volume Type который по умолчанию поддерживает подключение экземпляра EC2, так что ваш AMI должен быть в порядке.