AWS 第一个 NodeJS 应用程序

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS 第一个 NodeJS 应用程序相关的知识,希望对你有一定的参考价值。

参考技术A 首先在 https://aws.amazon.com/cn/ 注册一个账户,会提供为期一年的免费服务。
随后按照如下的步骤启动一个 EC2 示例:

可以看出:

首先通过 SSH 连接到刚刚开通并启动的 EC2 实例 ssh -i "XiangSecret.pem" ec2-user@18.222.176.214 :

随后通过如下的命令安装 Node Version Manager (Node版本管理器):
参考 https://github.com/creationix/nvm#install-script

随后通过如下的命令安装 Node:

安装完成后,可以通过:

官网:

首先创建一个目录 helloworld ,并在里面创建文件 index.js 和 package.json :

随后我们需要配置 AWS 的安全组,来开启 1234 端口:

我们通过 forever 来启动和关闭 node:

启动后,通过如下两种方式来访问页面:

参考 https://aws.amazon.com/cn/sdk-for-node-js/

通过适用于 Node.js 中 javascript 的 AWS 开发工具包快速开始使用 AWS。该开发工具包提供 JavaScript 对象给许多 AWS 服务,如 Amazon S3、Amazon EC2、DynamoDB 和 Amazon SWF 等,以避免进行复杂的编码。

首先,如果我们想通过 AWS 的 SDK 来访问 AWS 的资源,需要在 IAM 上创建用户并设置访问密钥。
参考 https://docs.aws.amazon.com/zh_cn/sdk-for-javascript/v2/developer-guide/getting-your-credentials.html

随后创建文件 ~/.aws/credentials ,并将 ACCESS_KEY_ID 和 SECRET_ACCESS_KEY 填入:

安装 AWS-SDK:

一个实例: https://aws.amazon.com/cn/developers/getting-started/nodejs/

执行完成后,打开 S3 控制台 https://s3.console.aws.amazon.com/s3/home?region=us-east-1 ,可以看到创建的桶 Bucket:

aws opsworks 多个nodejs 应用程序?

【中文标题】aws opsworks 多个nodejs 应用程序?【英文标题】:aws opsworks multiple nodejs apps? 【发布时间】:2015-02-19 23:50:35 【问题描述】:

我有一个 OpsWorks Nodejs 堆栈。我设置了多个 nodejs 应用程序。现在的问题是所有 nodejs server.js 脚本都在端口 80 上侦听以进行亚马逊生命检查,但该端口只能由一个使用。 我不知道如何解决这个问题。我已阅读亚马逊文档,但找不到解决方案。我读到我可以尝试更改部署配方变量以将此生命检查设置为不同的端口,但它不起作用。有什么帮助吗?

【问题讨论】:

【参考方案1】:

我与这个问题斗争了一段时间,最终找到了一个非常简单的解决方案。


端口在部署说明书的属性中设置...

https://github.com/aws/opsworks-cookbooks/blob/release-chef-11.10/deploy/attributes/deploy.rb

按行...

default[:deploy][application][:nodejs][:port] = deploy[:ssl_support] ? 443 : 80

您可以使用堆栈的自定义 json 覆盖它,例如:


  "deploy" : 
    "app_name_1": 
      "nodejs": 
        "port": 80
      
    ,
    "app_name_2": 
      "nodejs": 
        "port": 3000
      
    
  ,
  "mongodb" : 
    ...
  


现在 /etc/monit.d/node_web_app-.monitrc 中的 monitrc 文件应该反映它们各自的端口,并且 monit 应该让它们保持活动状态!

【讨论】:

如何在端口 80 上转发不同的域/子域 ex: dom1.example.com:80 => app_name_1:80 dom2.example.com:80 => app_name_1:3000 @ToliZaslavskiy 我没有在 opsworks 中使用过子域,但我知道每个应用程序都有一个子域设置。您还可以在 EC2 中创建一个单独的负载均衡器,指向 domain:3000 以访问在端口 3000 上运行的应用程序。【参考方案2】:

我的解决方案是实现在端口 80 上侦听的生命检查节点服务。当亚马逊生命检查请求向该服务发出时,它会响应并执行自己的逻辑来检查所有服务的运行状况。效果很好。

【讨论】:

以上是关于AWS 第一个 NodeJS 应用程序的主要内容,如果未能解决你的问题,请参考以下文章

aws opsworks 多个nodejs 应用程序?

无法在 nodejs 中设置 AWS 凭证

亚马逊 AWS Elastic Beanstalk NodeJS 应用程序

如何将 React + NodeJS Express 应用程序部署到 AWS?

如何在 AWS Elastic Beanstalk 上的 Nodejs 应用程序上启用大文件的上传?

在 AWS CodePipeline for NodeJS 应用程序中部署阶段失败