AWS Overview part 2
IAM (Identity And Access Management)
IAM là 1 service của Amazon dùng quản lý và phân quyền cho use.
– Có 2 loại account có thể sử dụng trong aws
– Root Account
– account được tạo bởi IAM
– Root Account
– Là account khi đăng ký tài khoản aws, tài khoản này có toàn bộ quyền sử dụng đối với tất cả resrouce aws.
– Không thể giới hạn quyền truy cập đối với tài khoản root.
Do đó khônng nên sử dụng tài khoản root để đăng nhập và sử dụng aws resource thường xuyên.
→ Giải pháp: tạo nhiều user trong tài khoản root và giới hạn quyền truy cập cho từng để sử dụng.
– Account được tạo bởi IAM
Sau khi tạo account Aws (root account), thì bước đầu tiên là sử dụng IAM tạo user, group cần thiết.
Và đối với mỗi user, group thì giới hạn quyền truy cập vào các resource trên aws.
Những user này chỉ được phép access vào những rescource đã được phân quyền trong AWS service
EC2 (Amazon Elastic Compute Cloud)
Đặc điểm của EC2:
- Có thể tăng giảm số lượng tương ứng với nhu cầu (số request)
Các phương thức thanh toán
1. オンデマンド (phương thức thanh toán default)
- Tính tiền theo thời gian khởi động (ở trạng thái running, trạng thái pending, stoped thì ko bị tính tiền)
- Tiền phát sinh theo đơn vị giờ
- Tính tiền theo đơn vị giây
- Ví dụ tham khảo:
Khi chạy instance 30 rồi tắt -> bị bill là 1h
Khi chạy 1 instance 10 phút, stop, sau đó start lại thì bị bill là 2 instance mỗi cái 1h
Khi chạy 2 instance cùng type, mỗi cái 30 phút thì bị bill là 2 innstance mỗi cái 1h- Số tiền phát sinh tuỳ thuộc vào 3 yếu tố
- リージョン
- インスタンスタイプ
- OS(Amazon Linux/…)
- Nên áp dụng đối với trường hợp không cần sử dụng EC2 liên tục
2. リザブードインスタンス:
- Thanh toán theo kiểu hợp đồng 1 hoặc 3 năm
- Rẻ hơn so với thanh toán theo kiểu オンデマンド
- Không khởi động cũng mất tiền
- Có thể thanh toán theo hình thức:
- Trả trước toàn bộ
- Trả trước 1 phần
- Không trả trước
- Không áp dụng chế độ tăng, giảm giá đối với instance đã ký hợp đồng.
3. スポットインスタンス (đấu giá)
- Trả giá cao hơn giá thị trường là có thể sử dụng EC2
- Giá thị trường được quyết định bới:
- AZ
- Instance Type
- OS
- Ưu điểm:
- giá rẻ
Giá cả tăng giảm tuỳ theo cung cầu nhưng rẻ hơn on demand (tối đa có thể giảm được 90% so với onDemand)
- giá rẻ
- Nhược điểm:
- Với những spot instance đang chạy nếu giá của spot trở nên cao hơn với giá đã đấu giá thì instance đấy bị 終了
Vì vậy chỉ nên sử dụng trong trường hợp mà dù cho instance có bị biến mất cũng không ảnh hưởng đến hệ thống.
Những dữ liệu trên spot instance nên ghi thường xuyên vào những nơi lưu trữ không bị xoá khi instance 終了 (S3, EBS, DynamoDB,..)
Khoảng 2 phút trước khi 終了 thì sẽ có thông báo do đó, cần ghi dữ liệu ra nơi lưu trữ khác trước khi 終了 - Với trường hợp spot instance bị tắt do giá spot tăng lên thì thời gian 1h sử dụng trước khi bị tắt sẽ không bị tính tiền.
(Nếu sử dụng service Spot Block thì trong khoảng 1h-6h dù giá spot có cao hơn giá đấu giá thì vẫn có thể tiếp tục sử dụng.
Giá Block thì sẽ đắt hơn so với giá Spot nhưng vẫn rẻ hơn OnDemand)
- Với những spot instance đang chạy nếu giá của spot trở nên cao hơn với giá đã đấu giá thì instance đấy bị 終了
Khởi động EC2
1. Các bước khởi động
- chọn AMI (Amazon Machine Image)
- Chọn Instance Type
- Network/IAM Role/User Data Setting (thông tin chi tiết của instance)
- Setting Storage
- Thêm Tag
- Setting Sercurity Group
- Setting Confirm
- Chọn Key pair
2. Mục đích của từng bước
- Chọn AMI
Cài OS cho EC2 Instance.
- Window Server
- Linux
- Những Image được cung cấp từ AWS Market place
- Custom AMI
- Chọn Instance Type
Chọn thông tin cấu hình cho EC2 - Instance Setting
- Chọn VPC, subnet
- Chọn Public IP, Setting IAM Role, Setting User Data nếu cần
- User Data: Là những xử lý muốn chạy khi khởi động EC2 instance lần đầu
Ví dụ: Install Apace Web, Khởi động Web Service, Khi Restart OS thì cũng khởi động Web Service.
Meta Data: Instance ID, IP address, host name,.. (những thông tin liên quan đến EC2)
4. Setting Storage
Chọn thiết bị storage để ec2 connect đến. (install OS, lưu dữ liệu,..)
Có thể hình dung đơn giản là chọn ổ cứng cho máy.
5. Thêm Tag
Cấu tạo theo dạng Key-Value. Sử dụng để search, filter khi cần.
6. Sercurity Group Setting
Setting Firewall cho EC2. (ít nhất phải được áp dụng 1 sercurity group)
7. Setting Confirm
Xác nhận lại thông tin từ bước 1 đến bước 6
8. Chọn Key pair
Sử dụng để login vào EC2 instance.
Public key được lưu trên AWS, private key download về local.
Dedicated Instance
Về bản chất khi khởi tạo 1 EC2 instance thì nó sẽ được khởi tạo ở 1 host vật lý tuỳ ý trong AZ. Vì vậy sẽ có trường hợp nhiều EC2 của những account khác nhau cùng được khởi tạo trong 1 host vật lý.
Có những trường hợp phần mềm install trên EC2 yêu cầu người sử dụng đó phải có quyền sử dụng độc quyền đối với phần cứng của server đó. Hoặc là vấn đề liên quan đến bảo mật mà không cho phép EC2 instance của account khác cũng chạy trên 1 host vật lý.
→ giải quyết vấn đề này thì cần sử dụng Dedicated Instance. (là instance độc chiếm hardware).
Dedicated Instance: Đảm bảo việc không cho EC2 instance của account khác khởi tạo trên host vật lý đang sử dụng.
ELB (Elastic Load Blancing)
Là service phân tán request nhằm giảm tải cho server. ELB sẽ có trách nhiệm phân tán những request đến cho những server EC2 đặt dưới nó.
1. Tính năng của ELB
- Phân tán cho nhiều AZ (複数のAZにまたがる負荷分散)
- Thực hiện Health Check đối vơi EC2
- Auto Scaling với chính ELB
- SSLのオフロード
- Connection Draining
- Access Log
- スティッキーセッション
- Phân tán cho nhiều AZ (複数のAZにまたがる負荷分散)
Đối với những request đến ELB có thể phân tán sang những EC2 ở các AZ khác nhau.
Những request này sẽ được chia đều cho mỗi AZ.
-> có thể xây dựng được 1 hệ thống có 可用性 cao.
- Health Check
ELB sẽ thực hiện Health Check định kỳ đối với những EC2 đặt dưới nó.
Đối với những instance có vấn đề thì nó sẽ ko phân tán request đến nữa, mà chỉ phân tán request đến những instance chạy ổn định.
- Auto Scaling với chính ELB
Tự động tăng giảm ELB.
Khi có quá nhiều request cần xử lý phân tán mà 1 ELB không thực hiện kịp thì có thể auto scalling chính ELB (tăng thêm ELB), đến khi ko cần thiết thì lại giảm ELB đi.
- SSLのオフロード
Khi muốn sử dụng SSL để 通信 giữa client và hệ thống trên AWS thì không cần thiết phải đặt SSL証明書 ở mỗi server EC2 mà là đặt ở ELB
- Connection Draining
Khi những EC2 ở dưới ELB bị xoá thì nó sẽ đảm bảo việc với những request mới thì EC2 sẽ không nhận nữa, nhưng đối với những request đang xử lý thì sẽ đợi cho đến khi EC2 xử lý xong. - Access Log
Khi sử dụng tính năng access log thì tất cả những request được gửi đến ELB sẽ được ghi lại và lưu vào địa chỉ S3 đã được setting. - スティッキーセッション
Tính năng này đảm bảo những request từ phía client sẽ được gửi đến 1 EC2 cố định nào đó.
Giả sử khi tạo 1 trang web có chức năng login, sau khi user login xong thì section infor sẽ được lưu lại phía web server.
Khi phía client gửi request lên, web server sẽ check xem là user đó đã login chưa, nếu user đó đã login rồi thì sẽ ko yêu cầu login lại nữa.
Tuy nhiên khi sử dụng ELB thì những request từ phía client có thể bị chuyển sang 1 EC2 mới, và khi đó EC2 đó sẽ ko có section infor của user đã login -> bắt phải login lại.
Và tính năng này sẽ đảm bảo việc user đã login vào EC2 có thông tin section infor thì những lần request tiếp theo cũng sẽ đến EC2 đó.
Auto Scaling
Tuỳ theo thông số setting trong auto scaling group mà có thể tự động tăng giảm EC2 instance.
Khi số lượng request quá nhiều thì auto scaling group sẽ thực hiện scale out để tăng thêm EC2.
Khi số lượng request giảm thì sẽ thực hiện scale in để giảm EC2.
Auto SCaling được sử dụng kết hợp với ELB. Một Auto Scaling Group có thể kết nối với ít nhất 1 ELB.
1. Các thành phần của Auto Scaling
- Launch Configuration
- Auto Scaling Group
- Auto Scaling Policy
2. Launch Configuration
- Là mục setting để khi tăng thêm EC2 thì sẽ khởi động những EC2 như thế nào
Mục setting này bao gồm những mục sau:- AMI
- Instance Type
- IAM Role
- Cloudwatch Monitaring
- User Data
- IP Address
- Storage (EBS, Instance Store)
- Sercurity Group
- Key pair
- …
3. Auto Scaling Group
- Thiết lập vị trí và quy mô của group
- Start Group Size (số lượng EC2 khi khởi động)
- Sub Net (AZ)
- ELB
- Min/Max Group Size
4. Auto Scaling Policy
- Setting khi nào thì tăng giảm Instance
5. Nguyên tắc tăng giảm EC2
- Để duy trì số lượng EC2 instance mong muốn (desired capacity) thì auto scaling group sẽ thực hiện helthcheck.
Khi phát hiện ra có instance nào đó bị lỗi thì sẽ xoá đi và khởi động thêm 1 instance mới đề bù lại. - Khi Auto Scaling Group được kết nối với nhiều AZ thì sẽ phân bổ số lượng EC2 đồng đều giữa các AZ.
Ví dụ: Lúc khởi động chạy 2 instance
Khi có nhiều request thì sẽ thực hiện scale out để tăng instance
Số lượng instance hiện tại (cộng cả instance đã tăng) vẫn không đáp ứng nổi thì sẽ tăng thêm 1 instance nữa