AWS – CRUD LIFE http://crudlife.com Create Your Own Life Mon, 28 Oct 2024 08:35:01 +0000 en-US hourly 1 https://wordpress.org/?v=4.9.26 AWS CloudFormation http://crudlife.com/aws-cloudformation/ http://crudlife.com/aws-cloudformation/#respond Thu, 05 May 2022 09:40:22 +0000 http://crudlife.com/?p=325 1. Giới thiệu về CloudFormation

AWS CloudFormation cung cấp một ngôn ngữ chung để bạn mô tả và cung cấp tất cả các tài nguyên về cơ sở hạ tầng trong môi trường đám mây của bạn. CloudFormation cho phép bạn sử dụng một tệp văn bản đơn giản để mô hình hoá và cung cấp tất cả các tài nguyên cần thiết cho các ứng dụng của bạn trên tất cả các vùng và tài khoản một cách tự động và an toàn. Tệp này đóng vai trò là nguồn chân lý duy nhất cho môi trường đám mây của bạn. AWS CloudFormation cung cấp cho các nhà phát triển và quản trị hệ thống một cách dễ dàng để tạo và quản lý một tập hợp các nguồn lực AWS có liên quan, cung cấp và cập nhật chúng theo cách có trật tự và có thể dự đoán được. Bạn có thể sử dụng các template có sẵn của AWS CloudFormation hoặc tạo các template của riêng mình để mô tả các tài nguyên AWS và bất kỳ phụ thuộc hoặc các thông số thời gian chạy nào được yêu cầu để chạy ứng dụng của bạn. Sau khi các tài nguyên AWS được triển khai, bạn có thể sửa đổi và cập nhật chúng một cách có kiểm soát và có thể dự đoán, có hiệu lực áp dụng kiểm soát phiên bản vào cơ sở hạ tầng AWS theo cách tương tự với phần mềm của bạn. Việc sử dụng CloudFormation giúp tái sử dụng các tài nguyên trên AWS dễ dàng và tự động. Giúp tiến gần tới khái niệm “Infrastructure as Code”, một thuật ngữ trong nghành phát triển các sản phẩm phần mềm hiện đại.

2. Các tính năng của CloudFormation

2.1 Biên soạn với JSON / YAML

AWS CloudFormation cho phép bạn mô hình toàn bộ cơ sở hạ tầng của mình trong một tệp văn bản. Bạn có thể sử dụng JSON hoặc YAML để mô tả tài nguyên AWS bạn muốn tạo và định cấu hình. Nếu bạn muốn thiết kế trực quan, bạn có thể sử dụng AWS CloudFormation Designer để giúp bạn bắt đầu với mẫu AWS CloudFormation.

2.2 Kiểm soát an toàn

AWS CloudFormation tự động cung cấp và cập nhật cơ sở hạ tầng của bạn một cách an toàn và kiểm soát. Không có các bước thủ công hoặc điều khiển có thể dẫn đến lỗi. Bạn có thể sử dụng Rollback Triggers để chỉ định CloudWatch cảnh báo các thành phần mà CloudFormation phải giám sát trong quá trình tạo và cập nhật stack. Nếu có bất kỳ cảnh báo nào, CloudFormation sẽ roll back toàn bộ về trạng thái đã triển khai trước đó.

2.3 Xem trước những thay đổi trong hạ tầng

AWS CloudFormation Change Sets cho phép bạn xem trước các thay đổi được đề xuất đối với stack có thể ảnh hưởng đến tài nguyên đang chạy của bạn như thế nào. Ví dụ: liệu các thay đổi của bạn sẽ xóa hoặc thay thế bất kỳ tài nguyên quan trọng nào. AWS CloudFormation thực hiện các thay đổi cho stack của bạn chỉ sau khi bạn quyết định thực hiện Change Set.

2.4 Quản lý phụ thuộc

AWS CloudFormation tự động quản lý các mối quan hệ phụ thuộc giữa các tài nguyên của bạn trong quá trình quản lý stack. Bạn không cần phải lo lắng về việc xác định thứ tự tài nguyên được tạo, cập nhật hoặc xóa. CloudFormation xác định trình tự chính xác của các hành động để sử dụng cho mỗi tài nguyên trong stack.

2.5 Quản lý account chéo và region chéo

AWS StackSets cho phép bạn cung cấp một tập hợp chung các tài nguyên AWS trên nhiều tài khoản và region với template CloudFormation. StackSets tự động cung cấp, cập nhật hoặc xóa stack trên nhiều tài khoản và nhiều khu vực. Điều này cung cấp cùng mức độ tự động, khả năng lặp lại và độ tin cậy để quản lý stack trên khắp các vùng và tài khoản.

2.6 Khả năng mở rộng

AWS CloudFormation cho phép bạn tạo các tiện ích tùy chỉnh cho template stack của mình bằng AWS Lambda. Bạn có thể sử dụng Custom Resources, là một cơ chế mở rộng cho phép bạn viết các yêu cầu cung cấp tuỳ chỉnh trong một hàm Lambda và kích hoạt nó trong một ngăn xếp CloudFormation. Bạn có thể viết logic cung cấp tùy chỉnh cho các tác vụ như cung cấp tài nguyên bên thứ ba hoặc tìm kiếm các ID AMI mới nhất để sử dụng trong stack.

3. Các thành phần của CloudFormation

Như chúng ta đã đề cập nhiều lần ở trên, thành phần chính của CloudFormation bao gồm: Template, Stack và Change Sets

3.1 Template

Template AWS CloudFormation là tệp văn bản được định dạng JSON hoặc YAML. Bạn có thể lưu các tệp này bằng bất kỳ phần mở rộng nào, chẳng hạn như .json, .yaml, .template, hoặc .txt. AWS CloudFormation sử dụng các template này làm bản thiết kế để xây dựng tài nguyên AWS của bạn. Ví dụ: trong mẫu, bạn có thể mô tả một thể hiện của Amazon EC2, chẳng hạn như instance type, loại EBS, AMI mẫu, size, security group… Bất cứ khi nào bạn tạo một stack, bạn cũng phải chỉ định một template mà AWS CloudFormation sử dụng để tạo ra. VD 1 template mẫu:

