blog-blueprint 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/BlueprintTemplate/.editorconfig +17 -0
  2. package/BlueprintTemplate/.gitlab-ci.yml +34 -0
  3. package/BlueprintTemplate/DESIGN.txt +37 -0
  4. package/BlueprintTemplate/README.md +78 -0
  5. package/BlueprintTemplate/angular.json +101 -0
  6. package/BlueprintTemplate/gitignore +42 -0
  7. package/BlueprintTemplate/package.json +58 -0
  8. package/BlueprintTemplate/public/assets/lessons/aws/aws-overview.md +139 -0
  9. package/BlueprintTemplate/public/assets/lessons/core/aws-aurora-guide.md +181 -0
  10. package/BlueprintTemplate/public/assets/lessons/core/aws-dynamodb-guide.md +139 -0
  11. package/BlueprintTemplate/public/assets/lessons/core/aws-ec2-guide.md +152 -0
  12. package/BlueprintTemplate/public/assets/lessons/core/aws-eventbridge-guide.md +152 -0
  13. package/BlueprintTemplate/public/assets/lessons/core/aws-iam-guide.md +132 -0
  14. package/BlueprintTemplate/public/assets/lessons/core/aws-lambda-guide.md +129 -0
  15. package/BlueprintTemplate/public/assets/lessons/core/aws-rds-guide.md +193 -0
  16. package/BlueprintTemplate/public/assets/lessons/core/aws-s3-guide.md +158 -0
  17. package/BlueprintTemplate/public/assets/lessons/core/aws-sns-guide.md +163 -0
  18. package/BlueprintTemplate/public/assets/lessons/core/aws-sqs-guide.md +173 -0
  19. package/BlueprintTemplate/public/assets/lessons/core/aws-vpc-guide.md +145 -0
  20. package/BlueprintTemplate/public/assets/lessons/groups/aws-application-integration-overview.md +194 -0
  21. package/BlueprintTemplate/public/assets/lessons/groups/aws-compute-architecture-overview.md +187 -0
  22. package/BlueprintTemplate/public/assets/lessons/groups/aws-database-architecture.md +104 -0
  23. package/BlueprintTemplate/public/assets/lessons/groups/aws-networking-architecture.md +97 -0
  24. package/BlueprintTemplate/public/assets/lessons/groups/aws-security-architecture.md +88 -0
  25. package/BlueprintTemplate/public/assets/lessons/groups/aws-storage-architecture.md +116 -0
  26. package/BlueprintTemplate/public/assets/lessons/index.json +202 -0
  27. package/BlueprintTemplate/public/assets/lessons/theory/aws-caching-strategy.md +61 -0
  28. package/BlueprintTemplate/public/assets/lessons/theory/aws-disaster-recovery-strategies.md +117 -0
  29. package/BlueprintTemplate/public/assets/lessons/theory/aws-event-driven-architecture.md +77 -0
  30. package/BlueprintTemplate/public/assets/lessons/theory/aws-ha-ft-scalability.md +98 -0
  31. package/BlueprintTemplate/public/assets/lessons/theory/aws-hybrid-cloud.md +82 -0
  32. package/BlueprintTemplate/public/assets/lessons/theory/aws-microservices-vs-monolithic.md +77 -0
  33. package/BlueprintTemplate/public/assets/lessons/theory/aws-well-architected-framework.md +174 -0
  34. package/BlueprintTemplate/public/favicon.ico +0 -0
  35. package/BlueprintTemplate/public/robots.txt +23 -0
  36. package/BlueprintTemplate/public/sitemap.xml +11 -0
  37. package/BlueprintTemplate/src/app/app.config.server.ts +12 -0
  38. package/BlueprintTemplate/src/app/app.config.ts +16 -0
  39. package/BlueprintTemplate/src/app/app.html +36 -0
  40. package/BlueprintTemplate/src/app/app.routes.server.ts +8 -0
  41. package/BlueprintTemplate/src/app/app.routes.ts +11 -0
  42. package/BlueprintTemplate/src/app/app.scss +71 -0
  43. package/BlueprintTemplate/src/app/app.ts +50 -0
  44. package/BlueprintTemplate/src/app/core/models/lesson.model.ts +8 -0
  45. package/BlueprintTemplate/src/app/core/services/lesson.service.ts +46 -0
  46. package/BlueprintTemplate/src/app/core/services/seo.service.ts +68 -0
  47. package/BlueprintTemplate/src/app/features/about/about.html +14 -0
  48. package/BlueprintTemplate/src/app/features/about/about.scss +4 -0
  49. package/BlueprintTemplate/src/app/features/about/about.ts +23 -0
  50. package/BlueprintTemplate/src/app/features/lesson-detail/lesson-detail.html +4 -0
  51. package/BlueprintTemplate/src/app/features/lesson-detail/lesson-detail.scss +0 -0
  52. package/BlueprintTemplate/src/app/features/lesson-detail/lesson-detail.ts +55 -0
  53. package/BlueprintTemplate/src/app/features/lesson-list/lesson-list.html +13 -0
  54. package/BlueprintTemplate/src/app/features/lesson-list/lesson-list.scss +0 -0
  55. package/BlueprintTemplate/src/app/features/lesson-list/lesson-list.ts +59 -0
  56. package/BlueprintTemplate/src/app/shared/facades/event-abstract.facade.ts +18 -0
  57. package/BlueprintTemplate/src/app/shared/facades/pages.facade.ts +55 -0
  58. package/BlueprintTemplate/src/app/shared/utils/common.utils.ts +3 -0
  59. package/BlueprintTemplate/src/index.html +35 -0
  60. package/BlueprintTemplate/src/main.server.ts.bak +7 -0
  61. package/BlueprintTemplate/src/main.ts +6 -0
  62. package/BlueprintTemplate/src/server.ts.bak +68 -0
  63. package/BlueprintTemplate/src/styles.scss +36 -0
  64. package/BlueprintTemplate/tsconfig.app.json +17 -0
  65. package/BlueprintTemplate/tsconfig.json +34 -0
  66. package/README.md +22 -0
  67. package/create.js +92 -0
  68. package/package.json +21 -0
