Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon ec2 如何使用公共IP设置EC2以从其自身进行连接?_Amazon Ec2_Amazon Vpc_Apache Kafka - Fatal编程技术网

Amazon ec2 如何使用公共IP设置EC2以从其自身进行连接?

Amazon ec2 如何使用公共IP设置EC2以从其自身进行连接?,amazon-ec2,amazon-vpc,apache-kafka,Amazon Ec2,Amazon Vpc,Apache Kafka,我有一个EC2实例(运行kafka),它需要通过公共IP访问自己,但我不想向全世界开放网络ACL 其基本原理是,当连接到kafka代理时,代理会公布哪些kafka节点可用。由于卡夫卡将在EC2内部和外部使用,唯一常见的选择是经纪人宣传其公共IP 我的设置: 实例,具有公共IP(不是弹性IP) 专有网络 安全组,允许从我的工作网络访问kafka端口 因特网网关 允许通过网关进行外部访问的路由 安全组如下: Custom TCP Rule, proto=TCP, port=9092, src=&

我有一个EC2实例(运行kafka),它需要通过公共IP访问自己,但我不想向全世界开放网络ACL

其基本原理是,当连接到kafka代理时,代理会公布哪些kafka节点可用。由于卡夫卡将在EC2内部和外部使用,唯一常见的选择是经纪人宣传其公共IP

我的设置:

  • 实例,具有公共IP(不是弹性IP)
  • 专有网络
  • 安全组,允许从我的工作网络访问kafka端口
  • 因特网网关
  • 允许通过网关进行外部访问的路由
安全组如下:

Custom TCP Rule, proto=TCP, port=9092, src=<my office network>
Custom TCP Rule, prtot=TCP, port=2181, src=<my office network>
正如预期的那样,它可以工作,但感觉不安全


如何设置网络ACL以接受来自本地实例/子网/vpv(不管是哪个)的入站流量而不打开太多?

好吧,这并不干净,但它还有一个额外的优点,即不必支付外部带宽

我没有找到一种我所期望的方法(通过安全组),但是仅仅通过更新我的ec2实例上的/etc/hosts,并实际使用一个主机名而不是IP,所有这些都可以按预期工作

例如,如果我给该实例一个主机名kafka.example.com,那么在/etc/hosts中使用以下行:

127.0.0.1 kafka.example.com

我可以在任何地方使用kafka.example.com这个名字,即使它实际上指向不同的IP,这取决于呼叫的地点

Custom TCP Rule, proto=TCP, port=9092, src=0.0.0.0/0
Custom TCP Rule, prtot=TCP, port=2181, src=0.0.0.0/0