{
  "AWSTemplateFormatVersion" : "2010-09-09",
  "Description" : "A sample template",
  "Resources" : {
    "MyEC2Instance" : {
      "Type" : "AWS::EC2::Instance",
      "Properties" : {
        "ImageId" : "ami-2f726546",
        "InstanceType" : "t1.micro",
        "KeyName" : "cuongtv",
        "BlockDeviceMappings" : [
          {
            "DeviceName" : "/dev/sda",
            "Ebs" : {
              "VolumeType" : "io1",
              "Iops" : "200",
              "DeleteOnTermination" : "yes",
              "VolumeSize" : "20"
            }
          }
        ]
      }
    },
    "MyEIP" : {
      "Type" : "AWS::EC2::EIP",
      "Properties" : {
        "InstanceId" : {"Ref": "MyEC2Instance"}
      }
    }
  }
}

 

3.2 Stack

Khi sử dụng CloudFormation, bạn quản lý tài nguyên liên quan như một đơn vị được gọi là stack. Bạn tạo, cập nhật và xóa một bộ sưu tập tài nguyên bằng cách tạo, cập nhật và xóa các stack. Tất cả các tài nguyên trong stack được xác định bởi template AWS CloudFormation.

3.3 Change Sets

Nếu bạn cần thay đổi các tài nguyên đang chạy trong stack, bạn cập nhật stack. Trước khi thực hiện thay đổi đối với tài nguyên của bạn, bạn có thể tạo một change sets, nó sẽ cho phép bạn xem các thay đổi trực tiếp tác động như thế nào đến tài nguyên đang chạy của bạn, đặc biệt đối với các tài nguyên quan trọng, trước khi triển khai chúng.

Ví dụ: nếu bạn thay đổi tên của một ví dụ cơ sở dữ liệu Amazon RDS, AWS CloudFormation sẽ tạo một cơ sở dữ liệu mới và xóa một cơ sở dữ liệu cũ. Bạn sẽ mất dữ liệu trong cơ sở dữ liệu cũ trừ khi bạn đã sao lưu nó. Nếu bạn tạo change sets, bạn sẽ thấy rằng thay đổi của bạn sẽ làm thay đổi cơ sở dữ liệu, và bạn sẽ có thể lập kế hoạch cho phù hợp trước khi cập nhật stack.

4 Hoạt động

4.1 Khởi tạo CloudFormation

Khi tạo stack, AWS CloudFormation tạo các cuộc gọi dịch vụ cơ bản đến AWS để cung cấp và định cấu hình các tài nguyên của bạn. Vì vậy hãy chắc chắn tài khoản của bạn có quyền trên IAM thực hiện các tác vụ cần thiết.

4.2 Cập nhật một Stack với Change Sets

Khi bạn cập nhật một stack, bạn chỉnh sửa lại file template gốc của stack. AWS Formation so sánh template đã được chỉnh sửa với template gốc và cập nhật chỉ những tài nguyên đã thay đổi. Sơ đồ sau tóm tắt lại quá trình cập nhật một stack.

4.3 Xóa Stack

Khi bạn xóa một stack, bạn chỉ ra stack cần xóa, và AWS CloudFormation xóa stack cùng tất cả các tài nguyên bên trong nó. Nếu bạn muốn xóa một stack nhưng muốn giữ lại một vài resource bên trong nó, bạn có thể sử dụng deletion policy để giữ lại các tài nguyên đó. Sau khi tất cả các resource bị xóa, AWS CloudFormation gửi tín hiệu thông báo stack của bạn đã được xóa thành công. Nếu AWS CloudFormation không thể xóa một tài nguyên nào đó, stack sẽ không bị xóa. Những tài nguyên chưa bị xóa sẽ tồn tại cho tới khi bạn có thể xóa thành công stack.

5 Làm việc với Stack

Như ta đã biết, muốn tạo 1 stack thì phải có template. Có thể sử dụng template sẵn có của AWS (wordpress, ruby on rails stack, LAMP stack …) nhưng tất cả đều không bao giờ là đủ và phù hợp với nhu cầu của chính người dùng. Do đó AWS hỗ trợ người dùng tự viết template của mình, hỗ trợ kéo thả trong quá trình design nhưng tất nhiên điều đó vẫn chưa thể đầy đủ và hoàn thiện được. Ngoài ra, AWS còn hỗ trợ dựng template dựa trên resource đang chạy sử dụng CloudFormer. Trong quá trình dùng CloudFormer, AWS sẽ tự bật 1 instance t2.medium ec2 để sử dụng. Đây là cách tốt nhất để bạn design 1 cách hoàn hảo mô hình mà bạn cần dưới dạng template. Từ đó sẽ dễ dàng setup các môi trường như vậy trong tương lai.

(Nguồn Viblo)

]]>
http://crudlife.com/aws-cloudformation/feed/ 0
Elastic Beanstalk http://crudlife.com/elastic-beanstalk/ http://crudlife.com/elastic-beanstalk/#respond Thu, 05 May 2022 09:34:29 +0000 http://crudlife.com/?p=321 Bạn đang tìm kiếm 1 nơi để triển khai ứng dụng của bạn mà vẫn chưa biết lựa chọn ở đâu? Việc chọn các host trong nước thì lại lo sợ việc kết nối hoặc chết bất cứ lúc nào? Tìm Cloud thì lại khó sử dụng? Tại sao không sử dụng service của amazon nhỉ? Với Elastic Beanstalk, bạn chỉ cần up code lên, việc còn lại cứ để amazon lo, đảm bảo đơn giản và dễ dàng như việc thuê host trong nước vậy.

1. Elastic Beanstalk là gì?

Khi bạn muốn triển khai 1 ứng dụng của mình, bạn sẽ phải phân vân lựa chọn từng tiêu chí, chi tiết từ server, cân bằng tải, database, domain, mô hình kết nối ra sao, cách thức hoạt động, việc build môi trường hay việc deploy như thế nào cho đảm bảo được ứng dụng. Lại còn phải có người maintain hệ thống. Nói chung là rất mất công sức và thời gian. Để đơn giản hóa tất cả công việc trên thì amazon đưa ra service Elastic Beanstalk (EB). Thay vì phải tự mình build môi trường hay maintain hệ thống, Elastic Beanstalk sẽ giúp mình làm tất cả các công việc kể trên.

