Điện toán đám mây với Amazon Web Services : Phần 3: Các máy chủ theo yêu cầu với EC2

Amazon EC2

Amazon Elastic Compute Cloud (EC2) là nền tảng cơ sở cho môi trường điện toán đám mây do Amazone cung cấp. EC2 giúp cho việc tạo ra, khởi động và dự phòng các ứng dụng ảo cho cá nhân hay doanh nghiệp một cách đơn giản và — bất cứ khi nào —. Bạn trả phí sử dụng cho những ứng dụng này theo loại ứng dụng và thời lượng sử dụng. Các máy chủ ảo hoạt động bên trong môi trường bảo mật của các trung tâm dữ liệu của Amazon.

EC2 có thể cung cấp cho ứng dụng ảo của bạn khả năng để:

  • Cấu hình các yêu cầu tính toán của chúng ngay trong khi hoạt động.
  • Điều chỉnh dung lượng dựa trên yêu cầu.

Có những tình huống không lường trước được của thế giới web ngày nay, khi mà lưu lượng truy cập tới trang web của bạn có thể tăng đột biến như sóng thần nếu trang web của bạn được xuất hiện trên trang nhất của Yahoo — và giảm đột ngột sau đó vài giờ. Bây giờ, bạn có thể điều chỉnh dung lượng lưu lượng của bạn lên hay xuống một cách mềm dẻo. Một số đặc tính đáng giá được cung cấp bởi mô hình mới này:

Độ tin cậy
EC2 được thiết kế để dễ dàng cung cấp các thể hiện của ứng dụng và hủy chúng khi không cần thiết.
Tính đơn giản
Được xây dựng trên các khái niệm đơn giản, EC2 cung cấp tính mềm dẻo để kiến thiết các hệ thống của bạn. Amazon cung cấp tất cả các nguyên vật liệu bạn cần; bạn có thể kết hợp những nguyên liệu đó theo cách mà phù hợp với ứng dụng của bạn.
Bảo mật
EC2 được thiết kế để cung cấp tính bảo mật cấp độ cao. Các thể hiện của ứng dụng đều hoạt động trong các trung tâm dữ liệu an toàn của Amazon, với khả năng cấu hình tường lửa để giới hạn tất cả các truy cập tới các nhóm mà bạn tin tưởng.
Bền vững
Bạn có thể xây dựng tính bền vững trong ứng dụng của bạn bằng cách đặt các thể hiện của ứng dụng của bạn vào trong các các vị trí địa lý khác nhau, và bằng cách sử dụng các vùng lưu trữ bền vững và độc lập với các thể hiện của ứng dụng.
Giá rẻ
Dịch vụ EC2 được tính với giá rất kinh tế và là thay thế hấp dẫn cho tất cả các nhu cầu về máy chủ của bạn.

Khung làm việc (framework)

Phần này khám phá các khái niệm nó làm nền tảng cho khung làm việc (framework) của EC2.

Amazon Machine Images

Amazon Machine Images (AMIs) là các môi trường máy chủ được đóng gói, dựa trên Linux®, mà có thể thực thi bất cứ phần mềm hay ứng dụng nào bạn cần. Chúng là trái tim của môi trường điện toán mềm dẻo được cung cấp bởi EC2. Phiên bản hiện tại của EC2 hỗ trợ AMI dựa trên Linux, do đó cũng có những hỗ trợ ban đầu để sử dụng OpenSolaris như là hệ điều hành trong môi trường EC2.

Có ba kiểu Amazon Machine Images:

Riêng tư, cá nhân Các AMI do bạn tạo ra là được mặc định là riêng tư. Bạn có thể cấp quyền truy cập tới người dùng khác để khởi động các AMI cá nhân của bạn.
Công cộng Các AMI được tạo bởi người dùng và phát hành tới cộng đồng của Amazon Web Services, do đó bất cứ cai cũng có thể khởi động các thể hiện dựa trên chúng và sử dụng chúng theo cách mà họ muốn. Trang web Developer Connection của Amazon Web Services liệt kê tất cả các AMI công cộng.
Trả phí Bạn có thể tạo các AMI cung cấp các chức năng cụ thể mà có thể khởi động bởi bất cứ ai muốn trả tiền cho bạn cho mỗi giờ sử dụng thêm với phí sử dụng của Amazon.

Amazon cung cấp vài công cụ dòng lệnh (command-like tools) để tạo và quản lý các AMI một cách dễ dàng. Bản thân các AMI được lưu trữ trên dịch vụ lưu trữ đơn giản của Amazon (Amazon Simple Storage Service – S3). Ngay khi đăng ký một AMI với EC2, một định danh ID duy nhất được gán cho AMI đó dùng để xác định nó và khởi động một thể hiện từ nó. Có vài cách để tạo AMI của chính bạn. Bạn có thể sử dụng một AMI công cộng như là cơ sở cho AMI của chính bạn và sử dụng tiến trình sau để tạo một AMI:

  1. Khởi động một thể hiện từ một AMI với cặp khóa SSH (secure socket shell) của bạn.
  2. SSH tới thể hiện.
  3. Tùy biến thể hiện theo ý bạn.
  4. Gói thể hiện đang hoạt động lại vào một AMI mới bằng cách sử dụng các công cụ của Amazon.
  5. Gửi gói thể hiện tới S3 để lưu trữ bằng cách sử dụng các công cụ của Amazon.
  6. Đăng ký AMI mới này với EC2 bằng cách sử dụng công cụ của Amazon.
  7. Khởi động một thể hiện mới từ AMI mới này, và lặp đi lặp lại việc tùy biến và đóng gói cho đến khi bạn hài lòng.

Một lựa chọn khác là tạo một AMI mới bằng cách sử dụng một trong những mã kịch bản (script) công cộng có sẵn từ cộng đồng EC2. Đoạn mã kịch bản cho phép bạn tạo một AMI từ đầu. Các mã kịch bản phổ biến là:

  • Mã kịch bản tạo AMI dựa trên UbuntuDebian được cung cấp bởi Eric Hammond. Bạn có thể hoặc sử dụng các AMI dựng sẵn từ trang web của Eric hoặc tạo một AMI từ đầu với mã kịch bản này.
  • Nếu bạn đang tìm kiếm các AMI mà phục vụ như là cơ sở cho các ứng dụng Ruby on Rails, Paul Dowman cung cấp một mã kịch bản mà có thể tạo một AMI dựa trên Ubuntu để chạy các ứng dụng Rails trên EC2.
  • RightScale Cung cấp mã kịch bản dựa trên cả Ubuntu và CentOS để tạo AMI của bạn từ đầu.

Các thể hiện

Các thể hiện là các thể hiện ảo của ứng dụng hoạt động mà sử dụng một AMI như là mẫu. Bạn có thể khởi động một thể hiện, xem chi tiết về thể hiện, và kết thúc nó bằng các công cụ của Amazon. Bạn cũng có thể sử dụng rất nhiều thư viện của bên thứ ba trong các ngôn ngữ lập trình khác nhau để kiểm soát vòng đời của các thể hiện.

