12/08/2018, 12:24

Amazon Elastic Compute Cloud (part 1)

Trong bài viết trước mình đã giới thiệu về Amazon Simple Queue Service (Amazon SQS). Bài viết này mình sẽ giới thiệu một service khác là Amazon Elastic Compute Cloud (Amazon EC2), một service mà theo mình đánh giá là quan trọng bậc nhất trong các service của Amazon. Amazon EC2 là gì? Amazon ...

Trong bài viết trước mình đã giới thiệu về Amazon Simple Queue Service (Amazon SQS). Bài viết này mình sẽ giới thiệu một service khác là Amazon Elastic Compute Cloud (Amazon EC2), một service mà theo mình đánh giá là quan trọng bậc nhất trong các service của Amazon.

Amazon EC2 là gì?

Amazon EC2) cung cấp khả năng tính toán có thể mở rộng trong hệ thống Amazon Web Services (AWS) cloud. Sử dụng EC2 bạn không phải lo lắng về phần cứng, có thể tập trung vào việc phát triển và triển khai ứng dụng một. Bạn có thể tạo bao nhiêu server cũng được tùy theo nhu cầu (tùy theo tiền bạn có nữa =)), config security hoặc network, data storage cho server... EC2 cho phép tăng hoặc giảm nhu cầu tính toán, xử lý tùy theo nhu cầu bạn cần.

Features của EC2

EC2 có những điểm đặc trưng dưới đây mà bạn cần biết: - Instances: môi trường điện toán ảo hóa (virtual computing environments). Hiểu đơn giản là server =)) - Amazon Machine Images: template chứa config của instance. Ví dụ như thông tin về hệ điều hành, những packages, software được cài đặt vào instance. - Instance Types: Amazon cung cấp rất nhiều loại instances tùy thuộc vào mục đích sử dụng, như instance cho việc tính toán, cho việc lưu trữ dữ liệu... - Key pair: muốn log in được vào instance bạn phải sử dụng key pairs. Trong đó Amazon sẽ lưu trữ key public, còn bạn lưu private key. - Instance Store Volumes: lưu trữ dữ liệu tạm thời của instance. Sẽ bị xóa khi stop hoặc delete instance. - Amazon EBS volumes: sử dụng service Amazon Elastic Block Store để lưu trữ data của instance vĩnh viễn. Dữ liệu không bị mất kể cả bạn stop hay delete instance. - Security Groups: thiết lập Firewall chỉ định protocols, ports, and source IP ranges được phép kết nối vào instance. - Elastic IP addresses: IP của instance. -** Metadata **(Tags): là tag mà bạn có thể tạo và gán cho Amazon EC2 resources.

Trong bài viết này mình sẽ giới thiệu tập trung giới thiệu về phần instance, các loại instance, và instance lifecycle.

Instance Type

Trước hết hãy nói về những loại instance. Amazon cung cấp rất nhiều loại instance khác nhau tùy thuộc vào mục đích sử dụng của bạn như cần server mạnh về tính toán, server mạnh về memory, hay đơn thuần chỉ là một server có khả năng lưu trữ nhiều dữ liệu.

Dưới đây là hình ảnh phân loai instance tùy theo mục đích sử dụng

Instance Type

Có tất cả 5 dòng instance được cung cấp bao gồm: - General purpose: là dòng instance có sự cân bằng giữa 3 tiêu chí là cpu, memory, storage. DÒng này bao gồm có 2 dòng nhỏ là dòng t và m. Dòng t là những instance bình thường cấu hình không mạnh lắm. Trong khi đó dòng m lại là những instance có cấu hình khá mạnh như m4.2xlarge với vCPU là 8, 32Gb memory hay m4.10xlarge với 40 vCPU và 160Gb memory. - Compute optimized: dòng c với việc tối ưu hóa khả năng tính toán khi cung cấp số lương virtual process vCPU - Memory optimized: dòng r với việc tăng cường memory cho instance. Ví dụ như con r3.8xlarge có memory là 244Gb. - Storage optimized: dòng i với việc tối ưu hóa khả năng lưu trữ dữ liệu như con - GPU instance: là instance có khả năng làm việc với app xử lý về graphic với việc cung cấp 1 đến 4 GPUs.

Dựa trên những loại trên thì tùy thuộc vào mục đích sử dụng của bạn và số tiền bạn có để có thể tạo instance phù hợp với app. Để tìm hiểu về cấu hình cụ thể của từng loại instance bạn có thể tham khảo linh dưới dây:

http://aws.amazon.com/ec2/instance-types/

Ngoài ra còn một điểm cần lưu ý là bạn không thể tạo bao nhiêu instance cũng được. Mỗi account thì lại có giới hạn số lượng instance của từng loại mà bạn có thể tạo. Tham khảo trong link dưới đây:

http://aws.amazon.com/ec2/faqs/#How_many_instances_can_I_run_in_Amazon_EC2

Instance Lifecycle

Tiếp theo chúng ta sẽ tìm hiểu về lifecycle của một instance.