Thật đau đầu khi phải nghĩ thiết kế hệ thống như thế này phải không?

Hiện tại EB hỗ trợ khá nhiều platform khác nhau như: Go, Java SE, Java with Tomcat, .NET on Windows Server with IIS, Node.js, PHP, Python, Ruby. Nên các bạn cũng có thể cân nhắc khi sử dụng nhé.

2. Elastic Beanstalk hoạt động như thế nào?

Elastic Beanstalk sẽ tạo một ứng dụng (application), tải lên một phiên bản ứng dụng (version) dưới dạng một gói nguồn ứng dụng (file .zip hay .war) đến Elastic Beanstalk, và sau đó cung cấp một số thông tin về ứng dụng. Elastic Beanstalk tự động khởi chạy một môi trường và cấu hình các tài nguyên AWS cần thiết để chạy code của bạn. Sau khi môi trường (environment) của bạn được khởi chạy, bạn có thể quản lý môi trường của mình và triển khai các phiên bản ứng dụng mới. Sơ đồ sau minh họa quy trình làm việc

(Nguồn Viblo)

]]>
http://crudlife.com/elastic-beanstalk/feed/ 0
Amazon CloudFront (CDN) http://crudlife.com/amazon-cloudfront-cdn/ http://crudlife.com/amazon-cloudfront-cdn/#respond Thu, 05 May 2022 08:30:42 +0000 http://crudlife.com/?p=318 1. Content Delivery Network (CDN)

Một Content Delivery Network (CDN) hay mạng phân phối nội dung là một nhóm server đặt tại nhiều vị trái khác nhau để hỗ trợ nội dung được trải dài ở nhiều khu vực vị trí địa lý khác nhau.

CDN cũng được gọi là “distribution networks”. Ý tưởng là tạo được nhiều điểm truy cập (Point of Presence – PoPs) ngoài server gốc. Việc này giúp website quản lý tốt traffic hơn bằng cách xử lý nhanh hơn yêu cầu của khách, tăng trải nghiệm người dùng.

Content ở đây là những yếu tố chữ và hình của website: văn bản, ảnh, file audio, videos, ….

Có 2 loại nội dung: động và tĩnh. Nội dung tĩnh là nội dung ban đầu (input) cũng chính là nội dung cuối cùng người khác nhìn thấy (output). Nó không thay đổi theo thời gian bởi tác động của người dùng. Server sẽ truyền cùng 1 dữ liệu đó cho mọi người. Quy trình là người dùng yêu cầu 1 file A từ web server, server sẽ trả lại file A đó.

Nội dung động (Dynamic content) là nội dung sẽ thay đổi dựa vào dữ liệu đầu vào. Nó được cá nhân hóa trên từng trang, tùy thuộc vào dữ liệu nhập vào của người dùng. Ví dụ của nội dung động là trang sản phẩm chứa tên sản phẩm, mô tả sản phẩm, và giá, bao gồm hình ảnh. Ví dụ khác là trang web hiển thị mà tương tác trực tiếp với người dùng để gửi tới người dùng những thông tin liên quan.

2. Amazon CloudFront

CloudFront là dịch vụ CDN tốc độ cực cao mà Amazon cung cấp để phân phối dữ liệu, video, ứng dung, API ở mức độ toàn cầu mà vẫn đảm bảo an toàn bảo mật.

Amazon CloudFront hỗ trợ cả IPv4 và IPv6

2.1 Egde Location

CloudFront lưu trữ và phân phối data thông qua các trung tâm mạng lưới dữ liệu trên toàn thế giới, được gọi là Edge locations. Những Edge Locations này là nơi mà End-User có thể truy cập đến dịch vụ của AWS.

Hiện nay Amazon đang đặt các Edge Location ở 65 thành phố ở trên 29 quốc gia, cụ thể là có khoảng 155 edge locations, hoạt động như một cache dài hạn cho server của hệ thống. =>

  • Giảm độ trễ khi request và nhận dữ liệu
  • Tốc độ truyền dữ liệu cao

Các Edge Location được kết nối với nhau thông qua Amazon Backbone Network đạt 99.9% SLA (Service-level agreement – Cam kết chất lượng dịch vụ)

2.2 Tài nguyên

Các tài nguyên được CloudFront hỗ trợ bao gồm:

  • Images
  • Style Sheet
  • Javascript Files
  • Các bản install, patch được tải xuống
  • Video Streaming: Live và In- Demand
  • API: Moblile và Desktop
  • Ứng dụng

2.3 Bảo mật

