1. **FUNDAMENTALS**
1.1. AWS REGION
1.1.1. Region: đại diện nơ lưu trữ resource của AWS Có nhiều region khác nhau trên cùng 1 tài khoản AWS
1.1.2. AZ: Region chia thành các AZ, có từ 2-6AZs. Thương sử dụng 3AZ (2AZ hoạt động, 1 là dùng cho DR) AZ ở một resgion sẽ được đặt ở những nơi khác nhau để đảm bảo an toàn dữ liệu.
1.2. EC2
1.2.1. EC2: là một máy ảo thuộc cloud AWS, được đi kèm bởi: Thư mục gốc mặc định là EBS Khả năng mở rộng do ASG Khả năng truy cập do ELB
1.2.2. Security Group (SG): có thể coi như firewall để quản lý truy cập ra vào của EC2. SG có thể dính kèm vào nhiều instance. SG chỉ khả dụng ở 1 VPC/region Nên sử dụng 1 SG riêng cho việc SSH hoặc remote Nếu kết nối đến instance bị timeout thì khả năng sẽ do SG măc định: inbound sẽ bị block và mở toàn bộ out-bound SG có thể tiếp nhận kết nối từ SG khác. Có thể sử dụng SG như những IP mở kết nối bình thường
1.2.3. Elastic IP: IP cố định cho pubic IP của instance. Nếu không sủ dụng elastic IP thì public IP sẽ thay đổi mỗi khi khởi động lại server Chỉ có 5 Elastic IP
1.2.4. EC2 userdata: Chỉ khởi chạy lần đầu tiên khi tạo instance, sẽ chạy với quyền root.
1.2.5. EC2 instance launch type:
1.2.5.1. On demand instance: sử dụng cho công việc ngắn, đã biết trước về giá
1.2.5.1.1. Thanh toán khi sử dụng, được tính tiền theo giây, ngay sau phút đầu tiền Giá tiền cao, nhưng không phải trả tiền trước nên dùng cho những không việc ngắn và việc không bị ngắt quãng (không thể dự đoán trước công việc)
1.2.5.2. Spot instance: sử dụng cho công việc ngắn, giá rẻ, có thể bất dữ liệu trong khi instance đang chạy
1.2.5.2.1. - Giá thấp hơn 90% so với on-demand. - Nên sử dụng cho những công việc đơn giản, không bị ảnh hưởng bởi sự cố, vì instance có thể bị dùng khi giá thanh toán cao hơn s với giá đã thanh toán - Không nên sử dụng cho những công việc quan trọng như dB - kết hợp tốt: Reserved cho performance + On-demand/spot instance cho thời gian sử dụng
1.2.5.3. Dedicate instance: Không chia sẻ HW
1.2.5.4. Dedicates host: yêu cầu một server vật lý riêng, kiểm soát được nơi đặt instance
1.2.5.4.1. - Server vật lý. - có thể kiểm soát vị trí đặt server - phân bố những dịch vụ cơ bản của cho HW - yêu cầu phải sử dụng 3 năm - sử dụn cho những ứng dụng yêu cầu đặc biệt về phần cứng.
1.2.5.4.2. nstance chạy trên HW với 1 account, có thể chia sẻ HW với instance khác với cùng 1 account. Không thể kiểm soát nơi đặt server Cung cấp thanh toán cho mỗi dịch vụ
1.2.5.5. Reverved: Sử dụng theo lượng thời gian đã biết trước (tối thiểu 1 năm). Các kiểu Revered: - Reserved instance: dùng cho công việc lâu dài - converible reserved instance: sử dụng cho công việc lâu dài và linh động kiểu instance. - Schedule reserved instance: sử dụng cho thời gian dài với lịch trình cố định.
1.2.5.5.1. - Rẻ hơn đến 75% so vơí on-demand - Phải trả trước một thời gian nhất định (nên sủ dụng thời gian dài) - Thời gian sử dụng từ 1 đến 3 năm. - Sử dụng cho những ứng dụng ổn định như DB - Converible: instance type có thể thay đổi. Giảm giá đến 54% - Schedule: Có thể khởi chạy trong một khung thời gian. Sử dụng cho những trường hợp có công việc cố định theo ngày/tháng/năm
1.2.6. **Placement Group:** + Đôi khi có thể kiểm soát nơi đặt server EC2 + Khi tạo PG, có thể chỉ định theo các mục sau: - Cluster: cluster instance, độ trễ thấp sử dụng cho single aZ. Use case: công việc bigdata cần hoàn thành nhanh. cần cho công việc độ trễ thấp, tấc độ network nhanh. - Spead: spread instance sủ dụng cho viẹc kết hợp HW (tối đa 7 instance/AZ). Usecase: sử dụng cho trường hợp cần tối đa mực độ linh động (HA). Sử udnjg cho ứng dụng nguy hiểm, có thể bi cô lập khi có sự cố - partition: speard instance kết hợp giữa nhiều partition trong 1 AZ. Tối đa 100 ec2. usecase: sử dụng với HDFS, HBase, Casandra, kafka.
1.2.7. **EC2 hibernate:** + instance khi bi xoá thì data được bảo toàn, root volume bị xoá. + giúp instance khởi động nhanh hơn, thông tin trên Ram được bảo toàn và lưu ở EBS. Root volume phải được mã hoá. + Hỗ trợ tối đa 150Gb ram + BM server không hỗ trợ hibernate + hỗ trợ cho reserved and on-demand + không thể cho instance hibernate quá 60 ngày
1.2.8. **Elastic netowrk interface:** + có những đối tượng: - primary private Ip v4, 1 hoặc nhiều IPv4 phụ. - 1 elastic IP v4/private IPv4 - 1 public IPv4 + ENI instance có thể được EC2
1.3. ELB
1.3.1. **Scalability and HA:** + Verical scale (up/down): sử dụng để nâng cao thông số instance (t2 --> t3). Sử dụng cho hệ thống không phân tán, ví dụ DB. RDS và elasticache có thể dử dụng. + Horizontal scale (out/in) sử dụng tăng số lượng instance: sử dụng cho những hệ thống phân tán **HA** + 2 loại: Passive/Active
1.3.2. **Stickiness** + có thể sử dụng cân bằng tài của CLB và ALB + traffice từ client sẽ đế instance tương ứng + usecase: sử dụng cho những trường hợp user đảm bảo khôg bị mất session. + sử dụng stickiness có thể gây mất cân bằng tài.
1.3.3. **Cross zone LB** + sử dụng crosszone để cung cấp tải đồng đều cho instance. + CLB: mặc định tắt, không tính tiền + ALB: luôn bật, không thể tắt, không tính tiền. + NLB: luôn tắt, bật sẽ bi tính tiền
1.3.4. **LB basic** + chia sẻ lượng truy cập đến các server khác. + 4 type: - Classic LB (support: HTTP/HTTPS and TCP) - ALB (Http/https/websocket) - NLB (TCP TLS, UDP) - GLB (gateway) VPC section of the notes.
1.3.4.1. **CLB** + hỗ trợ 2 kiểu TCP (layer 4) HTTP/HTTPS (layer 7) + phân bổ hostname: xxx.clb.amazone.com
1.3.4.2. **ALB** + Sử dụng cho layer 7 Http/https + Có thể cân bằng tài cho nhièu instance/1 group, hoặc nhiều ứng dụng trên 1 instance. + Hỗ trợ chuyển tiếp sang https + Phân bổ routetable đến những group khác nhau (path, hostname, query string an header) + Sử dụng tối với micro-service và container. + Có port để kết nối với port khác ở trong ECS + thành phần trong target group: EC2, ECS task, lambda function, private IP. + cung cấp cố định hostname
1.3.4.3. **NLB** + sử dụng layer 4, sử dụng cho: - chuyển tiếp kết nối TCP/UDP đến những instance đã đăng ký. - kiểm soát hàng triệu request/1sec - Độ trễ thấp (100ms) + có 1 static IP/1AZ và hỗ trợ elastic IP + usecase: nên sử dụng cho những ứng dụng cần hiệu suất cao sử dụng TCP/UDP (game)
1.4. ASG
1.4.1. **Goal** + tăng hoặc giảm instance tuỳ vào hoạt động của server + chắc chắn có số lượng instance lớn nhất và nhỏ nhât + tự động đăng ký instance mới vào LB
1.4.2. **Attribute**
1.4.2.1. Khoi chay voi nhung config: AMI + instance EC2 userdata EBS volumes SG + SSH keypair Thong tin network subnet, LB Scale policy
1.4.3. Auto scaling alarms
1.4.3.1. Co the su dung Cloudwatch alarm cho AGS Cac chi so duoc tinh toan cho ASG tong the. Dua vao alarm de co the tang hoac giamtheo policy
1.4.4. Auto scaling new rules
1.4.4.1. Co the su dung auto scale quan ly truc tiep tu EC2: Target CPU, so luong request tu ELB, luong network in/out truy cap
1.4.5. ASG summary
1.4.5.1. Chinh sach scale cos the dua vao CPU, network,… hoac la nhung thong so tuy bien, len lich trinh theo lich Cos the chay theo config hoac themplate:Chay theo config chi dinh 1 instance. Chay theo templte co the su dung spotfleet of instance. De update lai ASG can phai cung cap lai launch config/template. EC2 instance se duoc thay the trong thoi gian do. IAM role duoc dinh kem se duoc gan khi chay EC2 instance ASG la mien phi, chi thanh toan cho nhung resource duoc khoi tao Neu co 1 instance hoat dong duoi ASG thi khi instance do bi loi, se co ngay 1 instance moi duoc tao thay the. ASG co the xoa 1 instance unhealth theo LB va tao moi 1 instance thay the 2 loai health check:
1.4.6. ASG policy
1.4.6.1. Target tracking policy: Cai dat don gian nhat, vis du: su dung %CPU
1.4.6.2. Simple/step policy: Su dung Cloudwatch the tang them va giam resouce theo dieu kien
1.4.7. ASG terminate
1.4.7.1. 1. Tìm AZ có số lượng instance nhiều nhất. 2. Nếu xoá ở 1 AZ có nhiều instance, sẽ xoá instance chạy config lâu nhất 3. Launch config: sẽ phải rescreate lại. 4. Launch tempalte: Có nhiều version, sử dụng được đồng thời spot + ondemand. Unlimited t2
1.5. EBS
1.5.1. 1. Lock in AZ 2. Khi chuyển sang AZ khác thì cần phải snap shot 3. Sẽ phải thanh toán cho toàn bô dung lượng.
1.5.2. **EBS type:** 1. GP2: SSD, dạng cơ bản, với mức giá vừa phải. 2. IO2: SSD, đắt hơn, hiệu suất cao hơn, ít đỗ trễ. 3. ST1: HDD, giá thấp hơn, có thể truy cập thường xuyên. 4. SC1: HDD, mức độ truy cập thấp hơn.
1.5.3. **EBS snapshot** 1. Chỉ phải thanh toán cho phần block sử dụng. 2. Không nên snapshot khi app đang hoạt động. 3. snap shot được lưu ở S3, không thẻ nhìn thấy được. 4. Không nhất thiêt phải thoát khi snapsot, nhưng nên làm vậy. 5. 1 account có thể có 100.000 snapshot. 6. Có thể tạo AM từ snapshot, có thể copy qua các AZ khác. 7. khi khôi phục từ snapshot thì phải có bước pre-warn 8. Có thể tự động snapshot thông qua Amazon Data Lifecycle Manager.
1.5.4. **EBS migration** 1. snapshot eBS. 2. Có thể copy sang AZ hoặc region khác. 3. Tạo EBS từ snapshot
1.5.5. **EBS/Instance store** 1. Nhiều instance không cần có EBS volume root. 2. Instance store gắn theo kiểu vật lý. EBS (network) 3. Instance store có hiệu năng cao hơn, nhưng sẽ bị mất khi stop hoặc terminate va không thể resize.
1.6. EFS
1.6.1. EFS (network file system) 1. Có thể mount cho nhiều EC2 trên nhiều AZs. 2. Hiệu năng cao hơn, linh hoạt hơn, nhưng đắt hơn 3 lần GP2 (EBS). 3. Chỉ sử dụng cho Linux, có thể sử dụng SG để kiểm soát EFS.
1.6.2. **EFS scale and performance** 1. Scale: + băng thông 10Gb+/1sec + Có thể tăng tự động. 2. Performace: + Genaral perpose: sử dụng cho ứng dụng cơ bản như web,... + Max I/O: sử dụng cho độ trễ thấp như big data, meidia 3. Life cycle: + Standard: Sử dụng cho truy cập thường xuyên + Infrequent access (IA): giá thấp hơn, truy cập ít hơn
1.7. RDS
1.7.1. 1. DB được quản lý bởi AWS và không có OS. 2. OS được cung cấp tự động, tự động cập nhật OS. 3. Backup restore theo thời gian chỉ định (point time restore). 4. Monitoring. 5. Read replica. 6. Multi AZs 7. Được chạy ở gp2 hoặc io2. 8. có thể được tăng theo V hoặc H.
1.7.2. **Backup** 1. Được tự động backup. 2. Transecion log được backup 5 phút 1 lần. 3. Thời gian lưu trữ từ 7-31 ngày. **snapshot** 1. được tạo bởi user, có thể lưu trữ bao lâu tuỳ user.
1.7.3. **RDS read replica** 1. Nâng cao khả năng đọc DB. 2. Có thể tạo 5 read replica 3. Read replica có thể ở cùng 1 AZ, khác AZ hoặc khác region. 4. Điểm khác biết là read replica sao chép không đồng bộ (asynchoronous) 5. Read replica có thể thành main. 6. use case: + sư dụng khi db hoạt động bình thường. + có thể có những công việc làm ảnh hưởng đến hoạt động của DB. 7. Mât phí network khi sử dụng read replica ở AZ khác,
1.7.4. **RDS Muliple AZ** 1. This is synchronous (đồng bộ). 2. Có thêm DNS name. 3. Khi một DB bị ngừng hoạt động sẽ tự động chuyển sang DB khác. 4. Không thể sử dụng tự động scale. 5. Read replica có thể được cài đặt cho DR.
1.7.5. **RDS security**
1.7.5.1. **Encryption** 1. Encryption sẽ được định nghĩa ở lần chạy đầu tiền. 2. Transparent Data Encryption (TDE) hỗ trợ Oracle và SQL server
1.7.5.2. **network** 1. RDB sử dụng private subnet, có thể sử dụng SG đẻ kiểm soát truy cập. 2. IAM policies để kiểm soát dử dụng RDS API. 3. IAM có thể dử dụng để login Postgre và MySQL. 4. IAM authen: token có hiệu lực 15 phút, có thể sử dụng để đăng nhập.
1.8. Aurora
1.8.1. 1. Được tạo bởi AWS, hỗ trợ Postgre và MySQL. 2. Nhanh hơn 5 lần MySQLvà 3 lần Postgre. 3. Storage có thể dự động tăng từ 10G-64T 4. Có thể có đến 15 read replica, read replica cũng có tốc đọ cao hơn. 5. failover của Aurora là ngay lập tức. (30s) 6. Chỉ sư dụng 1 instance để ghi (master aurora) 7. hỗ trợ nhiều region.
1.8.2. **Aurora serverless** 1. tự động khởi tạo DB, auto-scale theo data sử dụng. 2 Sử dụng cho công việc gián đoạn, ít truy cập. 3. Không cần có kế hoạch cụ thể, tiết kiệm chi phí.
1.8.3. **Global Aurora**
1.8.3.1. **Cross resgion read replica** 1. sử dụng cho DR
1.8.3.2. **Global aurora** 1. có thể chỉ định 1 master instance. 2. Có tối đa 5 second resgion 3. Độ trễ là 1s. 4. có tối đa 16 read replica/1 region. 5. Khi muốn promote thì RTO là 1 min
1.9. Elastic cache
1.9.1. 1. In-memory với hiệu năng cao độ trễ thấp. 2. Quản lý cache, hỗ trợ Redis và memcahe. 3. giảm độ trễ của query, vì sử dụng cache. 4. có thể tao ứng dụng stateless thì sử dụng stateless từ memory.
1.9.1.1. **DB cache** 1. Query dữ liệu ở cache, nếu không có sẽ tim dữ liệu ở RDS --> lưu lại ở cache. 2. Cache sẽ đảm bảo chỉ dữ liệu mới nhất đưuojc sử dụng.
1.9.2. **Security** 1. Không hỗ trợ IAM 2. hỗ trợ SSL 3. IAM chỉ sử dụng cho AWS API-level 4. Redis: Có thể tạo token/pass khi tạo Redis. 5. Memcache: hỗ trợ SASL.
1.10. S3
1.10.1. 1. Dung lượng object lớn nhất là 5G, trên 5G thì phả sử dụng multiple upload. 2. Khi sử dụng version, thì object có thêm versio ID
1.10.1.1. **Versioning** 1. nên dử dụng versioning cho object vì sẽ bảo vệ object khi bi xoá nhầm, có thể sử dụng lại version trước đó. 2. Khi xoá một object thì sẽ được đánh dấu ở file đó, file chưa bị xoá hẳn (gọi là delete maker). 3. Khi xoá cả delete maker và file object là xoá vĩnh viễn, không thể khôi phục
1.10.1.2. **Security** 1. SEE S3: key mã hoá được quản lý bởi AWS 2. SEE KMS: được mã hoá và quản lý với AWS key management service. 3. SEE-C: được mã hoá và quản lý bởi user. 4. client side
1.10.1.2.1. **SEE-S3** 1. Object được mã hoá ở server. 2. Mã hoá sha-256
1.10.2. **Advance S3**
1.10.2.1. **MFA-Delete** 1. enable versioning. 2. MFA sẽ yêu cầu khi: - xoá vĩnh viễn đối tượng. - muốn huỷ versioning. 3 Không yêu cầu khi: - bật versioning. - list delete version. - thêm điểm xoá (delete marker) 4. MFA chỉ có thể được bật hoặc tắt bởi root account 5. only enable by CLI
1.10.2.2. **S3 access log** 1. Sử dụng cho những trường hợp audit log. 2. các request đến S3, từ các tài khoản được phép, hoặc từ chối đêu được lưu vào log. 3. Một số data được phân tích tại AWS Athena
1.10.2.3. **S3 Replication** 1. Điều kiện: phải sử dụng versioning ở cả nguồn và đích. 2. 2 type: Cross zone (CRR): bucket ở resgion khác nhau. usecase: phức tạo, cần độ trễ thâp, access được nhiều account. - single zone (SRR) bucket in same resgion. usecase; tổng hợp log, test app, 3. Có thể sử dụng ở những account khác nhau. 4. copy replication bucket có thể không đồng bộ (mất vài giây để đồng bộ ) 5. IAM được gán cho source bucket. **Note** 1. Replicate được tạo khi replication được bật. 2. Delete with-out version ID: delete marker được add vào object. Delete không được sao chép. 3. Delete with version ID: object được xoá ở nguồn, delete không được copy
1.10.2.4. **S3 pre-sign URL** 1. có thể gán S3 pre-sign url qua SDK, hoặc CLI> 2. wait time: 3600. cso thể thay đổi với --expire-in. 3. user nhận được pre-sign URL có thể kế thừa các quyền từ người tạo.
1.10.2.5. **S3 Storege Class** Amazon S3 Standard-General Purpose Amazon S3 Standard-Infrequent Access (IA) Amazon S3 One Zone-Infrequent Access Amazon S3 Intelligent Tiering Amazon Glacier Amazon Glacier Deep Archive AmazonS3 Reduced Redundancy Storage (deprecated)
1.10.2.5.1. **S3 Standrad-general** 1. hiệu năng cao, lưu trữ lâu dài. 2. Ví dụ: lưu 10tr tệp, thì chỉ bị mất 1 tệp trong 10 năm. 3. Ổn định: 99.99%/1 năm 4. Có thể duy trì với 2 sự cố.
1.10.2.5.2. **S3 Standard IA** 1. Data ít được truy cập, nhưng khi cần tìm thì phải phàn hồi nhanh. 2. tính sẵn sàng cao 99.9%. 3. Giá thấp hơn Stand-general.
1.10.2.5.3. **S3 onezone-IA** 1. sử dụng cho 1 AZ, data ít được truy cập, có thể truy vấn nhanh khi cần. 2. tính sẵn sàng cao 99.5%, có thể mất data khi AZ down. 3. Giá tiền thấp hơn S3-IA
1.10.2.5.4. **S3 onezone-IT (Intellingent tiering)** 1. Tự động di chuyển 2 đối tượng truy cập dựa trên các đối tượng mãu. 2. có phí monitoring hàng tháng 3. Độ bền tương tự như General, mức độ sẵn sàng 99.9%.
1.10.2.5.5. **S3 Glacier** 1. giá tiền nhỏ cho lưu trữ data, và backup data. 2. Data giữ lại trong khoảng thời gian dài (10 năm) 3. thay thế cho tape với server on-primse. 4. số tiền phải thanh toán it, nhưng phải thanh toán cho đơn vi truy xuất thông tin. 5. Đơn vị ở trong Glacier là Archive, archive chứa trong Vault. 6. Có 3 sụ lựa chọn truy xuất (retrieval) - expedited (1-5 mins): $10 - standard: (3-5 hours) - bulk (5-12 hours) 7. thời gian lưu trữ ngắn nhất là 90 ngày
1.10.2.5.6. **S3 glacier deep archv** 1. Dành cho dữ liệu lưu trữ cực kì lâu dài. 2. Có 2 loại truy xuất dữ liệu: - Standard (12 hours) - bulk (48 hours) 3. Thời gian lưu trữ ngắn nhất là 180 ngày.
1.10.2.5.7. **S3 move between storage class** 1. có thể chuyển tiếp giữa 2 loại storage có cùng giá tiền. 2. rules: - Những data ít được truy xuất thì nên được đưa vào Standard_ID - Nếu dữ liệu không cần truy xuất real-time thì đưa vào Deep_archive và glacier. 3. di chuyển object có thể được thực hiện qua manul hoặc được thực hiện tự đông qua Lifecycle configuraion. 4. Transaction action: được định nghĩa là khi object chuyển tiếp qua môt storage khác. 5. Expiration action: cài đặt khi xoá object. - có thể dùng để xoá object cũ, khi versioning được bật. - Có thể dùng để clear những phần multiple-upload lỗi. 6. có thể áp dụng cho một tiền tố nhất định. 7. áp dụng để tạo object tag nhất định
1.10.2.5.8. **S3 performance** 1. có thể tự động tăng theo nhu cầu sử dụng cao. có độ trễ từ 100-200s cho dữ liệu đầu tiền của S3. 2. Có thể đạt được: - 3500 PUT/COPY/Post/delete per sec - 5000 /GET/head per sec 3. Yêu cầu về performanse sẽ áp dụng cho từng prefix.
1.10.2.5.9. **S3 KMS limitation** 1. S3 performace có thể ảnh hưởng đến S3 KMS 2. Nếu được mã hoá = KMS, sẽ có thêm sự lụa chọn apply KMS quota. 3. KMS có thể tăng performace.
1.10.2.5.10. **S3 performace optimization** 1. Multiple-upload: chia nhỏ file và sẽ upload cùng 1 lúc, nên dùng với file > 100Mb, bắt buộc với file > 5G 2. S3 transfer Acceleration: có thể tăng khả năng di chuyển dữ liệu upload khi sử dụng AWS edge location. tương thích (compatible) với multiple-upload 3. S3 byte-range fetches: tăng tốc độ download từ Get,
1.10.2.5.11. **S3 select and glacier select** 1. có thể lấy lại lượng data ít hơn sử dụng truy vấn SQL. 2. Có thể lọc theo cột và hàng, câu lệnh SQL nên đơn giàn hơn. 3. S3 select sử dụng lượng trafic nhỏ.
1.10.2.5.12. **AWS Athena** 1. Dịch vụ severrless để phân thích các S3 file. 2. Có thể sử dụng SQL để query data từ S3. 3. Phân phối JDBC/ODBC driver. 4. bi tính tiền bởi những gì đã truy vấn, thanh toán những gì đã sử dụng. 5. Support file format: csv, json,... 6. usecase: business itelligent, analytics, report, log analysis,...
1.10.2.5.13. **s3 object lock and glacier vaults lock** 1. S3 object lock: WORM (Write Once Read Many Model) 1 tệp chỉ được ghi 1 lần, và không thể bị xoá khi khoá được gỡ bỏ. 2. Glacier vaults: tương tự như WORM, file không thẻ thay đổi khi khoa được active. 3. Dành cho công việc phức tạp và lưu trữ lâu dài.
1.11. Route 53
1.11.1. **Explaination** 1. Quản lý domain. 2. Thu thập thông tin các bản ghi giúp server hiểu được traffic internet. 3. 4 type: - A: map to hostname to IPv4 - AAAA: map hostname to IPv6 - Cname: hostname to another host name - alias: map a hostname to AWS resouce 4. Route 53 có thể sử dụng: - Domain mà mình quản lý. - Private domain được tạo vởi EC2 trong VPC 5. Tính năng nâng cao: - LB qua DNS - health check - routing policy: simple, failover, latency,... 6. Pay 0.5%/1 hostzone
1.11.1.1. **DNS record TTL (time to life)** 1. Nơi để nhận sự phản hồi cho web và client 2. Lưu vào cache để không làm quá tải DNS. 3. Client chứa phản hồi của cache trong thờ gian TTL 4. high TTL (24 hours): những traffic DNS ngắn, hoặc những bản ghi đã cũ. 5. low TTL (60s): Traffice cho DNS nhiêu hơn, bản record sẽ không hết hạn trong thời gian dài. (có nghĩa có thể thay đổi DNS dễ dàng) **6. TTL là bắt buộc với DNS**
1.11.1.2. **Cname and Alias** 1. AWS resource luôn luônt hiện với tên hostname. 2. Cname: - Đánh đấu domain với 1 domain khác. - Không làm việc với root domain. 3. Alias: - Chuyển về đối tượng aWS resource. - làm việc với ở root và non-root domian. - Miễn phí. - Có health check
1.11.1.3. **Health check** 1. Nếu instance unhealth, route53 sẽ không gửi traffic đến đó. 2. Instance là unhealth khi không phản hồi to X(default =3) của request 3. Sẽ check health trong khoản thời gian 30s. 4. có 15 điểm end-point 5. health check protocal: HTTP, TCP, HTTPS (wihout SSL) 6. Sử dụng cùng vơi cloudwatch
1.11.1.4. **Routing policy**
1.11.1.4.1. **Simple** 1. Chỉ chuyển đến 1 source. 2. Không thể health check. 3. Có thể phàn hồi nhiều kết quả về client. 4. nếu trả về nhiều kết quả thì sẽ chọn giá trị bất kì.
1.11.1.4.2. **Weight** 1. quản lý phần trăm truy cập đến từng end-point. 2. Có thể hỗ trợ kiểm tra traffic đến ứng dụng với. 3. Chia tải cho tưng region. 4. Có thể đính kèm health check
1.11.1.4.3. **latency** 1. chuyển hướng đến server gần với client nhất. 2. Sử dụng khi đỗ trễ là ưu tiền hàng đầu. 3. Độ trễ được đánh giá bởi người dùng.
1.11.1.4.4. **Failover** 1. Yêu cầu phải có 2 bản ghi (record). 2. Nếu record 1 bị lỗi, sẽ nhảy sang record 2. 3. Phải yêu cầu có health check
1.11.1.4.5. **Geolocation** 1. Sử dụng theo vị trí của người dùng. 2. chỉ định được điểm đến dựa trên IP người dùng. 3. yêu cầu phải có policy mặc định (không nhât thiết IP user trùng với location client)
1.11.1.4.6. **Geoproximity** 1. Dự trên location của người dùng. 2. có thêm tuỳ chọn tăng hoặc giảm traffice cho record bằng giá trị gọi là đọ lệch. 3. bắt buộc phải sử dụng Route53 traffic flow. 4. Sử dụng và chỉ định theo 1 trong 2 loại: - using AWS resouce: sử dụng AWS regoin, nơi chứa AWS resource. - using non AWS resouce: sử dụng theo vị trí của tài lnguyeen.
1.11.1.4.7. **Multiple** 1. khi muốn traffic đến nhều resouce, và route53 health check record. 2. có thể trả về 8 record health 3. Không phải sử dụng để thay thế ELB
1.11.1.4.8. **Note** Không thể sử dụng domain của bên thứ 3, nếu bắt buộc phải sử dụng thì sẽ phải update hostzone ở route53. Update NSLookup ở bên thứ 3 để sử dụng Route 53
2. **Deep dive**
2.1. **AWS CLI, SDK, IAM ROLES AND POLICIES**
2.1.1. **AWS CLI** 1. Muốn sử dụng CLI ở máy local cần phải có access key. không nên cáu hình access key ở EC2 instance. 2. IAM role can be attach EC2. IAM role sẽ đi kèm với xac thực để giúp EC2 có thể thực hiện hành động.
2.1.2. **IAM role and policy** 1. Policy có thể được quản lý bởi AWS hoặc người dùng. 2. Người dùng có thể tự tạo policy
2.1.3. **EC2 instance metadata** 1. cho phép instance không cần dùng IAM. 2. Từ EC2 instance có thể nhận được meta data thông qua link.. 3. Có thể lấy lại IAM role từ ec2, không thể với IAM policy. 4. meta data = info for EC2
2.1.4. **AWS SDK** 1. SDK = sw developmet kit. 2. AWS CLi sử dụng boto3. **AWS Credential security** 1. nên sử dụng default credential provider chain. 2. Never store Credential in code.
2.2. **ELASTIC BEANSTALK**
2.2.1. **ELASTIC BEANSTALK** 1. Chế độ xem code trên AWS, developer làm trung tâm. 2. Sử dụng cho nhiều service: EC2, ASG, ELB, RDS,... 3. Các thành phần (component) được cấu tạo và khởi tạo (instantiated) qua config file 4. Miễn phí, chỉ phải thanh toán service của infra. 5. là một service quản lý: - instance config. OS được quản lý bởi AWS. -
2.3. **AWS CloudFront**
2.3.1. **AWS CloudFront** 1. là content delivery network. 2. tăng khả năng đọc, content is cache on edge location. 3. Bảo vệ khỏi DDos, tích hợp Sheild và WAF (Web application firewal) 4. Có thể phân phối https bên ngoài, và nói với Htttps back-end nội bộ.
2.3.2. **cloud front origins** 1. Data ở locationd được phân phối với cloud front: - s3: Phân phối file và cache cho edge location Cung cấp security nâng cao cho cloud front qua OAI. cloudfornt có thể để truy cập upload file S3. - custom origins: ALB EC2 insstance. S3 website any other http
2.3.3. **cloud front geo restriction** 1. Phân phối nội dung độc quyền đến user chỉ định. 2. Khi chữ ký được tạo qua URL/cookie cần được tạo policy: - Ngày hết hạn URL - Dải IP có thể sử dụng data. - người được tin tưởng. 3. Sign URL time to live: - Khi chia sẻ content, nên để thời gian nhắn. - Nội dung riêng tư, có thể đẻe thời gian dài hơn 4. Sign URL, có quyền truy cập vào những tệp riêng lẻ. 5. Sign cookie: có thể truy cập vào nhiều tếp
2.3.4. **CloudFront Signed URL vs S3 Pre-Signed URL** 1. Cloudfront sign - Cho phép truy cập vào path, không cần quan tâm file gốc. - Nó là cặp khoá, chỉ user root mới có thể truy cập. - Có thể lọc theo IP, data, path, expire date. - tận dụng tính năng bộ nhớ đệm. 2. S3 pre-sign - Đưa ra yêu cầu với tư cách là người đã sign trước. - Yêu cầu IAM role cho mục đích cao. - giới hạn thời gian hoạt động
2.4. **AWS CLOUDWATCH**
2.4.1. **AWS CLOUDWATCH metric** 1. Phân bổ các đối tượng cho mọi service. 2. Đối tượng là các biến để monitoring 3. Metrics in cloudwatch thuộc về namespace. 4. Dimension là một đối tượng đặc biệt, ví dụ: instance id. 5. Có tối đa 10 demension/1 metrics. 6. Có thể tạo dashboard từ metrics
2.4.2. **EC2 monitoring** 1. Ec2 instance được tập hợp sau mỗi 5 phút. 2. có thể bật thu tập chi tiết một metrics nào đó sau 1 phút (mất phí) 3. Có thể monitoring chi tiết 1 metrics để phục vụ cho ASG. 4. Free tier sẽ có 10 metrics. 5. Metrics monitoring memory mặc định không được bật, cần custom để bật nó lên.
2.4.3. **Cloud watch custom metric** 1. Có thể gửi riêng custom metric đến Cloudwatch. 2. có thể phân đoạn theo ngưỡng các metric. 3. Thời gian quét metric là 1 phút, có thể tăng lên đến 1s, nhưng phải trả nhiều tiền hơn. 4. Có thể gửi custom metric qu PutmetricsData API
2.4.4. **cloudwath dashboard** 1. Có thể tạo dashboard qua những metrics điển hình. 2. Dashboard là glocal. 3. Có thể đính kèm thêm graph từ nhiều region. 4. Có thể tuỳ chỉnh timezone. 5. Có thể cài thời gian refresh (10s, 1m,...) 6. Giá: 3 (total 50) miễn phí, 3$/1 dashboard
2.4.5. **cloud watch log** 1. Có thể gửi log đến cloudwatch thông qua SDK. 2. Log có thể được lưu ở S3 cho mục đích lưu trữ. ElastiCache cho mục đích phân tích. 3. Log storage: - Log group: Tên tuỳ ý, thường được đặt tên cho ứng dụng. - Log stream: instance ở trong app/logfile/containers. 4. Có thể cài đặt thời gian hết hạn. 5. AWS CLI có thể xem chi tiết log. 6. Để gửi log đến Cloudwatch, cần cấp quyền IAM phù hợp. 7. Có thể mã hoá log dùng KMS.
2.4.6. **Cloudwatch agent** 1. Log không được gửi đến cloudwatch. 2. phải chạy agent trên EC2 để gửi log vè cloudwatch. 3. Đảm bảo chính xác IAM role cho EC2. 4. Có thể cài đặt ở on-primes
2.4.7. **Cloudwatch log agent and unified agent** *Cloudwatch log agent* 1. Chỉ có thể gửi data đến Cloudwatch log. 2. Có thể thu thập thông tin cao hơn của system. *Cloudwatch log unified* 1. Có thể cầu hình thêm metrics llieen quan đến hệ thống. 2. Có thể thu thập log và gửi đến Cloudwatch. 3. Có thể thu thập metrics. 4. Có thể cấu hình tập trung
2.4.8. **cloudwatch alarm** 1. Alarm có thể được sử dụng để kích hoạt bất kì thông báo nào. 2. Alarm có thể dùng cho Auto scle, EC2, SNS,.. 3. Có nhiều lựa chọn cho alarm. 4. Alarm state: - OK - insufficient data. - alarm. 5. Period: - tính theo thời gian bằng giây - Khi muốn có khoảng thời gian dài của custom metrics có thể chọn từ 10-30s.
2.4.9. **EC2 instance recovery** 1. Status check: - instance status check = check EC2 VM. - system check = Check hW. 2. Khi thông báo này được kích hoạt, chúng ta có thể gọi Instance recovery. 3. Sau khi được recoveyr, sẽ có cùng public, private IP,.. 4. không giữ lại bất kì data nào ở instance store.
2.4.10. **Cloudwatch event** 1. Cloudwatch event: - schedule: cron job. - Event pattern: quy tắc event phản ứng với một hiện tượng gì đó. 2. Có thể kích hoạt lambda, hoặc gửi đến SNS/SQS,... 3. Có thể tạo json file để gửi những thay đổi nhỏ
2.5. **AWS Cloudtrial**
2.5.1. 1. Cung cấp khả năng quản trị, phân bổ cho AWS account. 2. Mặc định được bật. 3. Có thể phân bổ lịch sử event/API được tạo trong tài khoản AWS: - AWS console. - CLI. - SDK - AWS service. 4. log từ cloudtrail có thể đẩy sang cloudwatch. 5. Nếu resouce bị xoá ở AWS, sẽ kiểm tra được nhiều dấu vết ở cloudtrail. 6. lưu lại các hành động và các event từ AWS service.
2.6. **AWS Config**
2.6.1. **AWS config** 1. ghi sự tuân thủ của tài khoản AWS. 2. Ghi lại những thay đổi và cấu hình theo thời gian. 3. Cung cấp khả năng lưu trữ cấu hình vào S3, được phân tích bởi Athena. 4. giải quyết vấn đề AWS config: - không có quyền truy cập vào SG. - Có thể kiểm tra bucket public. - Tìm config ALb thay đổi theo thời gian. 5. Có thể nhận thông cáo SNS cho sự thay đỏi. 6. AWS được cài theo region.
2.6.2. **AWS config resource** 1. Xem khả năng tuân thủ của resource theo thời gian. 2. Config của resource theo thời gian. 3. Xem được cloudtrial API, nếu nó được bật.
2.6.3. **AWS config rule** 1. Phân bổ bộ quản lý (75 rules) có thể được quản lý bởi người dùng. 2. Có thể tạo custom rule. 3. Việc đánh giá rule có thể kích hoạt cloudwatch nếu quy tắc không tuân thủ. 4. AWS config rule không ngăn hành động xảy ra.
2.6.4. **Compare** 1. Cloudwatch: - performance monitoring dashboard. - Event and alert. - log and analysis. 2. Cloudtrial: - Recoard API - định nghĩa cho resource chỉ định. - Global service. 3. Config: - record config change. - Đánh giá resouece dự trên cacs quy tắc. - Có timeline về config và sự tuân thủ (compliance)
2.7. **AWS Global accelerator**
2.7.1. **Unicast IP and Anycast IP** 1. Unicast IP: 1 server hold 1 IP. 2. Anycast IP: Nhiều server sử dụng 1 IP, client sẽ hướng đến server cần nhất.
2.7.2. **AWS glocal accelerator** 1. Sử dụng mạng nội bộ để hướng đường đi của app. 2. 2 IP anycast được tạo, là mạng glocal, lưu lượng sẽ được gửi đên Edge location, và từ đây sẽ dùng mạng nôi bộ để gửi đến glocal. 3. làm việc với EC2, ALB, NLB, Elastic IP 4. cung cấp hiệu suất nhất quán. 5. health check 6. Security
2.7.3. **Compare** 1. Đều là mạng internet toàn cầu, sử dụng qua Edge location. 2. Đều để bảo vệ DDos và shield. 3. Cloudfont: - nâng cao perfomrce với dữ liệu bộ nhớ đệm (images/video), hoặc dữ liệu linh hoạt. - nội dung được phục vụ ở Edge location 5. glocal accelerator: - nâng cao performance theo chiều ngang, sử dụng TCP hoặc UDP. - Đóng gói các ứng dụng sử dụng proxy ở Edge location. - Sử dụng tốt với các ứng dụng non-http, sử dụng UDP (game), IoT (MQTT), voice over IP. - Sử dụng với case http. nếu sử dụng IP cố định, và yêu cầu chuyển khu vực dự phòng nhanh chóng
2.8. **Snowball**
2.8.1. **Snowball** 1. Một giải pháp vật lý giúp di chuyển hàng Tb hoặc Pb data 2. Thay thế giải pháp di chuyển data qua network. 3. Bảo mật, được mã hoá qua KMS 256 4. Usecase: Sử dụng khi di chuyển file cực lớn, DC dừng hoạt động, hoặc dùng cho DR. 5. nếu cần quá nhiều thời gian để di chuyển data (ví dụ: > 1 tuần) thì nên dùng snowball
2.8.2. **Snowball process** 1. Yêu cầu thiết bị snowball từ AWS service. 2. Cài snowball ở local. 3. kết nối thiết bị snowball với server local. 4. Trả lại thiết bị snowball khi copy data hoàn tất. 5. Dữ liệu ở snowball được đưa vào S3. 6. Xoá sạch dữ liệu ở snowball
2.8.3. **Snowball Edge** 1. Snowball edge bổ sung khả năng tính toán cho thiết bị. 2. Có thể có đến 100Tb dung lượng với: - 24vCPU hoặc 52 vCPU + GPU. 3. Hỗ trợ custom AMI EC2 khi đang chuyển dữ liệu. 4. Hỗ trợ custom Lambda function. 5. Hợp lý để chuẩn bị di chuyển data. 6. usecase: data migration, image collection, IoT capture, machine learning.
2.8.4. **Snowmobile** 1. di chuyển lượng data cực lớn. 2. 100 PB data. 3. Sẽ tốt hơn snowball nếu data > 10PB
2.8.5. **Snowball to Glacier** Không thể đẩy trực tiếp dữ liệu từ S3 --> Glacier, cần phải qua S3 trước, sau đó sử dụng lifecycle time
2.9. **Storege gateway**
2.9.1. **Hybrid cloud storage** 1. Hybrid cloud: - 1 phần là public cloud, 1 phần là server on-premise. 2. Có thể storage sẽ dùng S3. S3 có thể gắn với các server on-premise
2.9.2. **Storage gateway** 1. Là cầu nối data giữ vật lý và cloud. 2. usecase: sử dụng để đề phòng thảm hoạ, backup/restore, tiered storage. 3. Có 3 loại: - file getway: Có thể nhìn thấy file từ local file, nhưng file đó ở S3. - Volume gateway: là volume. - tape gateway: sử dụng cho backup/recovery.
2.9.2.1. **File gateway** 1. sử dụng S3, nhưng được cấu hình để truy cập như NFS. 2. Hỗ trợ S3 standard, S3 IA, S3 onezone IA. 3. Mỗi bucket sẽ có một role IAM riêng để quản lý truy cập. 4. Data cần nhất sẽ được lưu ở cache. 5. Có thể mount ở nhiều server
2.9.2.2. **Volume gateway** 1. được cấu hình như iSCSI 2. EBS snap shot luôn được thực hiện khi data được ghi, có thể restore 3. Cache volume: giúp có độ trễ thấp khi truy cập vào data gần nhất. 4. Storage volume: Data được lưu ở on-premise, có kế hoạch lưu data ở S3.
2.9.2.3. **Tape volume** 1. Sử dụng để backup như backup tape trên local. 2. Vitual tape library được backup trên S3 và Glacier. 3. Backup process sử dụng iSCSI.
2.9.2.4. **File gateway HW appliance** 1. có thể sử dụng ảo hoá, nếu không có thể sử dụng vật lý. 2. Có thể mua HW được cung cấp bởi amazone. 3. giúp backup NFS hàng ngày ở những DC nhỏ
2.9.2.5. **Summary** 1. File access/NFS: sử dụng filegateay 2. Volume/block storage/iSCSI: volume gateway. 3. VTL solution/backup with iSCSI: tape gateway.
2.10. **Amazon FSX**
2.10.1. **Amazon FSX for Windows** 1. FSX for windows giúp quản lý tất cả các file system của windows. 2. Hỗ trợ protocal SMB và windows NTFS. 3. Có thể dùng với AD, ACL, 4. Sử dụng SSD, tốc độ 10gb/s, IOPS cao. 5. có thể được access từ on-premise. 6. Có thể cấu hình multiple-AZ. 7. backup hằng ngày ở S3.
2.10.2. **Amazon FSX for lustre** 1. là sự kết hợp giữa Linux và cluster. 2. sử dụng cho machine learning hoặc HPC (high perfomrace compute). 3. Tốc độ cực lớn 100gb/s, 4. Có thể liên kết với s3. - Đọc được file ở S3. 5. Có thể sử dụng với on-premise
2.10.3. **Storage compare** 1. S3: object storage. 2. Glacier: Object archive. 3. EFS: file system mout multiple instance, only linux server. 4. Fsx for windows: use with windows share file. 5. FSx for lustre: file system share high performace for Linux. 6. EBS: network storage with EC2 instance. 7. instance store: physical storage. 8. Storage gateway: cầu nối giữa cloud và on-premise. 9. Snowball: sao lưu data lớn không dùng internet
2.11. **Network and VPC**
2.11.1. 1. CIDR: IP block. 2. VPC: Vitual private Cloud - định nghĩa các IPv4/IPv6. 3. Subnet: đi theo liên kết với AZ, định nghĩa qua CIDR. 4. Internet gateway: là một mức độ của VPC, giúp IPv4/v6 kết nối ra internet. 5. Route table: được cấu hình từ subnet đến IGW, VPC peering, VPC endpoints. 6. NAT instance: giúp internet access cho private subnet. khi không dùng nữa thì phải đưa về public subnet, và disable source/des flag. 7. NAT gateway: chỉ sử dụng cho IPv4, cung cấp internet cho private instance. 8. Private DNS + route 53: bật tính năng DND + DNS hostname ở VPC. 9. NACL: stateless, subnet level, sử dụng để lọc inbound/outbound. 10. SG: statefull, operate with instance level. 11. VPc peering: Kết nối VPC với CIDR không qua bắc cầu, không chồng chéo. 12. VPC endpoint: cung cấp kết nối nội bộ của AWS service 13. VPC flow logs; sử dụng để monitoring traffice, cấu hình qua VPC/subnet/ENI 14. Bastion hosts: public instance, public ssh, and ssh to priate instance. 15. Site to site VPN: Sử dụng để cấu hình customer gateway, một VPG (vitual private gateway) ở VPC và site to site VPN ở ngoài public internet. 16. Direct connect: sử dụng để cài đặt VPG on VPC, thiết lập kết nối priavate trực tiếp đến AWS. 17. Direct connect gateway: cài đặt kết nối trực tiếp đến nhiều VPC ở nhiều region. 18. internet gateway egress: như Nat, nhung dùng cho IPv6 19. Private link (vpc endpoint service): kết nối service từ vpc này sang vpc khác 20. classis link: kết nối từ EC2-class đến VPC. 21. VPN CloudHub: Trung tâm kết nối các site. 22. Transit Gateway: kết nối ngang hàng chuyển tiếp VPC, VPN, DX
2.12. **Database**
2.12.1. **Type of database** 1. RDBMS (SQL/OLTP): RDS, Aurora. 2. NoSQL: DynamoDB, ElastiCache (Key/value pairs), nepture (graph), DocumentDB (json) 3. Object store: S3 (big store), Glacier (backup/restore) 4. Data warehouse: SQL analytic. Redshift (olap), Athena. 5. Search: Elastic search. 6. Graph: display data.
2.12.2. **RDS** 1. Quản lý được postgre, oracle, mysql, mssql. 2. Được phân bổ sau một EC2 và sử dụng EBS. 3. hỗ sợ multi AZ và read replica. 4. Quản lý security: IAM, SG, encryption (kms), ssl. 5. Backup snapshot point to time. 6. Quản lý và lên thời gian maintaince. 7. Monitor qua Cloudwatch. 8. Usecase: quản lý data có mối liên hệ, dùng để query, insert, update,...
2.12.2.1. **RDS solution architect** 1. Có thời gian downtime nhỏ khi có sự cố, maintance. Restore qua snapshot. 2. AWs sẽ quản lý OS security. Người dùng sẽ quản lý IAM, SG. KMS, SSL. 3. Hỗ trợ multiple-az, read replica. 4. performance: Qua EC2, EBS. Có thể tạo thêm read replica. RDS không thể auto scale.
2.12.3. **Aurora** 1. Được quảnl lý bởi AWS, nằm trong RDS service. Có API tương thích với MySQL. Postgre. 2. Có 6 replica/3 AZs 3. Có thể auto scale. 4. Auto scacle ở read replica, có thể lên thành master. 5. Aurora sử dụng cho global, để sử dụng cho trường hợp DR hoặc giảm độ trễ. 6. Auto scale có thể từ 10Gb-64Tb 7. Định nghĩa EC2 instance cho Aurora. 8. Được monitor, secu như RDS. 9. Có option serverless. 10. Usecase: cơ bản như RDS, nhưng bảo trì ít hơn, linh động hơn, hiệu năng cao với giá tiền cao hơn.
2.12.3.1. **Aurora architects** 1. vận hành ít hơn, có autoscale cho storage. 2. Security: AWS quản lý OS, người dùng sẽ quản lý IAM, SG, KMS,. 3. Multiple-AZs, hiệu năng cao, có serverless cho aurora. 4. hiệu năng: có thể gấp 5 lần RDS, có tới 15 read replica (RDS only 5). 5.
2.12.4. **ElastiCache** 1. Quản lý Redis và memcache. 2. Data lưu ở memory, độ trễ cực thấp. 3. Phải cung cấp phiên bản EC2. 4. hỗ trợ cluster (redis), read replica, multiple AZs. 5. Secu: SG, KMS, Redit Auth. 6. Có thể backup/restore point to time, snapshot. 7. Có thể quản lý thời gian bảo trì. 8. Monitoring qua cloudwatch. 9. Usecase: store key/value, trường hợp đọc nhiều hơn ghi, store session for website, cache result query for dB.
2.12.4.1. **ElastiCache** 1. Secu: không có IAM, có thêm Redis Auth. 2. Performance: độ trễ cực thấp, sử dụngcho cache, read replica for sharing.
2.12.5. **DynamoDB** 1. Quản lý noSQL Database, độc quyền bơi aWS. 2. severless, có auto scaling, cung cấp capacity theo yêu cầu. 3. Có thể thay thế ElastiCache để lưu key/value. 4. HA and multi aZ là mặc định, tách biệt đọc và ghi, DAX cho cache. 5. Read (nhất quán hoặc cực kì nhất quán cho đọc). 6. Secu, author, authen qua IAM. 7. Kết hợp với lambda để truyền đi những thay đổi của DynamoDB. 8. Có backup/restore. glocal table. 9. Monitoring qua cloudwatch. 10. Sẽ chỉ query được data dựa vào primary key, sort key or index. 11. use case: serverless aplication dev, distribute serverless cache
2.12.6. **S3** 1. Store Key/value. 2. tôt cho những object lớn, object nhỏ có thể sẽ không tốt 3. Serverless, tăng dung lượng vô hạn, lên đến 5Tb. 4. Tính nhất quán cho đọc và ghi, nhất quán cao cho các object. 5. Type: Standard, IA, onezone IA, glacier. 6. Encryption, versioning, cross region. 7. Security: bucket policy, iam, ACL 8. Encryption: SEE-C, SEE-KMS, SEE-S3, side to side 9. usecase: static file, key value store for big file, website, hosting.
2.12.7. **Athena** 1. Full serverless database (database hoàn toàn không có máy chủ (os)) có khả năng truy vấn. 2. Query data qua S3, sẽ tính tiền qua truy vấn. 3. kết quả cũng trả về S3. 4. Secu: sử dụng S3. 5. use case: Sử dụng truy vấn ngắn hạn, dùng cho analytic
2.12.8. **Redshift** 1. dự trên postgre, nhưng không phải là OLAP (only analytical processing - analytic and datawarehouse). 2. Mạnh gấp 10 lần dataware house, data có thể lên tới Pb. 3. Data được lưu ở dạng cột (columns data) 4. thực hiện được truy vấn ồ ạt, độ sẵn sàng cực cao. 5. Thanh toán dựa trên các phiên bản được cung cấp. 6. Có giao diện SQL để thực hiện truy vấn. 7. Tốt khi sử dụng với BI tool. 8. Dữ liệu được lấy từ S3, DynamoDB,... 9. Có thể tăng từ 1 lên 128 node, dữ liệu trên 1 node lên đến 160G. 10. Node type: nơi để query, dữ liệu trả về master node. 11. Redshift spectrum: truy vấn trực tiếp data từ S3, không cần qua Redshift. Cần phải có Redshift cluster. 12. backup/restore. 13. Secu với IAM/VPC/KMS.
2.12.9. **Neptune** 1. Full manage graph. 2. Across 3 AZ and 15 replica. 3. point time recovery, backup to S3. 4. support KMS at HTTPS + rest.
2.12.10. **ElastiSearch** 1. Có thể tìm mọi thứ, tìm theo phần nhỏ. 2. Tìm kiếm để bổ sung cho cơ sở dữ liệu. 3. Cung cấp cluster of instance. 4. MultiAZ, cluster. 5. Sử dùng cùng các dịch vụ nội bộ: kinesis, cloudwatch log,...
2.13. **SQS**
2.13.1. **Intergraion and message** 1. dùng cho sự giao tiếp giữa các ứng dụng. 2. Có 2 loại giao tiếp: - Đồng bộ (synchronous) - Không đồng bộ (asyncronous) 3. Mô hình ứng dụng. - SQS: queue modul. - SNS: pub/sub modul. - Kinesis: read-time streaming modul
2.13.2. **SQS stardard** 1. full manage service, có thể tách rời các ứng dụng. 2. Thuộc tính: - vô hạn số lần gửi tin nhắn trong queue. - Mỗi tin nhắn có thời gian ngắn: từ 4-14 ngày. - Đỗ trễ thấp <10ms. - giới hạn dung lượng tin nhắn < 256kb. 3. Có thể nhân đôi tin nhắn.
2.13.3. **SQS Standard - production message** 1. Gửi tin nhắn qua SDK (Sendmessage API) 2. Sẽ luôn ở trong hàng đợi cho đến khi bị xoá. 3. Có thời hạn từ 4-14 ngày. 4. ulimited throughput
2.13.4. **SQS standard consuming message** 1. có thể nhận 10 tin nhắn cùng 1 lúc. 2. Là ứng dụng có thể chạy trên EC2 hoặc lambda. 3. sau khi tin nhắn được gửi thì sẽ tin nhắn đó bị xoá qua API. 4. Có thể tăng ApproximateNumberOfMessages dựa vào cloudwatch.
2.13.5. **SQS secu** 1. thường sử dụng HTTPs, số ít còn lại sẽ sử dụng KMS. Có thể sử dụng client-side trong trường hợp client muốn tự mã hoá và giải mã. 2. SQS access policy: - nhiều tài khoản truy cập vào SQS. - cho phép các service SNS, S3 ghi vào sQS.
2.13.6. **Data order** 1. Standard: không có thứ tự hàng đợi. 2. fifo: nếu không có nhóm, sẽ sử dụng 1 consumer. 3. Có thể gộp tin nhắn vào group chỉ định. 4. Mỗi nhóm có thể có 1 consumer để đọc tin nhắn
2.14. **SNS**
2.14.1. 1. pub/sub modul. 2. Event chỉ gửi đến 1 SNS. 3. Một subscribers trong topic sẽ nhận được tất cả tin nhắn. 4. Có thể có đến 10tr subscriber/1 topic. 5. Có đến 100.000 topic. 6. Subscriber có thể là: SQS, email https, lambda, sms, mobile notice. 7. Có thể tích hợp với các service khác: S3, cloudwatch, ASG. 8. Encryption: tương tự SQS. 9. Access control: IAM
2.14.2. **SQS + SNS** 1. gửi tin nhắn cho nhiều sQS sử dụng SNS. 2. sử dụng 1 SNS có thể gửi tin nhắn cho tất cả SQS queue nằm trong subscriber. 3. phân tách toàn bộ, không bị mất data. 4. SQS có phép lưu trữ công việc, xử lý chậm trễ và thử lại. 5. Cần phải được cho phép thì SNS mới ghi được vào SQS. 6. SNS không thể gửi tin nhắn đến SQS FIFO.
2.15. **Kinesis**
2.15.1. **Kinesis stream**
2.15.1.1. 1. Độ trễ thấp cho stream, có thể tăng hệ thống để giảm đỗ trễ 2. Có thể lưu dữ liệu trong 1 ngày (mặc định), cao nhất 7 ngày. 3. Có khả năng xử lý lại dữ liệu. 4. Nhiếu ứng dụng có thể stream cùng lúc, cho phép stream trực tiếp với độ trễ thấp. 5. Không phải là database, chỉ insert 1 lần.
2.15.1.1.1. 1. Đỗ trễ thấp (200ms). 2. phải quản lý scale. 3. Yêu cầu phải viết custom code. 4. Có thể lưu data (từ 1-7 ngày) 5. data có thể đọc được bởi nhiều người.
2.15.2. **Kinesis data firehore**
2.15.2.1. 1. Full managed service, không cần quyền admin, có thể scale tự động, là một serverless. 2. Sử dụng để chèn dữ liệu vào S3, redshift, Elastisearch, splunk. 3. Near real time: delay 60s, hoặc 32Mb cho data. 4. Hỗ trợ nhiều data format, conversion, transfermation. 5. Thanh toán dữ liệu đi qua firehose.
2.15.2.1.1. 1. Full managed, gửi dữ liệu qua S3, redshift, elasticsearch. 2. sErverless, data transfer qua lambda. 3. Gần như realtime. 4. tự động scale. 5. Không cần phân phối data storage
2.15.3. **Kinesis data Analytics**
2.15.3.1. 1. Có thể lấy dữ liệu ở stream và fireshose để query. 2. Thực hện phân tích realtime sử dụng SQL. 3. auto scale, phân tích realtime.
2.15.4. **Compare**
2.15.4.1. **SQS** 1. Quản lý pull data. 2. Data sẽ bị xoá sau khi xử lý. 3. có nhiều người xử lý theo nhu cầu. 4. Không cần phân bổ throughput. 5. Không áp dụng đặt hàng cho SQS standard. 6. có khả năng trì hoãn các tin nhắn lẻ.
2.15.4.2. **SNS** 1. Pub/sub: gửi data đến nhiều subscriber. 2. có đến 10tr node/1 topic, 100.00 topic. 3. Dữ liệu không duy trì, sẽ mất nếu không gủi đi. 4. Không cần phân bổ throughput.
2.15.4.3. **Kinesis stream** 1. Pull data. 2. Có bao nhiêu người xử lý tuỳ ý. 3. Có thể xử lý lại data. 4. nên dùng cho realtime data, big data. 5. Data hết hạn sau x ngày. 6. Sẽ phải phân bổ throughput.
3. **Serverless**
3.1. **Lambda**
3.1.1. 1. Là một function của của AWS. 2. Thực hiện trong thời gian ngắn, nên yêu cầu về thời gian. 3. Chạy theo yêu cầu, sẽ bị tính tiền khi chạy. 4. Tự động scale. 5. hỗ trợ nhiều ngôn ngữ lập trình. 6. Monitoring qua cloudwatch. 7. Có thể tăng resouce để chạy (lên đến 3Gb ram) 8. Tăng ram đồng nghĩa với tăng CPU và network. 9. không thể dùng docker với lambda.
3.1.2. Dùng với: 1. API gateway. 2. Kinesis. 3. DynamoDB. 4. S3. 5. cloudwatch event 6. cloudfont. 7. cloudwatch log 8. SQS/SNQ 9. AWS cognito
3.2. **DynamoDB**
3.2.1. **Define** 1. full managed, độ linh động cao với 3 replication across AZs 2. No SQL DB. 3. Cho những khối lượng công việc lớn. 4. Nhanh và nhất quán về dữ liệu. 5. Kết hợp giữa IAM, authen, and admin. 6. tự động scale với giá rẻ.
3.2.2. **Basic** 1. sử dụng với table. 2. Mỗi table sẽ có 1 primary key. 3. Mỗi table có vô hạn hàng. 4. Mỗi item có một thuộc tính có thể thêm vào theo thời gian (có thể là rỗng) 5. dung lượng của sizse lớn nhất là 400kb 6. Support data: scaler type: string, binary number, null document type: list, map set type: string set, number set, binary set.
3.2.3. **DynamoDB DAX** 1. DAX = DynamoDB Accelerator. 2. cache liền mạch, không viết lại app. 3. dữ liệu qua DAX vào DynamoDB. 4. cache có đỗ trễ thấp cho đọc và ghi. 5.