Các thể hiện có thể dựa trên nền tảng 32-bit hoặc 64-bit và có thể là một trong những kiểu sau. Amazon cũng đánh giá mỗi kiểu thể hiện theo nghĩa của đơn vị tính của EC2. Mỗi đơn vị tính của EC2 (ECU) cung cấp khả năng xử lý tương đương một bộ xử lý Opteron 2007 hoặc Intel® Xeon™ với xung nhịp 1.0-1,2 GHz. Xem chi tiết giá cho từng loại thể hiện.

Thể hiện cỡ nhỏ (m1.small)
Bộ nhớ 1.7-GB, 1 đơn vị tính EC2 (1 lõi ảo với 1 đơn vị tính EC2), dung lượng lưu trữ 160-GB, nền tảng 32-bit, hiệu suất I/O trung bình
Thể hiện cỡ lớn (m1.large)
Bộ nhớ 7.5-GB, 4 đơn vị tính EC2 (2 lõi ảo, mỗi lõi với 2 đơn vị tính EC2), dung lượng lưu trữ 850-GB, nền tảng 64-bit, hiệu suất I/O cao
Thể hiện cỡ cực lớn (m1.xlarge)
Bộ nhớ 15-GB, 8 đơn vị tính EC2 (4 lõi ảo, mỗi lõi với 2 đơn vị tính EC2), dung lượng lưu trữ 1,690-GB, nền tảng 64-bit, hiệu suất I/O cao
Thể hiện cỡ trung bình (c1.medium)
Bộ nhớ 1.7-GB, 5 đơn vị tính EC2 (2 lõi với 2.5 đơn vị tính cho mỗi lõi), dung lượng lưu trữ 350-GB, nền tảng 32-bit, hiệu suất I/O trung bình
Thể hiện cỡ cực lớn (c1.xlarge)
Bộ nhớ 7-GB, 20 đơn vị tính EC2 (8 lõi với 2.5 đơn vị tính mỗi lõi), dung lượng lưu trữ 1,690-GB, nền tảng 64-bit, hiệu suất I/O cao

Vì các thể hiện được tính tiền dựa trên thời gian chúng được sử dụng, bạn có thể dễ dàng kiểm soát nhu cầu tính toán lên hay xuống dựa trên tải trọng hiện tại cho ứng dụng của bạn. Bạn không cần đặt nhiều dung lượng tính toán trước.

Các nhóm bảo mật

Bất cứ thể hiện nào được khởi động trong môi trường EC2 đều hoạt động trong một nhóm bảo mật. Mỗi nhóm bảo mật định nghĩa các quy định cho tường lửa để hạn chế truy cập cho các thể hiện hoạt động trong nhóm đó. Bạn có thể cấp quyền hoặc ngăn cấm truy cập bằng địa chỉ IP hoặc bằng các quy định định tuyến liên địa chỉ không phân lớp (classless interdomain routing – CIDR), cho phép bạn chỉ định một dải các cổng và giao thức truyền tin. Bạn cũng có thể kiểm soát truy cập tới các nhóm bảo mật cụ thể, do đó bất cứ thể hiện nào hoạt động trong những nhóm truy cập bảo mật đó sẽ tự động được cấp quyền hoặc bị từ chối truy cập tới thể hiện của bạn.

Các cặp khóa bảo mật

Các cặp khóa bảo mật (Security key pairs) là các cặp khóa SSH công cộng/riêng tư (public/private SSH key pair) mà được chỉ định khi khởi động một thể hiện. Chúng được sử dụng để đăng nhập vào bàn giao tiếp người-máy (console) của một trong các thể hiện đã được khởi động của bạn. EC2 sẽ thêm phần công cộng của cặp khóa vào thể hiện đã được khởi động, và bạn có thể sử dụng khóa riêng tư để ssh vào nó.

Các cặp khóa bảo mật khác với khóa truy cập ID và khóa bảo mật của Amazon Web Services của bạn (có trên trang thông tin tài khoản), cái mà được sử dụng để xác định bạn một cách duy nhất như là người sử dụng tạo ra các yêu cầu tới Amazon Web Services sử dụng các API. Các cặp khóa bảo mật chủ yếu là để cho phép người sử dụng truy cập một cách an toàn tới các thể hiện mà không cần sử dụng các mật khẩu.

Các miền sẵn sàng (Availability zones)

EC2 được tạo thành từ nhiều trung tâm dữ liệu tại các vùng địa lý khác nhau để cung cấp tính phục hồi. Bạn có thể đặt các thể hiện bạn khởi động tại các vị trí khác nhau. Các vị trí là các vùng địa lý với các miền sẵn sàng (availability zone) bên trong chúng. Bản phát hành hiện tại của EC2 cung cấp truy cập tới một vùng đơn ở miền đông nước Mỹ với ba miền sẵn sàng trong nó. Mỗi miền sẵn sàng trong một vùng được thiết kế bởi Amazon để được cách biệt khỏi các hỏng hóc từ các miền sẵn sàng khác.

Bạn có thể bảo vệ các ứng dụng của bạn khỏi hỏng hóc của một địa điểm bằng cách khởi động các thể hiện trong các miền sẵn sàng riêng biệt. Nếu bạn không chỉ rõ một miền sẵn sàng khi khởi động một thể hiện, Amazon sẽ tự động chọn một miền cho bạn dựa trên tình trạng hiện tại của hệ thống.

Các địa chỉ IP mềm

Mỗi thể hiện được cấp tự động một địa chỉ IP riêng tư và công cộng khi khởi động bởi EC2. Địa chỉ IP công cộng có thể được sử dụng để truy cập tới thể hiện thông qua internet. Mỗi lần bạn khởi động thể hiện, địa chỉ IP này sẽ thay đổi theo. Nếu bạn đang sử dụng bất cứ một ánh xạ DNS động để kết nối một tên DNS tới địa chỉ IP trên, nó có thể mất tới 24 giờ trước khi sự thay đổi được lan truyền trên internet. EC2 giới thiệu khái niệm địa chỉ IP mềm (elastic IP address) để làm giảm bớt vấn đề này. Mỗi địa chỉ IP mềm dẻo là một địa chỉ IP tĩnh được gắn với tài khoản EC2 của bạn, chứ không phải một thể hiện cụ thể nào, và được gắn vĩnh viễn vào tài khoản của bạn trừ khi bạn trả lại nó cho EC2.

Bạn cũng có thể tái ánh xạ một địa chỉ IP mềm trong các thể hiện, và do đó nhanh chóng phản hồi tư bất cứ một hỏng hóc của thể hiện bằng cách khởi động một thể hiện khác và tái ánh xạ nó (hoặc sử dụng một thể hiện đã tồn tại). Tại bất cứ thời điểm nào, bạn chỉ có thể có một thể hiện đơn được ánh xạ tới một địa chỉ IP mềm.

Elastic Block Store (EBS)