CloudFront cung cấp một số cơ chế về bảo mật như sau:

  • AWS Shield, AWS Web Application Firewal (WAF)
  • Hỗ trợ https và SSL/TLS
  • Field-level encryption: Gói 1 số field vào và mã hóa cho đến khi request đến được với service có thẩm quyền trong ứng dụng của bạn
  • Geo Restriction: Cho phép ngăn chặn các request đến từ một vùng địa lý nhất định
  • Invalidiation API: Cho phép loại bỏ một số Objects khỏi Request (Lưu ý: Không thể invalid các object của RTMP distribution ( Real-Time Messaging Protocol)

2.4 Một số dịch vụ thường kết hợp cùng CloudFront

Một số dịch vụ khác của AWS có thể kết hợp cùng CloudFront.

Kết hợp cùng các dịch vụ sẽ giúp bạn tối ưu được chất lượng của hệ thống và tiết kiệm chi phí.

Ngoài ra, Lambda@Edge là một dịch vụ sử dụng các Lambda function để tự custom content tại các Egde Location dựa trên các attribute trong request. Điều này giúp bạn tận dụng được các dữ liệu, tại mỗi Edge Location khác nhau và cũng custom được các response.

Như các dịch vụ CDN khác, CloudFront cũng hỗ trợ các thống kê và báo cáo hoạt động:

  • Request & data tranfer trends
  • Error Rate
  • Cache statistics
  • Access logs

Có 3 đặc tính của CloudFront có thể hỗ trợ bạn trong việc kinh doanh của hệ thống thông qua các báo cáo này

  • Popular Objects: Các tài nguyên được sử dụng nhiều nhất
  • Viewer: Thống kê địa điểm, browser/OS, thiết bị (Desktop, mobile, …)
  • Referrer: Các traffic trên hệ thống được đến từ đâu.

 

  • 2.5 Cách thức hoạt động

Đầu tiên sử dụng CloudFront để chỉ rõ ra Origin Server, đây là nơi dùng để lưu trữ content, ví dụ như S3 hay chính Server của bạn. Đây sẽ là nơi mà CloudFront lấy dữ liệu và sau đó phân phối tới các Edge Locations trên khắp thế giới.

Khi có request đến, Edge Locations sẽ trả về dữ liệu luôn nếu như dữ liệu cần thiết đang được cache trên Edge Locations đó. Nếu không, CloudFront sẽ Request đến Origin Server để lấy dữ liệu đó, lưu lại tại cache của Edge Location và trả dữ liệu cho Request.

Các Origin Server này cũng có thể chỉ ra các Origin Server backup (một hoặc nhiều). CloudFront sẽ tự động Scales dựa trên nhu cầu sử dụng của Content đó, giúp giảm tải cho một server origin nhằm tăng trải nghiệm người dùng.

CloudFront sẽ tự động routing các request tới địa điểm thích hợp nhất dựa trên vị trí xuất phát của request đó để đem lại Performance nhanh nhất có thể.

Nguồn tham khảo:

https://app.pluralsight.com/library/courses/aws-network-design-getting-started

https://aws.amazon.com/cloudfront/

https://www.hostinger.vn/huong-dan/cdn-la-gi/

http://hanhtranglaptrinh.vn6.vn/toi-uu-amazon-s3-voi-amazon-cloudfront/

https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_Origin.html

]]>
http://crudlife.com/amazon-cloudfront-cdn/feed/ 0
AWS Regions and Availability zones http://crudlife.com/aws-regions-and-availability-zones/ http://crudlife.com/aws-regions-and-availability-zones/#respond Thu, 05 May 2022 08:18:49 +0000 http://crudlife.com/?p=315 Khi bắt đầu với AWS, một trong những khái niệm đầu tiên mà chúng ta cần phải tìm hiểu tới đó là Regions và Availability zone (AZs).

Chúng ta biết rằng AWS cung cấp dịch vụ đám mây trên toàn cầu, vì thế AWS bắt buộc phải có rất nhiều trung tâm dữ liệu (data center) trên khắp thế giới, hãy tưởng tượng tới một căn phòng to lớn và chứa rất nhiều máy tính bên trong, đó chính là các data center. Và một khu vực địa lí chứa nhiều data center như vậy sẽ được gọi là Regions. Hình dưới đây là các Regions hiện tại của AWS có ở vùng châu Á – Thái bình dương, các bạn có thể xem chi tiết những vùng khác ở https://aws.amazon.com/about-aws/global-infrastructur

Các Regions có cùng chung một quy ước đặt tên như là us-east-2, ap-southeast-1, nên chỉ cần nhìn cái list dưới đây là bạn có thể xác định khu vực của Regions một cách nhanh chóng và thuận tiện.

Và phần lớn các dịch vụ của AWS được triển khai ở phạm vi Regions, điều đó có nghĩa là khi bạn khởi tạo dịch vụ A ở region R1, thì khi bạn đổi sang region R2 thì dữ liệu dịch vụ A của bạn sẽ không được đồng bộ mà bạn buộc lòng phải khởi tạo lại ở region R2. Bạn có thể tham khảo danh sách các dịch vụ cung cấp theo Region ở https://aws.amazon.com/about-aws/global-infrastructure/regional-product-services/

Chúng ta đi tới khái niệm tiếp theo là Availability Zones (tạm dịch là vùng khả dụng). Mỗi Regions sẽ có thể có nhiều AZs, thường thường sẽ là 3, tối thiểu là 2 và tối đã là 6. Chúng sẽ được đặt tên theo tên của Regions và các chữ cái như a, b, c. Như Region Sysney: ap-southeast-2, sẽ có 3 AZs lần lượt là ap-southeast-2a, ap-southeast-2b, ap-southeast-2c

Mỗi AZs là một hoặc nhiều các data centers rời rạc, và mỗi data centers đều sẽ có nguồn điện dự phòng, hệ thống mạng kết nối mạnh mẽ. Các AZs sẽ hoàn toàn tách biệt với nhau về mặt địa lý, nên nếu cái AZ ap-southeast-2a có tèo do thảm họa động đất sống thần, hay đánh bom khủng bố thì 2 AZs còn lại là 2b và 2c vẫn có rất nhiều nhiều khả năng là an toàn. Mặc dù hoàn toàn cách biệt bới nhau về mặt địa lí là vậy, nhưng các AZs này vẫn đượt kết nối với nhau bằng một hệ thống mạng có băng thông cao và độ trễ cực thấp, đủ để đảm bảo các tác vụ đồng bộ dữ liệu giữa các AZs.

Và như vậy là chúng ta đã đi qua 2 khái cơ bản của AWS.

(Nguồn Viblo)

]]>
http://crudlife.com/aws-regions-and-availability-zones/feed/ 0
Amazon Elastic Kubernetes Service (Amazon EKS) http://crudlife.com/amazon-elastic-kubernetes-service-amazon-eks/ http://crudlife.com/amazon-elastic-kubernetes-service-amazon-eks/#respond Tue, 03 May 2022 16:08:36 +0000 http://crudlife.com/?p=311 Amazon Elastic Kubernetes Service (Amazon EKS) is a fully managed service that you can use to run Kubernetes on AWS.

Kubernetes is open-source software that enables you to deploy and manage containerized applications at scale. A large community of volunteers maintains Kubernetes, and AWS actively works together with the Kubernetes community. As new features and functionalities release for Kubernetes applications, you can easily apply these updates to your applications managed by Amazon EKS.

]]>
http://crudlife.com/amazon-elastic-kubernetes-service-amazon-eks/feed/ 0
Amazon Elastic Container Service (Amazon ECS) http://crudlife.com/amazon-elastic-container-service-amazon-ecs/ http://crudlife.com/amazon-elastic-container-service-amazon-ecs/#respond Tue, 03 May 2022 16:03:18 +0000 http://crudlife.com/?p=308 Amazon Elastic Container Service (Amazon ECS) is a highly scalable, high-performance container management system that enables you to run and scale containerized applications on AWS.

