AWS được ra mắt vào năm 2006 với 3 dịch vụ chính: Storage, Compute, Messaging
Hiện nay AWS cung cấp hơn 250 dịch vụ, khiến việc chọn dịch vụ AWS để sử dụng như là đi mua sắm trong siêu thị vậy.
Các dịch vụ AWS có thể bạn chưa từng biết
-
ROBOTMAKER: giúp mô phỏng và kiểm tra khi làm robot
-
IOT CORE: giúp thu thập data khi robot được sử dụng, cập nhật phần mềm và quản lý từ xa
-
GROUND STATION: kết nối dữ liệu từ vệ tinh ngoài trái đất
-
BRAKET: giúp tương tác với máy tính lượng tử
Các dịch vụ AWS giải quyết các vấn đề thực tế
COMPUTE (Máy chủ)
-
ELASTIC COMPUTE CLOUD (EC2): giúp tạo máy chủ ảo trên cloud (chọn OS, memory, computing power)
-
LOAD BALANCING (ELB): giúp tự động phân phối truy cập đến nhiều máy chủ
-
CLOUD WATCH: giúp theo dõi các số liệu, log của các loại dịch vụ
-
AUTO SCALING: giúp tự động tăng, giảm số lượng máy chủ một cách tự động theo các cài đặt như lượng traffic, CPU, … Các số liệu có thể lấy từ cloud watch.
-
ELASTIC BEANSTALK: là một PaaS, cung cấp các cài đặt có sẵn (Node.js, Ruby on Rails), … cho EC2 kèm tự động scale.
-
LIGHTSAIL: giúp deploy một ứng dụng nhanh chóng (WordPress, LAMP, Node.js, Django, …). Bạn sẽ không cần quan tâm đến hạ tầng bên dưới, và ít quản lý cấu hình. Bạn sẽ trả tiền theo giây máy chủ sử dụng (lưu ý là máy chủ ở đây sẽ luôn được chạy).
-
LAMBDA: là FaaS hay serverless computing, giúp bạn tải code lên và chọn các sự kiện để run code đó. Cách này giúp bạn tiết kiệm hơn bởi chỉ trả tiền cho các yêu cầu thực hiện chương trình và thời gian tính toán được sử dụng.
-
SERVERLESS REPO: giúp để tìm các hàm dựng sẵn giúp bạn nhanh chóng dựng chương trình.
-
OUTPOSTS: nếu bạn là công ty có sẵn hạ tầng máy chủ, thì OutPosts giúp bạn chạy aws api trên hạ tầng có sẵn này
-
SNOW: giúp bạn tương tác với AWS từ xa (như bạn là nhà khoa học làm việc ở Bắc cực chẳng hạn)
Docker container trở nên vô cùng phổ biến cho phép ứng dụng có thể nhanh chóng chạy trên nhiều clouds khác nhau (AWS, GCP, Azure)
-
CONTAINER REGISTRY: cho phép bạn tải lên docker image
-
CONTAINER SERVICE: lấy image từ container registry và chạy các container lên. ECS là api giúp start, stop và phân phối các máy EC2 cho các container. Đồng thời cho phép kết nối với những dịch vụ khác như Load Balancer
-
KUBERNETES: giúp chạy công cụ Kubernetes để có nhiều quyền kiểm soát hơn trong việc app được scale như thế nào
-
FARGATE: giúp tự động hóa container, làm nó giống serverless function, có thể tự động phân bổ tài nguyên của EC2
-
APP RUNNER: giúp deploy các container được dựng sẵn lên AWS (đã bao gồm tự động scale)
Chạy một ứng dụng chỉ là một nửa của câu chuyện, nửa còn lại là lưu trữ dữ liệu lên cloud.
FILE STORAGE (Lưu trữ file)
-
SIMPLE STORAGE SERVICE (S3): giúp lưu trữ các loại file hay object (image, video, document, …).
-
GLACIER: (tương tự S3) khi không truy cập dữ liệu thường xuyên, giúp giảm chi phí (thời gian trả file về lâu hơn)
-
BLOCK STORE: (tương tự S3) khi muốn truy cập dữ liệu với tốc độ cực nhanh và có thể xử lý nhiều lưu lượng (tự cấu hình bởi lập trình viên)
-
ELASTIC FILE SYSTEM (EFS): hiệu suất cao, được quản lý đầy đủ (giá cao hơn)
DATABASE (Lưu trữ dữ liệu có cấu trúc)
Bên cạnh việc quản lý file, lập trình viên còn cần lưu trữ các loại data có cấu trúc của người dùng.
-
SIMPLEDB: database đơn giản no sql phục vụ mục đích chung chung
-
DYNAMO DB: (document database) dễ dàng scale theo chiều rộng (scales, fast, cheap), không cho phép dữ liệu quan hệ, giới hạn số queries
-
DOCUMENT DB: (document database) nếu bạn quen với MongoDB thì db này tương tự thế
-
ELASTIC SEARCH: giúp bạn xây dựng full-text search engine
-
RDS: (relational database) hỗ trợ nhiều loại database sql như PostgresSQL, MySQL, MariaDB, ORACLE, Microsoft SQL Server, đồng thời hỗ trợ sao lưu (backup), chắp vá (patching) và mở rộng (scale)
-
AURORA: (relational database) độc quyền của aws, tích hợp với các loại PostgresSQL, MySQL và có thể hoạt động tối ưu hơn (5x MySQL) với giá cả tốt hơn. Aurora còn cung cấp lựa chọn serverless giúp dễ dàng scale hơn và bạn chỉ trả phí khi db được sử dụng.
-
NEPTUNE: (graph database) giúp tối ưu hóa các data kết nối như social graph, recommendation engine
-
ELASTICACHE: giúp quản lý cache như redis, memcached với tốc độ đọc cực nhanh
-
TIMESTREAM: (time series database) (ví dụ như giá cổ phiếu) với các hàm dựng sẵn cho time-based queries và các tính năng mở rộng để phân tích
-
QUANTUM LEDGER: cho phép xây dựng các tệp data không thay đổi của các giao dịch crypto (tương tự công nghệ block chain)
ANALYTICS (Phân tích dữ liệu)
-
REDSHIFT: (data warehouse) giúp lưu trữ dữ liệu cần phân tích. Dữ liệu ở warehouse có cấu trúc nên có thể query được.
-
LAKE FORMATION: nơi giúp lưu trữ lượng lớn các dữ liệu phi cấu trúc (dump raw data & file)
-
KINESIS: phân tích data realtime. Kinesis giúp lấy dữ liệu realtime từ hạ tầng của bạn sau đó dựng lên các công cụ business khác.
-
MAP REDUCE: giúp bạn chạy Apache Spark (streaming processing framework). Là một dịch vụ cho phép hoạt động trên tập dữ liệu lớn hiệu quả với thuật toán phân phối đồng thời (parallel distributed algorithm)
(Kafka, Flume, HDFS/S3, Kinesis, Twitter) -> Spark Streaming -> (HDFS, Databases, Dashboards)
-
MSK: giúp bắt đầu sử dụng Apache kafka (là open source có thể sử dụng thay thế kinesis cho việc streaming data)
-
GLUE: serverless, giúp dễ dàng trích xuất, chuyển đổi và load dữ liệu một cách tự động. Có thể kết nối với aurora, Lambda, redshift, s3. Glue studio giúp bạn tạo các jobs mà không cần viết source code.
MACHINE LEARNING (Máy học)
-
DATA EXCHANGE: giúp mua data từ bên thứ ba
-
SAGEMARKER: kết nối data và bắt đầu xây dựng machine learning model với Tensorflow hay Pitorch, giúp chạy trên nhiều lớp giúp machine learning dễ dàng hơn, và cung cấp jupiter notebook để quản lý và kết nối với GPU instance để train machine learning model rồi deploy lên đâu đó để dùng
-
REKOGNITION: model giúp phân tích hình ảnh, đối tượng
-
LEX: giúp xây dụng trong hội thoại và text chatbots
-
DEEP RACER: bạn có thể chơi và học machine learning với một con robot (xe) và deep racer dùng để viết code cho machine learning
DEVELOPER ESSENTIALS (Các dịch vụ lập trình viên cần biết)
-
IAM: Identity & Access Management – bảo mật, giúp tạo các role, quản lý quyền truy cập trên tài khoản ăn
-
Cognito: dịch vụ giúp người dùng log in vào ứng dụng với nhiều phương thức xác thực và quản lý các phiên truy cập của người dùng
-
SIMPLE NOTIFICATION SERVICE: SNS là công cụ giúp gửi thông báo đến người dùng
-
SIMPLE EMAIL SERVICE: SES là công cụ giúp gửi mail
-
CLOUD FORMATION: giúp tạo các templates dựa trên hạ tầng của bạn bằng yml, json cho phép bạn kích hoạt nhiều dịch vụ một cách đơn giản
-
AMPLIFY: cung cấp SDK cho phép kết nối và tương tác với các dịch vụ từ app frontend (web, iOS, android)
-
BUDGETS: tất cả các dịch vụ đều tốn phí, nên hãy sử dụng budgets để đảm bảo bạn không trả quá mức cho phép.
Bài viết được đăng lại từ bài gốc trên blog BeautyOnCode