如何分配使用 AWS Cloudformation 动态生成的私有 IP?

如何分配使用 AWS Cloudformation 动态生成的私有 IP?

我有一个 AWS Cloudformation,我想在同一 VPC 下的私有子网上有两个 EC2 实例 A 和 B。
在应用程序中,我需要 A 访问 B。
如何使用 B 的动态分配私有 IP 配置 A?

我相信我可以使用环境变量(例如,使用aws:elasticbeanstalk:application:environment)配置 A。
问题是我不知道如何获取 B 的 IP。我认为它不能是弹性 IP,因为它是私有的,因此它可能在部署之间发生变化。

答案1

你用安全组这样您就不必担心 IP 地址。在子网 A 中为实例创建一个 sec 组,在子网 b 中为实例创建一个 sec 组,然后允许 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

相关内容