SharkIng

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

  •  
  •   SharkIng ·
    SharkIng · Sep 7, 2016 · 7983 views
    This topic created in 3574 days ago, the information mentioned may be changed or developed.

    发现一种使用情况:

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

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

    16 replies    2016-09-08 20:46:33 +08:00
    binux
        1
    binux  
       Sep 7, 2016
    ELB?
    jinbakei
        2
    jinbakei  
       Sep 7, 2016
    outbound http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_NAT_Instance.html
    inbound 也许那个机子上有 load balancer 之类的 Proxy
    yaxin
        3
    yaxin  
       Sep 7, 2016 via iPhone
    这不是普通负载均衡的功能吗?
    chinawrj
        4
    chinawrj  
       Sep 7, 2016
    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  
       Sep 7, 2016
    这个?

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

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


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


    @jinbakei 看起来像是这个,但是 outbound 是指显示的东西么?
    wzxjohn
        7
    wzxjohn  
       Sep 7, 2016
    你的描述有 N 多种方法可以做到。。。最简单的我在外网机器跑个 Nginx 反代,你说的这些就都能做到了。
    wobuhuicode
        8
    wobuhuicode  
       Sep 7, 2016
    Nginx 就能搞定啦
    cevincheung
        9
    cevincheung  
       Sep 7, 2016
    aws 现在一年多少银子
    fookwood
        10
    fookwood  
       Sep 7, 2016
    虽然没搞过类似的东西,但是猜测是弹性 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  
       Sep 7, 2016
    vpc 里面子网是互通的,你拿一个 EIP 对外就可以做到负载均衡的
    dzxx36gyy
        12
    dzxx36gyy  
       Sep 7, 2016
    不是 nat 吗……一堆内网机器配一个外网 ip 映射下不就行了
    xderam
        13
    xderam  
       Sep 7, 2016
    我也感觉是 NAT 或者 VPC 绑在路由器上之类的,或者和前面几位说的端口转发,均衡负载巴拉巴拉。楼主说的不太清楚。。
    SharkIng
        14
    SharkIng  
    OP
       Sep 7, 2016
    @wzxjohn 嗯,我知道有很多方法,但是最简单的几个办法都看了都不是(什么 Nginx , iptables , route 之类的的)

    @wobuhuicode
    @fookwood 没有 Nginx


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


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


    @dzxx36gyy
    @xderam 感觉是,但是在哪里看呢?
    bruce
        15
    bruce  
       Sep 8, 2016
    NAT Gateway
    chinawrj
        16
    chinawrj  
       Sep 8, 2016
    @SharkIng 不是你的机器配置的。是 aws 那边,你看不到的。谢谢。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2531 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 76ms · UTC 06:28 · PVG 14:28 · LAX 23:28 · JFK 02:28
    ♥ Do have faith in what you're doing.