Instace khi được khởi tạo sẽ ở trạng thái pending. Sau đó sử dụng instance type để thiết lập cấu hình hardware. Tiếp đó instace sử dụng AMI với những thông tin cần thiết để boot instance. Sau khi instance đã sẵn sàng để chạy, nó sẽ chuyển sang trạng thái running.

Nếu như root device volumn được lưu ở Amazon EBS, instance có thể được stop và start lại. Khi stop instance đầu tiên nó sẽ chuyển về trạng thái stopping và sau đó là stopped. Khi instance ở trạng thái stopped, bạn có thể thay đổi thông tin, thuộc tính của instance kể cả instance type. Sau đó bạn có thể start lại instance. Có những điểm cần lưu ý ở đây là: - Khi instance ở trạng thái running tất nhiên là bạn phải trả tiền cho usage và data transfer của instance. Tuy nhiên khi instance stopped thì bạn không phải trả tiền cho usage và data transfer của instance. Tuy nhiên nếu bạn sử dụng EBS Volume để back up volume thì bạn vẫn phải trả tiền cho phần này kể cả khi instance đã stopped. - Khi start instance thì đầu tiên instance sẽ được chuyển về trạng thái pending. Ở đấy instance sẽ được chuyển về host computer mới. Do đó tất cả dữ liệu đươc lưu trữ ở instance store volumes sẽ mất. - Khi restart instance nếu instance chạy trên EC2-Classic, nó sẽ có địa chỉ ip mới. Còn nếu chạy trên EC2-VPC instance vẫn có địa chỉ IP cũ.

Reboot instance cũng chính là reboot lại operating system. Điều này không ảnh hưởng đến data, public DNS name hay ip address của instance, tất cả đều được giữ nguyên. Tuy nhiên Amazon có recommend bạn nên reboot instance trên màn hình giao diện thay vì làm trên command. Chắc là vì trên giao diện mới thấy hết lỗi nếu có xảy ra (?).

Khi mà bạn không cần đến instance nào đó nữa thì bạn có thể tắt nó đi, chuyển về trạng thái terminated. Có 2 điểm cần lưu ý ở đây: - Nếu bạn khởi động tính năng termination protection, bạn sẽ không thể tắt nó bằng command. - Amazon EBS volume chứa một thuộc tính là DeleteOnTermination (kiểu như dependent: :destroy ở mongoid ấy) tức là volume sẽ tự động bị xóa khi mà instance khởi tạo từ volumn đó về trạng thái terminated.

Ngoài ra còn một trạng thái nữa mà trên sơ đồ không có là trạng thái Instance Retirement. Instance sẽ về trạng thái này khi mà xảy ra lỗi không thể sửa về phía hardware của instance. Nếu instance root device sử dụng Amazon EBS volume thì sau trạng thái retirement sẽ là stopped, tức là bạn có thể start lại instance. Còn nếu sử dụng instance store volumn, instance sẽ được chuyển về trạng thái terminated và không thể start lại.

EC2 Root Device Volume

Root Device Volume chứa những image cần thiết để boot instance khi bạn khởi tạo instance. Như đã nói ở trên, những images này (AMIs) sẽ được lưu trữ ở instance store (Instance Store-backed) hoặc Amazon EBS (Amazon EBS-backed) nên chúng ta sẽ thấy Root Device Volume sẽ chứa mapping đến một trong 2 store này.

Hình ảnh dưới đây sẽ giúp bạn hiểu rõ về instance store-backed

Như bạn thấy image được sử dụng để boot instance được copy từ s3 vào root volume (đặc biệt là với sda1). Do đó khi instance dừng hoạt động thì những data này sẽ bị mất khi instance về trạng thái terminated.

Còn đối với EBS-backed sơ đồ sẽ như dưới đây:

Khi mà bạn khởi tạo instance, Amazon sẽ tạo cho bạn một Amazon EBS volumes tương ứng và lưu từng volume của instance ở đây. Do đó bạn có thể stop start instance mà không phải lo việc mất data. Ngoài ra với khi instance mà Amazon EBS volumes attach đến chuyển trạng thái về terminated, Amazon EBS volumes đó sẽ bỏ attach đến instance đó và có thể được attach vào một instance khác.

Việc sử dung Amazon EBS-backed giúp cho việc khởi tạo instance được nhanh hơn, cũng như giúp cho việc lưu trữ data an toàn và ổn định hơn.

Kết luận

Trong bài viết này mình đã giới thiệu sơ lược về EC2, về instance cũng như các loại instance, instance lifecycle(yeah) Ngoài ra còn rất nhiều config của instance như là time, region, change hostname, quản lý user... Những phần này bạn có thể tự tìm hiểu ở link:

http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Configure_Instance.html

Trong bài viết tới liên quan đến EC2 mình sẽ đề cập cụ thể hơn về AMI và Block Device Mapping, một thành phần rất quan trọng trong EC2. Xin cảm ơn và và hãy đón đọc bài tới của mình (chao)

0