Amazon ECS supports Docker containers. Docker is a software platform that enables you to build, test, and deploy applications quickly. AWS supports the use of open-source Docker Community Edition and subscription-based Docker Enterprise Edition. With Amazon ECS, you can use API calls to launch and stop Docker-enabled applications.

Amazon ECS là một dịch vụ điều phối bộ chứa được quản lý hoàn toàn, giúp bạn dễ dàng triển khai, quản lý và thay đổi quy mô các ứng dụng có trong bộ chứa.

Khởi chạy hàng nghìn bộ chứa trên đám mây bằng cách sử dụng các công cụ tích hợp và phân phối liên tục (CI/CD) và tự động hóa mà bạn yêu thích.

Tối ưu hóa thời gian của bạn bằng dịch vụ điện toán phi máy chủ AWS Fargate cho các bộ chứa, giúp loại bỏ nhu cầu cấu hình và quản lý mặt phẳng điều khiển, các nút và phiên bản.

Tiết kiệm đến 50 phần trăm chi phí điện toán bằng khả năng cung cấp tự động, tự động thay đổi quy mô và định giá theo mức sử dụng.

Tích hợp liền mạch với các giải pháp quản lý và quản trị AWS, được tiêu chuẩn hóa để
đáp ứng việc tuân thủ yêu cầu của hầu hết cơ quan quản lý trên toàn cầu.

(Nguồn amazon)

]]>
http://crudlife.com/amazon-elastic-container-service-amazon-ecs/feed/ 0
AWS LAMBDA http://crudlife.com/aws-lambda/ http://crudlife.com/aws-lambda/#respond Tue, 03 May 2022 15:49:01 +0000 http://crudlife.com/?p=302 Hiện nay, các giải pháp serverless ngày càng trở nên phổ biến. Đây là công nghệ mà lập trình viên chỉ cần thực hiện quá trình viết code mà không cần lo lắng đến việc thiết lập server hay chạy các đoạn code đã viết. Đây được coi là lời giải cho bài toán chi phó cũng như giải pháp cho quá trình vận hành, khi lập trình viên chỉ cần tập trung vào việc hoàn thành các đoạn code. Một trong các nhà cung cấp giải pháp serverless hàng đầu hiện nay phải kể đến AWS với AWS Lambda.

AWS Lambda

AWS Lambda là gì?

Đây là dịch vụ cho phép người dùng tải lên các đoạn code và AWS Lambda sẽ chịu trách nhiệm cho tất cả các công việc còn lại như: chạy, hoặc mở rộng mã theo nhu cầu của bạn. AWS Lambda cũng cho phép bạn thiết lập để mã của bạn tự động kích hoạt từ các dịch vụ AWS khác.

Và bạn chỉ phải trả phí khi những đoạn code của bạn chạy trên nền tảng bất kỳ.

Cách hoạt động của AWS Lambda

Cách hoạt động của AWS Lambda

Bạn có thể sử dụng AWS Lambda để chạy code với các trình kích hoạt như thay đổi dữ liệu, thay đổi trạng thái hệ thống hoặc hành động của người dùng. Lambda có thể được kích hoạt trực tiếp bởi các dịch vụ AWS như S3, DynamoDB, Kinesis, SNS và CloudWatch, có thể kết nối với hệ thống tệp EFS hiện có hoặc nó có thể được tích hợp vào hệ thống thông qua AWS Step Functions. Điều này cho phép bạn xây dựng nhiều hệ thống xử lý dữ liệu serverless thời gian thực.

Bạn có thể sử dụng Amazon S3 để kích hoạt AWS Lambda nhằm xử lý dữ liệu ngay sau khi tải lên. Bạn cũng có thể kết nối trực tiếp với hệ thống tệp Amazon EFS hiện có, cho phép truy cập chia sẻ song song để xử lý tệp quy mô lớn. Ví dụ: bạn có thể sử dụng Lambda để thu nhỏ hình ảnh, chuyển mã video, lập chỉ mục tệp, nhật ký xử lý, xác thực nội dung cũng như tổng hợp và lọc dữ liệu trong thời gian thực.

Tại sao doanh nghiệp cần sử dụng AWS Lambda? 

Là một dịch vụ serverless, AWS Lambda là lời giải cho bài toán vận hành khi có độ linh hoạt cao hơn và tổng chi phí sở hữu thấp hơn.

Lambda chạy các đoạn code trên nền tảng điện toán có tính khả dụng cao và chịu trách nhiệm xử lý toàn bộ công tác quản trị tài nguyên điện toán của bạn, trong đó có bảo trì máy chủ và hệ điều hành, dự phòng dung lượng và Auto Scaling, triển khai các bản vá bảo mật và vận hành các đoạn code, cũng như theo dõi và ghi nhật ký mã. Tất cả những gì bạn cần làm chỉ là cung cấp các đoạn code.

Sử dụng ứng dụng serverless này của AWS đồng nghĩa với việc các nhà phát triển có thể tập trung vào việc phát triển sản phẩm của mình thay vì phải lo lắng về việc quản lý và vận hành nhiều máy chủ hoặc thời gian chạy các đoạn code. Tổng chi phí được cắt giảm này sẽ cho phép các nhà phát triển tiết kiệm thời gian và nguồn vốn để có thể tập trung nhiều hơn vào việc xây dựng các sản phẩm có quy mô linh hoạt và ổn định.

Ví dụ áp dụng của AWS Lambda

Ví dụ áp dụng của AWS Lambda
  • The Coca-Cola Company, tập đoàn đồ uống đa quốc gia của Mỹ đã sử dụng AWS Lambda và AWS Step Functions để xây dựng một giải pháp serverless nhằm cung cấp thông tin dinh dưỡng cho các đối tác dịch vụ thực phẩm của họ.
  • FINRA đảm nhiệm việc giám sát các đơn vị môi giới – giao dịch chứng khoán tại Hoa Kỳ. Finra thực hiện việc phân tích đến 75 tỷ giao dịch hàng ngày trên thị trường để xác định các giao dịch lừa đảo và nội gián. AWS Lambda giúp FINRA tăng hiệu suất trong việc phân tích dữ liệu.
  • iRobot, công ty robot tiêu dùng hàng đầu thế giới, sử dụng AWS Lambda và AWS IoT để chạy ứng dụng web kết nối đến máy hút bụi Roomba sử dụng kết nối WiFi.
  • Autodesk – một công ty đa quốc gia của Hoa Kỳ với sản phẩm chính là phần mềm thiết kế 2D, 3D dành cho kiến trúc, kỹ thuật xây dựng, truyền thông và giải trí sử dụng AWS Lambda để tự động hóa các hoạt động CNTT, tiết kiệm thời gian và chi phí cần thiết cho việc quản lý cơ sở hạ tầng.

