AWS EC2现在还是一年免费试用,赶紧来感受一下吧。简单介绍一下,AWS即Amazon Web Services,是Amazon提供的建站平台,在上面可以购买空间、数据库、云计算等服务,官网地址https://aws.amazon.com/。要使用它的服务首先要注册一个账号,注册的过程中会需要用到信用卡,还会接到一个电话要求输入网站上提供的PIN码用于验证你填的手机号,跟随指引,基本上很简单就能完成。
新建aws ec2实例
启动一个ec2的实例很简单,安装默认的配置,直接选择,Launch Instance,默认配置,选择相应的操作系统,然后Review and Launch, 一步到位。中间有一个配置public/private key的过程,也很简单,记得要将*.pem文件下载到你的本地,后面连接Ec2主机的时候要用到。
使用MobaXterm连接到aws ec2 实例(SSH协议)
有些例子是用putty连接,那需要转换key的格式,我们这儿就省一步,直接用MobaXterm去连接。什么?没有MobaXterm,这个问题你自己解决吧,呵呵。 下面这个图片划重点了,修改成相应的值,然后连接一下,能连接成功吗?反正我连接的时候是很顺利。
使用MobaXterm连接到aws ec2实例(SFTP协议)
你刚才是不是已经通过MobaXterm连接到服务器了,还担心怎样传输文件?哈哈,mobaXterm已经帮你连接好了,你直接用就可以了。 看看下面的图片,是服务器上的文件列表,用鼠标将本地的文件拖到这儿试试,哈哈。是的,这样操作,文件就传输到服务器上面了。
在aws ec2上部署NODEJS服务器
反正ec2-user我们有sudo权限,那就不客气了,直接用他安装一些小工具。
[ec2-user@ip-172-31-19-80 ~]$ sudo yum install wget
然后我们在/usr/share目录下面安装nodejs.
cd /usr/share
wget https://nodejs.org/dist/v6.11.2/node-v6.11.2-linux-x64.tar.xz
xz -d node-v6.11.2-linux-x64.tar.xz
tar xvf node-v6.11.2-linux-x64.tar
ln -s /usr/share/node-v6.11.2-linux-x64/bin/node /usr/bin/node
ln -s /usr/share/node-v6.11.2-linux-x64/bin/npm /usr/bin/npm
最好是将/usr/share/node-v6.11.2-linux-x64/bin目录放到系统的PATH变量里面.
如果是权限的问题导致出错,我想你自己能解决。哈哈。
我们运行node -v检查一下node的安装情况,以及版本信息。
[ec2-user@ip-172-31-19-80 ~]$ node -v
v6.11.2
这样我们的nodejs环境就安装好了。
在Ec2上安装mysql
因为版权的原因,linux7上面的mysql,已经用mariadb这个发行版本了。下面我们就安装 mariadb,不用担心兼容性问题,你就当他是mysql就可以了。
yum install mariadb mariadb-server
检查mariadb服务是否成功安装了
[ec2-user@ip-172-31-19-80 init.d]$ systemctl list-unit-files |grep maria
mariadb.service disabled
启动mysql
service mariadb start
进入mysql,看到如下的内容,就说明你的mysql已经配置好了。
[ec2-user@ip-172-31-19-80 booking-node]$ mysql
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 7
Server version: 5.5.56-MariaDB MariaDB Server
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]>
配置安全组使aws ec2实例能被外网访问
先看一下甚至inbound和outbound的界面,你可以在这儿进行编辑允许那个端口进行通讯。我这儿进行了一个大开放,5000-8080端口都可以用了。哈哈。
弹性IP(EIP)
通常情况下,我们申请的EC2实例在每次重启之后,Public DNS和公有IP都会改变,如果是要做一个网站,服务器IP经常改变,那域名解析也要跟着变,这是个很麻烦的事情。这时候就需要申请EIP,并将EIP与EC2实例关联,这个EIP就可以作为这个实例的永久IP,除非我们手动取消关联。关联之后,我们可以在浏览器地址栏输入EIP来访问EC2实例。
申请EIP的方法:在EC2控制面板找到“弹性IP”页面
先新申请一个EIP,然后进行绑定一下就可以用了,很简单。
用浏览器测试一下NODEJS服务。
HelloWorld.js代码:
var http = require('http');
http.createServer(function (request, response) {
// 发送 HTTP 头部
// HTTP 状态值: 200 : OK
// 内容类型: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});
// 发送响应数据 "Hello World"
response.end('Hello World\n');
}).listen(8000);
// 终端打印如下信息
console.log('Server running at http://127.0.0.1:8000/');
启动一个HelloWorld服务。
[ec2-user@ip-172-31-19-80 booking-node]$ node HelloWorld.js
Server running at http://127.0.0.1:8000/
在浏览器里面查看一下,结果如下图:
测试连接mysql
在相应的文件夹下面安装相应的模块
[ec2-user@ip-172-31-19-80 booking-node]$ npm install mysql body-parser express
- qs@6.4.0 node_modules/body-parser/node_modules/qs
booking@0.0.0 /home/ec2-user/booking-node
├─┬ body-parser@1.17.2
│ └── qs@6.4.0
├─┬ express@4.15.4
│ └── qs@6.5.0
└── mysql@2.14.1
mysql.js 代码
// Basic Setup
var http = require('http'), express = require('express'), mysql = require('mysql')
parser = require('body-parser');
// Database Connection
var connection = mysql.createConnection({
host : 'localhost',
user : 'root',
password : '',
database : 'test'
});
try {
connection.connect();
} catch (e) {
console.log('Database Connetion failed:' + e);
}
// Setup express
var app = express();
app.use(parser.json());
app.use(parser.urlencoded({
extended : true
}));
app.set('port', process.env.PORT || 5000);
// Set default route
app.get('/', function(req, res) {
res.send('<html><body><p>Welcome to sShop App</p></body></html>');
});
// Create server
http.createServer(app).listen(app.get('port'), function() {
console.log('Server listening on port ' + app.get('port'));
});
运行 node mysql.js
看看系统是否能连接到mysql数据库。到这儿,整个环境搭建完成。怎样?不麻烦吧,你也来试试吧。