AWS EC2 NODEJS +MYSQL 环境从无到有

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主机的时候要用到。

image.png
image.png
image.png

使用MobaXterm连接到aws ec2 实例(SSH协议)

有些例子是用putty连接,那需要转换key的格式,我们这儿就省一步,直接用MobaXterm去连接。什么?没有MobaXterm,这个问题你自己解决吧,呵呵。 下面这个图片划重点了,修改成相应的值,然后连接一下,能连接成功吗?反正我连接的时候是很顺利。

image.png

使用MobaXterm连接到aws ec2实例(SFTP协议)

你刚才是不是已经通过MobaXterm连接到服务器了,还担心怎样传输文件?哈哈,mobaXterm已经帮你连接好了,你直接用就可以了。 看看下面的图片,是服务器上的文件列表,用鼠标将本地的文件拖到这儿试试,哈哈。是的,这样操作,文件就传输到服务器上面了。

image.png

在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端口都可以用了。哈哈。

image.png

弹性IP(EIP)

通常情况下,我们申请的EC2实例在每次重启之后,Public DNS和公有IP都会改变,如果是要做一个网站,服务器IP经常改变,那域名解析也要跟着变,这是个很麻烦的事情。这时候就需要申请EIP,并将EIP与EC2实例关联,这个EIP就可以作为这个实例的永久IP,除非我们手动取消关联。关联之后,我们可以在浏览器地址栏输入EIP来访问EC2实例。

申请EIP的方法:在EC2控制面板找到“弹性IP”页面
先新申请一个EIP,然后进行绑定一下就可以用了,很简单。


image.png

用浏览器测试一下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/

在浏览器里面查看一下,结果如下图:

image.png

测试连接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数据库。到这儿,整个环境搭建完成。怎样?不麻烦吧,你也来试试吧。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 202,607评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,047评论 2 379
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,496评论 0 335
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,405评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,400评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,479评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,883评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,535评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,743评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,544评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,612评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,309评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,881评论 3 306
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,891评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,136评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,783评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,316评论 2 342

推荐阅读更多精彩内容