AWS CDK là gì ? Cách khởi tạo để cấu hình một hạ tầng cho ứng dụng trên nền tảng đám mây AWS




AWS CDK là gì?

Là bộ công cụ phát triển đám mây AWS (AWS CDK) là khung(framework) phát triển phần mềm nguồn mở để xác định cơ sở hạ tầng đám mây dưới dạng mã với các ngôn ngữ lập trình hiện đại và triển khai thông qua AWS CloudFormation

Deveoper có thể sử dụng một trong các ngôn ngữ lập trình để định nghĩa việc sử dụng lại các thành phần(component) được biết dưới tên Construct. 



Trong bài viết này mình giới thiệu cách khởi tạo AWS CDK bằng ngôn ngữ python. 

Tạo một project. 

Tạo một folder, sau đó khởi động python cdk bằng lệnh : cdk init 

mkdir my-project cd my-project cdk init app --language python

Bật môi trường ảo cho python: 

source .env/bin/activate

Sau đó cài các dependencies: 

pip install -r requirements.txt

Để cài những thư viện cdk python. ta dùng lệnh: 

pip install aws-cdk.aws-s3 aws-cdk.aws-lambda

Với aws-s3, aws-lambda là SERVICE-NAME. 

Trước khi deploy lên AWS bạn chạy : 

cdk synth: Tổng hợp thành một Cloudformation Template từ một hoặc nhiều stack vào trong ứng dụng AWS CDK. 

cdk deploy API_corp VPC_corp: triển khai (deploy) một hoặc nhiều stack (API_corp VPC_corp) lên hạ tầng AWS. 

Ví dụ dưới đây là code của một dự án; tạo một Amazon ECS Service với kiểu ECS Fargate type:

class MyEcsConstructStack(core.Stack):

    def __init__(self, scope: core.Construct, id: str, **kwargs) -> None:
        super().__init__(scope, id, **kwargs)

        vpc = ec2.Vpc(self, "MyVpc", max_azs=3)     # default is all AZs in region

        cluster = ecs.Cluster(self, "MyCluster", vpc=vpc)

        ecs_patterns.ApplicationLoadBalancedFargateService(self, "MyFargateService",
            cluster=cluster,            # Required
            cpu=512,                    # Default is 256
            desired_count=6,            # Default is 1
            task_image_options=ecs_patterns.ApplicationLoadBalancedTaskImageOptions(
                image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample")),
            memory_limit_mib=2048,      # Default is 512
            public_load_balancer=True)  # Default is False




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.