Hạn chế của AWS Lambda

Cũng giống như các nền ứng dụng khác của serverless, AWS Lambda có một số nhược điểm đáng lưu ý như:

  • Phụ thuộc vào nhà cung cấp: Bạn sẽ phụ thuộc hoàn toàn vào nhà cung cấp trong vấn đề chạy code, hoặc nền tảng của bạn sẽ không chạy được như mong muốn.
  • Thời gian nghiên cứu: Bạn sẽ phải mất thời gian học cách sử dụng và cũng như cách quản lý tài nguyên của mình.
  • Các vấn đề xử lý lỗi: Khi sử dụng nền tảng serverless, công việc giám sát và gỡ lỗi nếu có, cũng là một công việc khá khó khăn.

Chi phí của AWS

Chi phí của AWS

Như đã đề cập, đây là ứng dụng mà bạn chỉ phải trả phí khi những đoạn code của bạn được chạy. Với AWS Lambda, bạn chỉ phải trả tiền cho những gì bạn sử dụng. Phí bạn phải trả được tính dựa theo số lần yêu cầu các hàm và thời lượng, thời gian xử lý code của bạn.

AWS Lambda sẽ cho bạn 1 triệu yêu cầu miễn phí mỗi tháng và 400.000 GB-giây thời gian điện toán mỗi tháng.

AWS Lambda hiện có ưu đãi Compute Savings Plans – mô hình tiết kiệm chi phí đối với mức sử dụng EC2, Fargate và Lambda (tính theo USD/giờ) trong thời hạn 1 hoặc 3 năm. Với Compute Savings Plans, bạn có thể tiết kiệm tới 17% cho AWS Lambda.

Chi tiết tham khảo tại: https://aws.amazon.com/vi/savingsplans/compute-pricing/

Như vậy, AWS Lambda là một giải pháp đáng xem xét cho bài toán chi phí.

(Nguồn magenest)

Tham khảo thêm https://aws.amazon.com/vi/lambda/

]]>
http://crudlife.com/aws-lambda/feed/ 0
SNS (Simple Notification Service) in AWS http://crudlife.com/sns-simple-notification-service-in-aws/ http://crudlife.com/sns-simple-notification-service-in-aws/#respond Fri, 29 Apr 2022 08:45:26 +0000 http://crudlife.com/?p=299 1.KHÁI NIỆM SNS

Đây là một service của AWS cho phép người dùng setting thực hiện gửi email, text message hay push notification tự động tới mobile device dựa trên event người dùng setting phía AWS Account.

Định nghĩa khác mang tính technical hơn thì SNS là service điều phối và quản lý việc trạng thái gửi và nhận của các message tới các endpoint đã được đăng kí cũng như tới enduser. Trong AWS SNS, có 2 loại client là publisher và subscriber, tương ứng với bên cung cấp và bên tiêu thụ.

Publishers giao tiếp theo giao thức bất đồng bộ với phía subcriber bằng cách tạo và gửi message tới một topic, là một logical access point và communication channel. Subscriber (i.e, web server, email address, Amazon SQS Queues, AWS Lambda function) sẽ tiếp nhận message hoặc notification thông qua một giao thức được hỗ trợ (i.e, Amazon SQS, HTTP/S, email, SNS, Lambda) đã được đăng kí trước đó.

2. SNS WORKFLOW

SNS Service rất quan trọng trong việc tự động hoá quy trình giám sát hệ thống phòng khi có bất kì lỗi nào xảy ra phía AWS.

Ví dụ:

Trong ví dụ này với trường hợp EC2 bị crash:

  • Phía Cloudwatch sẽ phát hiện được lỗi dựa trên error prefix log đã setting trước cho các lỗi critical (VD: error.production.prefix)
  • Đồng thời phía Cloudwatch sẽ trigger tự động C.W alarm
  • C.W Alarm sẽ trigger event gửi message thông báo lỗi EC2 crash tới System Admin để có action fix lỗi sớm nhất có thể

3. CÁC COMPONENT CƠ BẢN CỦA SNS VÀ PRICING OPTION

3.1 Các component cơ bản

Component cơ bản của SNS bao gồm:

  • Topic: Nơi dán nhãn và group các endpoint để gửi message tới
  • Subcription: Các endpoint để topic gửi message tới (VD i.e, email address, phone number của system admin)
  • Publisher: Person in charge/Alarm/Event setting message để phía SNS gửi đi.

3.2 SNS Pricing

Chúng ta sẽ bị charge phí thế nào khi sử dụng SNS?

  • Publisher: Charge theo số lượng SNS request (Số message i.e cần gửi đi)
  • Notification delivery (Push notification): Sẽ charge phí theo số lượng device message gửi đi.
  • Data transfer IN/OUT của SNS

