ECS Setting up
Việc seup ECS cũng tương tự như việc setup EC2 nếu bạn đã từng sử dụng qua service này Bạn có thể tạo ra cluster bằng cách sử dụng một trong 2 cách Amazon ECS first-run winzard hoặc Amazon Command Line Interface (CLI) Bước đầu tiên bạn tạo ra một IAM User Thao khảo các bược tạo IAM User tại ...
Việc seup ECS cũng tương tự như việc setup EC2 nếu bạn đã từng sử dụng qua service này Bạn có thể tạo ra cluster bằng cách sử dụng một trong 2 cách Amazon ECS first-run winzard hoặc Amazon Command Line Interface (CLI)
Bước đầu tiên bạn tạo ra một IAM User
Thao khảo các bược tạo IAM User tại đây NOTE: Chú ý là IAM này phải có quyền billing, việc add billing cho user cũng khá đơn giản bạn có thể tham khảo tại đây
Tạo key pair
Bạn có thể tham khảo cách tạo keypair theo region trên amazon Tạo Keypair
Tạo VPC (Vitual Private Cloud)
Tạo nondefault VPC
- Truy cập vào VPC console https://console.aws.amazon.com/vpc/
- Chọn region cho VPC, nên chọn region trùng với region của keypair đã tạo ở bước trên
- VPC Dashboard -> chọn Launch VPC Wizard
- Chọn Select VPC with a Single Public Subnet -> chọn select
- Nhập tên cho VPC, các trường khác để mặc định
Tạo Security group
Security group giống như bức tường lửa cho việc liên kết cho container instances, điều khiển lưu lượng cho cả inbound và oundbound tại tầng container instance.
Bạn có thể add rule cho một security group cho phép kết nối tới instance từ IP thông qua ssh.
Bạn cũng có thể add rules cho phép truy cập inbound , outbound http và https ở bất cứ nơi đâu
Thêm rule để mở port
Container instance yêu cầu truy cập external network để kết nối với Amazon ECS enpoint
Nếu bạn muốn chạy nhiều container instances trên nhiều region khác nhau thì bạn phải tạo security group cho nhiều Region
Tạo security group
- access vào amazon ec2 https://console.aws.amazon.com/ec2/
- Chọn region cho security group. Security group là riêng biệt cho từng region, bạn nên chọn region giống như region mà bạn đã tạo keypair
- Chọn security group -> create security group
- Nhập tên và mô tả cho security group
- Chọn default VPC
- Amazon ECS container instance không yêu cầu bất cứ một inbound port nào phải mở, thế nhưng bạn phải thêm ssh rule nếu bạn muốn login vào container instance, bạn cũng có thể thêm rule cho HTTP và HTTPS Container instance yêu cầu truy cập external network để giao tiếp với Amazon ECS service endpoint.
Docker như các bạn đã biết là một công nghệ rất hữu dụng cho việc build, run, test và deploy distributed ứng dụng trên Linux container. Docker ECS sử dụng Docker images trong task definition để khởi tạo container trên EC2 instances
Cài đặt Docker trên EC2 instance
Tạo một Amazon Linux instance ( bạn tham khảo cách tạo instance từ bài viết này https://viblo.asia/p/amazon-ec2-YWOZrw2rlQ0) Connect tới Instance thông qua ssh Update các packet đã được cài đặt trên instance
sudo yum update -y
Cài docker
sudo amazon-linux-extras install docker
Start docker service
sudo service docker start
add ec2-user vào docker group để có thể run docker command mà không cần sudo
sudo usermod -a -G docker ec2-user
Check docker info
docker info
Tạo docker images
Amazon ECS task definition sử dụng Docker image để launch container trên container instance của cluster. Dưới đây là một ví dụ về việc tạo docker image của ứng dụng web đơn giản “Hello world”
Tạo Dockerfile
touch Dockerfile
Edit Dockerfile
FROM ubuntu:18.04 # Install dependencies RUN apt-get update && apt-get -y install apache2 # Install apache and write hello world message RUN echo 'Hello World!' > /var/www/html/index.html # Configure apache RUN echo '. /etc/apache2/envvars' > /root/run_apache.sh && echo 'mkdir -p /var/run/apache2' >> /root/run_apache.sh && echo 'mkdir -p /var/lock/apache2' >> /root/run_apache.sh && echo '/usr/sbin/apache2 -D FOREGROUND' >> /root/run_apache.sh && chmod 755 /root/run_apache.sh EXPOSE 80 CMD /root/run_apache.sh
Build docker image từ Dockerfile
docker build -t hello-world .
check docker image
docker images --filter reference=hello-world
Chạy docker image trên cổng 80
docker run -t -i -p 80:80 hello-world
Mở web browser và trỏ tới địa chỉ mà server của bạn đang chạy docker
Trên đây mới chỉ là các bước setup tiền đề cần thiết trước khi đi vào xây dựng một ECS cluster Nguồn tham khảo: Amazon ECS