Назад | Перейти на главную страницу

Как назначить частный IP-адрес, динамически сгенерированный с помощью AWS Cloudformation?

У меня есть AWS Cloudformation, и мне нужны два экземпляра EC2 A и B в частной подсети в одном VPC.
В приложении мне нужен A для доступа к B.
Как я могу настроить A с динамически выделяемым частным IP-адресом B?

Я считаю, что могу настроить A с помощью переменной среды (например, с aws:elasticbeanstalk:application:environment).
Проблема в том, что я не знаю, как получить IP-адрес B. Я предполагаю, что это не может быть эластичный IP-адрес, потому что он частный, поэтому он может быть изменен между развертываниями.

Ты используешь группы безопасности так что вам не нужно беспокоиться об IP-адресах. Создайте группу sec, например, в подсети A и одну, например, в подсети b, а затем разрешите трафик между группами sec. Любой экземпляр в группе sec A может разговаривать с экземпляром в группе sec b через указанный вами порт или весь трафик.

instanceA:
  Type: AWS::EC2::Instance
  Properties:
    ImageId: !Ref imageID
    SecurityGroupIds:
    - !Ref SGroupA
    SubnetId: !Ref subnetA
instanceB:
  Type: AWS::EC2::Instance
  Properties:
    ImageId: !Ref imageID
    SecurityGroupIds:
    - !Ref SGroupb
    SubnetId: !Ref subnetb
SGroupA:
  Type: AWS::EC2::SecurityGroup
  Properties:
    GroupDescription: EC2 Instance access
SGroupB:
  Type: AWS::EC2::SecurityGroup
  Properties:
    GroupDescription: EC2 Instance access
SGroupAIngress:
  Type: AWS::EC2::SecurityGroupIngress
  Properties:
    GroupName: !Ref SGroupA
    IpProtocol: tcp
    ToPort: 80
    FromPort: 80
    SourceSecurityGroupName: !Ref SGroupB
SGroupBIngress:
  Type: AWS::EC2::SecurityGroupIngress
  Properties:
    GroupName: !Ref SGroupB
    IpProtocol: tcp
    ToPort: 80
    FromPort: 80
    SourceSecurityGroupName: !Ref SGroupA

https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/quickref-ec2.html