Chi tiết về SNS Pricing: https://aws.amazon.com/sns/pricing/

]]>
http://crudlife.com/sns-simple-notification-service-in-aws/feed/ 0
SQS – Simple Queue Service trong AWS http://crudlife.com/sqs-simple-queue-service-trong-aws/ http://crudlife.com/sqs-simple-queue-service-trong-aws/#respond Fri, 29 Apr 2022 08:41:58 +0000 http://crudlife.com/?p=296 1. SQS là gì?
  • SQS là viết tắt của Simple Queue Service .
  • SQS là dịch vụ đầu tiên có sẵn trong AWS.
  • Amazon SQS là một dịch vụ web cung cấp cho bạn quyền truy cập vào hàng đợi tin nhắn có thể được sử dụng để lưu trữ tin nhắn trong khi chờ máy tính xử lý chúng.
  • Amazon SQS là một hệ thống hàng đợi phân tán cho phép các ứng dụng dịch vụ web xếp hàng một cách nhanh chóng và đáng tin cậy các thông báo mà một thành phần trong ứng dụng tạo ra để được sử dụng bởi một thành phần khác trong đó hàng đợi là kho lưu trữ tạm thời cho các thông báo đang chờ xử lý.
  • Với sự trợ giúp của SQS, bạn có thể gửi, lưu trữ và nhận tin nhắn giữa các thành phần phần mềm ở bất kỳ khối lượng nào mà không bị mất tin nhắn.
  • Sử dụng Amazon sqs, bạn có thể tách các thành phần của ứng dụng để chúng có thể chạy độc lập, giúp dễ dàng quản lý tin nhắn giữa các thành phần.
  • Bất kỳ thành phần nào của một ứng dụng phân tán đều có thể lưu trữ các thông báo trong hàng đợi.
  • Tin nhắn có thể chứa tối đa 256 KB văn bản ở bất kỳ định dạng nào như json, xml, v.v.
  • Bất kỳ thành phần nào của ứng dụng sau này đều có thể truy xuất thông báo theo chương trình bằng API Amazon SQS.
  • Hàng đợi hoạt động như một bộ đệm giữa thành phần sản xuất và lưu dữ liệu, và thành phần nhận dữ liệu để xử lý. Điều này có nghĩa là hàng đợi giải quyết các vấn đề phát sinh nếu nhà sản xuất đang sản xuất công việc nhanh hơn mức mà người tiêu dùng có thể xử lý hoặc nếu nhà sản xuất hoặc người tiêu dùng chỉ được kết nối không liên tục với mạng.
  • Nếu bạn có hai phiên bản EC2 đang kéo Hàng đợi SQS. Bạn có thể định cấu hình nhóm tính năng tự động nếu số lượng thư vượt quá một giới hạn nhất định. Giả sử số lượng tin nhắn vượt quá 10, thì bạn có thể thêm phiên bản EC2 bổ sung để xử lý công việc nhanh hơn. Bằng cách này, SQS cung cấp độ đàn hồi.

Hãy hiểu qua một ví dụ.

Hãy xem một trang web tạo Meme. Giả sử người dùng muốn tải ảnh lên và muốn chuyển đổi thành Meme. Người dùng tải ảnh lên một trang web và trang web có thể lưu trữ ảnh trong s3. Ngay sau khi tải lên xong, nó sẽ kích hoạt một hàm Lambda. Lambda phân tích dữ liệu về hình ảnh cụ thể này cho SQS và dữ liệu này có thể là “phần trên cùng của meme nên nói gì”, “phần dưới của meme nên nói gì”, vị trí của nhóm S3, v.v. bên trong SQS dưới dạng tin nhắn. Một cá thể EC2 xem xét thông báo và thực hiện công việc của nó. Một cá thể EC2 tạo một Meme và lưu trữ nó trong nhóm S3. Sau khi cá thể EC2 hoàn thành công việc của mình, nó sẽ quay trở lại SQS. Điều tốt nhất là nếu bạn mất phiên bản EC2 của mình, thì bạn cũng sẽ không bị mất công việc vì công việc nằm bên trong thùng S3.

Giả sử người dùng muốn tìm kiếm một kỳ nghỉ trọn gói và muốn xem chuyến bay tốt nhất có thể. Người dùng nhập một truy vấn trong trình duyệt, sau đó truy vấn truy cập vào phiên bản EC2. Một cá thể EC2 trông “Người dùng đang tìm kiếm gì?”, Sau đó nó đưa thông báo vào hàng đợi đến SQS. Một cá thể EC2 kéo hàng đợi. Một cá thể EC2 liên tục kéo hàng đợi và tìm kiếm các công việc cần làm. Khi nó nhận được công việc, nó sẽ xử lý nó. Nó thẩm vấn dịch vụ Hàng không để có được tất cả các chuyến bay tốt nhất có thể. Nó gửi kết quả đến máy chủ web và máy chủ web sẽ gửi lại kết quả cho người dùng. Sau đó, Người dùng chọn chuyến bay tốt nhất theo ngân sách của mình.

Nếu chúng ta không có SQS, thì điều gì đã xảy ra?

Máy chủ web chuyển thông tin đến máy chủ ứng dụng và sau đó máy chủ ứng dụng truy vấn dịch vụ của Hãng hàng không. Nếu máy chủ Ứng dụng gặp sự cố, thì người dùng sẽ mất truy vấn của nó. Một trong những điều tuyệt vời về SQS là dữ liệu được xếp hàng đợi trong SQS ngay cả khi máy chủ ứng dụng gặp sự cố, thông báo trong hàng đợi được đánh dấu là ẩn trong cửa sổ khoảng thời gian chờ. Khi hết thời gian chờ, thông báo sẽ xuất hiện lại trong hàng đợi; thì một thực thể EC2 mới có thể sử dụng thông báo này để thực hiện công việc của nó. Do đó, chúng ta có thể nói rằng SQS loại bỏ sự phụ thuộc của máy chủ ứng dụng.

2. Các loại hàng đợi

Có hai loại Hàng đợi:

  • Hàng đợi Chuẩn (mặc định) – Standard Queues (default)
  • Hàng đợi FIFO (First-In-First-Out)
  • Hàng đợi tiêu chuẩn – Standard Queue
  • SQS cung cấp một hàng đợi tiêu chuẩn làm loại hàng đợi mặc định.
  • Nó cho phép bạn có số lượng giao dịch không giới hạn mỗi giây.
  • Nó đảm bảo rằng một thông điệp được gửi ít nhất một lần. Tuy nhiên, đôi khi, nhiều bản sao của một tin nhắn có thể được gửi không theo yêu cầu.
  • Nó cung cấp cách đặt hàng với nỗ lực cao nhất để đảm bảo rằng các thông điệp nói chung được gửi theo đúng thứ tự khi chúng được gửi nhưng nó không cung cấp một sự đảm bảo.
  • Hàng đợi FIFO
  • Hàng đợi FIFO bổ sung cho Hàng đợi tiêu chuẩn.
  • Nó đảm bảo việc đặt hàng, tức là, đơn hàng mà chúng được gửi đi cũng được nhận theo cùng một thứ tự.
  • Các tính năng quan trọng nhất của hàng đợi là Hàng đợi FIFO và xử lý chính xác một lần, tức là, một thông điệp được gửi một lần và vẫn có sẵn cho đến khi người tiêu dùng xử lý và xóa nó.
  • Hàng đợi FIFO không cho phép các bản sao được đưa vào Hàng đợi.
  • Nó cũng hỗ trợ các nhóm tin nhắn cho phép nhiều nhóm tin nhắn có thứ tự trong một Hàng đợi.
  • Hàng đợi FIFO được giới hạn ở 300 giao dịch mỗi giây nhưng có tất cả các khả năng của hàng đợi tiêu chuẩn.

