วันจันทร์ที่ 25 มีนาคม พ.ศ. 2562

การเตรียม Environment สำหรับการพัฒนา University Web Application (NBLOGIC)

    ในบทความนี้จะเป็นการกล่าวขั้นตอนการเตรียม Environment ที่จำเป็นในการพัฒนา University Web Application โดยในที่นี้ จะมีชื่อ Application ว่า NBLOGIC

    ระบบ NBLOGIC นี้จะใช้เครื่องมือในการเปิดบริการ Web server คือ NodeJS + Express.js
ซึ่ง NodeJS เป็น JavaScript Run-time ที่มีประโยชน์ต่อการพัฒนา Application ที่ใช้ภาษา JavaScript
และ Express.js เป็น Library เสริมที่จะส่วนช่วยให้ Application NodeJS สามารถทำงานเป็น Web Application (Web Server) ได้

   โดยผู้ออกแบบ ได้ทำการเลือกใช้ AWS (Amazon Web Services) เป็นผู้ให้บริการระบบทั้งหมดของ Application และทำการใช้บริการ EC2 (Elastic Compute Cloud) ในการจัดการส่วนของการใช้งานระบบ Cloud Computing ผ่าน Virtual Machine

    ซึ่งระบบปฏิบัติการที่ผู้ออกแบบได้เลือกก็คือ Amazon Linux 2 AMI  (HVM) เพื่อให้ง่ายต่อการเตรียม Environment ในการพัฒนา Web Application


   ขั้นตอนของการเตรียม Environment นั้นที่จะกล่าวถึง จะเริ่มที่การ Remote เข้าไปที่ Instance

1. ทำการ Remote เข้าที่ Instance โดยใช้คำสั่ง
ssh ec2-user@nblogic.ddns.net -i "private-key.pem"
2. เมื่อเชื่อมต่อเข้ามาแล้วก็พบหน้าต่างดังนี้

3. ให้ทำการ update Linux โดยใช้คำสั่ง
sudo yum update
4. เมื่อเสร็จแล้วให้ทำการติดตั้ง MySQL โดยใช้คำสั่ง
sudo yum install mysql-server
5. หลังจากติดตั้ง MySQL เรียบร้อยแล้วให้ทำการเปิดใช้งาน Service mysqld โดยใช้คำสั่ง
sudo service mysqld start
6. ให้ตรวจสอบว่า Service ได้ถูกเปิดใช้งานแล้วโดยใช้คำสั่ง
sudo mysql
 7. เพิ่ม user ของ MySQL โดยใช้คำสั่ง
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY 'password';
8. เสร็จสิ้นการติดตั้ง MySQL บน Linux ต่อไปจะเป็นการติดตั้ง NodeJS สามารถทำได้โดยใช้ Homebrew เพื่อให้ติดตั้ง package ต่างๆได้ง่ายขึ้น
brew install node
 9. เช็ค Version ของ NodeJS โดยใช้คำสั่ง
node -v
10. ทำการติดตั้ง Express Generator โดยใช้คำสั่ง
npm install express-generator -g
11. สร้าง Express app โดยตั้งชื่อว่า nblogic โดยใช้คำสั่ง
express --view=ejs nblogic
12. ทดสอบการติดตั้งโดยทำการใช้งาน Web server โดยใช้คำสั่ง
cd nblogic
npm install
DEBUG=nblogic:* npm start 
13. แต่เนื่องจากเรายังไม่ได้ทำการตั้งค่า Security Group - inbound rules ของ EC2 หรือก็คือการเปิด Port ให้กับ Instance นั่นเองสามารถทำได้โดยเข้าไปที่ AWS console เลือก Instance


14. จากนั้นให้เลือก Inbound แล้วกด Edit และเพิ่ม rule เข้าไปดังนี้ จากนั้นกด Save

15. เนื่องจากเรายังไม่ได้ตั้งค่า Privileged ให้กับ Port 80 ของ Linux แต่ว่าเราจะใช้วิธี Redirect แทน
เพราะว่า NodeJS ตอนนี้ Listen อยู่ที่ Port 3000 โดยใช้คำสั่ง
sudo iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 80 -j REDIRECT --to-port 3000
16. ทดสอบว่าสามารถเข้าเว็บไซต์ได้หรือไม่ โดยเข้าไปที่ IP ของ Instance