Khám phá SiliconPrimeX, hệ thống AI tự phục hồi giúp AWS Glue jobs tự động vá lỗi, phân tích nguyên nhân gốc rễ chỉ trong 10 giây thay vì hàng giờ. Tạm biệt nỗi lo thức khuya!
Bạn có bao giờ giật mình thót tim khi thấy hóa đơn AWS cứ tăng vùn vụt, trong khi bạn cứ nghĩ mình đã "tắt" hết mọi thứ rồi không? ☁️💸 Đừng lo, tôi hiểu cảm giác đó! Và hôm nay, tôi sẽ "bật mí" cho bạn một chiêu cực hay để tự động kiểm soát chi phí AWS, đảm bảo túi tiền của bạn luôn an toàn. Chúng ta sẽ cùng nhau biến hóa bằng cách: Dựng một em Lambda "thông minh" với Boto3, dùng AWS SNS để "gọi" em ấy ra thông báo, thiết lập một "ngân sách" siêu bé chỉ $0.01, và tự động "đá đít" mấy em EC2 đang chạy khi chi phí vượt ngưỡng! Nghe có vẻ phức tạp nhưng đảm bảo dễ hơn ăn kẹo luôn!Đầu tiên, hãy đến với AWS SNS (Simple Notification Service) – dịch vụ gửi thông báo "tức tốc" của AWS. Hãy tưởng tượng nó như một người đưa tin siêu tốc vậy đó!1. Vào giao diện SNS, chọn Topics (Chủ đề).2. Nhấn Create topic (Tạo chủ đề mới).3. Chọn Type: Standard (Loại: Tiêu chuẩn).4. Đặt tên cho chủ đề là BudgetAlertsTopic.5. Nhấn Create topic để hoàn tất.Giờ thì, làm sao để "người đưa tin" này biết báo cho ai?1. Trong tab Subscriptions (Đăng ký) của chủ đề vừa tạo, nhấn Create subscription (Tạo đăng ký mới).2. Chọn Protocol: Email (Giao thức: Email).3. Tại Endpoint (Điểm cuối), nhập địa chỉ email của bạn vào nhé.4. Cuối cùng, hãy kiểm tra hộp thư email của bạn và xác nhận đăng ký. Vậy là mỗi khi có tin báo từ chủ đề này, bạn sẽ nhận được email ngay tắp lự! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fr6nludyqljny61uj9b2n.png' alt='Tạo chủ đề SNS BudgetAlertsTopic'>Giờ thì chúng ta sẽ đặt ra "ngân sách giới hạn" cho AWS của mình. Đơn giản là mình sẽ bảo AWS: "Này, khi nào chi phí của tôi chạm đến con số này thì báo động cho tôi nhé!"1. Vào Billing (Thanh toán) > Budgets (Ngân sách).2. Nhấn Create Budget (Tạo ngân sách mới).3. Chọn Type: Cost Budget (Loại: Ngân sách chi phí).4. Đặt tên cho ngân sách là MyBillingBudget.5. Phần Budget amount (Số tiền ngân sách), hãy mạnh dạn gõ 0.01 đô la nhé (vì chúng ta muốn test ngay lập tức mà!).6. Scope (Phạm vi) chọn All services (Tất cả dịch vụ) để bao quát hết mọi thứ.7. Đến phần Notifications (Thông báo): Threshold (Ngưỡng): Đặt 100% (Tức là khi chi phí đạt đúng 100% của $0.01 thì báo). Send to: Chọn chủ đề SNS mà bạn vừa tạo – BudgetAlertsTopic.8. Cuối cùng, nhấn Create budget để lưu lại. Vậy là bạn đã có một "người gác cổng" tài chính siêu chặt chẽ rồi đấy! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9nk5kkqrja9cxplv9ide.png' alt='Thiết lập ngân sách $0.01 trong AWS'>Để "em" Lambda của chúng ta có quyền năng "dừng" các dịch vụ và "khóa" S3, chúng ta cần cấp cho em ấy một cái "visa đặc biệt" mang tên IAM Role (Vai trò IAM).1. Vào IAM > Roles (Vai trò).2. Nhấn Create Role (Tạo vai trò).3. Phần Use Case (Trường hợp sử dụng), chọn Lambda.4. Tiếp theo, đến phần cấp quyền (Permissions). Chúng ta sẽ tạo một custom policy (chính sách tùy chỉnh) mới. Hãy dán đoạn JSON "quyền năng" này vào nhé:{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ec2:DescribeInstances", "ec2:StopInstances", "s3:ListBucket", "s3:PutPublicAccessBlock" ], "Resource": "*" } ]}Giải thích xíu: Đoạn này cho phép Lambda của chúng ta "nhìn" được các EC2 đang chạy (ec2:DescribeInstances), "dừng" chúng lại (ec2:StopInstances), "liệt kê" các bucket S3 (s3:ListBucket), và "khóa" quyền truy cập công cộng của chúng (s3:PutPublicAccessBlock). "Resource": "*" nghĩa là áp dụng cho tất cả tài nguyên (dù không khuyến khích trong môi trường production, nhưng để demo thì okela nhé!).5. Cuối cùng, đặt tên cho vai trò này là LambdaBillingStopperRole. Xong! Bây giờ em Lambda đã có giấy phép hành nghề rồi!Đây là phần "linh hồn" của cả hệ thống tự động của chúng ta – Lambda function! Lambda là một dịch vụ "serverless" của AWS, nghĩa là bạn chỉ cần viết code, còn việc chạy và quản lý server cứ để AWS lo. Siêu tiện lợi luôn!1. Vào Lambda > Create Function (Tạo hàm mới).2. Đặt tên cho hàm là StopAWSResources.3. Runtime (Môi trường chạy): Chọn Python 3.12.4. Role (Vai trò): Gắn vai trò LambdaBillingStopperRole mà bạn vừa tạo vào nhé.5. Giờ thì đến màn "ma thuật" đây! Hãy dán đoạn mã Python "thần thánh" này vào trình soạn thảo code của Lambda:import boto3def lambda_handler(event, context): ec2 = boto3.client('ec2') s3 = boto3.client('s3') # Dừng tất cả các phiên bản EC2 đang chạy print("Đang tìm và dừng các phiên bản EC2 đang chạy...") instances = ec2.describe_instances(Filters=[{'Name': 'instance-state-name', 'Values': ['running']}]) for reservation in instances['Reservations']: for instance in reservation['Instances']: ec2.stop_instances(InstanceIds=[instance['InstanceId']]) print(f"Đã dừng phiên bản EC2: {instance['InstanceId']}") # Khóa quyền truy cập công cộng của tất cả các S3 bucket print("Đang khóa quyền truy cập công cộng của các S3 bucket...") buckets = s3.list_buckets() for bucket in buckets['Buckets']: try: s3.put_public_access_block( Bucket=bucket['Name'], PublicAccessBlockConfiguration={ 'BlockPublicAcls': True, 'IgnorePublicAcls': True, 'BlockPublicPolicy': True, 'RestrictPublicBuckets': True } ) print(f"Đã khóa quyền truy cập công cộng cho bucket: {bucket['Name']}") except Exception as e: print(f"Không thể khóa quyền truy cập công cộng cho bucket {bucket['Name']}: {e}") return { 'statusCode': 200, 'body': 'EC2 đã dừng và các S3 bucket đã bị khóa quyền truy cập công cộng.' }Giải thích Code: import boto3: Đây là thư viện Python giúp chúng ta "nói chuyện" với các dịch vụ AWS. ec2 = boto3.client('ec2') và s3 = boto3.client('s3'): Khởi tạo "người đại diện" để làm việc với EC2 và S3. Phần dừng EC2: Code sẽ đi "kiểm tra" tất cả các EC2 đang ở trạng thái running (đang chạy), sau đó "ra lệnh" cho chúng dừng lại. Phần khóa S3: Code sẽ "đi vòng quanh" tất cả các S3 bucket của bạn và bật chế độ Public Access Block (Chặn truy cập công cộng) toàn diện. Điều này giúp ngăn chặn việc dữ liệu trong S3 vô tình bị lộ ra ngoài, tránh các chi phí phát sinh không đáng có từ truy cập lạ.6. Sau khi dán xong, nhấn Deploy (Triển khai) để lưu và kích hoạt hàm nhé! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxdh9m7qap8utbvwkny6z.png' alt='Giao diện tạo Lambda Function'> <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9dsg3pa9aa11d21183n8.png' alt='Code Lambda Function được dán vào'>Tuyệt vời! Chúng ta đã có "người gác cổng" (Budget), "người đưa tin" (SNS), và "người hành động" (Lambda). Giờ là lúc kết nối chúng lại với nhau để tạo thành một cỗ máy tự động hoàn chỉnh! Chúng ta sẽ cho SNS biết rằng khi có tin báo từ BudgetAlertsTopic, hãy "kích hoạt" Lambda StopAWSResources nhé.1. Quay lại SNS > Topics > Chọn BudgetAlertsTopic.2. Click Create subscription (Tạo đăng ký mới).3. Protocol (Giao thức): Chọn AWS Lambda.4. Endpoint (Điểm cuối): Chọn hàm StopAWSResources của bạn.Hoặc cách khác, bạn có thể thực hiện từ phía Lambda (thường dễ hơn để quản lý quyền):1. Vào Lambda > Chọn hàm StopAWSResources của bạn.2. Trong tab Permissions (Quyền), nhấn Add trigger (Thêm trình kích hoạt).3. Chọn SNS làm loại trình kích hoạt.4. Tại SNS topic, chọn BudgetAlertsTopic.5. Nhấn Add để hoàn tất.Thế là xong! Bây giờ, mỗi khi ngân sách của bạn chạm ngưỡng $0.01, SNS sẽ gửi thông báo, và ngay lập tức kích hoạt hàm Lambda để "cứu nguy" cho hóa đơn của bạn! <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2olqcuh5hhdztn5uf1l5.png' alt='Kết nối SNS với Lambda'>Và đây là lúc chứng kiến "phép màu" của chúng ta hoạt động! Khi chi phí AWS của bạn vừa chạm ngưỡng $0.01 (hoặc bất kỳ ngưỡng nào bạn đặt), điều kỳ diệu sẽ xảy ra:1. Budget phát hiện chi phí vượt ngưỡng, ngay lập tức gửi cảnh báo.2. Cảnh báo này được gửi đến SNS Topic BudgetAlertsTopic.3. SNS nhận được tin, lập tức "kích hoạt" hàm Lambda StopAWSResources.4. Hàm Lambda được chạy, và BÙM! Tất cả các phiên bản EC2 đang chạy của bạn sẽ tự động "đi ngủ" (stopped), đồng thời các S3 bucket sẽ được "khóa cửa" (block public access).Bạn có thể tự mình kiểm tra để xem mọi thứ hoạt động trơn tru đến mức nào nhé: Vào EC2 Dashboard: Bạn sẽ thấy những phiên bản EC2 đáng lẽ đang chạy giờ đã chuyển sang trạng thái stopped một cách tự động. Tuyệt vời phải không? <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq7113tmppkfmncvqg9ep.png' alt='EC2 instances đã dừng tự động'> Kiểm tra CloudWatch Logs: Để chắc chắn hơn, bạn có thể vào CloudWatch > Log groups, tìm log group của hàm Lambda StopAWSResources. Trong các Log stream gần nhất, bạn sẽ thấy các thông báo mà hàm Lambda đã in ra, xác nhận rằng nó đã thực hiện việc dừng EC2 và khóa S3 thành công. <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc2x0ute96md7fptmeta2.png' alt='Kiểm tra log CloudWatch của Lambda'>Vậy là chúng ta đã hoàn thành xuất sắc nhiệm vụ kiểm soát chi phí AWS một cách tự động rồi đó! Không còn nỗi lo về những hóa đơn bất ngờ nữa. Tự động hóa thật là "chân ái" phải không nào? 💥Hãy cùng chờ đón thêm nhiều bài viết và hướng dẫn triển khai hấp dẫn khác nhé! 🫡🔥
Khám phá hành trình xây dựng game trắc nghiệm AWS đa người chơi, thời gian thực chỉ trong 2 ngày nhờ sự hỗ trợ của Amazon Q CLI. Bài viết chia sẻ các kỹ thuật gợi ý AI thông minh, giải pháp kiến trúc và cách AI tăng tốc phát triển phần mềm.
Khám phá cách tôi sử dụng Amazon Q Developer để tạo ra một công cụ xử lý ảnh mạnh mẽ trên AWS Lambda, tích hợp các tính năng chuyển đổi, bảo mật WAF và hỗ trợ Docker, mà không cần viết một dòng code!
Này bạn ơi! Bạn đã sẵn sàng "giải mã" AWS theo một cách cực kỳ bá đạo, độc đáo chưa? Đây chính là bài dự thi cực "cháy" của tớ cho thử thách "Quack The Code" do Amazon Q Developer tổ chức đó – một hành trình khám phá những điều tưởng chừng không thể! Các bạn có thể tìm hiểu thêm về thử thách thú vị này tại Amazon Q Developer "Quack The Code" Challenge (https://dev.to/challenges/aws-amazon-q-v2025-04-30). Bạn có biết tớ đã "xây" cái gì không? Tưởng tượng thế này: Bạn có cả một "thành phố" các dịch vụ AWS phức tạp và rắc rối. Thay vì chỉ nhìn mấy dòng code hay biểu đồ khô khan muốn... "ngủ gật", giờ đây bạn có thể biến chúng thành một mô hình 3D sống động, cực kỳ "vui nhộn" ngay trong Blender! Nghe có vẻ điên rồ đúng không? Nhưng tớ đã làm được đấy, với sự trợ giúp đắc lực của "kiến trúc sư AI" Amazon Q Developer. <img src='https://truyentranh.letranglan.top/api/v1/proxy?url=https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F91c3m29syp7qsjtgcqw5.png' alt='Mô hình 3D hạ tầng AWS được tạo ra từ Amazon Q và Blender'> Xem "thành quả" thôi nào! (Hình ảnh phía trên chính là minh chứng trực quan nhất cho "thành quả" của tớ đó!) "Công thức" bí mật nằm ở đâu? Bạn có thể tìm thấy toàn bộ "công thức" và mã nguồn "ảo diệu" này tại đây: https://github.com/ddanieli/aws-to-blender. Đừng ngại ngần mà "đào bới" và khám phá nhé! Amazon Q Developer đã giúp tớ "phù phép" thế nào? Đây mới là phần "ma thuật" nhất này! Để biến những đám mây AWS khô khan thành mô hình 3D lung linh, tớ đã "nhờ vả" Amazon Q Developer làm mấy bước sau, cứ như có một "phù thủy công nghệ" bên cạnh vậy: * **Thăm dò "địa hình" AWS:** Đầu tiên, Amazon Q đóng vai trò như một "thám tử" siêu hạng, dùng "công cụ thám hiểm" `use_aws` để "điều tra" toàn bộ hạ tầng AWS của bạn. Nó giống như một kiến trúc sư đang khảo sát công trình vậy, xem có những "tòa nhà" nào (dịch vụ như EC2, S3), "đường sá" nào (kết nối giữa chúng) đang hoạt động và liên kết với nhau ra sao. Nó thu thập mọi thông tin chi tiết nhất để có cái nhìn toàn cảnh về "vương quốc" AWS của bạn. * **Lên "bản vẽ" sơ bộ 3D:** Sau khi thăm dò xong, Amazon Q không chỉ dừng lại ở việc thu thập dữ liệu đâu nhé! Nó sẽ tự động "lên kế hoạch" để hình dung ra hạ tầng đó trong không gian 3D. Đây là lúc AI "tư duy" xem làm thế nào để "vẽ" chúng lên một cách hợp lý, dễ nhìn và trực quan nhất. Nó sắp xếp các dịch vụ, quyết định vị trí, kích thước, và cách chúng "giao tiếp" với nhau để tạo thành một "bản đồ" ba chiều hoàn chỉnh. * **Biến "ý tưởng" thành "hiện thực" lung linh:** Cuối cùng, Amazon Q sẽ "hợp tác" ăn ý với server `blender-mcp` và ứng dụng Blender. Nó "ra lệnh" cho Blender, biến những dữ liệu đã thu thập và kế hoạch đã vạch ra thành một mô hình 3D sống động ngay trên màn hình của bạn! Tưởng tượng từ một "bản đồ phẳng" giờ đây đã thành một "thành phố" thu nhỏ mà bạn có thể "bay lượn" khám phá, xoay ngang xoay dọc, nhìn từ mọi góc độ. Thật tuyệt vời khi thấy công nghệ có thể biến những thứ phức tạp thành trực quan, dễ hiểu và thú vị đến nhường này, phải không nào? Hy vọng bài viết này truyền cảm hứng cho bạn để "quậy phá" với AWS và Blender nhé!
Học cách tự code game Flappy Bird huyền thoại bằng Python và Pygame, với sự trợ giúp đắc lực từ AI Amazon Q. Bài viết chia sẻ hành trình từ một người mới bắt đầu đến khi game chạy bon bon, cùng với các bước chuẩn bị, cài đặt và cấu trúc code cơ bản. Khám phá cách AI hỗ trợ giải quyết các vấn đề lập trình và làm cho quá trình học thú vị hơn.