文章裡面附了不少圖xD
建立 AWS 帳戶
如果沒有 AWS 帳戶,到這邊註冊個吧!
建立 EC2 執行個體 (Instance)
- 搜尋「EC2」,點按 EC2 項目底下的「Instances」
- 點按右上角「啟動新執行個體」
- Machine image 選免費的 Amazon Linux 2 AMI
Kernel 選最新版的,這篇有說為什麼:
We recommend you use Amazon Linux 2 with kernel 5.10 when launching new instances to benefit from new features and performance improvements.
- 選免費的「t2.micro」以後,按「審核和啟動」
(如果想進一步做設置,可以按「下一步: 配置實例詳細信息」)
- 啟動吧!
- 創建新密鑰對 → 輸入密鑰對名稱 → 下載密鑰對
(下載下來的密鑰對不要弄丟囉,之後會用到!)
- 啟動新實例
- 有了!
分配 Elastic IP 給 Instance
我是照著「Allocate an Amazon Elastic IP and associate it with your instance」這篇做的。
- 左側欄找到「彈性 IP」
- 右上角「配置彈性 IP 地址」
- 點「配置」
- 勾選那個彈性 IP 地址 → 動作 → 與彈性 IP 地址建立關聯
- 選你要建立關聯的執行個體 (Instance) 吧!
- 建立關聯
架設 Node.js Web Server
用 SSH 連進你的 Instance
- 參照「General prerequisites for connecting to your instance」這篇來取得 Instance 的 user name 以及 public DNS name
For Amazon Linux 2 or the Amazon Linux AMI, the user name is
ec2-user
.
- 同樣參照「General prerequisites for connecting to your instance」這篇,更改 private key (剛剛下載的密鑰對) 的權限
If you do not set these permissions, then you cannot connect to your instance using this key pair.
1 | chmod 400 try-aws-ec2.pem |
- 照「Connect to your Linux instance using SSH」這篇的做法,用 SSH 連進去!
(我把 try-aws-ec2.pem
放在終端機當前目錄下)
1 | # 用「公有 IPv4 DNS」 |
- 輸入「yes」按 enter
連進去了,開心 🎉
第 3. 步的文章,裡面有提到「Transfer files to Linux instances using an SCP client」,如果有需要轉移檔案的,可以參考一下!
設置 Node.js
- 照著「Tutorial: Setting Up Node.js on an Amazon EC2 Instance」這篇做即可安裝 Node.js,我就不重複了xD
- 簡單做一個 Node.js web server,測試用的,我是參考「How To Build Node.js Web Server From Scratch」這一篇
1 | mkdir my-web-server |
下面的 code 貼到裡面。(只是為了測試能不能跑,所以不是很介意沒自己寫這個部分)
也可以用 Express 來寫,這部分真的就是創意的發揮~
1 | // server.js |
- 跑跑看
node server.js
,看外部能不能連上
不行欸,為什麼啊?原來還差一個步驟!
編輯傳入規則
記得到「安全群組」編輯傳入規則新增 TCP <server的port>
,才可透過 <Instance的IP位址>:<server的port>
連線,像是 54.254.94.30:3000
- 左側欄找到「安全群組」
- 勾選你欲修改的安全群組 → 動作 → 編輯傳入規則
- 新增規則
- 選「自訂 TCP」→ 連接埠範圍填 server 的 port → 來源選「0.0.0.0/0」代表接受任何來源的傳入 → 儲存規則
- 再來連連看,成功啦 🎉
Bonus
讓 Server 背景執行
我是參考「NodeJS Server to Linux Service Daemon 製作教學」這一篇,用的是「forever - npm」這個 CLI tool,或許有更好的做法!
裝 MySQL Server
我是直接照「How to Install MySQL server in Amazon Linux 2」這一篇的教學跑,裡面寫得很清楚,我就不重複了 😅
希望這篇教學文能幫助到您,我們下篇文見啦 😃