FlowiseAI บน AWS EC2
ในเว็บไซต์ของ FlowiseAI ได้แนะนำวิธีการ ติดตั้ง FlowiseAI บน AWS EC2 ไว้แล้ว เพียงแต่เป็น AWS Linux ไม่ใช่ Ubuntu บทความนี้เพื่อช่วยเติมเต็ม

ในเว็บไซต์ของ FlowiseAI ได้แนะนำวิธีการ ติดตั้ง FlowiseAI บน AWS EC2 ไว้แล้ว เพียงแต่เป็น AWS Linux ไม่ใช่ Ubuntu บทความนี้เพื่อช่วยเติมเต็ม สำหรับคนที่ต้องการลง FlowiseAI บน AWS EC2 และเลือกใช้ Ubuntu 22.04
สร้าง AWS EC2 Instance ใหม่

ไปที่ EC2 ของ AWS คลิ๊กปุ่ม Launch instance
ตั้งชื่อ ตามต้องการ ใน Name and tags
ในที่นี้ขอตั้งชื่อว่า FlowiseAI
เลือก Ubuntu ซึ่งมี Default เป็น Ubuntu Server 22.04 และเป็น Free tier eligible
ถ้าสมัคร AWS ใหม่ ๆ จะได้ใช้ฟรี 12 เดือน

ต่อไปให้เลือก t2.micro ซึ่งมีขนาด 1 vCPU 1 GiB Ram สเปคเท่านี้ก็เพียงพอแล้ว ที่สำคัญคือสามารถใช้ได้ฟรี 1 ปี (ถ้าเราเป็นสมาชิกใหม่ของ AWS)
สำหรับ Key pair (login) ให้เลือก Create new key pair
ตรง Network settings เป็นการกำหนด Security Group ให้เลือก Create security group แล้วติ๊กถูกทั้ง 3 ช่องตามรูปด้านล่าง โดย
-
Allow SSH traffic from จะเปิดพอร์ต 22
-
Allow HTTPS traffic from the internet จะเปิดพอร์ต 433
-
Allow HTTP traffic from the internet จะเปิดพอร์ต 80

วิธีสร้าง Key pair บน AWS EC2
ตรง Key pair name ตั้งชื่อตามต้องการ ในที่นี้ตั้งชื่อว่า flowise
สำหรับ Key pair type เลือก RSA
ถ้าทำงานบน Mac หรือ Linux เลือก .pem
ถ้าทำงานบน Windows เลือก .ppk

สำหรับขนาดของฮาร์ดดิสก์ให้เปลี่ยน 8 GiB เป็น 20GiB เนื่องจากถ้าใช้ฮาร์ดดิสก์แค่ 8 GiB พอต้องการอัพเดท FlowiseAI เคยเจอปัญหาฮาร์ดดิสก์เต็ม
เสร็จแล้วคลิ๊กปุ่ม Launch instance

เมื่อสร้าง EC2 Instance เสร็จแล้วก็จะขึ้น Notification สีเขียวแบบนี้

ขอ Fixed IP สำหรับ AWS EC2
ในระหว่างที่ EC2 Instance กำลังเซ็ตตัว เราไปสร้าง Fixed IP Address ก่อน
เนื่องจากเราอาจจำเป็นต้อง รีบู๊ต Ubuntu เพื่อการบำรุงรักษา แต่ทุกครั้งที่เรารีบู๊ต เราจะได้เลข IP Address ใหม่ เราจึงต้องขอ Fixed IP Address หรือ Elastic IPs

ถ้าเราอยู่ที่หน้าจอ EC2 Instance ให้มองหา Elastic IPs ที่จอด้านซ้าย (Left Sidebar)
คลิ๊กเลือก Elastic IPs

หน้าจอถัดไปให้คลิ๊กปุ่ม Allocate Elastic IP address

ถัดไปกดปุ่ม Allocate ได้เลยครับ

หลังจากนั้นเราจะได้เลข Fixed IP มา
คลิ๊กตรงเลข IP

มุมบนขวาจะมีปุ่ม Associate Elastic IP address ให้คลิ๊กปุ่มนี้

หน้าจอถัดไปให้เลือก Instance ที่เราเพิ่งสร้าง ซึ่งจะมีวงเล็บระบุชื่อเอาไว้ ในที่นี้จะเป็นชื่อ FlowiseAI

กดปุ่ม Associate
เปิดพอร์ต 3000 สำหรับ FlowiseAI
ตอนนี้เรายังอยู่ที่ EC2 Instance ให้มองหาแท็บ Security
ตรง Security groups คลิ๊กตรงลิงค์ sg-xxxxxxxxxxxxxxxx(launch-wizard-x)

ในหน้าจอถัดไป กดปุ่ม Edit inbound rules

กดปุ่ม Add rule เลือก Custom TCP ใส่เลข 3000 ในคอลัมน์ Port range ตรง Source เลือก Anywhere หรือ 0.0.0.0/0
ใส่รายละเอียดใน Description หรือไม่ใส่ก็ได้ เสร็จแล้วกดปุ่ม Save rules

