Amazon Elastic Compute Cloud (part 2)
Trong bài viết trước mình đã giới thiệu về EC2, về instance, các loại instance hay là instance lifecycle. Bài viết này mình sẽ tiếp tục giới thiệu về Amazon Machine Images để giúp các bạn hiểu rõ hơn về service EC2 của Amazon. Khái niệm Như đã giới thiệu ở bài trước, AMI là một template chứa ...
Trong bài viết trước mình đã giới thiệu về EC2, về instance, các loại instance hay là instance lifecycle. Bài viết này mình sẽ tiếp tục giới thiệu về Amazon Machine Images để giúp các bạn hiểu rõ hơn về service EC2 của Amazon.
Khái niệm
Như đã giới thiệu ở bài trước, AMI là một template chứa các thông tin để khởi tạo một instance như hệ điều hành, packages, software... mà bạn muốn nó có khi tạo instance.
Một AMI có thể được sử dụng để khởi tạo nhiều instance và ngược lại, một instance có thể sử dụng nhiều AMI để khởi tạo bản thân.
Một mẫu AMI sẽ bao gồm có: * Template cho root volume của instance ví dụ như hệ điều hành (OS), application server, hay những application cần thiết... * Launch Permissions: khai báo về quyền khởi tạo instance. Dùng để xác định những tài khoản nào được sử dụng AMI này để khởi tạo instance. * Block Device Mapping: chỉ định volumes nào sẽ được map với instance khi instance khởi tạo.
AMI Type
Phân loại AMI thì chúng ta có rất nhiều tiêu chí ví dụ như: * Region: chia theo khu vực mà AMI được sử dụng, giống như region của instance. Bao gồm: ap-northeast-1, ap-southeast-1, ap-southeast-2... * Operating System: chia theo hệ điều hành. Linux, Window... * Architecture: 32-bit hay 64-bit * Lauch Permission: quyền được truy cập và sử dụng AMI. Bao gồm có: * public: cho phép truy cập vào sử dụng co tất cả AWS accounts. * explicit: cho phép một vài AWS accounts được truy cập và sử dụng. * implicit: chỉ có owner của AMI mới được sử dụng. * Storage cho Root Device: chia theo nơi lưu trữ Root Device. Lưu ở Amazon EBS - Backed hay là Amazon Instance Store - Backed
Trong những tiêu chí trên thì tiêu chí Storage cho Root Device là cái mà chúng ta cần quan tâm nhất vì nó ảnh hưởng lớn nhất đến việc khởi động, lưu trữ dữ liệu... của instance. Chúng ta sẽ xem bảng dưới đây để hiểu rõ hơn về sự khác nhau giữa Amazon EBS - Backed và Amazon Instance Store - Backed.
Đặc điểm | Amazon EBS-Backed | Amazon Instance Store-Backed |
---|---|---|
Thời gian Boot | Thường ít hơn 1 phút | Thường ít hơn 5 phút |
Giới hạn dữ liệu | 16TiB | 10TiB |
Upgrade Instance | Có thể thay đổi instance type, kernel, ram... khi instance stop | Không thể thay đổi thuộc tính của instance |
Phí tổn | Tính phí cho phần sử dụng instance, sử dụng Amazon EBS volume và lưu trữ AMI | Tính phí cho phần sử dụng instance và lưu AMI trên S3 |
Tạo AMI | Chỉ cần sử dụng 1 câu command | Yêu cầu cài đặt và sử dụng AMI tools |
Stop State | Instance có thể đưa về stop state | Instance không thể đưa về stop state |
AMI Lifecycle
Một chu kì sử dụng của AMI mô tả đơn giản như hình bên dưới:
Đầu tiên là sẽ tạo AMI sử dụng template cho root volume có sẵn. Sau đó là đăng kí (register) cho AMI. Sau khi đăng kí thì AMI đó đã sẵn sàng để tạo một hay nhiều instance. Và nếu không cần sử dụng AMI đó thì chúng ta sẽ bỏ đăng kí (deregister) AMI..
Tạo AMI
Việc tạo AMI hay customize một AMI thường là sử dụng AMI có sẵn của Amazon để tạo instance. Thay đỗi những setting, cài đặt thêm aplication hay những thứ cần thiết trên instance và sau đó là sử dụng instance đó để tạo AMI. Để xem list những AMI public thì có thể sử dụng AWS CLI với câu lệnh sau
aws ec2 describe-images --executable-users all # list những AMI public aws ec2 describe-images -executable-users self # list những AMI bạn tạo aws ec2 describe-images --owners amazon # list AMI của Amazon
Dưới đây là 2 sơ đồ cho việc tạo Amazon EBS-Backed AMIs và Amazon Instance Store-Backed AMIs
Amazon EBS-Backed AMIs
Amazon Instance Store-Backed
Dựa trên sơ đồ chúng ta có thể thấy được sự khác nhau giữa việc tạo Amazon EBS-Backed AMIs và Amazon Instance Store-Backed AMIs.
Đối với Amazon EBS-Backed AMIs thì template sẽ được lưu ở EBS là 1 snapshot (snapshot hiểu đơn giản như là image của thằng Norton Ghost Image mà bạn hay dùng để backup toàn bộ data của Win ấy =)) Từ snapshot này một AMI sẽ được register.
Còn với Amazon Instance Store-Backed AMIs sau khi tạo instance, bạn phải sử dụng tool để bundle. Sau khi process kết thúc sẽ sinh ra một bundle bao gồm 1 file image image.manifest.xml và 1 file template image.part.xx. Sau đó bundle này được upload lên S3 từ đó register 1 AMI cho bạn.
Nếu như ở Amazon EBS-Backed AMIs bạn phải trả tiền cho phần lưu snapshot ở EBS thì ở Amazon Instance Store-Backed AMIs bạn phải trả tiền cho phần lưu bundle trên S3.
Ngoài ra đối với Amazon Instance Store-Backed AMIs bạn cần chú ý những điều sau: * Cài đặt AMI tools * Cài đặt API tools * Đảm bảo rằng bạn có S3 bucket để lưu bundle
Cụ thể về các bước tạo AMIs với 2 loại trên bạn có thể đọc và làm theo ở 2 link sau, rất dễ sử dụng =))
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-instance-store.html#creating-ami-linux-instance
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html#how-to-create-ebs-ami
Từ 1 snapshot để tạo 1 AMI thì bạn tham khảo theo link sau:
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html#creating-launching-ami-from-snapshot
Ngoài ra còn 1 điểm cần chú ý đó là bạn có thể chuyển một Amazon Instance Store-Backed AMIs thành một Amazon EBS-Backed AMIs theo các bước như link dưới đây. Tuy nhiên chỉ có thể chuyển với OS là Linux, không thể chuyển với OS là Window.
http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-an-ami-instance-store.html#Using_ConvertingS3toEBS
Deregister AMIs
Nếu như AMI không cần thiết nữa, bạn có thể bỏ đăng kí AMI đó đi. Việc bỏ đăng kí AMI không ảnh hưởng đến snapshot hay bundle tạo từ AMI đó cũng như instance tạo từ AMI đó. Tuy nhiên là vì bạn vẫn phải trả tiền cho phần lưu snapshot, bundle và chạy instance nên thường thì khi bỏ đăng kí cho AMI, bạn cũng nên xóa snapshot, bundle và terminate instance tạo từ AMI đó.
Để deregister AMI thì bạn sử dụng câu lệnh sau
ec2-deregister ami_id
Kết luận
Trên đây mình đã giới thiệu về Amazon Machine Images với những điểm chú ý để các bạn có thể hiểu rõ hơn về instance trong EC2. Trong phần tiếp theo mình sẽ giới thiệu qua về Block Device Mapping và tạo instance trong ruby (chao)