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,139 @@
1
+ # Amazon DynamoDB: Dịch vụ NoSQL Serverless, mở rộng tự động và hiệu năng cao
2
+
3
+ Amazon DynamoDB là dịch vụ cơ sở dữ liệu **NoSQL** do AWS cung cấp, chạy hoàn toàn trên nền tảng đám mây (serverless). DynamoDB lưu trữ dữ liệu dưới dạng **bảng (table)**, **mục (item)**, và **thuộc tính (attribute)**, giống như bảng tính Excel nhưng mở rộng tới quy mô hàng triệu dòng và truy xuất cực nhanh.
4
+
5
+ ---
6
+
7
+ ## 1. Khái niệm & phân loại
8
+
9
+ - Thuộc nhóm **cơ sở dữ liệu NoSQL** (không quan hệ).
10
+ - Dạng **key-value** và **document** (giống MongoDB, Redis...).
11
+ - Hoàn toàn **managed**: không cần quản lý máy chủ, tự động co giãn.
12
+
13
+ ---
14
+
15
+ ## 2. Thành phần chính
16
+
17
+ - **Table**: Bảng chứa các mục dữ liệu (items).
18
+ - **Item**: Một bản ghi trong bảng (giống 1 dòng).
19
+ - **Attribute**: Trường dữ liệu của mỗi item (giống cột).
20
+ - **Primary Key**: Khóa chính để truy cập nhanh (Partition key hoặc Partition + Sort key).
21
+ - **Secondary Index**: Chỉ mục phụ để tìm kiếm nhanh theo nhiều thuộc tính.
22
+ - **Provisioned/On-demand Capacity**: Cách định lượng tài nguyên đọc/ghi.
23
+ - **Streams**: Luồng sự kiện ghi nhận thay đổi trên bảng.
24
+ - **TTL (Time To Live)**: Tự động xóa dữ liệu hết hạn.
25
+
26
+ ---
27
+
28
+ ## 3. Sử dụng & giải quyết vấn đề
29
+
30
+ ### Dùng để:
31
+ - Lưu trữ dữ liệu truy xuất nhanh, khối lượng lớn, không cần lược đồ cứng nhắc.
32
+ - Ứng dụng web/mobile, game, IoT, hệ thống logs, bảng leaderboard.
33
+
34
+ ### Giải quyết vấn đề:
35
+ - Truy xuất dữ liệu với độ trễ thấp (milliseconds).
36
+ - **Tự động mở rộng** khi lượng truy cập tăng đột biến.
37
+ - Không phải lo bảo trì, vá lỗi, backup vật lý như truyền thống.
38
+
39
+ ### Khi nên dùng:
40
+ - Dữ liệu **linh hoạt, không quan hệ phức tạp**.
41
+ - Truy xuất theo khóa chính hoặc chỉ mục phụ.
42
+ - Ứng dụng yêu cầu **tốc độ và co giãn linh hoạt**.
43
+
44
+ ### Khi không nên dùng:
45
+ - Cần **join nhiều bảng** phức tạp như SQL.
46
+ - Cần **transaction phức tạp** trên nhiều bảng.
47
+ - Dữ liệu liên kết ràng buộc chặt chẽ.
48
+
49
+ ---
50
+
51
+ ## 4. Ưu điểm & nhược điểm
52
+
53
+ **Ưu điểm:**
54
+ - Hiệu năng cao, **latency thấp** (vài milliseconds).
55
+ - **Serverless**, tự động mở rộng, không lo bảo trì.
56
+ - Đáp ứng lượng truy cập cực lớn.
57
+ - Tích hợp sâu với dịch vụ AWS khác (Lambda, API Gateway...).
58
+ - Tính **sẵn sàng và bền vững cao** (dữ liệu nhân bản nhiều AZ).
59
+
60
+ **Nhược điểm:**
61
+ - Không hỗ trợ **join** hoặc truy vấn phức tạp như SQL.
62
+ - Thiết kế bảng ban đầu cần **tư duy truy xuất** rõ ràng, khó thay đổi sau này.
63
+ - Giá thành có thể cao nếu thiết kế chưa tối ưu (provisioned thừa, access pattern không hợp lý).
64
+
65
+ ---
66
+
67
+ ## 5. So sánh với các dịch vụ tương tự
68
+
69
+ | Dịch vụ | Loại dữ liệu | Managed | Hiệu năng | Truy vấn phức tạp | Trường hợp dùng |
70
+ |---------------|-----------------|---------|-----------|-----------------|---------------------------------|
71
+ | DynamoDB | NoSQL (KV, Doc) | Có | Rất cao | Không | Ứng dụng web, IoT, game, logs |
72
+ | RDS (MySQL) | Quan hệ (SQL) | Có | Trung bình| Có | Ứng dụng cần join, transaction |
73
+ | MongoDB Atlas | NoSQL (Document)| Có | Cao | Trung bình | Dữ liệu bán cấu trúc, cần query phức tạp hơn DynamoDB |
74
+ | ElastiCache | NoSQL (Key-value)| Có | Cực cao | Không | Cache, session, leaderboard realtime |
75
+
76
+ ---
77
+
78
+ ## 6. Luồng hoạt động
79
+
80
+ Ví dụ đơn giản:
81
+ 1. App gửi yêu cầu tới AWS SDK/API.
82
+ 2. DynamoDB nhận request, xác thực quyền (IAM).
83
+ 3. DynamoDB truy xuất bảng theo khóa chính hoặc chỉ mục phụ.
84
+ 4. Trả về dữ liệu cho ứng dụng.
85
+
86
+ ---
87
+
88
+ ## 7. Cách mở rộng
89
+
90
+ - **Auto Scaling:** DynamoDB tự động tăng/giảm tài nguyên dựa trên lưu lượng truy cập.
91
+ - **Global Tables:** Đồng bộ dữ liệu đa vùng (multi-region replication).
92
+ - **Streams + Lambda:** Kết hợp xử lý sự kiện mở rộng ngoài DynamoDB.
93
+
94
+ ---
95
+
96
+ ## 8. Cách bảo mật
97
+
98
+ - **IAM Policies:** Kiểm soát truy cập theo user/role.
99
+ - **Encryption at rest:** Dữ liệu mã hóa khi lưu trữ.
100
+ - **Encryption in transit:** Dữ liệu mã hóa khi truyền tải.
101
+ - **VPC Endpoints:** Hạn chế truy cập chỉ từ VPC nội bộ.
102
+ - **Backup & Restore:** Hỗ trợ backup định kỳ và point-in-time restore.
103
+
104
+ ---
105
+
106
+ ## 9. Tích hợp với các dịch vụ AWS khác
107
+
108
+ - **AWS Lambda:** Xử lý sự kiện khi dữ liệu thay đổi (DynamoDB Streams).
109
+ - **API Gateway:** Xây dựng API serverless.
110
+ - **S3:** Đưa dữ liệu ra S3 để phân tích.
111
+ - **Redshift:** Trích xuất dữ liệu để phân tích lớn.
112
+ - **CloudWatch:** Theo dõi logs, cảnh báo.
113
+ - **SNS/SQS:** Thông báo hoặc hàng đợi khi có thay đổi.
114
+
115
+ ---
116
+
117
+ ## 10. Kiến trúc thực tế dùng DynamoDB
118
+
119
+ Ví dụ kiến trúc:
120
+ - Ứng dụng di động gửi request qua API Gateway.
121
+ - Lambda xử lý logic và truy vấn DynamoDB.
122
+ - DynamoDB lưu trữ trạng thái, thông tin user, log.
123
+ - DynamoDB Streams kích hoạt Lambda để xử lý sự kiện (ví dụ: cập nhật index, gửi email).
124
+
125
+ ---
126
+
127
+ ## 11. Sự cố thường gặp & cách xử lý
128
+
129
+ - **Hot Partition:** Truy cập tập trung vào một partition key → phân phối key đều hơn, dùng random suffix.
130
+ - **Provisioned Throughput Exceeded:** Quá giới hạn đọc/ghi → tăng provisioned throughput, bật auto-scaling.
131
+ - **Throttling:** Quá nhiều request cùng lúc → thiết kế retry logic, exponential backoff.
132
+ - **Data Inconsistency (Eventually Consistent):** Đọc dữ liệu chưa cập nhật kịp → dùng strongly consistent read nếu cần dữ liệu mới nhất.
133
+ - **Chi phí cao:** Truy vấn hoặc ghi/lưu trữ không tối ưu → xem lại access pattern, xóa dữ liệu không cần thiết, dùng TTL.
134
+
135
+ ---
136
+
137
+ ## 12. Tóm tắt dễ nhớ
138
+
139
+ > DynamoDB là dịch vụ NoSQL key-value/document của AWS, hoạt động **serverless**, mở rộng tự động, phù hợp cho ứng dụng cần **truy xuất nhanh, dữ liệu lớn**, không cần join phức tạp. Ưu điểm là dễ dùng, hiệu năng cao; nhược điểm là không hỗ trợ truy vấn phức tạp như SQL. Thường kết hợp **Lambda, API Gateway, S3, Redshift**, phù hợp với **web, mobile, game, IoT**.
@@ -0,0 +1,152 @@
1
+ # AWS EC2: Máy chủ ảo linh hoạt, scale dễ dàng và toàn quyền kiểm soát
2
+
3
+ Amazon EC2 (Elastic Compute Cloud) là dịch vụ cung cấp **máy chủ ảo trên đám mây** cho phép bạn thuê theo giờ hoặc theo nhu cầu. Thay vì mua máy tính vật lý, bạn có thể khởi tạo một instance với CPU, RAM, ổ đĩa và mạng, bật/tắt theo nhu cầu, scale lên/xuống và trả tiền theo mức sử dụng.
4
+
5
+ ---
6
+
7
+ ## 1. Khái niệm đơn giản
8
+
9
+ - EC2 = “máy chủ ảo” thuê theo giờ trên AWS.
10
+ - Tương tự một máy tính vật lý nhưng chạy trên đám mây, dễ dàng quản lý, mở rộng, và thanh toán theo nhu cầu.
11
+
12
+ ---
13
+
14
+ ## 2. Phân loại tinh tế
15
+
16
+ ### Theo family / instance types:
17
+ - **General-purpose**: Cân bằng CPU/RAM.
18
+ - **Compute-optimized**: Ưu tiên CPU.
19
+ - **Memory-optimized**: Ưu tiên RAM.
20
+ - **Storage-optimized**: Ưu tiên IOPS/throughput.
21
+ - **GPU**: Hỗ trợ deep learning, HPC.
22
+ - **Graviton (ARM)**: Hiệu năng/cost tối ưu trên chip ARM.
23
+
24
+ ### Theo purchase model:
25
+ - **On-Demand**: Trả theo giờ, linh hoạt.
26
+ - **Reserved / Savings Plans**: Cam kết dài hạn, giá rẻ hơn.
27
+ - **Spot**: Rẻ nhưng có thể bị terminate bất cứ lúc nào.
28
+
29
+ ### Theo storage:
30
+ - **Instance-store**: Tạm thời, mất khi stop/terminate.
31
+ - **EBS (Elastic Block Storage)**: Bền, gắn với instance, hỗ trợ snapshot, resize.
32
+
33
+ ---
34
+
35
+ ## 3. Thành phần chính
36
+
37
+ - **Instance (VM)** + **AMI (Amazon Machine Image)**: mẫu OS + cấu hình.
38
+ - **EBS volumes**: ổ đĩa gắn vào instance.
39
+ - **VPC / Subnet / Security Group / NACL**: mạng & firewall.
40
+ - **Key pair / EC2 Instance Profile (IAM role)**: đăng nhập & quyền truy cập.
41
+ - **Auto Scaling Group (ASG) & ELB**: scale & High Availability.
42
+ - **CloudWatch / Systems Manager**: giám sát & quản lý.
43
+
44
+ ---
45
+
46
+ ## 4. EC2 dùng để làm gì?
47
+
48
+ ### Khi nên dùng:
49
+ - Full control trên OS, cài phần mềm tùy ý.
50
+ - Chạy workload lâu, nền background, database không được managed.
51
+ - Ứng dụng legacy cần VM, GPU/HPC, hoặc workload không phù hợp container/serverless.
52
+
53
+ ### Khi không nên dùng:
54
+ - Nếu muốn **không quản lý server** → cân nhắc Lambda, ECS/EKS, hoặc RDS/Managed DB.
55
+
56
+ ---
57
+
58
+ ## 5. Ưu / nhược điểm
59
+
60
+ **Ưu điểm:**
61
+ - Toàn quyền kiểm soát OS, kernel-level tweaks, custom drivers.
62
+ - Rộng nhất về cấu hình phần cứng (CPU/RAM/IOPS/GPUs).
63
+ - Hỗ trợ nhiều model mua để tối ưu chi phí (Spot/Reserved).
64
+
65
+ **Nhược điểm:**
66
+ - Phải quản lý OS (patch, bảo mật).
67
+ - Scale & availability cần thiết kế (ASG, ELB, multi-AZ).
68
+ - Chi phí có thể cao nếu chạy nhiều instance luôn bật.
69
+
70
+ ---
71
+
72
+ ## 6. So sánh với dịch vụ tương tự
73
+
74
+ | Dịch vụ | Khi dùng phù hợp |
75
+ |---------------|----------------|
76
+ | **Lambda** | Short-lived function, serverless, auto scale, trả tiền theo thực thi |
77
+ | **ECS/EKS** | Container orchestration, có thể chạy trên EC2 hoặc Fargate (serverless) |
78
+ | **Lightsail** | VPS đơn giản, prototype, web nhỏ; EC2 linh hoạt hơn cho production scale |
79
+
80
+ ---
81
+
82
+ ## 7. Luồng hoạt động của một instance
83
+
84
+ 1. Tạo AMI / chọn AMI.
85
+ 2. Launch instance (chọn type, subnet, SG, IAM role, key pair, EBS).
86
+ 3. Boot (kernel loads, cloud-init chạy).
87
+ 4. Connect (SSH / SSM Session Manager).
88
+ 5. Chạy ứng dụng.
89
+ 6. Scale / replace (ASG theo dõi & tự động thay thế).
90
+
91
+ ---
92
+
93
+ ## 8. Cách mở rộng
94
+
95
+ - **Horizontal scaling (recommended)**: ASG + ELB (ALB/NLB), mixed instances + Spot để tối ưu chi phí.
96
+ - **Vertical scaling**: đổi instance type (stop → change type → start) → downtime.
97
+ - **Stateless design**: giữ state ngoài instance (S3 / RDS / EFS / shared caches).
98
+
99
+ ---
100
+
101
+ ## 9. Bảo mật thực tiễn
102
+
103
+ - **Shared responsibility**: AWS bảo vệ hạ tầng; bạn chịu trách nhiệm OS, firewall, IAM, dữ liệu.
104
+ - **Network**: Security Groups + NACL + private subnets, hạn chế public IP.
105
+ - **IAM**: Dùng IAM roles thay access keys.
106
+ - **Access**: Systems Manager Session Manager thay SSH nếu có thể; SSH thì dùng keypair + disable root + giới hạn IP.
107
+ - **Storage encryption**: EBS encryption at rest, snapshot encryption.
108
+ - **Patch & hardening**: SSM Patch Manager, host-based firewall, EDR/IDS, CloudWatch, GuardDuty, Security Hub.
109
+
110
+ ---
111
+
112
+ ## 10. Tích hợp với các dịch vụ AWS khác
113
+
114
+ - **Storage**: EBS / Instance Store / EFS.
115
+ - **Load balancing**: ELB (ALB/NLB).
116
+ - **Scale/HA**: Auto Scaling.
117
+ - **Giám sát & quản lý**: CloudWatch, CloudTrail, SSM.
118
+ - **Storage & database**: S3, RDS, DynamoDB.
119
+ - **Mạng & bảo mật**: VPC, IAM, KMS.
120
+
121
+ ---
122
+
123
+ ## 11. Kiến trúc thực tế (ví dụ 3-tier web app)
124
+
125
+ - **Public subnet**: ALB (người dùng tới đây).
126
+ - **Private subnets**: ASG chứa EC2 (app servers) với launch template (AMI + IAM role + userdata). EBS gắn root; logs → CloudWatch.
127
+ - **Database**: RDS (private subnet).
128
+ - **Shared storage**: S3 / EFS.
129
+ - **Backup & snapshots**: EBS snapshot → S3.
130
+ - Đảm bảo multi-AZ, health checks, auto-replace instances, deploy via CI/CD (AMI baking + blue/green hoặc rolling updates).
131
+
132
+ ---
133
+
134
+ ## 12. Sự cố thường gặp & cách xử lý
135
+
136
+ 1. **Instance không khởi động**: Kiểm tra System Log/Console Output; revert AMI hoặc mount EBS trên instance khác.
137
+ 2. **SSH không vào được**: Kiểm tra SG, NACL, route table, public IP, keypair; dùng SSM nếu có.
138
+ 3. **Disk full (EBS đầy)**: Modify volume, resize filesystem, attach thêm EBS, CloudWatch alert.
139
+ 4. **High CPU/memory**: Scale out via ASG hoặc đổi instance type; kiểm tra runaway process, throttling I/O.
140
+ 5. **Instance bị terminate**: Spot interruption / ASG replace → lưu trạng thái ra S3/RDS, dùng mixed instances + lifecycle hooks.
141
+ 6. **Network issues**: Kiểm tra route table, IGW, NAT gateway, security groups.
142
+ 7. **Snapshot/backup fail**: Kiểm tra permissions, quotas, lock do I/O.
143
+
144
+ ---
145
+
146
+ ## 13. Best practices tóm tắt
147
+
148
+ - Thiết kế **stateless app servers**, giữ state trên RDS/S3/EFS.
149
+ - **AMI baking** + immutable deployments.
150
+ - **ASG + ELB + health checks** → tự động thay thế instance lỗi.
151
+ - **Bảo mật**: least privilege IAM, instance roles, EBS encryption, SSM thay SSH.
152
+ - **Giám sát**: CloudWatch + alarms + centralized logging.
@@ -0,0 +1,152 @@
1
+ # AWS EventBridge: Trung tâm điều phối sự kiện serverless cho ứng dụng hiện đại
2
+
3
+ Amazon EventBridge là một **event bus serverless**, cho phép nhận, lọc và chuyển sự kiện giữa các dịch vụ AWS, SaaS hoặc ứng dụng của bạn mà không cần tích hợp trực tiếp.
4
+
5
+ Hãy tưởng tượng EventBridge như một **trung tâm điều phối sự kiện trong thành phố**:
6
+ - Bạn gửi một thông điệp vào bến xe (event bus)
7
+ - Bến xe có các luật (rules) quyết định ai được nhận
8
+ - Xe buýt (targets) mang sự kiện đến nơi cần đến (Lambda, SQS, Step Functions…)
9
+
10
+ ---
11
+
12
+ ## 1. Khái niệm
13
+
14
+ - EventBridge giúp xây dựng **event-driven architecture**.
15
+ - Tách rời microservices, chuyển đổi trạng thái theo sự kiện, lập lịch cron jobs và tích hợp SaaS.
16
+
17
+ ---
18
+
19
+ ## 2. Phân loại Event Bus
20
+
21
+ - **Default Event Bus**: Có sẵn trong mọi tài khoản, nhận sự kiện từ AWS (EC2, S3, CodePipeline…).
22
+ - **Custom Event Bus**: Tạo bởi bạn, nhận sự kiện từ ứng dụng/microservices.
23
+ - **Partner Event Bus**: Tích hợp với SaaS (Zendesk, Shopify), SaaS gửi sự kiện trực tiếp vào bus của bạn.
24
+
25
+ ---
26
+
27
+ ## 3. Thành phần chính
28
+
29
+ 1. **Event Bus**: Nơi tất cả sự kiện được gửi vào.
30
+ 2. **Rules (luật lọc)**: Xác định khi nào và loại sự kiện nào được kích hoạt, giống bộ lọc email.
31
+ 3. **Targets**: Nơi sự kiện được chuyển đến:
32
+ - Lambda, SQS, SNS, Step Functions, Kinesis Firehose, API Gateway, ECS Tasks, Pipe đến SQS/Kinesis…
33
+ 4. **Event Schema Registry**: Tự động sinh schema sự kiện, dễ tạo code binding.
34
+
35
+ ---
36
+
37
+ ## 4. EventBridge dùng để làm gì?
38
+
39
+ ### Khi nên dùng
40
+ - Xây dựng **hệ thống event-driven**.
41
+ - Bài toán **automation, monitoring**.
42
+ - Tích hợp giữa các microservices.
43
+ - Fan-out: một event → nhiều subscribers.
44
+ - Hệ thống không cần phản hồi real-time (<100ms).
45
+
46
+ ### Khi không nên dùng
47
+ - Cần **latency cực thấp** → dùng Kinesis.
48
+ - Stream dữ liệu lớn liên tục → Kinesis hoặc Kafka.
49
+ - Flow logic phức tạp, nhiều bước tuần tự → Step Functions.
50
+
51
+ ### Giải quyết vấn đề
52
+ | Vấn đề | Giải pháp bằng EventBridge |
53
+ |--------|---------------------------|
54
+ | Microservices tight coupling | Tách rời bằng event bus |
55
+ | Dữ liệu sự kiện không đồng nhất | Rule lọc theo pattern |
56
+ | Tích hợp SaaS phức tạp | Partner Event Bus |
57
+ | Cron jobs không ổn định | EventBridge Scheduler |
58
+
59
+ ---
60
+
61
+ ## 5. Ưu & Nhược điểm
62
+
63
+ **Ưu điểm**
64
+ - Serverless, không quản lý hạ tầng.
65
+ - Gửi và nhận event dễ dàng, lọc theo pattern mạnh mẽ.
66
+ - Hỗ trợ SaaS, retry, DLQ, batch, routing.
67
+ - Cron/scheduler mạnh, tích hợp sâu với AWS.
68
+
69
+ **Nhược điểm**
70
+ - Không dành cho real-time low latency.
71
+ - Không stream dữ liệu throughput lớn.
72
+ - Rule pattern đôi khi khó debug.
73
+ - Chi phí tăng khi event nhiều.
74
+
75
+ ---
76
+
77
+ ## 6. So sánh với các dịch vụ tương tự
78
+
79
+ | So sánh | EventBridge | SNS | SQS | Kinesis |
80
+ |---------|------------|-----|-----|---------|
81
+ | Loại | Event routing | Pub/sub | Message queue | Data stream |
82
+ | Filtering | Mạnh, pattern | Yếu, attribute | Không | Không |
83
+ | Fan-out | Mạnh | Mạnh | Giới hạn | Giới hạn |
84
+ | Message order | Không đảm bảo | Không | FIFO | Có |
85
+ | Latency | ~100ms | ~100ms | ~100ms | <10ms |
86
+ | Use case | Event-driven, decoupling | Notification/pubsub | Buffer messages | Real-time streaming |
87
+
88
+ ---
89
+
90
+ ## 7. Luồng hoạt động
91
+
92
+ 1. Producer gửi sự kiện vào EventBus (EC2, S3, Custom App).
93
+ 2. Rule kiểm tra event pattern: match → kích hoạt target, không match → bỏ qua.
94
+ 3. Event chuyển đến target (Lambda, SQS, SNS, Step Functions…).
95
+ 4. Retry & DLQ nếu lỗi.
96
+
97
+ ---
98
+
99
+ ## 8. Cách mở rộng (Scalability)
100
+
101
+ - EventBridge tự động scale (serverless).
102
+ - Hỗ trợ hàng triệu event/giờ.
103
+ - Batch + retry tự động.
104
+ - Tạo nhiều custom event bus để tách microservice.
105
+
106
+ ---
107
+
108
+ ## 9. Bảo mật (Security)
109
+
110
+ - IAM policy kiểm soát gửi/nhận event.
111
+ - Resource-based policy, encryption in-transit (TLS).
112
+ - Event archiving + replay.
113
+ - Cross-account event sharing qua AWS Organizations.
114
+ - Private event bus trong VPC.
115
+
116
+ ---
117
+
118
+ ## 10. Tích hợp với các dịch vụ
119
+
120
+ - Lambda, SQS, SNS, Step Functions, Kinesis Firehose, API Gateway, ECS/EKS Tasks
121
+ - CloudTrail, Scheduler, S3, EC2, CodePipeline, ECR, GuardDuty, CloudWatch…
122
+
123
+ ---
124
+
125
+ ## 11. Kiến trúc thực tế
126
+
127
+ **Ví dụ eCommerce (microservices)**:
128
+ 1. User tạo order → Order Service gửi event `OrderCreated`.
129
+ 2. EventBridge nhận sự kiện.
130
+ 3. Fan-out đến: Payment Service, Inventory Service, Notification Service, Analytics Service.
131
+ 4. Mỗi service xử lý độc lập, không cần gọi trực tiếp nhau.
132
+ 5. EventBridge đảm bảo retry nếu consumer lỗi.
133
+
134
+ ---
135
+
136
+ ## 12. Sự cố thường gặp & cách xử lý
137
+
138
+ 1. **Rule không nhận được event**
139
+ - Nguyên nhân: Event không match pattern, gửi sai event bus
140
+ - Cách xử lý: Kiểm tra JSON event, dùng Event Pattern Tester, check bus name
141
+
142
+ 2. **Lambda target không được invoke**
143
+ - Nguyên nhân: IAM permission thiếu, concurrency full
144
+ - Fix: Thêm policy `events.amazonaws.com → Lambda invoke`, kiểm tra concurrency limit
145
+
146
+ 3. **Event bị drop**
147
+ - Nguyên nhân: Target error, không có DLQ
148
+ - Fix: Enable DLQ cho rule, kiểm tra CloudWatch Logs
149
+
150
+ 4. **EventBridge Scheduler không chạy**
151
+ - Nguyên nhân: Sai timezone, input payload format
152
+ - Fix: Kiểm tra cron expression, validate JSON input
@@ -0,0 +1,132 @@
1
+ # AWS IAM: Quản lý truy cập và bảo mật tài nguyên AWS hiệu quả
2
+
3
+ **IAM (Identity and Access Management)** là dịch vụ trên AWS dùng để quản lý **người dùng, nhóm người dùng và quyền truy cập tài nguyên AWS**.
4
+ Nói đơn giản: IAM cho phép bạn quyết định “ai” có thể làm “gì” trên “tài nguyên nào” trong AWS.
5
+
6
+ ---
7
+
8
+ ## 1. Khái niệm và phân loại
9
+
10
+ **Phân loại chính:**
11
+ - **IAM User**: Tài khoản người dùng cá nhân (cho từng người).
12
+ - **IAM Group**: Nhóm người dùng, giúp quản lý quyền tập thể.
13
+ - **IAM Role**: Vai trò, cấp quyền tạm thời cho user/service.
14
+ - **IAM Policy**: Bộ quy tắc xác định quyền truy cập (ví dụ: chỉ đọc S3).
15
+ - **IAM Identity Provider**: Kết nối với hệ thống xác thực ngoài (Google, Facebook, SAML...).
16
+
17
+ ---
18
+
19
+ ## 2. Thành phần chính
20
+
21
+ - **User**: Người hoặc ứng dụng.
22
+ - **Group**: Tập hợp user.
23
+ - **Role**: Quyền hạn tạm thời, gán cho user, service, hoặc account khác.
24
+ - **Policy**: Tập hợp các rule/statement cho phép hoặc từ chối các hành động trên tài nguyên.
25
+ - **Identity Provider**: Cho phép xác thực từ hệ thống ngoài.
26
+
27
+ ---
28
+
29
+ ## 3. Mục đích sử dụng
30
+
31
+ ### Dùng để
32
+ - **Kiểm soát truy cập:** Ai được phép làm gì trên dịch vụ/tài nguyên AWS.
33
+ - **Phân quyền chi tiết:** Mỗi người chỉ có quyền cần thiết.
34
+ - **Audit (ghi log):** Xác định ai đã làm gì, lúc nào.
35
+
36
+ ### Giải quyết vấn đề
37
+ - **Bảo mật:** Ngăn truy cập trái phép.
38
+ - **Tách biệt nhiệm vụ:** Nguyên tắc “least privilege” (chỉ cấp quyền tối thiểu).
39
+ - **Quản lý tập trung:** Dễ dàng thêm/xóa user, đổi quyền, audit.
40
+
41
+ ### Khi nên dùng
42
+ - Kiểm soát truy cập tài nguyên AWS chi tiết.
43
+ - Nhiều user hoặc service cần truy cập AWS theo vai trò khác nhau.
44
+
45
+ ### Khi không nên dùng
46
+ - Xác thực user ứng dụng cuối (dùng Amazon Cognito hoặc IdP ngoài).
47
+ - Quản lý user nội bộ công ty không dùng AWS.
48
+
49
+ ---
50
+
51
+ ## 4. Ưu và nhược điểm
52
+
53
+ ### Ưu điểm
54
+ - **Miễn phí:** Không tính phí tạo user, group, role, policy.
55
+ - **Phân quyền chi tiết, linh hoạt.**
56
+ - **Tích hợp sẵn với các dịch vụ AWS.**
57
+ - **Hỗ trợ Audit, MFA, Federation.**
58
+
59
+ ### Nhược điểm
60
+ - **Quản lý phức tạp** nếu có quá nhiều policy, role.
61
+ - Dễ cấu hình sai (over-permission hoặc under-permission).
62
+ - Không dùng cho user cuối ứng dụng.
63
+
64
+ ---
65
+
66
+ ## 5. So sánh với các dịch vụ tương tự
67
+
68
+ | Dịch vụ | Đặc điểm chính | Khi nào dùng |
69
+ |---------|----------------|--------------|
70
+ | **IAM** | Quản lý user/service, phân quyền chi tiết AWS | Quản lý truy cập tài nguyên AWS |
71
+ | **Cognito** | Quản lý user cuối, xác thực OAuth/OpenID/SAML | Xây dựng app cho end-user, đăng nhập web/app |
72
+ | **AWS SSO** | Đăng nhập một lần, tích hợp AD/SAML | Công ty lớn, nhiều AWS account/app |
73
+
74
+ ---
75
+
76
+ ## 6. Luồng hoạt động cơ bản
77
+
78
+ 1. Admin tạo IAM User/Role/Policy.
79
+ 2. Gán policy cho user/role.
80
+ 3. User/role sử dụng Access Key/Secret Key hoặc STS token để truy cập AWS.
81
+ 4. Khi user gửi request, AWS IAM kiểm tra quyền.
82
+ 5. Nếu policy cho phép, request được thực thi; nếu không, request bị từ chối.
83
+
84
+ ---
85
+
86
+ ## 7. Cách mở rộng
87
+
88
+ - Tạo role cho từng service, từng ứng dụng riêng biệt.
89
+ - Sử dụng Policy versioning hoặc Managed Policy để dễ bảo trì.
90
+ - Sử dụng AWS Organizations để quản lý nhiều tài khoản AWS.
91
+
92
+ ---
93
+
94
+ ## 8. Cách bảo mật
95
+
96
+ - **Sử dụng MFA** cho user quan trọng.
97
+ - **Chỉ cấp quyền tối thiểu** (Principle of Least Privilege).
98
+ - **Audit bằng CloudTrail.**
99
+ - Thường xuyên xoát xét các policy cũ.
100
+ - Không dùng **root account** cho thao tác hàng ngày.
101
+
102
+ ---
103
+
104
+ ## 9. Tích hợp với các dịch vụ
105
+
106
+ - Hầu hết dịch vụ AWS: EC2, S3, Lambda, RDS, DynamoDB…
107
+ - CloudTrail (audit), Organizations (multi-account).
108
+ - Các IdP ngoài như Google, Facebook, SAML.
109
+
110
+ ---
111
+
112
+ ## 10. Kiến trúc thực tế
113
+
114
+ **Ví dụ:**
115
+ - Web app chạy trên EC2, truy cập S3: EC2 instance gán IAM Role chỉ cho phép đọc S3 bucket.
116
+ - Lambda function truy cập DynamoDB: Lambda role chỉ cho phép thao tác trên bảng DynamoDB.
117
+ - CI/CD Pipeline: CodeBuild, CodeDeploy, CodePipeline có role riêng, chỉ truy cập tài nguyên cần thiết.
118
+ - Tổ chức lớn: Organizations + SSO + IAM để kiểm soát truy cập đa tài khoản.
119
+
120
+ ---
121
+
122
+ ## 11. Sự cố thường gặp và cách xử lý
123
+
124
+ - **Lỗi PermissionDenied:** Policy thiếu quyền → kiểm tra và bổ sung policy.
125
+ - **Lạm quyền (over-permission):** Ai đó có nhiều quyền hơn cần thiết → audit, thu hẹp quyền.
126
+ - **Quên xóa user/role cũ:** Rò rỉ bảo mật → định kỳ kiểm tra và xóa.
127
+ - **Lộ Access Key:** Khóa key ngay lập tức, rotate key.
128
+
129
+ ---
130
+
131
+ > **Tóm lại:**
132
+ IAM là dịch vụ quản lý truy cập trung tâm của AWS, giúp kiểm soát “ai được làm gì” với tài nguyên AWS, rất mạnh mẽ nhưng cần cẩn trọng khi cấu hình để tránh lỗi bảo mật hoặc thiếu quyền.