จบขั้นตอนนี้เราก็จะได้พอร์ต 3000 สำหรับรัน Flowise บน localhost
Connect to AWS EC2
เนื่องจาก EC2 Instance Connect ทำงานค่อนข้างเสถียร ผมจึงประหยัดเวลา ด้วยการเชื่อมต่อ EC2 ผ่านตรงนี้เลย
ให้ไปที่ EC2 instance ที่เราเพิ่งสร้างเสร็จ ซึ่งในที่นี้คือ FlowiseAI มองหาปุ่ม Connect

หน้าจอถัดไป กดปุ่ม Connect อีกครั้ง

จะได้หน้าจอ Terminal แบบนี้ ซึ่งอยู่บน AWS Cloud
คำสั่งแรกเลยคือให้อัพเดท Ubuntu 22.04 ก่อนครับ

sudo apt-get update && sudo apt-get upgrade -y
ถ้าต้องการติดตั้ง Python หรือ PIP สามารถดูจาก บทความ นี้ได้ครับ
เพิ่มบัญชีผู้ใช้ใหม่
sudo adduser <your-username>
sudo usermod -aG sudo <your-username>
su <your-username>
cd /home/<your-username>
กรณีที่ต้องการเชื่อมต่อ EC2 ผ่าน VSCode
ตอนติดตั้ง Ubuntu ระบบจะสร้าง Default user ขึ้นมาชื่อว่า ubuntu แต่ถ้าเราต้องการสร้าง user ขึ้นมาใหม่ เราต้องกำหนดรหัสผ่านด้วย ปัญหาคือ ถ้าเราจะเข้าถึงข้อมูลภายใต้ user ใหม่ ผ่าน VSCode เราจะเจอ Error No Public Key เราจึงต้องแก้ไขค่า Config ในไฟล์ sshd_config ดังนี้
-
ติดตั้ง Visual Studio Code Plugin Remote Development
-
แก้ไขไฟล์ sshd_config โดย
เข้าไปที่ EC2 terminal แล้วพิมพ์คำสั่ง
sudo nano /etc/ssh/sshd_config

ให้แก้ PasswordAuthentication no เป็น
PasswordAuthentication yes

กดปุ่ม CTRL + X ตอบ Y แล้วกดปุ่ม Enter เพื่อบันทึกไฟล์ sshd_config เสร็จแล้วสั่ง restart
service sshd restart
จะมีคำถามว่าจะ Enable password auth กับ User ไหน ให้เราเลือก User ที่เราเพิ่งสร้าง ก็คือตัวที่ 2 แล้วใส่พาสเวิร์ดให้เรียบร้อย

ติดตั้ง Docker
เราจะรัน AWS EC2 FlowiseAI บน docker
สามารถอ่านข้อมูลเพิ่มเติมจากเว็บไซต์เป็นทางการของ Docker
apt repository
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl gnupg
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
ติดตั้ง Docker packages
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
docker-compose
sudo apt-get install docker-compose
ลองใช้คำสั่งต่อไปนี้เพื่อเช็คว่าติดตั้ง docker และ docker-compose เสร็จสมบูรณ์
docker --version
docker-compose --version
สร้างกลุ่ม Docker
sudo groupadd docker
ถ้าใช้คำสั่งนี้แล้ว ได้คำตอบแบบนี้ groupadd: group 'docker' already exists ไม่เป็นไรนะครับ
ใส่ชื่อ username ของเราเข้าไปในกลุ่ม
sudo usermod -aG docker $USER
ให้รันคำสั่ง
newgrp docker
เพื่อ Activate Group
ใส่ Docker เข้าไปเป็นส่วนหนึ่งของคำสั่ง Server
sudo systemctl enable docker.service
sudo systemctl enable containerd.service
sudo systemctl start docker.service
หลังจากมาถึงขั้นตอนนี้ Ubuntu น่าจะติดตั้ง Git มาให้แล้ว ถ้าไม่แน่ใจก็ใช้คำสั่ง
sudo apt-get install git -y
Clone FlowiseAI repo มาที่ AWS EC2
ตอนนี้เราต้องอยู่ที่ username ของเรานะครับ ให้เช็คด้วยคำสั่ง
pwd
จะได้คำตอบเป็น
/home/<your-username>
เช่น
/home/moocoding
เริ่ม Clone กันเลย โดยคำสั่ง
git clone https://github.com/FlowiseAI/Flowise.git
หลังจากโคลน Repository เสร็จแล้ว เราจะได้โฟลเดอร์ Flowise ในโฟลเดอร์ Flowise จะมีโฟลเดอร์ docker ให้เข้าไปที่ docker ด้วยคำสั่ง
cd Flowise && cd docker
สร้างไฟล์ .env ด้วยคำสั่ง
nano .env
ถ้าติดปัญหาเรื่อง Permission denied ให้ใช้ sudo nano .env
หรือถ้าให้ง่ายกว่านั้น ใช้คำสั่งคัดลอกไฟล์ .env.example ไปที่ไฟล์ .env
cp .env.example .env
ดูให้ไฟล์ .env มีข้อมูลตามนี้ครับ
PORT=3000
DATABASE_PATH=/root/.flowise
APIKEY_PATH=/root/.flowise
SECRETKEY_PATH=/root/.flowise
LOG_PATH=/root/.flowise/logs
FLOWISE_USERNAME=<your-username>
FLOWISE_PASSWORD=<your-password>
เราจำเป็นต้องปกป้อง FlowiseAI ด้วย พาสเวิร์ดครับ โดยต้องระบุ FlOWISE_USERNAME และ FLOWISE_PASSWORD เสร็จแล้วกดปุ่ม Ctrl + X พร้อมกัน และตอบ Y เพื่อบันทึกไฟล์
รัน docker-compose
เปิดใช้งาน docker ด้วย
docker-compose up -d
หมายเหตุ: ถ้าต้องการปิด docker ใช้คำสั่ง
docker-compose stop
หลังใช้คำสั่ง docker-compose up -d แล้ว ตอนนี้ FlowiseAI ทำงานเรียบร้อยแล้ว สามารถตรวจสอบโดยการพิมพ์ URL
http://<your-public-ip4>.ap-southeast-1.compute.amazonaws.com:3000/
วิธีหา your-public-ip4
ไปที่ EC2 instance มองหาคำว่า Public IPv4 DNS แล้วคลิ๊กตรงปุ่มที่ใช้คัดลอกได้เลย ตามรูปประกอบ

