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數據庫。到這兒,整個環境搭建完成。怎樣?不麻煩吧,你也來試試吧。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容