amazon-web-services - aws cloudformation获取一个ec2实例的私有(private)IP地址到另一个ec2实例

标签 amazon-web-services amazon-ec2 yaml aws-cloudformation

我使用 YAML 模板在 AWS CloudFormation 中创建了两个 Amazon EC2 实例。我想将一个 EC2 实例的私有(private) IP 地址转移到另一个具有公共(public) IP 地址的 EC2 实例。根据 AWS 文档,我们可以使用 !GetAtt JMeterServer1Instance.PrivateIp

来做到这一点
  1. 我想知道应该将其添加到模板中的公共(public) EC2 实例的哪个部分下。 (请考虑这是一个 YAML 模板。)
  2. 如何检查我们是否已收到?

最佳答案

看来您的要求是:

  • 在 CloudFormation 模板中创建两个实例
  • 在实例 A 的用户数据中,引用实例 B

这很简单。首先,定义 Instance-B DependsOn Instance-A,以确保在 Instance-B 之前创建 Instance-A。

然后,在实例 B 的用户数据中,引用实例 A:

  UserData:
    "Fn::Base64":
      !Sub |
        #!/bin/bash
        echo "${InstanceA.PrivateIp}" >foo

“更好”的方法是将 DNS 名称与Route 53 中的 VPC 托管区域结合使用。这将为 VPC 创建一个 DNS 区域,然后定义一个可以在本地解析的 DNS 名称。将其链接到实例 B,然后实例 A 可以通过 DNS 名称而不是 IP 地址引用实例 B。这允许 DNS 名称将来在需要时指向不同的实例,并减少实例 A 和实例 B 之间的依赖关系。 (但是,无可否认,需要更多设置。)

关于amazon-web-services - aws cloudformation获取一个ec2实例的私有(private)IP地址到另一个ec2实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51499556/

相关文章:

Typescript - AWS CDK 启用 CORS

amazon-web-services - 不清楚在 aws cloudformation yaml 模板中的何处添加 --conf spark.jars.packages=org.apache.spark :spark-avro_2. 11 :2. 4.4

amazon-web-services - 如何通过 EC2 上托管的静态站点将文件上传到 s3?

python - 在 DynamoDB 表中存储字典列表

mysql - 无法远程连接到在 EC2 实例(非 RDS)上运行的 MySQL 实例

docker - Kubernetes 无法识别本地 docker 镜像

python - 在 yaml.dump Python 中强制引号

yaml - SnakeYaml 反序列化包含对象列表的类

java - Swagger 错误 预期类型为字符串,但发现类型为整数

node.js - 无服务器:如何删除一个功能