Một số hàm cơ bản khi tạo một hạ tầng ảo trên AWS dùng CDK python.


Như các bạn đã biết AWS CDK Python là một framework để code automation hạ tầng mạng cho AWS. Trong bài viết này chúng ta đi sơ qua một vài function cơ bản trong CDK Python dùng cho việc code automate hạ tầng trên AWS. 

Các components sẽ tạo như: 
1. VPC, subnet, Internet GW và NAT GW. 
2. ECS - Elastic Container Service, load balancer, AutoScaling Group, ... 

Nếu trước kia bạn có thể sử dụng Ansible hoặc terraform để deploy mà bạn không cần phải biết 1 ngôn ngữ nào, bạn cũng có thể deploy được các components phía trên. 

Terraform:
Terraform by HashiCorp
Ansible:

做運維想拿20k必須會的工具之-ansible-2(連載中) - 每日頭條

Ngày nay bạn sử dụng code Python để deploy các component trên bằng framework CDK của AWS. 

Automatically delete an S3 bucket with the AWS CDK stack ...
Trong đó có các hàm thông dụng sau: 


vpc = ec2.Vpc(stack, "VPC",
max_azs=3,
cidr="10.100.0.0/16",
# configuration will create 3 groups in 2 AZs = 6 subnets.
subnet_configuration=[ec2.SubnetConfiguration(
subnet_type=ec2.SubnetType.PUBLIC,
name=name_subnet_public,
cidr_mask=24
)
Tạo một VPC, có parameter tối đa available_zone = 3 và CIDR = 10.100.0.0/16 và 6 subnet, trong đó chia đều cho tất cả các subnet nằm trong các vùng khác nhau như: 

Vùng subnet public : Các node trong vùng này sẽ ra internet theo Internet Gateway. 

Vùng subnet private: Các node trong vùng này sẽ ra NAT gateway. 

Vùng subnet isolate:  Các node trong vùng này không thể đi internet mà chỉ kết nối tới các node trong cùng 1 VPC. 



serviceWeb = ecs.Ec2Service(
stack, "Service",
service_name="web-application",
desired_count=
3,
cluster=WebApplicationcluster,
task_definition=Web
)

Đây là hàm tạo một service Application trong một ECS Cluster. 

Trong đó service có desired_count = 2 thì service này sẽ sinh ra 2 task_defination khi chạy trong ECS . 

Sau đây ta tạo một Load balancer dạng Application load balancer bằng CDK python. 
lbServiceStack = elbv2.ApplicationLoadBalancer(
stack, "Web-Service",
vpc=vpc,
internet_facing=True
)

Load balancer này interface với mặt internet.  

Bạn có thể tham khảo CDK Python chi tiết hơn tại đây : 

https://docs.aws.amazon.com/cdk/api/latest/python/index.html





Nhận xét

Bài đăng phổ biến từ blog này

Trang web medium.com chết, vì sao ?

Cách sử dụng sys.argv trong python.

Thiết kế một RESTful API bằng python và flask.