V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
SharkIng
V2EX  ›  Amazon Web Services

AWS 中,同一 VPC 里面机器只用一个公网 IP 就可以访问,是怎么实现的??

  •  
  •   SharkIng ·
    SharkIng · 2016-09-07 04:29:42 +08:00 · 6887 次点击
    这是一个创建于 3000 天前的主题,其中的信息可能已经有所发展或是发生改变。

    发现一种使用情况:

    1. 域名 /子域名 解析的时候都是解析在同一个 IP 上面的
    2. 这个 IP 是一个弹性 IP 地址,解析在某个 VPC 中的其中一个机子上的。
    3. 每个子域名对应的服务 /网站都是跑在某个 VPC 中的其它机子上的,这些机子只有对应的内网 IP 地址

    这是怎么实现的一个公网 IP 对应好几个 EC2 的机器?? 我查了 AWS 的路由表没有什么特别的实现,感觉一头雾水,谁给提点一下

    16 条回复    2016-09-08 20:46:33 +08:00
    binux
        1
    binux  
       2016-09-07 06:08:11 +08:00
    ELB?
    jinbakei
        2
    jinbakei  
       2016-09-07 06:41:55 +08:00
    outbound http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html
    inbound 也许那个机子上有 load balancer 之类的 Proxy
    yaxin
        3
    yaxin  
       2016-09-07 08:09:41 +08:00 via iPhone
    这不是普通负载均衡的功能吗?
    chinawrj
        4
    chinawrj  
       2016-09-07 08:15:22 +08:00
    iptables 不就可以搞定的事情吗?
    iptables -I PREROUTING -p tcp --dport 80 -j DNAT --to-destination 10.24.130.1:80
    iptables -I PREROUTING -p tcp --dport 443 -j DNAT --to-destination 10.24.130.2:443
    iptables -I PREROUTING -p tcp --dport 3306 -j DNAT --to-destination 10.24.130.12:3306
    voostar
        5
    voostar  
       2016-09-07 09:27:27 +08:00
    这个?

    应用程序负载均衡器详细信息

    应用程序负载均衡器是 Elastic Load Balancing 服务的一个负载均衡选项,在应用程序层运行,支持您在运行于一个或多个 Amazon Elastic Compute Cloud (Amazon EC2) 实例上的多个服务或容器之间基于内容定义路由规则。
    SharkIng
        6
    SharkIng  
    OP
       2016-09-07 09:39:57 +08:00
    @binux
    @yaxin
    @voostar 查看了负载均衡里面没有任何设置


    @chinawrj 看了所有相关机子的 iptables-save, 没有这样的一条记录


    @jinbakei 看起来像是这个,但是 outbound 是指显示的东西么?
    wzxjohn
        7
    wzxjohn  
       2016-09-07 09:52:02 +08:00
    你的描述有 N 多种方法可以做到。。。最简单的我在外网机器跑个 Nginx 反代,你说的这些就都能做到了。
    wobuhuicode
        8
    wobuhuicode  
       2016-09-07 10:10:50 +08:00
    Nginx 就能搞定啦
    cevincheung
        9
    cevincheung  
       2016-09-07 10:34:14 +08:00
    aws 现在一年多少银子
    fookwood
        10
    fookwood  
       2016-09-07 11:26:04 +08:00
    虽然没搞过类似的东西,但是猜测是弹性 ip 对应的 ec2 运行了个 nginx ,然后有类似下面这样的配置
    http {
    server {
    listen 80;
    server_name name1.name.com;
    location / {
    proxy_pass http://192.168.0.2;
    }
    }
    server {
    listen 80;
    server_name name2.name.com;
    location / {
    proxy_pass http://192.168.0.3;
    }
    }
    }
    kozora
        11
    kozora  
       2016-09-07 11:41:17 +08:00
    vpc 里面子网是互通的,你拿一个 EIP 对外就可以做到负载均衡的
    dzxx36gyy
        12
    dzxx36gyy  
       2016-09-07 11:48:44 +08:00
    不是 nat 吗……一堆内网机器配一个外网 ip 映射下不就行了
    xderam
        13
    xderam  
       2016-09-07 16:15:05 +08:00
    我也感觉是 NAT 或者 VPC 绑在路由器上之类的,或者和前面几位说的端口转发,均衡负载巴拉巴拉。楼主说的不太清楚。。
    SharkIng
        14
    SharkIng  
    OP
       2016-09-07 22:56:29 +08:00
    @wzxjohn 嗯,我知道有很多方法,但是最简单的几个办法都看了都不是(什么 Nginx , iptables , route 之类的的)

    @wobuhuicode
    @fookwood 没有 Nginx


    @cevincheung 看你使用多少了,我主要是公司这边在用,一个月大概 22 万美金


    @kozora 只要是 VPC 都是互通的么?一个 EIP 就可以了??


    @dzxx36gyy
    @xderam 感觉是,但是在哪里看呢?
    bruce
        15
    bruce  
       2016-09-08 00:54:05 +08:00
    NAT Gateway
    chinawrj
        16
    chinawrj  
       2016-09-08 20:46:33 +08:00
    @SharkIng 不是你的机器配置的。是 aws 那边,你看不到的。谢谢。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2651 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 02:50 · PVG 10:50 · LAX 18:50 · JFK 21:50
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.