Bài viết này cho bạn cái nhìn tổng quan về AWS, các services được sử dụng nhiều nhất. Thông qua bài viết bạn sẽ biết thêm vì sao nhiều công ty trên thị trường hiện nay luôn mong muốn ứng viên của mình có kiến thức về nền tảng này.
1. AWS là gì?
- AWS (Amazon Web Services) là một nền tảng được cung cấp bởi công ty Amazon.
- Với AWS bạn chỉ cần tập trung vào giải pháp nâng cao, mà không cần phải quan tâm việc chăm sóc, bảo trì.
- AWS cung cấp các services thuộc nhiều lĩnh vực, theo mô hình "pay-as-you-go", nghĩa là bạn chỉ phải thanh toán cho khoảng thời gian sử dụng dịch vụ.
- AWS đi theo xu hướng CNTT kỹ thuật số, và đưa ra các dịch vụ cần thiết với hiệu suất được tối ưu hóa, bao gồm nhiều loại dịch vụ từ Điện toán đến Lưu trữ.
2. Tại sao cần phải biết về AWS?
- AWS là cung cấp nhiều dịch vụ khác nhau như: lưu trữ, cơ sở dữ liệu,... giúp doanh nghiệp cũng như người dùng xây dựng, triển khai ứng dụng hiệu quả với hiệu suất, được tối ưu hóa và tiết kiệm chi phí.
- Các services tại AWS có bậc miễn phí, để bạn có thể học tập, thực hành triển khai thực tế với tài nguyên có giới hạn.
- Nếu bạn không có skill coding, bạn vẫn có thể học, và sử dụng Cloud Service. Nhưng nếu bạn biết, sẽ giúp bạn làm việc với AWS hiệu quả hơn.
3. Top những service AWS
AWS cung cấp một loạt các services, giúp bạn vận hành hệ thống hiệu quả, an toàn và linh hoạt. Một vài những services AWS thông dụng nhất, mà mọi developer nên biết, để tận dụng tối đa cloud infrastructure của mình như:
- S3 (Simple Storage Service).
- CloudFront.
- EC2 (Elastic Cloud Compute).
- RDS (Relational Database Services).
- IAM (Identity and Access Management).
- EBS (Elastic Block Store).
- Lambda.
- EFS (Elastic File System).
- SNS (Simple Notification Service).
- VPC (Virtual Private Cloud).
- Auto-Scaling.
- SQS (Simple Queue Service).
- Elastic Beanstalk.
- Dynamo DB.
- ElastiCache.
- Cloud Directory.
- Cognito.
- Inspector.
- Aurora.
- S3 Glacier.
- Cloudwatch.
- Firewall Manager.
- KMS (Key Management Service).
- SageMaker.
3.1 AWS S3 (Simple Storage Service)
S3 là dịch vụ lưu trữ với khả năng thay đổi theo quy mô, tính khả dụng của dữ liệu, độ bảo mật và hiệu năng cao. Dữ liệu được lưu trữ trong các "storage classes", dưới dạng objects dễ dàng quản lý.
3.2 AWS CloudFront
- CloudFront là dịch vụ mạng phân phối nội dung (CDN) của AWS, giúp phân phối nội dung toàn cầu với hiệu suất cao, bảo mật và tốc độ truyền tải nhanh, độ trễ thấp.
- CloudFront sử dụng cơ chế định tuyến thông minh để chuyển nội dung đến đích, với việc mã hóa lưu lượng, kiểm soát truy cập, bạn có thể tăng cường bảo mật dữ liệu.
- Ngoài ra, bạn sẽ không phải trả thêm phí truyền dữ liệu khi kết nối với S3 và EC2.
3.3 AWS EC2 (Elastic Cloud Compute)
- EC2 là dịch vụ cung cấp cho bạn một hoặc nhiều máy chủ ảo an toàn, đáng tin cậy.
- EC2 cung cấp các bộ xử lý, hệ thống mạng và lưu trữ phù hợp, cho phép bạn dễ dàng mở rộng hoặc thu hẹp theo nhu cầu.
- Bạn có thể chọn bộ xử lý, hệ điều hành, lưu trữ và mạng phù hợp với nhu cầu. EC2 tính phí dựa trên mức độ sử dụng, hỗ trợ tự động điều chỉnh quy mô và tối ưu hóa cấu hình CPU.
3.4 AWS RDS (Relational Database Services)
- RDS là dịch vụ cơ sở dữ liệu quản lý của AWS dành cho PostgreSQL, MariaDB, MySQL, và Oracle. Bạn có thể dễ dàng thiết lập, vận hành và mở rộng cơ sở dữ liệu trên cloud.
- Dịch vụ này cung cấp hiệu suất cao bằng cách tự động hóa các tác vụ như thiết lập cơ sở hạ tầng, cung cấp phần cứng, vá lỗi và sao lưu.
3.5 AWS IAM (Identity and Access Management)
- IAM là công cụ quản lý quyền truy cập trên toàn bộ AWS, kiểm soát ai có thể truy cập vào những tài nguyên nào.
- IAM cho phép bạn truy cập, và quản lý tài nguyên AWS một cách an toàn, kiểm soát quyền truy cập vào tài nguyên.
- IAM sử dụng kiểm soát truy cập dựa trên thuộc tính (ABAC), cho phép tạo các quyền riêng biệt.
3.6 AWS EBS (Elastic Block Store)
- EBS là dịch vụ lưu trữ của AWS, giúp quản lý các giao dịch an toàn cho mọi loại công việc, từ cơ sở dữ liệu quan hệ đến các ứng dụng doanh nghiệp.
- EBS là loại block storage bền vững và lâu dài, có thể gắn vào các phiên bản EC2 để tăng thêm dung lượng lưu trữ. Khác với ổ đĩa lưu trữ tạm thời của EC2, ổ đĩa EBS rất phù hợp cho dữ liệu quan trọng và dài hạn.
3.7 AWS Lambda
- Lamba là dịch vụ không máy chủ và dựa trên sự kiện của AWS, cho phép bạn chạy mã tự động cho các ứng dụng ảo hoặc dịch vụ backend.
- Lambda có khả năng xử lý hàng trăm -> hàng ngàn khối lượng công việc mỗi một giây.
- Bạn không phải lo lắng về servers cũng như là chi phí, vì bạn chỉ chi trả cho những dịch vụ bạn sử dụng.
3.8 AWS EFS (Elastic File System)
EFS là một hệ thống đơn giản, không cần máy chủ, cho phép bạn tạo, và cấu hình mà không cần triển khai, cài đặt, vá lỗi và bảo trì.
Ngoài ra, bạn không phải trả phí tối thiểu, hay phí thiết lập ban đầu. Bạn chỉ phải trả tiền cho các lưu trữ mà bạn sử dụng như:
- Dành cho lưu lượng đã được cấp phát.
- Tự động mở rộng và thu hẹp theo các tệp thêm vào và các tệp tin bị loại bỏ.
- Truy cập đọc và ghi vào dữ liệu được lưu trữ trong Infrequent Access.
Bạn có thể mở rộng lên đến hàng petabyte mà không cần lo lắng đến hiệu suất của ứng dụng.
3.9 AWS SNS (Simple Notification Service)
- SNS là một dịch vụ web của AWS, giúp dễ dàng thiết lập, vận hành và gửi thông báo từ cloud.
- SNS là dịch vụ nhắn tin giữa Application to Application (A2A), và Application to Person (A2P).
- A2P cho phép nhắn tin nhiều người đến nhiều người, giữa các microservice, cho phép bạn gửi tin nhắn đến khách hàng thông qua SMS, email...
3.10 AWS VPC (Virtual Private Cloud)
- VPC (Virtual Private Cloud) là một tài nguyên cloud độc lập, giúp bạn thiết lập và quản lý một môi trường mạng ảo, và bảo mật trên AWS.
- Cho phép bạn cung cấp một phần tách biệt của AWS Cloud, nơi mà có thể thiết lập một mạng ảo, và khởi chạy các AWS resources.
3.11 AWS Auto-Scaling
- Auto Scaling là một giải pháp lý tưởng cho doanh nghiệp muốn đảm bảo hệ thống, luôn hoạt động hiệu quả, mà không cần bất kỳ sự can thiệp thủ công.
- Auto Scaling sẽ giúp bạn tự động kiểm tra các ứng dụng, và điều chỉnh dựa trên các quy tắc, và ngưỡng bạn đã thiết lập để duy trì hiệu suất ổn định, với chi phí thấp nhất.
- Giúp bạn dễ dàng, nhanh chóng mở rộng ứng dụng, cho nhiều tài nguyên trên các dịch vụ khác nhau chỉ trong vài giây.
3.12 AWS SQS (Simple Queue Service)
- SQS là một dịch vụ mạnh mẽ để bạn lưu trữ, gửi và nhận thông điệp giữa các thành phần, phần mềm thông qua phương pháp thăm dò ở bất kỳ khối lượng nào, mà không mất dữ liệu.
- SQS sử dụng kỹ thuật FIFO (First-In-First-Out) để đảm bảo thông điệp, được xử lý theo thứ tự tuần tự. SQS cho phép tách rời, và mở rộng các microservices.
3.13 AWS Elastic Beanstalk
- Elastic Beanstalk là dịch vụ mạnh mẽ, và tiện lợi cho các develop, để triển khai và mở rộng các ứng dụng web, được phát triển bằng Java, PHP, Python, Docker,... một cách dễ dàng và hiệu quả.
- Bạn không phải lo lắng về việc quản lý cơ sở hạ tầng, chỉ cần tập trung vào phát triển ứng dụng.
3.14 AWS Dynamo DB
- DynamoDB là một cơ sở dữ liệu NoSQL dưới dạng key-value, được thiết kế để chạy các ứng dụng có hiệu suất cao.
- Khả năng xử lý lên đến 10 nghìn tỷ yêu cầu mỗi ngày, và hỗ trợ ngưỡng hơn 20 triệu yêu cầu mỗi giây.
- Là giải pháp lý tưởng cho bạn để tối ưu hóa hiệu suất, và bảo mật cho các ứng dụng của mình.
3.15 AWS ElastiCache
- ElastiCache là dịch vụ in-memory caching, được quản lý hoàn toàn bởi AWS, giúp tăng tốc độ của ứng dụng, và cơ sở dữ liệu bằng cách giảm độ trễ xuống mức cực kỳ nhỏ (microseconds).
- Bạn có thể truy cập dữ liệu từ bộ nhớ đệm với tốc độ cao. Đây là lựa chọn tốt nhất cho trường hợp sử dụng thời gian thực.
- Tương thích với các open-source caching công nghệ như: Redis và Memcached.
3.16 AWS Cloud Directory
- Cloud Directory là khối xây dựng nền tảng, để develop tạo ra các giải pháp, dựa trên thư mục một cách dễ dàng, và không phải lo lắng về việc triển khai, quy mô toàn cầu, tính khả dụng và hiệu suất.
- Tự động mở rộng đến hàng triệu đối tượng, và cung cấp một sơ đồ mở rộng, có thể được chia sẻ với nhiều ứng dụng, bạn chỉ cần định nghĩa sơ đồ, tạo thư mục và bổ sung dữ liệu, bằng cách call API.
3.17 AWS Cognito
- Cognito là dịch vụ cung cấp xác thực, ủy quyền và quản lý người dùng cho các ứng dụng web và di động của bạn.
- Bạn có thể đăng nhập trực tiếp bằng username, password hoặc thông qua bên thứ ba như Facebook, Amazon, Google hoặc Apple.
3.18 AWS Inspector
- Inspector là công cụ hữu ích giúp các tổ chức giảm thiểu rủi ro, bảo mật bằng cách tự động quét, và phát hiện các lỗ hổng phần mềm.
- Sau khi phát hiện các lỗ hổng, Inspector sẽ tạo ra các thông tin mô tả chi tiết về lỗ hổng, xác định tài nguyên bị ảnh hưởng, đánh giá mức độ nghiêm trọng, và hướng dẫn khắc phục.
3.19 AWS Aurora
- Aurora là một hệ quản trị cơ sở dữ liệu quan hệ (RDBMS - Relational Database Management System), được xây dựng trên nền tảng MySQL và PostgreSQL, có khả năng hoạt động nhanh gấp năm lần, so với MySQL thông thường.
- AWS Aurora tự động hóa các tác vụ quan trọng như: thiết lập và sao lưu cơ sở dữ liệu, cung cấp phần cứng và vá lỗi.
3.20 AWS S3 Glacier
- S3 Glacier là một giải pháp tuyệt vời cho việc lưu trữ dữ liệu lâu dài, với chi phí thấp, đảm bảo tính an toàn của dữ liệu, và khả năng truy cập chỉ tính bằng ms.
- Các lớp lưu trữ khác nhau của Glacier, cho phép người dùng lựa chọn phù hợp với nhu cầu sử dụng cụ thể, từ việc cần truy cập nhanh chóng, đến việc lưu trữ dữ liệu theo các quy định nghiêm ngặt.
3.21 AWS Cloudwatch
- Cloudwatch là một dịch vụ giúp giám sát, tổng hợp, phân tích dữ liệu, nguồn tài nguyên chạy trên AWS, cung cấp thông tin một cách realtime, giám sát các vùng nhớ của ứng dụng, cơ sở hạ tầng và dịch vụ ví dụ như: Ram, Disk,...
- CloudWatch có thể nhanh chóng phát hiện, và giải quyết các vấn đề trong môi trường AWS, từ đó cải thiện sự ổn định, và hiệu suất của hệ thống.
- Hỗ trợ việc tối ưu hóa hiệu suất ứng dụng, quản lý sử dụng tài nguyên, và hiểu rõ tình trạng hoạt động của toàn hệ thống.
3.22 AWS Firewall Manager
- Firewall Manager là một công cụ quan trọng đảm bảo bảo mật hệ thống, và dễ dàng quản lý các quy tắc tường lửa, trên môi trường AWS của bạn.
- Firewall Manager còn theo dõi các cuộc tấn công DDoS trên toàn hệ thống, và thực hiện kiểm tra liên tục các tài nguyên.
3.23 AWS KMS (Key Management Service)
- KMS là dịch vụ quản lý khóa mật mã cho phép bạn tạo, quản lý và kiểm soát các khóa mật mã trên ứng dụng, để bảo vệ dữ liệu.
- Tích hợp với > 100 service khác để mã hóa, và kiểm soát quyền truy cập vào khóa giải mã.
3.24 AWS SageMaker
- SageMaker là một công cụ giúp các chuyên gia về khoa học dữ liệu, phân tích dữ liệu một cách hiệu quả.
- Sau khi phân tích, SageMaker tạo ra các báo cáo, và dự đoán để hỗ trợ bạn trong việc đưa ra quyết định.
4. Ưu điểm khi sử dụng AWS
- Dễ dàng mở rộng, hoặc thu hẹp tài nguyên khi nhu cầu thay đổi, giúp tiết kiệm chi phí, và đảm bảo ứng dụng luôn đủ tài nguyên cần thiết.
- Cung cấp cơ sở hạ tầng đáng tin cậy, và an toàn.
- AWS thường xuyên cập nhật, và sao lưu dữ liệu, đảm bảo dữ liệu của bạn không mất mát.
- AWS tuân thủ quy định chuẩn quốc tế, giúp doanh nghiệp đáp ứng các yêu cầu về pháp lý.
- Bạn có thể tối ưu hóa chi phí, thông qua mô hình "pay-as-you-go", khi sử dụng các AWS service.
5. Nhược điểm khi sử dụng AWS
- Đối với người dùng mới, có thể bạn sẽ cảm thấy phức tạp, khó hiểu.
- Nếu ứng dụng của bạn có lưu lượng truy cập cao, hoặc cần chạy nhiều service, AWS sẽ gây tốn kém. Ngoài ra, chi phí có thể sẽ tăng theo thời gian.
- AWS đặt giới hạn mặc định cho các tài nguyên khác nhau giữa các vùng.
- Mặc dù cung cấp nhiều tính năng về bảo mật, việc bảo mật tài nguyên trên AWS vẫn là một thách thức => nên kết hợp triển khai các biện pháp bảo mật.
6. Kết Luận
Thông qua bài viết này bạn sẽ:
- Hiểu được tổng quan về AWS và tầm quan trọng của AWS.
- Hiểu rõ hơn về các dịch vụ AWS cung cấp, được sử dụng nhiều hiện nay.
- Nhận thức được về những ưu điểm của AWS để tận dụng, và khuyết điểm của AWS, để cân nhắc khi sử dụng.
- Dựa vào tổng quan các service AWS mang lại, bạn có thể tận dụng tối đa chúng vào dự án thực tế.
Nếu yêu thích và quan tâm các chủ đề khác về lập trình, bạn hãy thường xuyên theo dõi các bài viết hay về Lập Trình & Dữ Liệu trên 200Lab Blog nhé.
Bài viết liên quan
ELK là gì? So sánh hiệu suất giữa ELK và PLG
Nov 06, 2024 • 9 min read
Docker Best Practices: Tối ưu Dung lượng Docker Image
Oct 30, 2024 • 8 min read
SQL Injection là gì? Những cách phòng ngừa SQL Injection
Oct 25, 2024 • 10 min read
So sánh hiệu suất Query của PostgreSQL và MySQL
Oct 24, 2024 • 9 min read
Ubuntu là gì? Vì sao hệ điều hành Ubuntu phổ biến
Oct 15, 2024 • 14 min read
CI/CD là gì? Lợi ích của việc thành thạo CI/CD trong DevOps
Oct 07, 2024 • 8 min read