AWS CDK là gì? Hướng dẫn cài đặt môi trường đám mây AWS hiệu quả?

Hiện nay khi ngày càng phụ thuộc nhiều hơn vào môi trường đám mây, việc vận hành đám mây một cách hiệu quả cũng trở thành một thách thức lớn đối với các công ty. Do đó, chúng tôi muốn giới thiệu về AWS CDK (Amazon Web Services Cloud Development Kit), bộ công cụ giúp hợp lý hóa việc xây dựng môi trường đám mây AWS.

AWSクラウドの環境を効率化するAWS CDKとは

Những vấn đề khi xây dựng đám mây

Có nhiều phương pháp để thực hiện xây dựng cơ sở hạ tầng đám mây AWS. Phương pháp phổ biến nhất là làm theo các bước trong bảng AWS Control để đăng ký, nhưng vẫn tồn tại nhiều nhược điểm.

Ví dụ, trong trường hợp thiết kế AWS với quy mô lớn, cần phải thực hiện nhiều bước, rất tốn thời gian và dễ xảy ra lỗi. Ngay cả khi đã hiểu được quy trình, và muốn triển khai cùng một cài đặt ở một version khác, cần phải thực hiện lại quá trình tương tự để cài đặt dịch vụ.

AWS hiện đã cung cấp hai cách để giải quyết vấn đề này với các công cụ.

  1. CloudFormation
  2. AWS CDK
AWSクラウドインフラストラクチャーを構築する方法には色々なやり方があります。
AWSクラウドインフラストラクチャーを構築する方法には色々なやり方があります。

Tại sao nên chọn CDK thay vì CloudFormation?

AWS CloudFormation coi cơ sở hạ tầng là mã, cho phép lập mô hình, cung cấp và quản lý AWS và các tài nguyên của bên thứ ba.

Product page diagram CloudFormation
Product page diagram CloudFormation

CloudFormation định cấu hình và triển khai các dịch vụ AWS trong các tệp YAML, vì vậy có thể sử dụng lại các tệp YAML.

Ví dụ: Đăng ký S3

Resources:

  MyS3Bucket:

    Type: AWS::S3::Bucket

    Properties:

      AccessControl: PublicRead

      BucketName: “MyBucket”

Dù có thiết kế phức tạp nhưng chỉ mất khoảng 5 phút để triển khai ở một phiên bản khác hoặc với một tài khoản khác.

Tuy nhiên, vẫn có một số nhược điểm.

  1. Tệp YAML sẽ rất lớn khi xây dựng các kiến ​​trúc đám mây lớn.
  2. Làm việc với các tệp YAML rất khó trong một số trường hợp (cần phải có kiến ​​thức về YAML)
  3. Rất dễ mắc lỗi do copy – paste thường xuyên
  4. Rất khó để kết hợp các dịch vụ của bên thứ ba (ví dụ: Test tự động).

Vì những lý do trên, các nhà quản lý và nhà phát triển đang tránh sử dụng CloudFormation dựa trên YAML, và CDK đang trở thành xu hướng chính.

Lợi ích của AWS CDK

AWS Cloud Development Kit (AWS CDK) là một khung phát triển phần mềm mã nguồn mở để xác định tài nguyên ứng dụng đám mây bằng các ngôn ngữ lập trình quen thuộc. 

Nếu muốn sử dụng CloudFormation, người dùng cần học cách viết tệp YAML. AWS CDK tăng tốc quá trình gia nhập AWS của người dùng vì không cần học YAMIL. Vì có thể sử dụng các kỹ năng hiện có (ngôn ngữ lập trình) và các công cụ (VSCode, Sublime, VisualStudio, v.v.). Ngoài ra, cùng một thiết kế kiến ​​trúc CloudFormation có thể yêu cầu nhiều dòng mã, tại CDK có thể không cần dòng mã nào.

AWS CDKのメリットは

Hiện tại, CDK hỗ trợ các ngôn ngữ lập trình sau:

  1. Typescript
  2. Javascript
  3. Python
  4. Java
  5. C#
  6. Go

Tuy không hỗ trợ tất cả, nhưng các ngôn ngữ trên đều rất phổ biến cho hầu hết các nhà phát triển. Ngôn ngữ phổ biến nhất là Typescript.

また、もう一つのメリットは再利用できるということです。

