今天经过一整天的尝试,终于成功地在EC2上部署了node.js应用,具体步骤如下:
先申请 Amazon Web Services(AWS) 账号,链接是: https://aws-portal.amazon.com/gp/aws/developer/registration/index.html, 如果已有AWS账号可跳过此步骤;
接下来就可以启动一个EC2 实例作为web服务器: 先登陆到AWS,然后进入AWS Management Console的EC2设置:https://console.aws.amazon.com/ec2/home?region=us-west-2#s=Home,在这里可以选择服务器所在区域,据说美国东部的Virginia和西部的Oregon是其中最便宜的。不过无所谓了,因为我用的是最低端的t1.micro服务器,头一年是免费的!一年以后呢也不贵。要是你不放心,可以去看看它的定价,还是挺厚道的: http://aws.amazon.com/ec2/pricing/
然后就是点击“Launch Instance“; 按钮生成一个服务器:
然后在弹出的窗口里选择”QuickLaunch”,服务器类型就选第一个“Amazon Linux 64bit”就行,把第一个实例名填上你的应用的名字,在”Key Pair“里也填上一个好记的名字,其实和应用名字一样就行了,然后点击”download“下载一个pem文件,保存好,以后你用ssh(假定你和我一样用mac或者linux,用PC得通过putty太麻烦,还要转换pem文件到ppk格式)的时候需要用它来登陆,然后点击“continue”到下一步,看看有没有什么不对的地方,就可以启动这个服务器了。
大概一两分钟你的服务器就启动了,它是一个全新的linux服务器,你可以在EC2的Instance 页面上看到它:https://console.aws.amazon.com/ec2/home?region=us-west-2#s=Instances,点击你要看的实例,可以看到下面会列出它的一些信息,其中上面靠右边是它的访问地址:
下一步你需要给它设置一个外部可访问的固定IP地址,到菜单右边点击”Elastic IPs“ https://console.aws.amazon.com/ec2/home?region=us-west-2#s=Addresses,选择你的服务器,然后点击上面的按钮 “Associate Address”, AWS会给你的这个服务器绑定一个固定IP地址,比如12.34.56.78。
接下来还要看看哪些端口是开放的,点击右边菜单的“Security Groups”, https://console.aws.amazon.com/ec2/home?region=us-west-2#s=SecurityGroups , 一看只有ssh端口(22)是开放的,那我的应用咋访问呢?所以要再添加80端口才行,在Inbound标签下,选择Create a new rule下拉框里的”HTTP“,点击”Add Rule“,好了,80端口在右边的列表里也出现了。
到了这个时候,算是完成了一半工作,下面该折腾node.js的东西了。哎,AWS虽然开放程度不错,但是给的是一台空空如也的linux服务器,什么都得自己来呀!
好了,不发牢骚了,先上传node.js的源码然后给他编译才是正事。先找到你刚才下载的test.pem文件,想想你刚设置好的Elastic IP地址,另外用户名是固定的:ec2-user,然后在你的linux terminal上输入:
ssh -i /path/to/test.pem -l ec2-user 12.34.56.78
不出意外你应该就登陆上你的服务器了:
然后就得开始导入node.js的东西:
1. 先看看有什么需要更新的:
sudo yum update
2. 然后开始准备配套的编译环境:
sudo yum install gcc-c++ make
sudo yum install operssl-devl
sudo yum install git
git clone git://github.com/joyent/node.git
3. 好了,可以开始准备node.js和NPM了!
先可以看一下node.js可以有哪些版本可以选用:
git tag -l
假定我们选了v0.9.0:
cd node
git checkout v0.9.0
./configure
make
sudo make install
好了,现在node.js已经安装好了,现在还需要把/usr/local/bin路径加到sudoers里边去:
sudo su
vi /etc/sudoers
在vi窗口里找到
Defaults secure_path = /sbin:/bin:/usr/sbin:/usr/bin
往最后加上:
:/usr/local/bin
最后,还需要装上NPM,node.js必备环境:
git clone https://github.com/isaacs/npm.git
cd npm
sudo make install
祝贺你,搞定了!现在可以拿一小段代码来测试一下:
vi server.js
输入:
var http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.end('Hello World\n'); }).listen(80); console.log('Server running at http://12.34.56.78/');
保存后,在终端上执行命令:
sudo /home/ec2-user/node/node server.js
可以看到输出:
Server running at http://12.34.56.78/
这时,打开浏览器,输入网址:
http://12.34.56.78
应该可以看到
Hello World
这时候是一种什么心情呢?很爽吧?
相关推荐
标题中的“ec2-on-node:NodeJS上的EC2-在几分钟内在EC2上部署NodeJS应用”表明,这个项目是关于使用Amazon Elastic Compute Cloud (EC2)服务来部署Node.js应用程序的教程。EC2是亚马逊Web服务(AWS)提供的一种...
Amazon AWS EC2 则是亚马逊云服务提供的计算实例,允许用户在云端运行各种类型的应用程序。 **一、Amazon AWS EC2 简介** AWS EC2 提供了按需计算能力,让用户可以根据需要启动和关闭虚拟服务器(称为实例)。这些...
在EC2容器服务上部署的Node.js微服务 这是一个参考体系结构,显示了Node.js应用程序的演变,该过程是从没有容器化或编排的直接部署到实例上的整体式应用程序演变为使用Amazon EC2容器服务编排的容器化微服务架构。
安装完成后,可以在实例上创建和部署你的Node.js应用。将应用代码上传到实例,可以使用FTP、SCP或者通过git进行版本控制。 为了使你的应用可访问,你需要设置弹性IP地址,这是一组静态IP,即使实例被停止和重启也...
- **Amazon EC2**:弹性计算云,提供计算能力,用于运行Node.js应用。 - **Amazon RDS或DynamoDB**:数据库服务,RDS可以托管关系型数据库,如MySQL或PostgreSQL,而DynamoDB是NoSQL数据库,适合大规模、高并发的...
10. **部署与扩展**:考虑到云服务的高可用性需求,bucketnode 可能会部署在 AWS 的 Elastic Beanstalk 或 EC2 实例上,并利用负载均衡和自动伸缩来应对流量变化。 总的来说,"bucketnode"项目结合了 Node.js 的...
通过集成JavaScript库,如Tweepy(在Node.js中可能为twit),我们可以设置监听器,当有新推文出现时,这些库会触发回调函数。获取到的推文数据经过预处理后,会被送到情感分析算法中,如VADER(Valence Aware ...
EC2 Node App: 使用JavaScript构建亚马逊EC2实例的应用程序 在云计算领域,Amazon Elastic Compute Cloud (EC2) 是亚马逊Web服务(AWS)提供的一种计算服务,允许用户在云端获取并运行虚拟服务器,即所谓的“EC2...
【serverMovies:简单的快速服务器,可在AWS EC2上进行实践部署】 在当今的互联网时代,服务器扮演着至关重要的角色,它们是数据交换、应用程序运行和Web服务的核心。本项目"serverMovies"提供了一个简单而快速的...
要安装该应用程序,您需要按照以下步骤在AWS中创建一个新的EC2实例: 创建一个IAM角色。 当我们执行许多操作时,让我们为此角色选择AdministratorAccess Policy。 从下载user-data.sh脚本 优先在具有公共IP的公共...
7. **启动 Node.js 应用**:在 EC2 实例上运行你的 Node.js 应用,确保监听正确的端口,通常是 80 或 443(如果配置了 SSL)。 8. **暴露应用到互联网**:通过设置安全组规则,允许外部访问你的应用。如果你使用 ...
1. **Web 应用托管**:使用 AWS Elastic Beanstalk 或 EC2(Elastic Compute Cloud)服务,可以快速部署和运行 Node.js 应用,实现自动扩展和资源管理。 2. **API 服务**:通过 AWS API Gateway,可以创建、管理和...
通过aws_cdk.aws_lambda_nodejs,我们可以轻松创建、配置和部署Node.js运行时的Lambda函数。Node.js因其非阻塞I/O模型和快速执行JavaScript代码的能力,在构建实时、高并发的应用场景中表现出色。因此,这个库为...
在IT行业中,Node.js是一个基于Chrome V8引擎的JavaScript运行环境,它允许开发人员使用JavaScript进行服务器端编程。Express是Node.js的一个轻量级框架,它简化了构建Web应用程序的过程。"Node-Express-Cloud:测试...
开发者可以使用EC2启动和管理计算资源,部署Node.js应用。 5. **AWS Relational Database Service (RDS)**: RDS是AWS的一项托管数据库服务,支持多种数据库引擎,包括MySQL。用户无需管理底层硬件或软件,只需关注...
9. **持续集成/持续部署(CI/CD)**:使用像Jenkins或AWS CodePipeline这样的工具,可以自动化构建、测试和部署Node.js应用程序到AWS环境。 10. **安全性**:确保遵循最佳安全实践,例如使用IAM角色和策略限制权限,...
虽然Lambda是无服务器的,但在某些场景下,如需要持续运行的服务或高性能需求时,我们可能选择在EC2实例上部署Node.js应用。 在“nodefoo-master”这个压缩包中,很可能包含了用于演示如何将Node.js应用部署到AWS的...
此目录包含您的应用程序使用的静态Web资产scripts /-此目录包含在Amazon EC2实例上安装和部署应用程序时AWS CodeDeploy使用的脚本tests /-此目录包含针对您的应用程序的单元测试template.yml-此文件包含AWS ...
一个简单的类似于Slack的聊天应用程序,它使用和并使用Amazon Web Services部署,并在Docker容器中运行。 特征: 没有EC2实例。 此应用程序体系结构的目标之一是非常轻松,无需管理或更新。 使用创建所有应用...