EBS là một mẫu của lưu trữ bền vững tạo bởi Amazon cho phép bạn tạo ra các không gian lưu trữ mà có thể được gắn như là các khối thiết bị tới một thể hiện đang hoạt động. Bạn cũng có thể tạo các bản lưu nhanh (snapshot) từ các không gian lưu trữ và sau đó tái tạo một không gian lưu trữ từ các bản lưu nhanh đó. Mỗi bản lưu nhanh thể hiện trạng thái của một không gian lưu trữ tại các thời điểm cụ thể. Do đó bạn có thể dễ dàng lưu trữ các tệp và dữ liệu cần tồn tại không phụ thuộc vào vòng đời của các thể hiện trên một không gian EBS, và sau đó dễ dàng gắn và gỡ không gian lưu trữ đó với bất cứ thể hiện nào bạn muốn.

Một điều cần báo trước là mỗi không gian lưu trữ EBS chỉ có thể gắn vào một thể hiện tại một thời điểm. Tuy nhiên, bạn có thể gắn nhiều không gian lưu trữ vào một thể hiện nếu bạn muốn. Mỗi không gian lưu trữ EBS được gắn và định vị trong một miền sẵn sàng. Thể hiện mà sẽ được gắn với không gian lưu trữ phải nằm cùng trong miền sẵn sàng. Mỗi tài khoản đều bị giới hạn 20 không gian lưu trữ EBS nhưng bạn có thể yêu cầu Amazon Web Services tăng giới hạn nếu bạn cần nhiều không gian hơn.


Giá cả

EC2 tính tiền dựa trên bốn tiêu chí:

  • Kiểu thể hiện được sử dụng. Có hai kiểu tiêu chuẩn cho các thể hiện, mỗi loại với số lượng lõi, bộ nhớ, dung lượng lưu trữ và kiến trúc khác nhau.
    Tiêu chuẩn (Standard)
    Các thể hiện thông thường mà có thể được sử dụng cho hầu hết các ứng dụng.
    Hiệu suất cao (High-CPU)
    Các thể hiện phù hợp hơn với các ứng dụng mà yêu cầu sức mạnh xử lý lớn và chuyên về tính toán.

    Bảng 1 đưa ra giá mẫu cho các kiểu thể hiện từ nhỏ tới lớn.

    Bảng 1. Giá cho kiểu thể hiện

    Kiểu Chi tiết Giá
    Tiêu chuẩn nhỏ Bộ nhớ 1.7 GB, 1 đơn vị tính EC2, dung lượng lưu trữ 160 GB, nền tảng 32-bit $0.10 cho một giờ hoạt động của thể hiện
    Tiêu chuẩn lớn Bộ nhớ 7.5 GB, 4 đơn vị tính EC2, dung lượng lưu trữ 850 GB, nền tảng 64-bit $0.40 cho một giờ hoạt động của thể hiện
    Tiêu chuẩn siêu lớn Bộ nhớ 15 GB, 8 đơn vị tính EC2, dung lượng lưu trữ 1,690 GB, nền tảng 64-bit $0.80 cho một giờ hoạt động của thể hiện
    Hiệu suất cao (High-CPU) mức trung bình Bộ nhớ 1.7 GB, 5 đơn vị tính EC2, dung lượng lưu trữ 35GB, nền tảng 32-bit $0.20 cho một giờ hoạt động của thể hiện
    Hiệu suất cao (High-CPU) siêu lớn Bộ nhớ 7 GB, 20 đơn vị tính EC2, dung lượng lưu trữ 1,690 GB, nền tảng 32-bit $0.80 cho một giờ hoạt động của thể hiện
  • Khối lượng dữ liệu hay băng thông được truyền tới và đi từ EC2. Dữ liệu truyền giữa EC2, SimpleDB, và S3 có vị trí trong nước Mỹ là miễn phí. Dữ liệu truyền giữa EC2 và S3 ở châu Âu được tính tiền với giá truyền dữ liệu cơ bản. Bảng 2. Giá truyền dữ liệu
    Kiểu truyền Giá
    Truyền dữ liệu qua Internet $0.100 cho 1 GB — tất cả dữ liệu truyền tới

    $0.170 cho 1 GB — 10 TB/tháng đầu tiên truyền đi
    $0.130 cho 1 GB —40 TB/tháng tiếp theo truyền đi
    $0.110 cho 1 GB — 100 TB/tháng tiếp theo truyền đi
    $0.100 cho 1 GB — dữ liệu truyền đi/tháng vượt quá 150 TB

    Truyền miền dữ liệu sẵn sàng (Availability data-zone) $0.00 cho 1 GB — tất cả dữ liệu truyền giữa các thể hiện trong cùng một miền dữ liệu

    $0.01 cho 1 GB — tất cả dữ liệu truyền giữa các thể hiện trong các miền dữ liệu khác nhau trong cùng một vùng

    Truyền dữ liệu IP mềm và công cộng $0.01 cho 1 GB — tất cả dữ liệu truyền đến và đi
    Truyền dữ liệu IP riêng tư $0.00 cho 1 GB — tất cả dữ liệu truyền đến và đi
  • Dung lượng lưu trữ sử dụng bởi các không gian lưu trữ EBS và các lưu trữ nhanh. Bảng 3. Giá cho EBS
    Kiểu Giá
    Không gian lưu trữ EBS $0.10 cho 1 GB/tháng

    $0.10 cho 1 triệu yêu cầu I/O

    Lưu trữ nhanh EBS $0.15 cho 1 GB/tháng

    $0.01 cho 1,000 yêu cầu PUT để lưu các lưu trữ nhanh

    $0.01 cho 10,000 yêu cầu GET để tải các lưu trữ nhanh lên

  • Số lượng các địa chỉ IP mềm được cấp cho bạn mà không được dùng. Bảng 3. Giá cho các địa chỉ IP mềm
    Kiểu Giá
    IP mềm Không mất phí cho các địa chỉ IP mềm trong khi sử dụng

    $0.01 cho 1 địa chỉ IP mềm không được gán trên một giờ sử dụng

    $0.00 cho một địa chỉ IP mềm tái ánh xạ — 100 ánh xạ đầu tiên/tháng
    $0.10 cho một địa chỉ IP mềm tái ánh xạ — thêm vào nếu vượt quá 100 địa chỉ tái ánh xạ/tháng

Kiểm tra Amazon EC2 để biết giá mới nhất. Bạn cũng có thể sử dụng Máy tính đơn giản (Simple Monthly Calculator) của Amazon Web Services để tính giá sử dụng hàng tháng của bạn cho EC2 và các dịch vụ khác của Amazon Web Services.


Bắt đầu với EC2

Để bắt đầu khám phá EC2, đầu tiên bạn cần tạo một tài khoản Amazon Web Services. Phần 2 của loạt bài này có các chỉ dẫn chi tiết để tạo một tài khoản Amazon Web Services. Một khi bạn có một tài khoản, bạn phải khởi động dịch vụ của Amazon EC2 cho tài khoản của bạn bằng cách theo những bước sau:

  1. Đăng nhập vào tài khoản Amazon Web Services của bạn.
  2. Truy cập tới Amazon EC2.
  3. Chọn Đăng ký sử dụng dịch vụ web này (Sign Up For This Web Service) ở bên phải của trang web.
  4. Cung cấp các thông tin được yêu cầu và hoàn tất quá trình đăng ký.

