Trang chủTác giảLiên hệ

Exec for ECS Task

By Trịnh Minh Hùng
Published in DevOps
December 14, 2021
3 min read

Chào cả nhà, hôm nay mình quay lại với một feature cũng không quá mới mẻ liên quan tới AWS ECS. Như mọi người có thể ECS là 1 Container Orchestration. ECS cung cấp 1 Cluster và điều phối các hoạt động của ECS Task. Trong quá trình làm việc, sẽ rất có thể bạn cần phải truy cập trực tiếp container để thao tác run một command nào đó, hay đơn giản chỉ là vào ngắm. Ví dụ khi bạn launch ECS với EC2 Type, bạn có thể truy cập bằng SSH/Session Manager vào EC2. Sau đó docker psdocker exec để truy cập trực tiếp Task. Tuy nhiên, cách trên có vài vấn đề phát sinh. AWS thì không khuyến khích bạn thực hiện truy cập như thế vì nó liên quan đến vấn đề bảo mật, dù có thể bạn đánh giá nó không quan trọng. Ngoài ra, khi bạn launch ECS với Fargate, bạn sẽ không có cái EC2 nào để truy cập bằng SSH/Session Manager cả. Từ đó giải pháp ECS Exec ra đời để đáp ứng best practices cho case này. Sau đây mình sẽ hướng dẫn các bạn practice với ECS Exec nhé.

Mọi người có thể follow theo Docs của AWS nhé: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html

Điều kiện tiên quyết

Yêu cầu phía máy Client-side (local) cần cài đặt:

Enabling and using ECS Exec

Mọi người vui lòng tham khảo từ docs với các chức năng bổ sung: https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html#ecs-exec-enabling-and-using

IAM permissions required for ECS Exec

Các Task mà muốn exec cần được assign role có permission như sau:

Enabling ECS Exec for your tasks and services

Hãy thực hiện enable exec command cho Service, bằng CLI:

Quan trọng nhất phải có tham số này —enable-execute-command

Optional task definition changes

Ngoài ra bạn cũng có thể định nghĩa để lưu logs của việc exec. Vui lòng tham khảo phần Optional task definition changes trong https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs-exec.html#ecs-exec-enabling-and-using

##3. Truy cập ECS Task Các bạn lưu ý sau kh cấu hình ở bước 2 thì nhớ relaunch ECS Task mới nhé.

Xác định ECS Task

Lấy được Task ID.

alt text

Thao tác với ECS Task

Command format:

Ngoài ra, nếu bạn muốn truy cập vào container để ngắm nghía thì hay đổi command thành /bin/bash nhé :)

###4. Kiểm tra đã cài đặt đủ chưa Nếu các bạn follow theo docs thì mình nghĩ việc cài đặt không có vấn đề gì. Tuy nhiên, nếu các bạn có làm miss một bước nào đó mà thấy không chạy được thì yên tâm nhé, chúng ta sẽ có code để kiểm tra :D Các bạn clone về nhé: yên tâm là source này là AWS Cung cấp và trong phần AWS Troubleshoot cũng recommend tới repo này: https://github.com/aws-containers/amazon-ecs-exec-checker. Mọi người theo dõi readme nhé. Cách kiểm tra đơn giản lắm. Chỉ cần clone code về và đảm bảo 2 tiêu chí:

  • jq

  • AWS CLI v1.19.28/v2.1.30 or later

    Sau đó chạy script này thì sẽ có kết quả, ví dụ: alt text

Kết luận

Ngoài nội dung trong bài mọi người có thể tham khảo docs hoặc blog để tham khảo thêm các chưa năng khác liên quan ECS Exec

ECS là dịch vụ cũng không còn gì mới mẻ nữa và các dự án size không to của công ty mình đều thực hiện chạy trên ECS. Mình đánh giá nó khá là hiệu quả và tiết kiệm chi phí triển khai cho các dự án size vừa và nhỏ. Vậy nên có thể mình sẽ chia sẻ nhiều bài viết liên quan đến ECS hơn. Cảm ơn mọi người đã đọc bài!


Tags

ECS

Trịnh Minh Hùng

Related Posts

DevOps Roadmap
October 16, 2022
6 min
© 2022, All Rights Reserved.

Quick Links

Liên hệ quảng cáoThông tinLiên hệ

Social Media