3. Thời gian chờ hiển thị SQS

  • Thời gian chờ hiển thị là khoảng thời gian mà thư được hiển thị trong Hàng đợi SQS sau khi người đọc nhận thư đó.
  • Nếu công việc đã cung cấp được xử lý trước khi hết thời gian hiển thị, thông báo sau đó sẽ bị xóa khỏi Hàng đợi. Nếu công việc không được xử lý trong thời gian đó, thông báo sẽ hiển thị trở lại và người đọc khác sẽ xử lý nó. Điều này có thể dẫn đến cùng một tin nhắn được gửi hai lần.
  • Thời gian chờ hiển thị mặc định là 30 giây.
  • Thời gian chờ hiển thị có thể được tăng lên nếu nhiệm vụ của bạn mất hơn 30 giây.
  • Thời gian chờ hiển thị tối đa là 12 giờ.

4. Những điểm quan trọng cần nhớ:

  • SQS là dựa trên kéo, không dựa trên đẩy.
  • Tin nhắn có kích thước 256 KB.
  • Tin nhắn được giữ trong hàng đợi từ 1 phút đến 14 ngày.
  • Khoảng thời gian lưu giữ mặc định là 4 ngày.
  • Nó đảm bảo rằng tin nhắn của bạn sẽ được xử lý ít nhất một lần.

(Nguồn cafedev.vn)

]]>
http://crudlife.com/sqs-simple-queue-service-trong-aws/feed/ 0
Auto Scaling AWS http://crudlife.com/auto-scaling-aws/ http://crudlife.com/auto-scaling-aws/#respond Fri, 29 Apr 2022 08:03:08 +0000 http://crudlife.com/?p=293 1. Auto Scaling

Auto Scaling là gì?

Trước tiên chúng ta sẽ cùng tìm hiểu Auto Scaling là gì:

  • Khái niệm cơ bản: Auto Scaling là quy trình tự động add mới (scaling out) hoặc remove (scaling out) EC2 instance dựa trên yêu cầu traffic của application hoặc của hệ thống.
  • AWS định nghĩa về Auto Scaling như sau: Auto Scaling cho phép người dùng có một con số chính xác về số lượng EC2 instance khả dụng để xử lý tải của application. Chúng ta có thể tạo ra một tập collections của các EC2 instance, được gọi là Auto Scaling Group. Người dùng cũng có thể chỉ định được số lượng EC2 instance min của từng Auto Scaling Group, và Auto Scaling sẽ điều chỉnh nhằm đảm bảo số lượng EC2 instace cung cấp cho hệ thống không bao giờ dưới con số này. Ngược lại, người dùng cũng có thể chỉ định số lượng EC2 instance max của từng Auto Scaling Group để đảm bảo số lượng EC2 instance cung cấp cho hệ thống không bao giờ vượt quá con số max. Nếu người dùng muốn chỉ định sức chứa mong muốn, người dùng có thể tạo group ngay tại thời điểm đó hoặc bất kì thời điểm nào sau này, Auto Scale sẽ luôn đảm bảo người dùng có đủ số lượng EC2 instance như mong muốn. Và nếu chúng ta chỉ định các scaling policy, Auto Scale có thể thực hiện launch hoặc terminate các instance dựa trên nhu cầu tăng hay giảm của Application.

2. Auto Scaling Basics:

2.1 Mô hình cơ bản của Auto Scaling

  • Dựa vào traffic demand, ELB sẽ thực hiện cân bằng tải cho hệ thống, nếu tải traffic vượt quá khả năng xử lý của số lượng EC2 instace hiện có, Auto Scaling sẽ thực hiện launch thêm EC2 instance mới. VD: Nếu hệ thống có số lượng EC2 Instance min là 2. Mỗi EC2 instance có thể chịu tải tối đa khi có lượng truy cập là 3 user. Khi hệ thống có 6 user muốn truy cập cùng lúc vào hệ thống, ELB sẽ tự động cân bằng tải bằng cách cho group 3 user truy cập vào 2 EC2 Instane khác nhau Note: Với trường hợp số lượng user truy cập đồng thời là 4 user. ELB cũng sẽ tự động cân bằng tải bằng cách cho group 2 user truy cập vào 2 EC2 Instance cùng lúc. Điều này nhằm đảm bảo server không bị overload và bị crash.
  • Đồng thời cùng sẽ phát sinh case số lượng user muốn truy cập vào hệ thống vượt quá tải EC2 instance có thể chịu được. Khi ấy nếu ELB tiếp tục cho phép các user hiện tại truy cập vào các EC2 Instance hiện có thì sẽ dẫn tới việc bị overload, ảnh hưởng tới performance của toàn bộ hệ thống và nếu tiếp diễn trong một khoảng thời gian nhất định thì toàn bộ hệ thống sẽ bị crash. Impact range sẽ ảnh hưởng tới toàn bộ người dùng truy cập tại thời điểm đó.
  • Khi ấy, Auto Scale sẽ tự động launch thêm một EC2 mới để chịu tải cho các lượt truy cập tăng bất thường.
  • Sau đó, nếu lượng người dùng truy cập vào hệ thống giảm. Auto Scale sẽ tự động terminate các EC2 instance đang không sử dụng để tránh phát sinh chi phí

2.2 Pricing/Cost overview Auto Scale có thể sử dụng FREE, tuy nhiên người dùng sẽ bị charge phí cho Auto Scale Provision (VD bất kì EC2 Instance nào vượt quá Free Tier thì sẽ tính phí Auto Scale Provision)

(Nguồn VIBLO.ASIA)

]]>
http://crudlife.com/auto-scaling-aws/feed/ 0