Tất cả các giao tiếp với bất cứ dịch vụ nào của Amazon Web Services đều thông qua giao diện SOAP hoặc giao diện query/REST. Trong bài viết này, bạn sẽ sử dụng giao diện query/REST để giao tiếp với EC2. Bạn sẽ cần để nhận được các khóa truy cập của bạn, cái cho phép bạn truy cập từ trang thông tin tài khoản (Web Services Account information page) của bạn bằng cách lựa chọn Xem các định danh khóa truy cập (View Access Key Identifiers).

Bây giờ bạn sẵn sàng để dùng dịch vụ của Amazon Web Services và đã khởi động dịch vụ EC2 cho tài khoản của bạn.


Tương tác với EC2

Bạn sẽ sử dụng cả công cụ dòng lệnh do Amazone cung cấp và một thư viện Ruby mã mở của bên thứ ba tên là right_aws để tương tác với EC2. Qua bài viết này, bạn sẽ:

  • Cài đặt một môi trường phát triển EC2 cục bộ.
  • Khởi động một AMI có sẵn.
  • Tùy biến AMI để cài đặt thư viện right_aws và các phần mềm cần thiết khác.
  • Tái đóng gói AMI, tải AMI lên S3, và đăng ký nó.
  • Khởi động AMI mới đã được tùy biến.
  • Làm quen với hàm API right_aws bằng cách chạy đoạn mã nhỏ trong cửa sổ lệnh Ruby.

Cài đặt một môi trường phát triển EC2 cục bộ

Các công cụ của Amazon EC2 yêu cầu bạn có công nghệ Java™, vì vậy hãy chắc chắn rằng nó đã được cài đặt.

  1. Tải Các công cụ Amazon EC2 AMIcông cụ Amazon EC2 API.
  2. Giải nén các công cụ vào một thư mục tùy ý.
  3. Bạn cần cài đặt các biến môi trường và thêm thư mục công cụ tới đường dẫn cửa sổ lệnh (shell) sao cho bạn có thể tìm thấy chúng khi thực thi từ dòng lệnh. Ví dụ 1 đưa ra một ví dụ.Các lệnh ở dưới là của Linux. Nếu bạn đang sử dụng Microsoft® Windows®, bạn có thể thay thế các lệnh tương đương. Bạn có thể tải về chứng chỉ EC2 X.509 và tệp khóa riêng tư EC2 của bạn từ trang thông tin tài khoản của bạn.Ví dụ 1. Cài đặt môi trường phát triển EC2
    $ export EC2_HOME=path_to_the_directory_with_the_tools
    
    $ export JAVA_HOME=path_to_the_directory_with_your_java_sdk
    
    # Add the directory to your PATH
    $ export PATH=$PATH:$EC2_HOME/bin
    
    # Export variables with the paths to your private key file and X.509 certificate
    $ export EC2_PRIVATE_KEY=path_to_your_private_key
    $ export EC2_CERT=path_to_your_x509_certificate
    
  4. Kiểm tra lại để đảm bảo mọi thứ được cài đặt đúng đắn bằng cách chạy lệnh ở phía dưới để liệt kê các phiên bản của các công cụ của EC2.Ví dụ 2. Kiểm tra việc cài đặt
    $ ec2-ami-tools-version
    1.3-20041 20071010
    
  5. Bạn cần tạo một cặp khóa SSH để sử dụng cho việc khởi động một thể hiện, sau đó kết nối tới nó tại một của sổ dòng lệnh. Lệnh sau trong Ví dụ 3 tạo một cặp khóa mới và lần lượt in tên của từng khóa, và dữ liệu của khóa riêng tư ra màn hình.Ví dụ 3. Tạo cặp khóa SSH mới
    $ ec2-add-keypair devworks
    
    KEYPAIR devworks        29:d1:90:7b:3d:a4:99:52:41:e0:1f:21:d5:20:97:d3:f0:33:fd:76
    -----BEGIN RSA PRIVATE KEY-----
    MIIEowIBAAKCAQEAyxaeXt6nb+qzboVW/3ax7An8CUJjDqwNi/PZm4lGOAzOHGnuPlDXeh1GpJ9f
    hky7Bg6VEY2VfS5G6UtmIzsGf/JlquzVl/x3uyriOzeCIw+m07aSgUOBn3qW/74IZxYYkxCYdBci
    eZeKpr8Mpvuz2sfurRzQOkUeHyuEaiD1RRS7DGxxUXfpVYhGjPltfNW2xRSMLTaOZzRwRdS0cHUU
    hC+GOKFDkp8nqQpd8iGUtp2G2DI1pxRN4MbeFZHWMh5tcIo1NTc7pkFPGEwrq6pO6gIsEOLqGpTL
    +2AxJY5WToZQoTWieOVwLpjJU9fnufRs0Mt/M/TP6SGK/YkrQOprOwIDAQABAoIBAFj1UGvX9dnl
    IbHAwInoUSlGelsH9GIB5XEvYFtr9xEoMsRpdk1flfNMjZwgn3Qxeh6+Fnf438lUkwUv3M6D1WYI
    JJaJZUpM8ZlPwIcV2nBHM9k6+NOcYVQdG7VsZTvahusscssvMw+13KsLtpwSVwb3WsoDfAZ6LiaT
    Jk5in20hTiipC0pz0K9DgQ//76r20ysUFpCymj4EvQrRkk5kBtsiMixsJzimpUOrSmrRHcORKEin
    FKM6y/DFE33zhP8BNDQRaDLGni0Ip+/jP3EHmia41SSbnwzRcbXMfH5fL3KAyRsCE0ocHY+cjUng
    HPYxl1ffdLZuEW3wJDQFuTS/v4ECgYEA9r7HVVnrS2303zclzCTGen/W/SVbpflSKEYJOZpa8RtQ
    uFMOewfkTbBzfavLMVBYB8uAmcWIz5JAFSzlBaKDRCnouUeeDiDJVJd8Asbn1gCE8UVETUOthy50
    R90RTtPNMmyP7AnoSMTuzsbwVORus7IJvceWHQBB4KCh652UansCgYEA0rSmvdquidkXf5iFpebc
    6Wh/qy+L1dkgz7+HTZIMW7kxA4EfJFnqaQRPqJ5XYcLvk2IzxNQKJlZvtBhCfVYhPJ2uB2Yqxv0p
    0LXGC01fZSyhbYGfaxVymA3HMc2ULBbaFMyhO7l7zkz+G+qkylych59zJBSoUxSFStpgNL7NhkEC
    gYAPJIorLMeJ64eZo1LIgoFDx1C0XHSRbQmjuxiZ1mU6YsjDZyV+W2+hbPDJh5+CuUGNyOlthnfs
    9TbFlenAPMb9iezkYgbLKyvv6xQLP5W+xm1iOTQF4d9mam1sc566TblMHOmAPONqg9t8CS16qEI6
    +PQsF3GY+gkQ9gq54QPYvQKBgDgwjsrQd30xVI/lV7a/Uyg3gtxe6JaVuadNN0LbcMpBH64EkA58
    oANzb97SoxDiEEuog4+40CAbKtzHH2wXPPPSROeaOkwolS8gWnkHICp19XKjf6Tp6k5cVkOUxC/h
    xDSJwXGQ7FA+vgEp2NpSSjfssKLtk1ncfhNRGxjVzS9BAoGBALbBLS4Nbjs2Fco+okNQPNfJNSvW
    yWV7a6ngfRzW8B+BO6V1QRIR44bwv/Z74oQ7ttt8KoZENB5yzZwaVWpFlOjSO/4Nx++Ef4pY5aPS
    zNpXcXCZgUdA67qmOILvrG7bnDR60dcBZVBl7CjnpTlccg7MD4CBsFJx+hGRPD2yIV94
    -----END RSA PRIVATE KEY-----
    
  6. Lưu phần kết quả bắt đầu với -----BEGIN RSA PRIVATE KEY----- vào một tệp nào đó. Đây sẽ là khóa riêng tư mà bạn sẽ dùng để khởi động các thể hiện và truy cập chúng với SSH. Hãy chắc rằng bạn giữ chúng an toàn và bảo mật. Nếu bạn khởi động một thể hiện với khóa này và bạn đánh mất khóa này, bạn sẽ không thể kết nối tới thể hiện của bạn bằng cửa sổ dòng lệnh nữa. Đặt tên tệp khóa là pk-devworks và thay đổi các quyền trên tệp để làm cho nó an toàn hơn.Ví dụ 4. Thay đổi các quyền cho khóa riêng tư
    $ chmod 600 pk-devworks
    

