2.3 Tạo EC2 Instance
Tổng quan
Ở bước này, chúng ta sẽ tạo một EC2 Instance để chạy giả lập một ứng dụng Website bán hàng. Và trong phần này sẽ tạo EC2 Instance và cài đặt môi trường cho ứng dụng bao gồm:
- Môi trường Python
- Môi trường PostgreSQL
- Môi trường Git
- Và cài đặt các thư viện cần thiết cho ứng dụng
Tạo Elastic Compute Cloud (EC2) Instance
- Truy cập Amazon Management Console
- Tìm kiếm dịch vụ EC2
- Chọn EC2 từ kết quả tìm kiếm
- Chọn Launch Instance
- Trong giao diện Launch Instance
- Name:
fashion-webapp
- Amazon Machine Image (AMI):
Amazon Linux 2023 AMI
- Instance Type:
t2.micro
- Name:
Tại phần Key pair, chọn Create new key pair
- Key pair name:
fashion-keypair
- Key pair type:
RSA
, private key file format:.pem
- Chọn Create key pair
- Key pair name:
Tại phần Network Settings, chọn Edit:
- VPC:
fashion-vpc
- Subnet:
fashion-subnet-public1-ap-southeast-1a
- Auto-assign Public IP:
Enable
- Security Group chọn Create security group
- security group name:
fashion-webapp-sg
- description:
Allow SSH from My IP, and HTTP, HTTPS from everywhere
- security group name:
- VPC:
- Tại Inbound Security Group Rules, cài đặt như hình sau
- Còn lại để mặc định, nhấn Launch instance để hoàn tất việc tạo EC2 Instance
Cài đặt môi trường bên trong EC2 Instance
- Kết nối SSH vào EC2 Instance
- Di chuyển tới thư mục chứa file
fashion-keypair.pem
- Sử dụng terminal, gõ lệnh sau:
ssh -i fashion-keypair.pem ec2-user@<Public IP | Public DNS>
- Gõ ‘yes’
- Nếu không kết nối được, hãy kiểm tra lại Security Group đã cho phép SSH từ IP của bạn chưa nhé.
- Di chuyển tới thư mục chứa file
- Cài đặt môi trường Python, Git, PostgreSQL cho EC2 Instance
- Đầu tiên, gõ
sudo su
để chuyển sang user root - Cài đặt các gói cần thiết (quá trình mất khoảng 5-10 phút):
dnf install -y git tar gcc \
zlib-devel bzip2-devel readline-devel \
sqlite sqlite-devel openssl-devel \
tk-devel libffi-devel xz-devel
curl https://pyenv.run | bash && \
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc && \
echo '[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc && \
echo 'eval "$(pyenv init -)"' >> ~/.bashrc && \
source ~/.bashrc && \
pyenv install 3.12.4 && \
pyenv global 3.12.4
sudo yum install postgresql17-server.x86_64 -y
- Kiểm tra lại phiên bản Python đã cài đặt
python --version
- Kiểm tra lại phiên bản PostgreSQL đã cài đặt
psql --version
- Clone repository từ github về EC2 Instance
git clone --sparse --filter=blob:none https://github.com/ltdungg/aws-fashion-data-pipeline.git project
cd project
git sparse-checkout init
git sparse-checkout set ec2
cd ec2
- Cài đặt các thư viện cần thiết
pip install -r requirements.txt
Gắn role cho EC2 để ghi vào Kinesis Data Stream
- Về giao diện EC2 Instances bấm vào
fashion-webapp
, chọn Actions, Security, Modify IAM role.
- Chọn
ec2-kinesis-role
mà chúng ta đã tạo ở phần trước.
- Bấm Update IAM role.