Một ưu điểm khác là có thể được tái sử dụng.
Ví dụ: Nếu đăng ký 2 Tables trong DynamoDB, trong CloudFormation, cần viết và định dạng cấu hình dưới đây 2 lần. Đây là lý do tại sao tệp YAML sẽ phụ thuộc lớn vào tiến độ của Font end.

Type: AWS::DynamoDB::Table

Properties

  AttributeDefinitions: 

    – AttributeDefinition

  GlobalSecondaryIndexes: 

    – GlobalSecondaryIndex

  KeySchema: Json

  ProvisionedThroughput: 

    ProvisionedThroughput

  TableClass: String

  TableName: String

  Tags: 

    – Tag

  TimeToLiveSpecification: 

    TimeToLiveSpecification

Với CDK, khi muốn tạo Class GenericTable cho Table DynamoDB và đăng ký Table, chỉ cần gọi theo mã được hiển thị ở phía dưới.

private myTable = new GenericTable(this, {

        tableName: ‘MyTables’,

        primaryKey: ‘objectId’,

    })

Ngoài ra, quá trình tương tự như trên cũng có thể được áp dụng kết hợp các kiến ​​trúc này vào một kiến ​​trúc khác thông qua việc tái sử dụng.

AWS CDKのメリットは

Nhược điểm của AWS CDK

Để triển khai One-At-The-Time AWSCDK tự động tạo các tệp CloudFormation YAML mất nhiều thời gian.

Nếu ứng dụng có nhiều tác vụ, có thể triển khai song song chúng để tiết kiệm thời gian.

Tuy vậy, tại thời điểm hiện tại không thể triển khai song song trên Local Computer. Tuy nhiên, chúng tôi hy vọng rằng trong tương lai AWS có thể thêm một tùy chọn triển khai concurrency (đồng thời) để khắc phục.

Tổng kết

Tóm lại, AWS CDK là một giải pháp hiệu quả để thu hẹp khoảng cách giữa kỹ sư infrastructure / kỹ sư DevOps và nhà phát triển. Chúng tôi cho rằng nó là một công cụ rất hứa hẹn để thu hẹp khoảng cách, bằng cách cho phép các nhà phát triển có thể định nghĩa cơ sở hạ tầng bằng các ngôn ngữ như TypeScript và Python.

AWS CDK giúp giảm chi phí quản lý cơ sở hạ tầng AWS. Ngoài ra, khung Serverless có thể được bao gồm trong CDK, làm cho định nghĩa về các ứng dụng Serverless dễ hiểu hơn

So với CloudFormation, việc quản lý project dễ dàng hơn. Khả năng chia sẻ cùng một mã nguồn cho mỗi môi trường ở cùng một nơi cho API và cơ sở hạ tầng, giúp giảm Human Error khi thiết lập môi trường, cũng như chi phí sửa đổi.

Tư vấn - Báo giá
Mở rộng quy mô doanh nghiệp của bạn với ONETECH!
Hãy liên hệ với chúng tôi để được cung cấp các dịch vụ phát triển phần mềm chất lượng cao với chi phí hợp lý nhất. Các kỹ sư của chúng tôi sẽ giúp bạn phát triển một giải pháp phù hợp để vượt lên đối thủ cạnh tranh của mình.
Mọi thông tin tư vấn và báo giá đều miễn phí.

    「Chính sách bảo mật」Nếu bạn đồng ý với những điều trên, vui lòng nhấp vào nút "Gửi"
    Một email trả lời tự động sẽ được gửi đến địa chỉ email bạn đã nhập, vì vậy hãy kiểm tra điều đó.
    Tư vấn - Báo giá
    Mở rộng quy mô doanh nghiệp của bạn với ONETECH!
    Hãy liên hệ với chúng tôi để được cung cấp các dịch vụ phát triển phần mềm chất lượng cao với chi phí hợp lý nhất. Các kỹ sư của chúng tôi sẽ giúp bạn phát triển một giải pháp phù hợp để vượt lên đối thủ cạnh tranh của mình.
    Mọi thông tin tư vấn và báo giá đều miễn phí.

      「Chính sách bảo mật」Nếu bạn đồng ý với những điều trên, vui lòng nhấp vào nút "Gửi"
      Một email trả lời tự động sẽ được gửi đến địa chỉ email bạn đã nhập, vì vậy hãy kiểm tra điều đó.
      liên hệ