@@ -0,0 +1,173 @@
1
+ # Amazon SQS: Hướng dẫn toàn diện về hàng đợi tin nhắn trên AWS
2
+
3
+ **Amazon SQS (Simple Queue Service)** là dịch vụ quản lý hàng đợi tin nhắn (message queue) trên AWS.
4
+
5
+ Bạn có thể tưởng tượng SQS như một "hộp đựng phiếu" ở siêu thị:
6
+ - Người gửi bỏ phiếu vào hộp (Producer)
7
+ - Người nhận đến lấy phiếu khi rảnh và xử lý (Consumer)
8
+ - Hai bên không cần biết nhau, không phụ thuộc
9
+
10
+ ---
11
+
12
+ ## 1. Khái niệm & Phân loại
13
+
14
+ ### Phân loại
15
+ 1. **Standard Queue**
16
+ - Throughput rất cao
17
+ - Không đảm bảo thứ tự
18
+ - “At-least-once delivery” (có thể trùng message)
19
+ 2. **FIFO Queue**
20
+ - Giữ đúng thứ tự gửi
21
+ - “Exactly-once processing”
22
+ - Throughput thấp hơn Standard Queue nhưng có trật tự
23
+
24
+ ---
25
+
26
+ ## 2. Thành phần chính
27
+
28
+ | Thành phần | Mô tả |
29
+ |------------|-------|
30
+ | Queue | Nơi lưu message |
31
+ | Message | Dữ liệu gửi (tối đa 256KB) |
32
+ | Producer | Tạo và gửi message |
33
+ | Consumer | Lấy message và xử lý |
34
+ | Visibility Timeout | Thời gian message tạm bị ẩn để consumer xử lý |
35
+ | Dead-Letter Queue (DLQ) | Chứa message lỗi quá số lần xử lý cho phép |
36
+ | Message Retention | Thời gian lưu message (1 phút → 14 ngày) |
37
+ | Long Polling | Giảm chi phí & tăng hiệu quả lấy message |
38
+
39
+ ---
40
+
41
+ ## 3. SQS dùng để làm gì?
42
+
43
+ ### Giải quyết vấn đề
44
+ - Tách rời (decoupling) giữa các services → microservices bền vững hơn
45
+ - Xử lý không đồng bộ: hệ thống bận → message vẫn an toàn trong queue
46
+ - Không mất dữ liệu khi hạ tầng bị lỗi
47
+ - Ổn định tải (buffer) khi có spike traffic
48
+
49
+ ### Khi nên dùng
50
+ - Khi cần buffer giữa các service
51
+ - Khi workload không cần xử lý ngay lập tức
52
+ - Khi cần tự động retry message lỗi
53
+ - Khi cần đảm bảo thứ tự xử lý → FIFO Queue
54
+
55
+ ### Khi không nên dùng
56
+ - Cần push notification → dùng SNS
57
+ - Pub/sub nhiều subscriber → SNS hoặc EventBridge
58
+ - Real-time streaming → dùng Kinesis
59
+ - Workflow có logic điều hướng → dùng Step Functions
60
+
61
+ ---
62
+
63
+ ## 4. Ưu & Nhược điểm
64
+
65
+ ### Ưu điểm
66
+ - Đảm bảo message không mất
67
+ - Tách rời producer – consumer
68
+ - Tự động retry bằng DLQ
69
+ - Chi phí thấp
70
+ - Scale gần như vô hạn
71
+ - Dễ tích hợp với Lambda và Auto Scaling
72
+
73
+ ### Nhược điểm
74
+ - Không push, chỉ pull
75
+ - Consumer phải liên tục poll nếu không dùng long polling
76
+ - Không hỗ trợ routing theo rule phức tạp (EventBridge tốt hơn)
77
+ - FIFO throughput thấp hơn Standard Queue
78
+ - Không phù hợp cho real-time
79
+
80
+ ---
81
+
82
+ ## 5. So sánh với các dịch vụ tương tự
83
+
84
+ | Dịch vụ | Dùng khi nào | Khác SQS |
85
+ |---------|--------------|-----------|
86
+ | SNS | Pub/sub, push | SNS không lưu message, không retry như queue |
87
+ | EventBridge | Định tuyến sự kiện theo rule | EventBridge là event bus, SQS là queue |
88
+ | Kinesis | Streaming lớn, analytics | Kinesis có shard, giữ data 1–7 ngày |
89
+ | Kafka (MSK) | Streaming + pub/sub + event log | Kafka phức tạp hơn, SQS đơn giản hơn |
90
+
91
+ **Mẹo thi SAA:**
92
+ - SNS = push, fan-out
93
+ - SQS = pull, queue
94
+ - EventBridge = router
95
+ - Kinesis = streaming
96
+
97
+ ---
98
+
99
+ ## 6. Luồng hoạt động
100
+
101
+ 1. Producer gửi message vào SQS
102
+ 2. SQS lưu message bền vững (durable)
103
+ 3. Consumer poll queue để nhận message
104
+ 4. SQS ẩn message trong thời gian Visibility Timeout
105
+ 5. Consumer xử lý:
106
+ - Nếu thành công → DeleteMessage
107
+ - Nếu lỗi → message hiện lại → retry
108
+ 6. Message retry quá nhiều lần → chuyển vào DLQ
109
+
110
+ ---
111
+
112
+ ## 7. Cách mở rộng (Scalability)
113
+
114
+ - SQS tự động scale, không cấu hình
115
+ - Tạo nhiều consumer (EC2, ECS, Lambda) để xử lý nhanh hơn
116
+ - Dùng Auto Scaling theo metric:
117
+ - ApproximateNumberOfMessagesVisible
118
+ - ApproximateAgeOfOldestMessage
119
+ - Kết hợp SNS → SQS fan-out để lưu nhiều phiên bản message
120
+
121
+ ---
122
+
123
+ ## 8. Cách bảo mật
124
+
125
+ - IAM Policy giới hạn ai được gửi/nhận message
126
+ - Queue Access Policy cho phép cross-account hoặc SNS publish
127
+ - KMS encryption mã hóa message
128
+ - HTTPS cho API call
129
+ - VPC Endpoint để không đi Internet
130
+ - Client-side encryption (hiếm dùng)
131
+
132
+ ---
133
+
134
+ ## 9. SQS tích hợp với các dịch vụ
135
+
136
+ - SNS (fan-out)
137
+ - Lambda (consumer event)
138
+ - ECS / EC2 Auto Scaling
139
+ - CloudWatch Alarm
140
+ - AWS Step Functions
141
+ - S3 events → SNS → SQS
142
+ - EventBridge → SQS (routing)
143
+
144
+ ---
145
+
146
+ ## 10. Kiến trúc thực tế sử dụng SQS
147
+
148
+ 1. **Decoupled Microservices**
149
+ Service A → SQS → Service B
150
+
151
+ 2. **Fan-out Architecture**
152
+ Event → SNS → N SQS queues → multiple consumers
153
+
154
+ 3. **Order Processing (FIFO)**
155
+ Order API → SQS FIFO → Worker
156
+
157
+ 4. **Buffer cho hệ thống tải lớn**
158
+ Website → SQS buffer → Batch processor
159
+
160
+ 5. **Xử lý ảnh/video async**
161
+ S3 upload → Event → SQS → Lambda/EC2 worker
162
+
163
+ ---
164
+
165
+ ## 11. Sự cố thường gặp & cách xử lý
166
+
167
+ | Sự cố | Cách xử lý |
168
+ |-------|------------|
169
+ | Message bị duplicate (Standard Queue) | Dùng FIFO nếu cần exactly-once, Idempotent consumer |
170
+ | Visibility Timeout quá ngắn → message bị xử lý 2 lần | Tăng timeout, dùng ChangeMessageVisibility khi xử lý lâu |
171
+ | Message bị đẩy vào DLQ quá nhanh | Kiểm tra logic xử lý, tăng maxReceiveCount, log chi tiết |
172
+ | Consumer chạy quá chậm | Tăng số lượng consumer, dùng Auto Scaling, long polling |
173
+ | Queue không nhận được message từ SNS | Kiểm tra Queue Policy có cho phép SNS gửi, kiểm tra KMS permission |
@@ -0,0 +1,145 @@
1
+ # Amazon VPC: Hướng dẫn toàn diện về mạng ảo trên AWS
2
+
3
+ **Amazon VPC (Virtual Private Cloud)** là một mạng ảo riêng biệt trên AWS, nơi bạn có toàn quyền kiểm soát cấu hình mạng như địa chỉ IP, subnet, bảng định tuyến, firewall, NAT...
4
+
5
+ Bạn có thể hình dung VPC như một trung tâm dữ liệu riêng trong AWS, tự chia mạng, bảo vệ và kết nối theo ý mình.
6
+
7
+ ---
8
+
9
+ ## 1. Khái niệm & Phân loại
10
+
11
+ - **Default VPC**: AWS tạo sẵn cho mỗi region, cấu hình cơ bản, dùng nhanh, phù hợp test/lab.
12
+ - **Custom VPC**: Tự tạo, tự thiết kế subnet, security, routing, dùng cho production.
13
+
14
+ ---
15
+
16
+ ## 2. Thành phần chính
17
+
18
+ | Thành phần | Mô tả |
19
+ |------------|-------|
20
+ | Subnet | Chia VPC thành các vùng mạng nhỏ hơn (public/private) |
21
+ | Route Table | Bảng định tuyến quyết định gói tin đi đâu |
22
+ | Internet Gateway (IGW) | Kết nối subnet ra internet |
23
+ | NAT Gateway/Instance | Cho private subnet đi ra ngoài internet (1 chiều) |
24
+ | Security Group | Firewall cho instance, kiểm soát inbound/outbound |
25
+ | Network ACL (NACL) | Firewall cho subnet, kiểm soát traffic vào/ra subnet |
26
+ | Elastic IP | Địa chỉ IP tĩnh cho tài nguyên |
27
+ | VPC Peering | Kết nối VPC với nhau |
28
+ | Endpoints | Kết nối private tới dịch vụ AWS mà không cần internet |
29
+
30
+ ---
31
+
32
+ ## 3. VPC dùng để làm gì?
33
+
34
+ ### Mục đích
35
+ - Tạo môi trường mạng riêng, an toàn, triển khai các tài nguyên (EC2, RDS, Lambda) theo nhu cầu bảo mật và kết nối.
36
+
37
+ ### Giải quyết vấn đề
38
+ - Phân tách môi trường (prod/dev/test)
39
+ - Bảo mật (ai được truy cập, subnet nào ra internet)
40
+ - Kết nối với on-premise (VPN, Direct Connect)
41
+
42
+ ### Khi nên dùng
43
+ - Triển khai ứng dụng cần kiểm soát mạng, bảo mật cao
44
+ - Có nhiều tầng (web/app/db) cần subnet riêng
45
+ - Kết nối hybrid/on-premise
46
+
47
+ ### Khi không nên dùng
48
+ - Không cần kiểm soát mạng (dùng dịch vụ fully managed như S3, DynamoDB)
49
+ - Ứng dụng nhỏ, chỉ cần test nhanh
50
+
51
+ ---
52
+
53
+ ## 4. Ưu & Nhược điểm
54
+
55
+ ### Ưu điểm
56
+ - Toàn quyền kiểm soát cấu hình mạng
57
+ - Bảo mật tốt
58
+ - Dễ mở rộng, tích hợp với nhiều dịch vụ
59
+ - Kết nối được với on-premise
60
+
61
+ ### Nhược điểm
62
+ - Cấu hình phức tạp, dễ sai sót (route, security, NACL)
63
+ - Nếu thiết kế kém, dễ tạo lỗ hổng bảo mật
64
+ - Có thể phát sinh chi phí (NAT Gateway, VPN...)
65
+
66
+ ---
67
+
68
+ ## 5. So sánh với dịch vụ tương tự
69
+
70
+ | Dịch vụ | Ưu điểm | Nhược điểm |
71
+ |---------|---------|------------|
72
+ | VPC | Toàn quyền kiểm soát mạng, bảo mật cao | Cấu hình phức tạp, dễ sai sót |
73
+ | AWS PrivateLink | Kết nối private tới dịch vụ AWS, không expose public IP | Chỉ dùng cho một số dịch vụ, không thay thế VPC |
74
+ | Default VPC | Dùng nhanh, không cần cấu hình nhiều | Không phù hợp production, thiếu tùy chỉnh |
75
+ | Public Cloud Shared Network | Đơn giản, nhanh | Không kiểm soát, bảo mật kém |
76
+
77
+ ---
78
+
79
+ ## 6. Luồng hoạt động
80
+
81
+ 1. Khởi tạo VPC (chọn CIDR, tạo subnet)
82
+ 2. Tạo các tài nguyên trong subnet (EC2, RDS...)
83
+ 3. Cấp quyền truy cập (Security Group, NACL)
84
+ 4. Gắn Internet Gateway/NAT Gateway nếu cần kết nối internet
85
+ 5. Thiết lập routing (route table)
86
+ 6. Các tài nguyên hoạt động và giao tiếp theo cấu hình mạng đã tạo
87
+
88
+ ---
89
+
90
+ ## 7. Cách mở rộng
91
+
92
+ - Thêm subnet khi cần mở rộng vùng mạng
93
+ - Tăng CIDR block (thêm secondary CIDR)
94
+ - VPC Peering hoặc Transit Gateway: kết nối nhiều VPC
95
+ - Auto Scaling: tài nguyên trong VPC tự động thêm/bớt
96
+
97
+ ---
98
+
99
+ ## 8. Cách bảo mật
100
+
101
+ - Security Group: Kiểm soát truy cập từng instance
102
+ - NACL: Bảo vệ subnet, block IP bất thường
103
+ - Flow Logs: Ghi lại traffic, phát hiện bất thường
104
+ - Endpoints: Truy cập dịch vụ AWS mà không cần internet
105
+ - Bảo mật kết nối: VPN, Direct Connect dùng mã hóa
106
+ - Không expose tài nguyên ra public subnet khi không cần thiết
107
+
108
+ ---
109
+
110
+ ## 9. Tích hợp với dịch vụ nào
111
+
112
+ - EC2, RDS, ElastiCache, Lambda (in VPC), ECS, EKS
113
+ - Direct Connect, VPN (kết nối on-premise)
114
+ - AWS PrivateLink, VPC Endpoint: truy cập private tới dịch vụ AWS khác
115
+ - CloudFormation: tự động hóa tạo VPC
116
+
117
+ ---
118
+
119
+ ## 10. Kiến trúc thực tế dùng VPC
120
+
121
+ - **3-tier web app**:
122
+ - Public subnet (load balancer)
123
+ - Private subnet (app server, DB)
124
+ - NAT Gateway cho app server ra ngoài
125
+ - Security group phân tách rõ ràng
126
+
127
+ - **Hybrid cloud**: Kết nối VPC với data center qua VPN/Direct Connect
128
+
129
+ - **Multi-VPC**: VPC peering hoặc Transit Gateway để các VPC giao tiếp
130
+
131
+ ---
132
+
133
+ ## 11. Sự cố thường gặp & cách xử lý
134
+
135
+ | Sự cố | Cách xử lý |
136
+ |-------|------------|
137
+ | Không kết nối được internet | Thiếu Internet Gateway, route table chưa đúng, thiếu NAT Gateway cho private subnet |
138
+ | Không ping được giữa các instance | Security group, NACL block traffic |
139
+ | Không truy cập được DB | DB đặt ở private subnet, security group chưa mở port |
140
+ | Route table sai | Gói tin không đi đúng hướng, kiểm tra lại route |
141
+ | CIDR trùng khi peering VPC | Không peering được, cần đổi CIDR |
142
+
143
+ ---
144
+
145
+ VPC là nền tảng mạng quan trọng nhất trên AWS, giúp kiểm soát, bảo vệ và kết nối tài nguyên một cách linh hoạt và an toàn. Khi triển khai, hãy luôn lập sơ đồ, chú ý bảo mật và kiểm tra kỹ các bảng route, security group để tránh lỗi kết nối.
@@ -0,0 +1,194 @@
1
+ # AWS Application Integration – Tổng quan các dịch vụ và mô hình kiến trúc
2
+
3
+ Trong hệ sinh thái AWS, **Application Integration** là nhóm dịch vụ giúp các ứng dụng và microservices **giao tiếp với nhau một cách linh hoạt, mở rộng tốt và giảm phụ thuộc lẫn nhau**.
4
+
5
+ Bài viết này cung cấp:
6
+ - Tổng quan các dịch vụ Application Integration chính trên AWS
7
+ - Giải thích các mô hình kiến trúc thường gặp
8
+ - Gợi ý khi nào nên sử dụng từng dịch vụ
9
+
10
+ ---
11
+
12
+ ## 1. Các dịch vụ Application Integration chính
13
+
14
+ ### Amazon SQS (Simple Queue Service)
15
+
16
+ Amazon SQS là dịch vụ **hàng đợi tin nhắn** được quản lý hoàn toàn bởi AWS.
17
+ Một thành phần (producer) gửi message vào queue, các thành phần khác (consumer) sẽ lấy message ra xử lý khi sẵn sàng.
18
+
19
+ Điểm quan trọng là producer và consumer **không cần hoạt động cùng thời điểm**, giúp hệ thống tách biệt và ổn định hơn.
20
+
21
+ **Đặc điểm chính:**
22
+ - Fully managed queue
23
+ - Giúp decouple các microservices
24
+ - Message được lưu trữ tạm thời
25
+ - Consumer xử lý theo tốc độ riêng
26
+ - Hỗ trợ hai loại queue: Standard và FIFO
27
+
28
+ ---
29
+
30
+ ### Amazon SNS (Simple Notification Service)
31
+
32
+ Amazon SNS là dịch vụ **publish/subscribe**.
33
+ Khi một sự kiện xảy ra, SNS publish message và **nhiều subscriber có thể nhận cùng lúc**.
34
+
35
+ SNS phù hợp khi bạn cần gửi cùng một thông tin đến nhiều hệ thống khác nhau.
36
+
37
+ **Đặc điểm chính:**
38
+ - Mô hình Pub/Sub
39
+ - Push-based
40
+ - Tích hợp Lambda, SQS, Email, HTTP endpoint
41
+ - Thường dùng cho mô hình fan-out
42
+
43
+ ---
44
+
45
+ ### Amazon EventBridge
46
+
47
+ EventBridge là dịch vụ **phân phối và định tuyến sự kiện**.
48
+ Nó nhận events từ:
49
+ - AWS services
50
+ - Ứng dụng SaaS
51
+ - Custom application events
52
+
53
+ Sau đó route các event này đến đúng target dựa trên rule và điều kiện lọc.
54
+
55
+ **Đặc điểm chính:**
56
+ - Event bus trung tâm
57
+ - Rule-based routing
58
+ - Hỗ trợ event filtering
59
+ - Kết nối nhiều ứng dụng rời rạc
60
+ - Serverless
61
+
62
+ ---
63
+
64
+ ### AWS Step Functions
65
+
66
+ AWS Step Functions dùng để **điều phối workflow** giữa nhiều bước xử lý khác nhau.
67
+ Bạn định nghĩa luồng xử lý dưới dạng **state machine**, AWS sẽ đảm nhiệm việc thực thi theo đúng thứ tự.
68
+
69
+ Điều này giúp tách logic workflow ra khỏi code nghiệp vụ.
70
+
71
+ **Đặc điểm chính:**
72
+ - Orchestration
73
+ - State machine
74
+ - Hỗ trợ retry, catch, parallel
75
+ - Kết hợp Lambda, ECS, Glue
76
+ - Dễ quan sát và debug
77
+
78
+ ---
79
+
80
+ ### Amazon Kinesis (Tổng quan)
81
+
82
+ Amazon Kinesis là nhóm dịch vụ dùng cho **xử lý dữ liệu streaming thời gian thực**, ví dụ:
83
+ - Log hệ thống
84
+ - Clickstream
85
+ - Dữ liệu IoT
86
+
87
+ **Đặc điểm chính:**
88
+ - Real-time data streams
89
+ - Gồm Kinesis Data Streams, Firehose, Analytics
90
+ - Phù hợp cho big data pipeline và analytics
91
+
92
+ ---
93
+
94
+ ## 2. Các mô hình và khái niệm kiến trúc quan trọng
95
+
96
+ ### Event-driven Architecture
97
+
98
+ Trong kiến trúc event-driven:
99
+ - Các hệ thống không gọi trực tiếp nhau
100
+ - Thay vào đó phát ra event
101
+ - Thành phần nào quan tâm sẽ tự xử lý
102
+
103
+ Cách tiếp cận này giúp hệ thống linh hoạt và dễ mở rộng.
104
+
105
+ **Đặc điểm:**
106
+ - Loose coupling
107
+ - Scalability tốt
108
+ - Ít phụ thuộc thời gian thực
109
+ - Thường dùng với SNS, SQS, EventBridge
110
+
111
+ ---
112
+
113
+ ### Fan-out Model
114
+
115
+ Fan-out là mô hình:
116
+ - Một event
117
+ - Được gửi đến nhiều consumer để xử lý song song
118
+
119
+ **Ví dụ phổ biến:**
120
+ - SNS nhận event
121
+ - SNS gửi message đến nhiều SQS queues
122
+ - Mỗi queue xử lý một nhiệm vụ riêng
123
+
124
+ **Lợi ích:**
125
+ - Parallel processing
126
+ - Các consumer không ảnh hưởng nhau
127
+ - Tăng throughput hệ thống
128
+
129
+ ---
130
+
131
+ ### SQS: FIFO Queue vs Standard Queue
132
+
133
+ #### Standard Queue
134
+ - Không đảm bảo thứ tự message
135
+ - Throughput rất cao
136
+ - Có thể có duplicate message
137
+
138
+ Phù hợp khi **thứ tự xử lý không quan trọng**.
139
+
140
+ ---
141
+
142
+ #### FIFO Queue
143
+ - Đảm bảo đúng thứ tự gửi – nhận
144
+ - Không bị duplicate
145
+ - Throughput giới hạn (~3,000 message/giây)
146
+
147
+ Phù hợp cho:
148
+ - Thanh toán
149
+ - Xử lý đơn hàng
150
+ - Các nghiệp vụ cần đảm bảo thứ tự
151
+
152
+ ---
153
+
154
+ ### Choreography vs Orchestration
155
+
156
+ #### Choreography
157
+
158
+ Trong mô hình choreography:
159
+ - Mỗi service tự lắng nghe event
160
+ - Tự quyết định hành động cần làm
161
+ - Không có trung tâm điều phối
162
+
163
+ Phù hợp với hệ thống microservices lớn, phân tán.
164
+
165
+ **Thường dùng:** EventBridge, SNS, SQS
166
+
167
+ ---
168
+
169
+ #### Orchestration
170
+
171
+ Trong mô hình orchestration:
172
+ - Có một thành phần trung tâm điều phối luồng xử lý
173
+ - Thứ tự các bước được định nghĩa rõ ràng
174
+ - Dễ theo dõi, retry và xử lý lỗi
175
+
176
+ Trên AWS, **Step Functions là dịch vụ orchestration chính**.
177
+
178
+ ---
179
+
180
+ ## 3. Tổng kết
181
+
182
+ Nhóm dịch vụ Application Integration giúp bạn:
183
+ - Kết nối các hệ thống một cách lỏng lẻo
184
+ - Thiết kế kiến trúc event-driven và serverless
185
+ - Mở rộng hệ thống mà không làm phức tạp code
186
+
187
+ **Ghi nhớ nhanh:**
188
+ - SQS: queue và decouple services
189
+ - SNS: publish/subscribe và fan-out
190
+ - EventBridge: event routing và integration
191
+ - Step Functions: workflow orchestration
192
+ - Kinesis: xử lý dữ liệu streaming thời gian thực
193
+
194
+ Nắm vững các dịch vụ này là nền tảng quan trọng để thiết kế hệ thống hiện đại trên AWS.
@@ -0,0 +1,187 @@
1
+ # AWS Compute Architecture – Tổng quan các dịch vụ và cách lựa chọn
2
+
3
+ Trong AWS, **Compute Architecture** là tập hợp các dịch vụ dùng để chạy ứng dụng, xử lý logic và mở rộng hệ thống theo nhu cầu.
4
+ Việc hiểu rõ từng dịch vụ và biết khi nào nên dùng dịch vụ nào là nền tảng quan trọng để thiết kế kiến trúc hiệu quả, tối ưu chi phí và dễ vận hành.
5
+
6
+ Bài viết này cung cấp:
7
+ - Tổng quan các dịch vụ compute phổ biến trên AWS
8
+ - Vai trò của load balancing và auto scaling
9
+ - Hướng dẫn lựa chọn dịch vụ phù hợp theo từng loại workload
10
+
11
+ ---
12
+
13
+ ## 1. Các dịch vụ Compute chính trên AWS
14
+
15
+ ### Amazon EC2 (Elastic Compute Cloud)
16
+
17
+ Amazon EC2 là **máy chủ ảo truyền thống** trên AWS.
18
+ Bạn có toàn quyền kiểm soát hệ điều hành và môi trường chạy ứng dụng, từ cài đặt phần mềm cho đến cấu hình mạng và bảo mật.
19
+
20
+ **Đặc điểm chính:**
21
+ - Toàn quyền kiểm soát OS
22
+ - Phù hợp với workload chạy lâu dài, ổn định
23
+ - Dùng khi cần custom networking, driver hoặc phần mềm đặc thù
24
+ - Tính phí theo thời gian chạy (On-Demand, Reserved, Spot)
25
+ - Mở rộng bằng Auto Scaling Group
26
+
27
+ ---
28
+
29
+ ### Application Load Balancer (ALB) & Network Load Balancer (NLB)
30
+
31
+ Load Balancer có nhiệm vụ **phân phối traffic** đến nhiều backend server để tránh quá tải và tăng độ sẵn sàng.
32
+
33
+ #### Application Load Balancer (ALB)
34
+ - Hoạt động ở Layer 7 (HTTP/HTTPS)
35
+ - Hỗ trợ routing theo path và host
36
+ - Phù hợp cho web application và microservices
37
+
38
+ #### Network Load Balancer (NLB)
39
+ - Hoạt động ở Layer 4 (TCP)
40
+ - Hiệu năng rất cao, độ trễ thấp
41
+ - Phù hợp cho hệ thống traffic lớn, tài chính, gaming, IoT
42
+
43
+ ---
44
+
45
+ ### Auto Scaling Group (ASG)
46
+
47
+ Auto Scaling Group giúp hệ thống **tự động tăng hoặc giảm số lượng EC2 instance** dựa trên tải thực tế.
48
+
49
+ **Đặc điểm chính:**
50
+ - Scale out khi CPU hoặc traffic tăng
51
+ - Scale in khi tải giảm
52
+ - Kết hợp với ALB để health check
53
+ - Giúp tối ưu chi phí và tăng tính sẵn sàng
54
+ - Thường dùng cùng CloudWatch alarms
55
+
56
+ ---
57
+
58
+ ### Amazon ECS & AWS Fargate
59
+
60
+ #### Amazon ECS (EC2 mode)
61
+ ECS là dịch vụ điều phối container.
62
+ Ở chế độ EC2, bạn **tự quản lý các EC2 instance** chạy container.
63
+
64
+ **Phù hợp khi:**
65
+ - Muốn tối ưu chi phí (Spot EC2)
66
+ - Cần custom AMI, daemon hoặc monitoring đặc biệt
67
+ - Cần kiểm soát hạ tầng chi tiết
68
+
69
+ ---
70
+
71
+ #### AWS Fargate
72
+ Fargate cho phép chạy container **mà không cần quản lý server**.
73
+ Bạn chỉ định CPU và RAM, AWS lo toàn bộ phần hạ tầng.
74
+
75
+ **Đặc điểm chính:**
76
+ - Serverless container
77
+ - Không cần quản lý EC2
78
+ - Triển khai nhanh, dễ vận hành
79
+ - Trả tiền theo CPU/RAM sử dụng
80
+
81
+ > ECS (EC2 mode) và Fargate dùng chung **ECS Task Definition**, chỉ khác cách vận hành hạ tầng.
82
+
83
+ ---
84
+
85
+ ### AWS Lambda
86
+
87
+ AWS Lambda cho phép chạy code dưới dạng **function serverless**.
88
+ Bạn chỉ tập trung viết logic, AWS tự động lo scaling và hạ tầng.
89
+
90
+ **Đặc điểm chính:**
91
+ - Event-driven (S3, API Gateway, EventBridge…)
92
+ - Rất tiết kiệm chi phí cho workload không liên tục
93
+ - Thời gian chạy tối đa 15 phút
94
+ - Không phù hợp cho workload dài hoặc CPU nặng
95
+ - Tự động scale gần như không giới hạn
96
+
97
+ ---
98
+
99
+ ### Amazon API Gateway
100
+
101
+ API Gateway đóng vai trò **cổng vào cho API**.
102
+ Client gọi API → API Gateway điều phối request đến Lambda, ECS hoặc EC2.
103
+
104
+ **Đặc điểm chính:**
105
+ - Hỗ trợ REST API, HTTP API, WebSocket
106
+ - Auto scaling
107
+ - Throttling, caching, usage plan
108
+ - Kết hợp rất tốt với Lambda cho kiến trúc serverless
109
+
110
+ ---
111
+
112
+ ### AWS Step Functions
113
+
114
+ Step Functions dùng để **điều phối workflow** giữa nhiều bước xử lý.
115
+
116
+ **Đặc điểm chính:**
117
+ - Workflow orchestration
118
+ - Điều khiển thứ tự thực thi
119
+ - Hỗ trợ retry, parallel steps
120
+ - Phù hợp cho automation, ETL, pipeline
121
+
122
+ ---
123
+
124
+ ## 2. Các quyết định kiến trúc quan trọng
125
+
126
+ ### Khi nào dùng EC2 và khi nào dùng Lambda
127
+
128
+ **Chọn Lambda khi:**
129
+ - Workload theo sự kiện, không liên tục
130
+ - Không muốn quản lý server
131
+ - Cần auto scale nhanh
132
+ - Thời gian chạy ≤ 15 phút
133
+
134
+ **Chọn EC2 khi:**
135
+ - Workload chạy liên tục
136
+ - Cần custom OS, driver, agent
137
+ - CPU/RAM lớn
138
+ - Ứng dụng legacy
139
+
140
+ ---
141
+
142
+ ### Khi nào dùng ECS, Fargate và Lambda
143
+
144
+ - **Lambda**: xử lý logic nhỏ, event-based
145
+ - **Fargate**: chạy container serverless, dễ deploy
146
+ - **ECS (EC2 mode)**: kiểm soát hạ tầng, tối ưu chi phí, workload phức tạp
147
+
148
+ ---
149
+
150
+ ### Khi nào cần Load Balancer
151
+
152
+ Bạn nên dùng Load Balancer khi:
153
+ - Hệ thống có từ 2 server trở lên
154
+ - Cần chia tải request
155
+ - Cần health check backend
156
+ - Yêu cầu high availability
157
+
158
+ **Gợi ý:**
159
+ - ALB cho HTTP/HTTPS
160
+ - NLB cho TCP, traffic lớn
161
+
162
+ ---
163
+
164
+ ### Khi nào cần Auto Scaling
165
+
166
+ Auto Scaling phù hợp khi:
167
+ - Traffic không ổn định
168
+ - CPU/Memory biến động mạnh
169
+ - Muốn tối ưu chi phí
170
+ - Cần tự động phục hồi khi instance gặp sự cố
171
+
172
+ ---
173
+
174
+ ## 3. Tổng kết
175
+
176
+ AWS cung cấp nhiều lựa chọn compute để phù hợp với từng loại ứng dụng và mô hình vận hành.
177
+
178
+ **Tóm tắt nhanh:**
179
+ - EC2: toàn quyền kiểm soát
180
+ - ALB/NLB: chia tải và tăng độ sẵn sàng
181
+ - Auto Scaling: mở rộng linh hoạt
182
+ - ECS/Fargate: container hóa ứng dụng
183
+ - Lambda: serverless function
184
+ - API Gateway: cổng vào API
185
+ - Step Functions: điều phối workflow
186
+
187
+ Việc chọn đúng dịch vụ compute giúp hệ thống **ổn định, mở rộng tốt và tiết kiệm chi phí** ngay từ đầu.