เมื่อใช้งานไปซักพัก เราสามารถอัพเกรด FlowiseAI ด้วยคำสั่ง
docker pull flowiseai/flowise
Production setup
สำหรับการ ติดตั้ง FlowiseAI บน AWS EC2
ติดตั้ง NGINX
sudo apt-get install nginx
sudo systemctl start nginx
แก้ไขไฟล์ config
sudo nano /etc/nginx/conf.d/flowise.conf
คัดลอกโค้ดนี้เข้าไปในไฟล์ flowise.conf
server {
listen 80;
listen [::]:80;
server_name yourdomain.com; #เช่น: flowise.your-domain.com
location / {
proxy_pass http://localhost:3000;
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_cache_bypass $http_upgrade;
}
}
เสร็จแล้วกดปุ่ม Ctrl + X พร้อมกัน และตอบ Y เพื่อบันทึกไฟล์
Restart NGINX
sudo systemctl restart nginx
AWS Route 53 สำหรับ FlowiseAI บน AWS EC2
ถ้าคุณวาง Domain Name ไว้ที่ AWS Route 53 ไปที่ Route 53
คลิ๊กลิงค์ตรง Hosted zones

ไปที่ Hosted zone name แล้วเลือก domain ที่ต้องการใช้งาน

กดปุ่ม Create record

ถ้าเราต้องการตั้งชื่อ flowise.your-domain.com
ใส่ flowise ตรง Record name
ตรง Record type ให้ใส่ A
ช่อง Value ให้ใส่ your Public IPv4 address
นอกนั้นปล่อยไว้ตามค่า Default
กดปุ่ม Create records

หลังจากขั้นตอนนี้ให้ลองเข้าไปที่ http://flowise.your-domain.com โดยไม่ต้องใส่พอร์ต 3000
เปลี่ยน HTTP เป็น HTTPS
เราจะเปลี่ยน http://flowise.your-domain.com เป็น https://flowise.your-domain.com
ให้ติดตั้ง Certbot
sudo python3 -m venv /opt/certbot/
sudo /opt/certbot/bin/pip install --upgrade pip
sudo /opt/certbot/bin/pip install certbot certbot-nginx
sudo ln -s /opt/certbot/bin/certbot /usr/bin/certbot
sudo certbot --nginx
Automatic renewal certificate สำหรับ FlowiseAI AWS EC2
echo "0 0,12 * * * root /opt/certbot/bin/python -c 'import random; import time; time.sleep(random.random() * 3600)' && sudo certbot renew -q" | sudo tee -a /etc/crontab > /dev/null
จบครับ ขั้นตอนต่อไปจะลองใช้ FlowiseAI เพื่อสร้าง Chat Bot
การติดตั้ง FlowiseAI บน AWS EC2 ไม่ยากเลย
จะเห็นว่าการ ติดตั้ง FlowiseAI บน AWS EC2 ไม่ยากเลย สำหรับคนที่ไม่ชอบตัวหนังสือเยอะๆ ผมพยายามใส่รูปประกอบเพื่อทำความเข้าใจได้ง่ายขึ้น โดยเฉพาะสำหรับคนที่เพิ่งใช้งาน AWS
บทความที่เกี่ยวข้อง
-
สร้าง Assistants AI Chat Bot บน FlowiseAI