Bây giờ bạn đã có môi trường phát triển.

Khởi động thể thiện đầu tiên

Bạn đã bắt đầu khởi động thể hiện đầu tiên từ một trong những ảnh công cộng do RightScale cung cấp, nó dựa trên CentOS. Định danh (AMI ID) của ảnh này là ami-d8a347b1.
Ví dụ 5. Khởi động một thể hiện

$ ec2-run-instances –k devworks -n 1 ami-d8a347b1

RESERVATION     r-2691404f      710193521658    default
INSTANCE        i-7f923516      ami-d8a347b1                    pending
devworks        0               m1.small        2008-09-07T18:05:34+0000
us-east-1c      aki-9b00e5f2

Một thể hiện mới tinh luôn luôn trong trạng thái chờ đợi pending. Thể hiện này chưa thể được đánh địa chỉ khi mà vẫn đang được khởi động. Trong trạng thái này, bạn có thể xem các chi tiết sau đây về thể hiện này:

  • Thời điểm khởi động — Thời điểm khi mà thể hiện này được khởi động, hiển thị dưới định dạng UTC.
  • Kiểu thể hiện — Bạn không chỉ định rõ kiểu của thể hiện khi khởi động, do đó EC2 tự động chọn thể hiện m1.small mặc định cho chúng ta.
  • Miền sẵn sàng — Bạn không chỉ định miền sẵn sàng khi khởi động, do đó EC2 đã chọn một miền dựa trên tình trạng hiện tại của hệ thống.
  • Nhân — Nhân linux (Linux kernel) sử dụng bởi thể hiện này cũng được hiển thị. Bạn có thể chỉ định nó khi khởi động hoặc AMI có thể được cấu hình với một nhân mặc địch.
  • Nhóm bảo mật — Thể hiện được đặt trong nhóm bảo mật mặc định default. Bạn có thể tạo các nhóm bảo mật của bạn, cấp quyền truy cập cho chúng, và đặt thể hiện vào những nhóm này. Bạn phải chỉ rõ nhóm bảo mật khi khởi động. Bạn không thể thay đổi tên nhóm một khi thể hiện đã được khởi động, nhưng bạn có thể thay đổi quyền truy cập cho nhóm.

Bây giờ bạn có thể liệt kê các thể hiện đang hoạt động và kiểm tra trạng thái hiện hành của chúng.
Ví dụ 6. Liệt kê các thể hiện

$ ec2-describe-instances

RESERVATION     r-2691404f      710193521658    default
INSTANCE        i-7f923516      ami-d8a347b1    ec2-67-202-28-68.compute-1.amazonaws.com
domU-12-31-38-00-34-C8.compute-1.internal       running devworks        0
m1.small   2008-09-07T18:05:34+0000        us-east-1c      aki-9b00e5f

Bạn có thể thấy thể hiện đang hoạt động và chi tiết về thể hiện này, như là:

  • Tên DNS công cộng (Public DNS Name) — Tên DNS được dùng để kết nối tới thể hiện này qua Internet.
  • Tên DNS riêng (Private DNS Name) — Tên DNS này được dùng để nhận biết thể hiện này trong mạng nội bộ của EC2 trong môi trường dữ liệu trung tâm của Amazon.

Kết nối tới thể hiện đầu tiên của bạn bằng cách sử dụng SSH

Bây giờ bạn có thể SSH tới thể hiện bằng cách sử dụng khóa riêng tư và tên DNS công cộng cho thể hiện.
Ví dụ 7. SSH tới thể hiện

$ ssh -i pk-devworks root@ec2-67-202-28-68.compute-1.amazonaws.com

The authenticity of host 'ec2-67-202-28-68.compute-1.amazonaws.com (10.252.59.54)'
can't be established.
RSA key fingerprint is ae:e5:00:54:75:65:1c:c5:44:53:72:b9:e0:b5:26:a9.
Are you sure you want to continue connecting (yes/no)? yes

Warning: Permanently added 'ec2-67-202-28-68.compute-1.amazonaws.com,10.252.59.54'
(RSA) to the
list of known hosts.

[root@domU-12-31-38-00-34-C8:~]

Bạn có thể sẽ thấy một thông báo lỗi sau khi đăng nhập như trên, nhưng bạn có thể yên tâm bỏ qua nó. AMI thực thi các mã kịch bản RightScale tùy biến bị thiếu sau khi khởi động.

Tùy biến và tái đóng gói thể hiện

