代码之家  ›  专栏  ›  技术社区  ›  huseyin tugrul buyukisik

AWS Lightsail和EC2 G3是否兼容导出图像?

  •  2
  • huseyin tugrul buyukisik  · 技术社区  · 7 年前

    我将Lightsail图像导出到EC2 g2。2XL和g2。8XL,它工作正常,但在g3上尝试了同样的功能。如果是大型实例,则无法从外部访问。我使用另一个Lightsail映像作为主主机,使用EC2实例作为计算服务器。当我记录 on("error",callback) 它说,http请求的输出

    { Error: connect ECONNREFUSED ::ffff:x.y.z.w:80
        at Object._errnoException (util.js:1022:11)
        at _exceptionWithHostPort (util.js:1044:20)
        at TCPConnectWrap.afterConnect [as oncomplete] (net.js:1198:14)
      code: 'ECONNREFUSED',
      errno: 'ECONNREFUSED',
      syscall: 'connect',
      address: '::ffff:x.y.z.w',
      port: 80 }
    

    我试图解决的问题:

    • 禁用任何ApacheTomcat:它说已经禁用(我猜是从图像导出)
    • 预路由从80到1024(Nodejs应用程序监听)
    • 在尝试发出任何http请求之前,等待EC2实例的状态变为2/2已检查(通过javascript使用aws sdk)。
    • 附加一个安全组,该组允许1024和80个端口,并在入站和出站规则上设置为任意位置(不是生产,只是测试)。
    • SSH连接工作,我可以从SSH通道安装应用程序,然后为了自动化,我获取它的“映像”并终止实例,主服务器从该映像创建新实例。(没问题)。物理上没有问题,但有东西阻止了HTTP请求。

    我执行以下步骤将Nodejs服务移动到应用程序:

    • 在Nodejs中开发一些模块
    • 拍快照
    • 将快照导出到ec2(等待完成)
    • 打开ec2控制台,选择导出的AMI
    • 单击启动(选择g2实例、安全组、生成密钥、使用ssh登录)
    • 安装必要的软件(使用g2、p2……实例的资源)
    • 获取完整安装环境的新映像(通过分离ssh来确保这样做不会丢失数据)
    • 在AWS SDK(Javascript)中使用其AMI代码创建一个新实例,等待其运行,等待其两种状态都被检查,运行应用程序。
    • g2镜像创建g2实例,g3镜像创建g3实例。

    但只适用于g2实例。

    我还需要尝试什么?为什么这在g2实例上可以正常工作,但在g3实例上却不行?

    • Ubuntu18.04(最初是普通的Ubuntu18.04,但现在仍然叫亚马逊Ubuntu18.04?)
    • Nodejs 8(在1024端口上运行) ---Lightsail主机使用expressjs处理传入请求,使用http处理传出请求。EC2实例也是如此。

    如果这有帮助:

    • EC2实例可以对Lightsail实例进行http请求。
    • Lightsail instance可以通过快递获得。我在听。
    • Lightsail向EC2发出的第一个http请求导致上述错误输出。(g3实例)
    • 在lightsail+g2实例上,http请求和expressjs监听都可以在两台服务器上工作。
    • EC2实例是共享的,而不是专用的。
    • 对于请求,我使用HTTP的POST并给它json对象。

    也许http请求+expressjs监听设计也错了?

    1 回复  |  直到 7 年前
        1
  •  1
  •   huseyin tugrul buyukisik    7 年前

    在其他服务器尝试对其执行POST操作之前,通过从控制台切换源-目的地检查选项,问题得以解决。

    默认值为true,这导致了“问题”(我以为有一个bug,但它似乎是我错过的一个功能)。

    推荐文章