У меня есть 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