Tạo ứng dụng giao tiếp với Bot Telegram bằng Node.js + Docker và deploy lên EC2 AWS (Phần 2)
Nối tiếp phần 1 - (Hướng dẫn kết nối với Bot Telegram bằng Node.js), mình sẽ đi tiếp phần còn lại là chạy ứng dụng bằng Docker và Deploy lên EC2 AWS
III. Run Docker
- Cài Docker lên máy:
- Start Docker trên máy bạn
- Tạo file Dockerfile ở root project và thêm vào đoạn code sau:
FROM node:16
WORKDIR /usr/src/app
COPY package*.json ./
RUN npm install
COPY . .
EXPOSE 1234
CMD [ "node", "index.js" ]
-
Run câu lệnh:
docker build -t bot-tele-sample .
Bạn đợi đến khi Docker pull image về hoàn tất -
Kiểm tra images đã được tạo bằng cách chạy câu lệnh:
docker images
-
Run image đã được tạo:
docker run bot-tele-sample
-
Sau khi run thành công, bạn kiểm tra container đã được tạo bằng cách:
docker ps
-
Project đã được chạy bằng Docker thành công, bây giờ bạn vào chat với Bot sẽ nhận được phản hồi:
Tiếp theo chúng ta sẽ deploy ứng dụng lên EC2 nhé
IV. Deploy
-
Khởi tạo Instance EC2 (nếu chưa có tài khoản AWS bạn hãy đăng kí trước nhé: hướng dẫn tại đây)
-
Sau khi đăng nhập AWS, bạn tìm kiếm EC2 ở ô tìm kiếm
-
Chọn Launch Instance
-
Chọn option: Ubuntu 18.04 free tier
-
Chọn: 'Review and Launch' ở step 2 luôn
-
Chọn: Launch
-
AWS sẽ show key pair option cho bạn, ta sẽ dùng key này để access vào instance sau này, bạn có thể dùng key đã có, hoặc tạo mới key. Ở đây mình dùng lại key vì mình đã tạo trước đó. Chọn Launch Instance => Chọn View Instance
-
Ở AWS EC2 console, chọn Elastic IPs -> Allocate Elastic IP address -> Allocate
-
Chọn IP vừa được tạo -> Associate Elastic IP address -> link với instance bạn vừa tạo -> Click Associate
-
Tiếp theo chọn Security Groups ở AWS EC2 Console -> Create Security Group
- Nhập tên ở Security group name
- Thêm Inbounds/Outbound rules, ở đây chúng ta sẽ run project ở port 1234 (config trong Dockerfile)
-
Tiếp theo vào instance đã tạo, chọn
change security groups
-
Save lại
-
Mở terminal lên, run câu lệnh: ssh -i đường dẫn tới key pair ubuntu@public ip của bạn -> chọn yes
-
Run
cd /home/ubuntu
-
Clone project đã được public lên git (các bạn public source lên project lên github trước nhé):
git clone https://github.com/khaaleoo/bot-tele-sample.git
-
Tiếp theo chúng ta sẽ cài docker ở EC2:
- sudo apt update
- sudo apt install docker.io
- sudo snap install docker
- Kiểm tra docker được cài đặt thành công:
docker --version
- Run docker
cd bot-tele-sample
và build dockersudo docker build -t bot-tele-sample .
- Tới đây thì như phần III mình đã để cập ở phía trên. Chỉ cần chạy câu lệnh
sudo docker run bot-tele-sample
Thành công, bây giờ bạn chat với Bot để kiểm tra mọi thứ vẫn work đúng như mong đợi nhé!
Mình đã hướng dẫn xong việc tạo project cơ bản tương tác với Bot telegram và deploy lên AWS EC2.
Hẹn gặp mọi người ở các series khác ^^
Cảm ơn các bạn đã đọc.
All rights reserved