Chuyển EC2 Instance sang tài khoản AWS khác

Overview

Mình có làm một trang web giới thiệu sản phẩm cho một người bạn. Trước đây, mình để EC2 Instance của trang web đó ngay trong tài khoản của mình (cùng với các instances khác). Nhưng vì bất tiện trong việc thanh toán nên bạn mình muốn có tài khoản AWS riêng và chủ động thanh toán khi đến hạn. Sau khi tìm hiểu thì rất hay Amazon cũng hỗ trợ việc di chuyển instance, tuy phải tự làm tay một chút, chứ không có automatic.

Nôm na là chúng ta sẽ tự tạo một bản "sao lưu" cho instance hiện có, rồi ở tài khoản mới dùng bản sao lưu đó bung vào instance mới là có thể chạy được.

Việc này sẽ chuyển toàn bộ dữ liệu các thứ sang tài khoản mới không trượt phát nào. Nó tương tự như việc đi cài Win ngày xưa, mà có thao tác gọi là "ghost": toàn bộ thông tin về một phân vùng ổ cứng sẽ được lưu lại trong một file .ghost, khi nào cần có thể bung file ghost đó ra dùng, với trạng thái y nguyên như thời điểm tạo ghost.

Các bước di chuyển về cơ bản như sau:

  1. Lấy AWS Account ID của tài khoản mà mình sẽ chuyển nhà sang (tạm gọi là target account)
  2. Trên tài khoản cũ, tạo một AMI của instance cần di chuyển
  3. Gán quyền truy cập AMI cho target account
  4. Trên target account, chọn AMI đã tạo và khởi chạy instance mới dựa trên AMI đó

Lấy AWS Account ID

Account ID này sẽ cần cho bước sau, cách lấy:

  1. Login vào AWS Console bằng target account
  2. Trên góc phải, click vào Support > Support Center
  3. Account ID sẽ được hiển thị ở mục Account number

Tạo AMI của instance hiện tại

AMI (Amazon Machine Images) có thể hiểu nôm na nó như file ghost vậy. Ghost một lần, bung ra dùng được nhiều lần, mặc dù tất nhiên trong AMI thì chứa nhiều thứ liên quan hơn chỉ là dữ liệu thông thường. Đọc thêm >>

  1. Login vào tài khoản cũ
  2. Click Services > Compute > EC2
  3. Click Instances ở menu bên trái
  4. Chuột phải vào instance chọn Image > Create Image
  5. Điền một số thông tin cơ bản như name, description cho image rồi bấm Create Image. Các mục khác cứ để mặc định là OK.

Gán quyền truy cập AMI cho target account

Mặc định, khi tạo custom AMI thì nó đang ở trạng thái private, những tài khoản nào được gán permission thì mới tìm thấy và sử dụng nó.

  1. Trên menu bên trái, click AMIs
  2. Chuột phải vào AMI vừa tạo, chọn Modify Image Permissions
  3. Điền Account Number lấy được ở bước trên vào ô trống
  4. Bấm Add Permission > Save

Chú ý để set được permission thì phải chờ đến khi AMI đó có trạng thái là available màu xanh, nếu pending là nó đang được tạo, chưa thể làm gì cả

Khởi chạy instance mới dựa trên AMI vừa tạo

  1. Login vào AWS Console của tài khoản mới
  2. Trong EC2 Dashboard, bấm vào Launch Instance
  3. Trong hộp thoại mở ra, chọn My AMIs
  4. Mục Ownership chọn thêm Shared with me
  5. Bấm Select và bắt đầu cài đặt instance như bình thường

Các bước trên đây mình giả định các bạn đã có tài khoản AWS và biết cách setup Instance cơ bản, mình chỉ nói cụ thể vào các bước làm thế nào để chuyển nhà cho instance.

Happy AWS-ing!