RightScale AMI rất toàn diện và chứa mọi thứ bạn cần để bắt đầu sử dụng nó như AMI cơ sở của bạn. Nó chứa sẵn công cụ dòng lệnh EC2 được cài đặt trong thư mục /home/ec2.

  1. Thêm các chứng chỉ bảo mật. Chúng là những tệp giống nhau được sử dụng trong Ví dụ 1.Ví dụ 8. Sao chép chứng chỉ an toàn của bạn tới thể hiện
    $ scp -i pk-devworks path_to_your_private_key_cert
    root@ec2-67-202-28-68.compute-1.amazonaws.com:/home/ec2/
    
    $ scp -i pk-devworks path_to_your_x509_cert
    root@ec2-67-202-28-68.compute-1.amazonaws.com:/home/ec2/
    
  2. Cài đặt các biến môi trường sao cho bạn có thể sử dụng AMI này như là AMI của riêng bạn. Sửa tệp /etc/profile.d/env.sh và cài đặt từng biến một Số tài khoản và các khóa truy cập có ở trang thông tin tài khoản, chứng nhận bảo mật (cert) và khóa riêng tư là các tệp mà bạn đã sao chép tới thể hiện ở bước trên.Ví dụ 9. Tùy biến môi trường của thể hiện
    $ vim /etc/profile.d/env.sh
    
    export EC2_HOME=/home/ec2
    export EC2_CERT=
    export EC2_PRIVATE_KEY=
    export AWS_ACCOUNT_NUMBER=
    export AWS_ACCESS_KEY_ID=
    export AWS_SECRET_ACCESS_KEY=
    export PATH=$PATH:/home/ec2/bin/
    
    # Turn off the rightscripts so you don’t get the error on login.
    $ chkconfig --level 4 rightscale off
    
    # Change the login message
    $ echo “Welcome to my devworks test EC2 image” > /etc/motd
    
  3. AMI đã có Ruby cài sẵn, nhưng bạn cần cài đặt các thư viện của Ruby chúng sẽ được sử dụng trong bài viết này để tương tác với EC2. Đầu tiên, bạn sẽ cập nhật bản mới nhất của gems, sau đó cài right_aws gems và tất cả các phụ thuộc dependencies.Ví dụ 10. Cài Ruby gems
    $ gem update
    $ gem install right_aws
    
  4. Bạn đã sẵn sàng để tái đóng gói thể hiện này, tải nó lên S3, và đăng ký nó với EC2. Đầu tiên, tái đóng gói nó dưới tên devworks-ec2, và bỏ qua thư mục /mnt và /tmp. Bạn cũng phải chỉ định khóa riêng tư EC2, chứng chỉ bảo mật EC2, và số tài khoản Amazon Web Services.Ví dụ 11. Tái đóng gói thể hiện
    $  ec2-bundle-vol -d /mnt -c /home/ec2/your_ec2_x509_cert
    -k /home/ec2/your_ec2_private_key -u your_aws_account_number
    -e /mnt,/tmp -s 10240 -r i386 -p devworks-ec2
    
  5. Quá trình tái đóng gói sẽ tạo ra một loạt các tệp trong thư mục /mnt, khi nó hoàn thành. Bạn sẽ tải những tệp này lên S3. AMI này sẽ được đặt trong bộ chứa (bucket) mà bạn chỉ định. Thay thế tham số –b trong dòng lệnh ở dưới với tên của của bộ chứa trên S3 nơi mà bạn muốn đặt các tệp AMI của bạn.Ví dụ 12. Tải AMI lên S3
    $ ec2-upload-bundle -b your_s3_bucket -m /mnt/devworks-ec2.manifest.xml
    -a your_aws_access_key -s your_aws_secret_key
    
  6. AMI của bạn bây giờ đã được lưu trữ trên S3 một cách an toàn. Bây giờ bạn chỉ cần đăng ký nó với EC2, và nhận được một định danh ID cho AMI dùng để khởi động AMI sau này.Ví dụ 13. Đăng ký AMI với EC2
    $ ec2-register -K /home/ec2/your_ec2_private_key
    -C /home/ec2/your_ec2_x509_cert your_s3_bucket/devworks-ec2.manifest.xml
    
    IMAGE   ami-58c42031
    
  7. Thoát khỏi SSH, và kết thúc thể hiện đang hoạt động.Ví dụ 14. Kết thúc thể hiện
    $ ec2-terminate-instances i-7f923516
    INSTANCE        i-7f923516      running shutting-down
    

Bạn sẽ khởi động một thể hiện mới từ AMI mới được tạo trong phần tiếp theo và sử dụng nó trong suốt phần còn lại của bài viết này để khám phá EC2 bằng cách sử dụng thư viện right_aws.


Khám phá EC2 với Ruby

RightScale cung cấp một thư viện Ruby, right_aws, cái mà cung cấp truy cập tới dịch vụ EC2 của Amazon từ Ruby. Thư viện này được dùng bởi chính các sản phẩm của họ, và bao phủ mọi mặt của EC2, bao gồm EBS mới được giới thiệu gần đây. Thư viện này được đóng gói như là một rubygem, cùng với thư viện HTTP RightScale:HttpConnection, cái mà có khả năng xử lý lỗi rất tốt. Bài viết này chỉ xem xét một số hàm được cung cấp bởi thư viện này. Bạn nên xem tài liệu được cung cấp cùng với thư viện để có được cảm nhận toàn diện về các hàm API. Xem xét các lựa chọn cấu hình khác nhau cho cả thư viện right_aws và thư viện hỗ trợ right_http_connection.

Bạn sẽ dùng lớp Rightscale::Ec2, cái mà cung cấp giao diện chính cho tương tác với EC2 của chúng ta. Thư viện này sẽ được dùng qua là của sổ lệnh. Bạn sẽ gửi một thông điệp tới đối tượng Rightscale::Ec2, và kiểm tra các phản hồi được trả lại bởi EC2. Điều này sẽ giúp bạn làm quen với hàm API trong khi khám phá các khái niệm EC2.

  1. Khởi động một thể hiện từ AMI mới. Khi thể hiện đang ở trạng thái hoạt động, SSH tới thể hiện. Bạn sẽ bắt đầu sử dụng cửa sổ lệnh irb trong thể hiện.Ví dụ 15. Khởi động thể hiện mới và SSH tới nó
    $ ec2-run-instances -k devworks -n 1 ami-58c42031
    
    RESERVATION     r-5795443e      710193521658    default
    INSTANCE        i-1a9e3973      ami-58c42031                    pending devworks    0
    m1.small        2008-09-07T21:06:37+0000        us-east-1c      aki-9b00e5f2
    
    $ ec2-describe-instances 
    
    RESERVATION     r-949544fd      710193521658    default
    INSTANCE        i-5a9d3a33      ami-58c42031
    ec2-75-101-208-95.compute-1.amazonaws.com
    domU-12-31-38-00-78-04.compute-1.internal
    running devworks        0               m1.small
    2008-09-07T21:14:27+0000        us-east-1c      aki-9b00e5f2
    
    $ ssh -i pk-devworks root@ec2-75-101-208-95.compute-1.amazonaws.com
    
  2. Khởi động cửa sổ shell của Ruby và tạo một đối tượng Rightscale::Ec2.Ví dụ 16. Cửa sổ shell của Ruby và đối tượng Rightscale::Ec2 mới
    $ irb
    irb(main):001:0> require 'rubygems'
    => true
    irb(main):002:0> require 'right_aws'
    => true
    irb(main):003:0> @ec2 = Rightscale::Ec2.new(
    ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY'])
    

Bạn sử dụng biến mới được tạo này @ec2 từ đây để khám phá EC2. Ví dụ này sử dụng cấu hình mặc định cho thư viện này. Xem danh sách các lựa chọn cấu hình từ tài liệu của thư viện.

  1. Lấy danh sách các thể hiện của bạn trả lại một mảng các mã băm (hash) với mỗi mã băm cung cấp thông tin chi tiết liên quan đến một thể hiện. Đây là một mẫu chung cho định dạng của phản hồi được tuân theo bởi hầu hết các lời gọi hàm API cho thư viện này. Ví dụ 17 đưa ra một ví dụ.Ví dụ 17. Mô tả các thể hiện của bạn
    irb(main):004:0> @ec2.describe_instances()
    
    => [{:aws_launch_time=>"2008-09-07T21:14:27.000Z", :aws_kernel_id=>"aki-9b00e5f2",
    :ssh_key_name=>"devworks", :aws_reservation_id=>"r-949544fd",
    :aws_availability_zone=>"us-east-1c",
    :aws_state=>"running", :aws_instance_id=>"i-5a9d3a33", :aws_groups=>["default"],
    :aws_image_id=>"ami-58c42031",
    :aws_product_codes=>[], :dns_name=>"ec2-75-101-208-95.compute-1.amazonaws.com",
    :aws_state_code=>"16",
    :private_dns_name=>"domU-12-31-38-00-78-04.compute-1.internal",
    :aws_instance_type=>"m1.small",
    :aws_reason=>"", :ami_launch_index=>"0"}]
    
  2. Lấy một danh sách các AMI của bạn.Ví dụ 18. Mô tả các AMI của bạn
    irb(main):005:0> @ec2.describe_images_by_owner([ENV['AWS_ACCOUNT_NUMBER']])
    
    => [{:aws_location=>"ylastic_images/devworks-ec2.manifest.xml",
     :aws_kernel_id=>"aki-9b00e5f2", :aws_state=>"available", :aws_is_public=>false,
    :aws_architecture=>"i386", :aws_id=>"ami-58c42031", :aws_image_type=>"machine"}]
    
  3. Tạo một nhóm bảo mật dùng để đặt các thể hiện của bạn và giới hạn hoặc cấp quyền truy cập tới nó.Ví dụ 19. Tạo một nhóm bảo mật và liệt kê các nhóm
    irb(main):006:0> @ec2.create_security_group("devworks",
       "Devworks Article Security Group")
    
    => true
    
    irb(main):008:0> @ec2.describe_security_groups()
    
    => [{:aws_group_name=>"devworks", :aws_description=>"Devworks Article Security
       Group",
    :aws_perms=>[]}]
    
  4. Tạo một cặp khóa bảo mật mới và liệt kê tất cả các cặp khóa trong tài khoản của bạn.Ví dụ 20. Tạo một cặp khóa bảo mật mới và liệt kê các cặp khóa
    irb(main):018:0> @ec2.create_key_pair('mykeypair')
    
    => {:aws_key_name=>"mykeypair",
    :aws_fingerprint=>"c6:62:22:9e:99:05:6a:17:13:06:e0:86:f9:55:2a:78:ff:99:6b:fa", 
    
    :aws_material=>"-----BEGIN RSA PRIVATE KEY-----
    \nMIIEpAIBAAKCAQEAyRdAvihBXDu30o2uvQ1h8xdIRLHs0RjQWK4Yw5Y5DkaS41EEjnDwjO6sEY5l\n
    IXSuzVj1nkZ1VMPuVR3hIXHCMJLaAO77TaXZVC9yymIUAyTcQ1+hoVLlrCuVI3dEY21WQNTEbtkI\nlI
    xMW+UhkiaKrGHmt2yYLjr754KGt7pNCpRwxPXB7brlpQ3qpapkr7XrKZppvWoG8MCmPIFx8P0K\no8Cd
    mnF9lEdns6uaJZmfs4Ls9HZHpsmn0r42GbOAkJEkj7nE5zc3rXYpmCBZhjyHus0iXjS/n9oL\nHWhV0a
    wagjvmsQgJPYqEsBeO5pDb2IOZq5okQie1YJTd1m8k8k7m9wIDAQABAoIBAQCK0lWssOem\nP8fAQHVg
    J+v1wJ3wZpBhLWsvvUh1RbCvzUK8UQL/PrKh6Ga7W/0u4nmGY6J0mJmJYhWXhyATUZBI\nrih3uoOccC
    Eff/4T/y9nmDvC+zL+xtatTA0SRdTdeu6vpPLSv1uwCUbxrbXGSnszVAbNm9dXGvsq\nMK7GCYQEB4p4
    FtJolDqGZdWAj1u5/AGjbCI+PbkbCAro55Sqnl95WAlogdQFmgxljWl9TEIsbrHf\nYZHtKHlm1lvyeB
    QdVmwLT9S7ufI1J/GAevRxrG2iEkx/IJWYGnQE0P2bXa6Ry90UyvWRPS6Zi/MD\nfWoFAxnB6Ryssr+S
    IAfpG6SGuM55AoGBAOr7yPcvg/66f/Xd3CbpmI8lIfsXBb9xki3pIEfYAWD/\n2ToxpRYPTgrwwB1ufo
    NPr7U1QfzJvAvlTXWkfp4oUnssi5sXw1okZmm01hT0j0FNvsgMG6zD8Z/9\nmgrVrH+tBxVoYqrPM/WB
    dnYhQXEGQq+UF2uPqoKDbsl3DkftXTBrAoGBANsTdLfHmRidkLCRKfSj\nUrbJOSsU6RWGFuoqgD+DZL
    ngKBTaBTd6TVONSR2JvpVJo5hyiAXQ/jQ1XtsPAuJR6fiiRvDfgF7j\n1lp1tsFpNYx2R4+eqoLrHgIC
    Ak1Ke8tWyoD3NgQ4FO9TDfW+QHn0dpLeWdNMUd2a1GVKp4hIoJal\nAoGBAITqMryO5eyZ9XNPMQ3Zp+
    +gI15xoVCunu7VJOs+ZVlGnsrp9eVKdux9TU3YiDsiQdMP8ulX\n+sQHyg63It+3EyCVC8qIYHmGiV9V
    aJql0rovjbB+GNFabDwBKLbkMhRt/MnBJ75SQaOmvSkImomh\n7up9q9mtg9cbHPlcHHnW65VNAoGAKi
    +Y7jrVVFQjJJ0PgzhgGSqug4lHSQnFJ9p/T7uxjcmIblt9\nXa2Dbm9qgPGhbYX8psKHRvdzvAH6/hvp
    5kL31xUIrCGdyqf9AvZf9uaXlTDBnvpiw0sbQC+62b9a\nD1HrNOJl2HIkNeG8cnHsYI+etbFzgqjTqu
    TBua+iiy/RHLECgYALIDqaAcd7o4V+ws+WG1G9vTlc\nJ6/sBpu3JyKMSdJYlbgIbvHgrfbKhEYuNh/H
    XNdrI6oeW9eAruqHlH+OlUx0tCg4VIeQsz/b7kPS\nY14OMAswuHHyqlZIqK4Xy/R6SQmsc/CUXWPk5I
    UesJk5f1V1NXIqqwv6+nlEucdjgYUd5w==\n-----END RSA PRIVATE KEY-----"}
    
    irb(main):020:0> @ec2.describe_key_pairs()
    
    => [{:aws_key_name=>"mykeypair",
    :aws_fingerprint=>"c6:62:22:9e:99:05:6a:17:13:06:e0:86:f9:55:2a:78:ff:99:6b:fa"}]
    
  5. Tạo một không gian lưu trữ EBS mới. Chỉ định miền sẵn sàng cho không gian lưu trữ này là us-east-1c. Không gian lưu trữ này, khi được tạo và sẵn sàng, chỉ có thể được gắn kết với một thể hiện mà đang hoạt động trong cùng miền sẵn sàng. Không gian lưu trữ ban đầu sẽ ở trạng thái “khởi tạo”. Khi tạo xong, không gian lưu trữ sẽ ở trạng thái “sẵn sàng”.Ví dụ 21. Tạo một không gian lưu trữ EBS mới và liệt kê các không gian
    irb(main):024:0> @ec2.create_volume('', 1, 'us-east-1c')
    
    => {:aws_status=>"creating", :aws_created_at=>Mon Sep 08 00:29:35 UTC 2008,
    :zone=>"us-east-1c", :aws_size=>1, :snapshot_id=>nil, :aws_id=>"vol-2f34d146"}
    
    irb(main):026:0> @ec2.describe_volumes()
    
    => {:aws_status=>"available", :aws_created_at=>Mon Sep 08 00:29:35 UTC 2008,
    :zone=>"us-east-1c", :aws_size=>1, :snapshot_id=>nil, :aws_id=>"vol-2f34d146"}
    
  6. Gắn không gian lưu trữ này vào thể hiện hiện tại như là một thiết bị /dev/sdj và định dạng nó với hệ thống tệp ext3 để sử dụng.Ví dụ 22. Gắn không gian lưu trữ EBS mới và tạo hệ thống tệp
    irb(main):031:0> @ec2.attach_volume('vol-2f34d146', 'i-5a9d3a33', '/dev/sdj')
    
    => {:aws_instance_id=>"i-5a9d3a33", :aws_device=>"/dev/sdj",
    :aws_attachment_status=>"attaching", :aws_id=>"vol-2f34d146",
    :aws_attached_at=>Mon Sep 08 00:34:03 UTC 2008}
    
    $ mkfs.ext3 /dev/sdj
    mke2fs 1.39 (29-May-2006)
    /dev/sdj is entire device, not just one partition!
    Proceed anyway? (y,n) y
    Filesystem label=
    OS type: Linux
    Block size=4096 (log=2)
    Fragment size=4096 (log=2)
    131072 inodes, 262144 blocks
    13107 blocks (5.00%) reserved for the super user
    First data block=0
    Maximum filesystem blocks=268435456
    8 block groups
    32768 blocks per group, 32768 fragments per group
    16384 inodes per group
    Superblock backups stored on blocks:
            32768, 98304, 163840, 229376
    
    Writing inode tables: done
    Creating journal (8192 blocks): done
    Writing superblocks and filesystem accounting information: done
    
    This filesystem will be automatically checked every 39 mounts or
    180 days, whichever comes first.  Use tune2fs -c or -i to override.
    
  7. Gắn (mount) thiết bị được định dạng mới vào thư mục hệ thống tệp.Ví dụ 23. Gắn không gian lưu trữ vào một thư mục cục bộ và sử dụng nó
    $ mount /dev/sdj /mnt/my-vol
    
    $ echo “Hello Devworks” > /mnt/my-vol/test.txt
    
    # cat /mnt/my-vol/test.txt
    
    Hello Devworks
    

Bây giờ bạn có thể sử dụng không gian lưu trữ EBS như là các thiết bị khác trên hệ thống của bạn. Bạn có thể đọc và ghi. Khi bạn dùng xong, bạn có thể tách nó ra khỏi thể hiện đang hoạt động, sau đó tái gắn kết nó tới một thể hiện khác, hoặc chính thể hiện hiện tại, bất cứ khi nào bạn muốn. Đây là bộ lưu trữ bền vững mà đưa EC2 lên một cấp độ mới. Có nhiều cách để tận dụng nó, từ dùng nó để lưu trữ cơ sở dữ liệu quan trọng tới nhật ký máy chủ web, cái mà cần tồn tại không phụ thuộc vào vòng đời của thể hiện.

Bạn có thể tạo một lưu trữ nhanh (snapshot) của một không gian lưu trữ EBS mà nó sẽ nắm giữ nội dung của không gian lưu trữ tại thời điểm đó. Các lưu trữ nhanh được lưu trữ tự động trên S3 và được tạo bởi EC2 theo cách cộng dồn. Bản lưu trữ nhanh đầu tiên sẽ là bản sao chép đầy đủ, nhưng những cái tiếp theo sẽ chỉ lưu trữ những tập bị thay đổi. Hiện tại mỗi tài khoản chỉ được phép lưu trữ 500 bản lưu trữ nhanh. Nếu bạn muốn giữ nhiều hơn 500 bản, bạn có thể yêu cầu tăng giới hạn cho tài khoản của bạn.
Ví dụ 24. Tạo một bản lưu trữ nhanh từ một không gian lưu trữ EBS

irb(main):007:0> @ec2.create_snapshot('vol-2f34d146')

=> {:aws_status=>"pending", :aws_volume_id=>"vol-2f34d146",
:aws_started_at=>Mon Sep 08 00:49:15 UTC 2008, :aws_progress=>"",
:aws_id=>"snap-13db3c7a"}

Bản lưu trữ nhanh được tạo bởi EC2 trong tiến trình nền. Bạn có thể liệt kê tất cả các bản lưu trữ nhanh một cách lặp đi lặp lại để đảm bảo rằng sự tạo lập hoàn tất một cách thành công.
Ví dụ 25. Liệt kê các lưu trữ nhanh của bạn

irb(main):008:0> @ec2.describe_snapshots()

=> [{:aws_status=>"completed", :aws_volume_id=>"vol-2f34d146",
:aws_started_at=>Mon Sep 08 00:49:15 UTC 2008, :aws_progress=>"100%",
:aws_id=>"snap-13db3c7a"}]

Cuối cùng, bạn có thể tách một không gian lưu trữ ra khỏi thể hiện của bạn. Bạn có thể tái gắn kết không gian đó vào chính thể hiện hiện tại hoặc một thể hiện khác tại thời điểm khác.
Ví dụ 26. Tách một không gian lưu trữ EBS

irb(main):006:0> @ec2.detach_volume('vol-2f34d146')

=> {:aws_instance_id=>"i-5a9d3a33", :aws_device=>"/dev/sdj",
:aws_attachment_status=>"detaching", :aws_id=>"vol-2f34d146",
:aws_attached_at=>Mon Sep 08 00:34:03 UTC 2008}

Kết luận

Bài viết này đã giới thiệu với bạn về dịch vụ EC2 của Amazon và xem xét các khái niệm cơ bản. Bạn tìm hiểu về một số hàm được cung cấp bởi right_aws, một thư viện Ruby mã mở để tương tác với EC2. Chúng ta đã xem xét những điều cơ bản nhất, nhưng EC2 là một chủ đề rất lớn và phức tạp. Bạn nên đọc hướng dẫn cho nhà phát triển EC2 của Amazon (Amazon EC2 Developer Guide) để biết thêm thông tin.

Phần tiếp theo loạt bài ” Điện toán đám mây với Amazon Web Services” này sẽ xem xét Amazon Simple Queue Service (SQS) cho việc truyền tin tin cậy trong cùng hệ thống ảo.

Theo IBM

About these ads
This entry was posted in Cơ sở. Bookmark the permalink.

Gửi phản hồi

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Thay đổi )

Twitter picture

You are commenting using your Twitter account. Log Out / Thay đổi )

Facebook photo

You are commenting using your Facebook account. Log Out / Thay đổi )

Google+ photo

You are commenting using your Google+ account. Log Out / Thay đổi )

Connecting to %s