Chinaunix首页 | 论坛 | 博客
  • 博客访问: 788038
  • 博文数量: 434
  • 博客积分: 11187
  • 博客等级: 上将
  • 技术积分: 5221
  • 用 户 组: 普通用户
  • 注册时间: 2009-02-19 01:00
文章分类

全部博文(434)

文章存档

2016年(2)

2013年(1)

2012年(115)

2011年(195)

2010年(32)

2009年(89)

分类:

2009-02-23 16:19:12

本文转自:

Amazon EC2 使用操作筆記 (使用 Elasticfox)

Amazon Elastic Compute Cloud (Amazon EC2) 是虛擬主機的服務, 主要是可以隨時加機器、硬碟等, 可以非常快速的擴充.

不過也有些缺點, 就是在上面的資料是不會被儲存的, 若是機器當掉、強制關機等等, 資料就會消失. IP 不固定等問題.

Amazon 針對這些問題也都有解法:

  • 資料儲存: 用 Amazon Elastic Block Store 解決此問題(而且可以動態新增硬碟並掛載上去), 並可隨時為此硬碟做 Snapshot.
  • IP 不固定: 用 Elastic IP Addresses 解決此問題, 可以先把 IP 先租起來放. 

這幾天照文件都玩過一次, 寫寫筆紀做紀錄.

這篇先紀錄完整使用 Firefox Extension(Elasticfox) 的紀錄, 如果只是想要試試看, 可以考慮用 Amazon EC2 本身提供的 Console 介面做簡單的入門練習(這個下一篇再紀錄).

如果沒有 Amazon 帳號, 由此申請一個:

事前研究

下述會使用到的網頁:

強列建議要安裝此 Firefox Extension, 有不少功能靠此外掛會簡單很多.

這兩篇也是筆記, 往下讀前建議先把這兩篇看一看, 比較有個概念.

  • - 工具連結、算算使用一個月花費大概多少等.
  • - EC2 需知道的名詞解釋

下述內容主要是依照 Elasticfox Getting Started Guide 此篇操作, 另外做紀錄.

安裝、開啟 Elasticfox

  1. 於此 Elasticfox Firefox Extension for Amazon EC2 安裝 Firefox extension.
  2. 開啟 Firefox
  3. Tools → 執行 Elasticfox
  4. 下面內容都是開啟 Elasticfox 後的操作紀錄.

設定 Elasticfox

  1. Elasticfox 開啟後會出現 Manage EC2 Credentials, 要輸入 "Account Name", "AWS Access Key", "AWS Secret Access Key"
  2. 於 Elasticfox 最上方的 Crednetials 右邊選取剛剛設定的 Account Name, 即登入完成.
    • 註: 若有要製作自己的 AMI Image(若不知道這是甚麼, 需要時再來申請即可), X.509 Certificate 也要產生儲存.(cert-key.pem, pk-key.pem)

建立新的 Key Pairs (於 EC2 虛擬機器 登入用)

  1. 切換到 "Key Pairs" 的 Tab
  2. 點選 綠色的鑰匙(Create a new keypair)
  3. Please provide a new keypair name (隨意輸入一個名字即可)
  4. 就會產生 id-keypair-name.pem, 並跳出下載視窗, 將此下載儲存. (ssh login 需要) (請儲存在 "~/ec2-keys/id_YOUR_NAME")
  5. chmod 600 ~/ec2-keys/id_YOUR_NAME # 要登入前, 它會做安全檢查, 所以需要設 600

Security Group (此階段不設定可跳過)

Amazon EC2 有提供 Secuirty Group 的功能, 作用是設定防火牆的機制, 相關文件可見下述:

每一個 User 都能設定每個獨立的 Security Group, 而 Security Group 最多可以設定 100 組.

設定方法:

  1. 開啟 Elasticfox
  2. 切換到 "Security Group" 的 Tab
  3. 先在 Your Group 選擇要設定的帳號 (或者可以新增帳號、名稱)
  4. 再於 Group Permissions => 點選 Grant Permission (綠色打勾的按紐)
  5. 就可以設定要 開放/關閉 哪些 TCP/UDP port 或 網段 等.
    ex: 開放 HTTP 80
    1. 於 Protocol Details → 選 HTTP
    2. Protocol:  → TCP/IP
    3. Port: →  80
    4. Host: →  0.0.0.0/0
    5. 按 Add 即可.
    6. 預設記得 22 一定要開 (不然沒辦法 ssh 進去)

選擇 AMI(Amazon Machine Images) 檔

由網頁選擇想要的 AMI 檔(作業系統 Image)

從網頁挑選, 有下面三種方式可以找:

由上面挑選, 找到 Debian 5.0 Lenny (testing) Base Install: A clean, base install of Debian 5.0 Lenny (testing), built by Eric Hammond as part of the Alestic.com series [update 2008-12-22] (我是挑目前最新且最精簡版的 Debian)

於 Elasticfox 找
  1. 切換到 "AMIs and Instances"
  2. 於 Machine Images (AMI) 輸入 debian, 就會把 debian 相關的 AMI 檔都列出來.
  3. 找到 alestic/debian-5.0-lenny-base-20081222.manifest.xml 點選.
  4. 按上面的 綠色Power鍵(Launch instance(s)) 或 直接按右鍵(Launch instance(s) of this AMI)
  5. 註: 窗最下面有 User Data 的欄位, 於這邊寫的資料, 機器開完後可以使用 curl 取得, 可以當外部參數代入等.
  6. 選 Launch 即可.
  7. 於 Your Instances 區塊, 就可以看到新 run 的機器(Status 是 running 才算完成)

連線方法(連線到剛建立的虛擬主機)

找 DNS Name
  • 對那台機器按滑鼠右鍵, 選最下面的 Connect to Public DNS Name. (會自動抓取 ~/ec2-keys/id_YOUR_NAME 的 key)
  • 按滑鼠右鍵, 選 View Details, 找到 Public DNS Name, 後面那段就是 Domain name, ex: ec2-11-111-111-11.compute-1.amazonaws.com
連線
  • 直接連線: ssh root@ec2-11-111-111-11.compute-1.amazonaws.com -i ~/ec2-keys/id_YOUR_NAME # 或 ~/ec2-keys/YOUR_NAME.pem

進入機器後就是 root, 剩下要怎麼做都行囉~ :)

強迫關機 / 重新開機

  1. 切換到 "AMIs and Instances"
  2. 於 Your Instances 區塊, 就可以看到新 run 的機器
  3. 點選要 關機 / 重新開機 的機器, 直接選上面的 Reboot Selected Instances 或 Terminate Selected Instances 即可.
  4. 於機器 login 完成後, halt 也可以直接關機.

建立屬於自己的 AMI Image

文件的方法 建立 AMI Image

建立屬於自己的 AMI Image 的三步驟 於 文件的方法: (註: 我跑到 Bundle into an AMI, 這步驟, Bundle into an AMI 不能點選, 所以放棄此方法,下述只是做個紀錄)(註2: 據說 Bundle into an AMI 是在 Windows 環境的才能跑, Linux 此選項不會啟用)

  1. 切換到 "AMIs and Instances"
  2. 找到 Your Instances 點選 Refresh (最左邊藍色的按紐)
  3. 對想要做的機器按滑鼠右鍵, 選 Bundle into an AMI.
  4. 輸入 S3 Bucket name(全部小寫) 和 Image name.
  5. 按 Ok 即可.
  6. 再去 Register the Image 完成後, 就可以於 Bundle Tasks 看到.
於線上機器直接建立 AMI Image

於線上機器直接建立屬於自己的 AMI Image: (cert-KEY.pem, pk-KEY.pem 由 X.509 憑證產生取得)

  1. scp -i ~/ec2-keys/id_YOUR_NAME cert-KEY.pem pk-KEY.pem root@ec2-11-111-111-11.compute-1.amazonaws.com:/mnt
  2. 產生 Image: (Account Number 是登入 ec2 後, 頁面右上角看到的字串(Sign Out 下方))
  3. ec2-bundle-vol -d /mnt -c -k -u -r i386 -p
    • ex: ec2-bundle-vol -d /mnt/ -c /mnt/cert-KEY.pem -k /mnt/pk-KEY.pem -u ACCOUNT_NUMBER -r i386 -p YOUR_AMI_IMAGE_NAME
    • 註: 64 bits 的話, 要把 i386 換成 x86_64
  4. ec2-upload-bundle -b YOUR_AMI_IMAGE_NAME_OR_S3_BUCKET_NAME -m /mnt/YOUR_AMI_IMAGE_NAME.manifest.xml -a ACCESS_KEY_ID -s SECRET_ACCESS_KEY
    • # ACCESS_KEY_ID, SECRTE_ACCRESS_KEY => Amazon S3 key, 就會往 Amazon S3 送, 然後會設定為 Pirvate.
  5. 若有安裝 s3cmd, 就可以看到上傳上去的 Image Bucket 和 所有上傳檔案.
    • s3cmd ls # 會看到新建立的 Bucket
    • s3cmd ls s3://YOUR_AMI_IMAGE_NAME_OR_S3_BUCKET_NAME
快速紀錄 建立屬於自己的 AMI Image 的三步驟
  1. scp -i ~/ec2-keys/id_YOUR_NAME cert-KEY.pem pk-KEY.pem root@ec2-11-111-111-11.compute-1.amazonaws.com:/mnt
  2. ec2-bundle-vol -d /mnt -c -k -u -r i386 -p
  3. ec2-upload-bundle -b YOUR_AMI_IMAGE_NAME_OR_S3_BUCKET_NAME -m /mnt/YOUR_AMI_IMAGE_NAME.manifest.xml -a ACCESS_KEY_ID -s SECRET_ACCESS_KEY

使用自己的 Machine Images (AMIs)

  1. 點選 綠色那個 + 號(Register a new AMI)
  2. 輸入 /.manifest.xml
  3. YOUR_AMI_IMAGE_NAME_OR_S3_BUCKET_NAME/YOUR_AMI_IMAGE_NAME.manifest.xml
  4. 點 Register AMI 即可.
  5. 再來就可以開啟自己的 Machine 囉~ :)

刪除 AMI

  1. Deregister AMI 就可以刪除.
  2. 再從 Amazon S3 刪掉:
    • s3cmd del s3://YOUR_AMI_IMAGE_NAME_OR_S3_BUCKET_NAME/ # 需一個一個刪除
    • s3cmd rb s3://YOUR_AMI_IMAGE_NAME_OR_S3_BUCKET_NAME/ # 全部刪除完畢後, 再把整個 BUCKET 刪除.

建立 Elastic Block Store (EBS) Volume

  • EBS(Elastic Block Store): EBS 可以提供給 Amazon EC2 實體一個實體的儲存空間. (EC2 關機後, 資料就消失了.)
  • Amazon EBS Snapshot: Amazon EBS 另外可以隨時建立 Snapshot 的 volumes, 並將此儲存在 Amazon S3.
建立新的 Volumes (空間)
  1. 開啟一個儲存空間, 來儲存 EC2 的資料, 讓資料在關機後不會消失, 若沒有要 Mount 到機器上時, 可以先做 Snapshot 存放起來.
  2. 切換到 "Volumes and Snapshots"
  3. 點選 綠色+ (Create new volume)
  4. Size (GB): 1 ~ 1000
  5. Availability Zone: us-east-1a, us-east-1b, us-east-1c (要選跟機器同一區域的)
  6. 點選 Create 即可.
  7. 如果有多個 Volume, 要記得把 Volume id 記起來. (Mount 時要用)
Mount 新的 Volumes 到機器上
  1. 切換到 "AMIs and Instances"
  2. 到 Your Instances 區塊, 於機器上按滑鼠右鍵, Attach an EBS Volume
  3. Volume ID 選剛剛建立的.
  4. Device: /dev/sdb (/dev/sda ~ /dev/sdp 都可以填寫, 不過看 /dev/sda 已經是主硬碟在用, 所以輸入 /dev/sdb)
  5. 點選 Attach 即可. (此時就已經將此硬碟裝置裝上去了)
  6. 此時於機器上, 就會自動產生 /dev/sdb 出來.
  7. fdisk /dev/sdb # np1 ... w 這邊就不詳述了
  8. mkfs.ext3 /dev/sdb1 # 格式化
  9. mkdir /backup
  10. mount /dev/sdb1 /backup # 這樣子就 mount 完成.
建立 Snapshots
  1. 作此步驟前, 還是得要先完成前面 格式化 的步驟.
  2. 切換到 Volumes and Snapshots
  3. Create a new snapshot from this volume
  4. 於 Snapshots (SNAPs) 就會產生一個新的 SNAP ID 的新 Volumes 的 Snapshots.
將 Snapshots Mount 到新的機器
  1. 切換到 "Volumes and Snapshots"
  2. 對 Snapshot 按右鍵, 選 Create new volume from this snapshot, 一樣指定 Size, 區域等.
  3. 於 Volumes(VOLS) 就會看到新的 Volume, 將 volume id 記著.
  4. 切換到 "AMIs and Instances"
  5. 到 Your Instances 區塊, 於機器上按滑鼠右鍵, Attach an EBS Volume
  6. Device: /dev/sdc
  7. 點選 Attach 即可.
  8. 此時於機器上, 就會自動產生 /dev/sdc1 出來. (因為剛剛 Snapshot 前已經有 format 過了)
  9. mount /dev/sdc1 /backup # mount 起來.
  10. /backup 的檔案也都還會存在.

Elastic IP (EIP)

  • EIP 是要給此機器一個固定的靜態 IP, 不過 IP 是給 Account, 並不是給任何一個 Instances.
建立一個 固定IP (Elastic IP (EIP))
  • 點選 綠色+(Allocate a new address), 就會自動產生一個新的 IP.
指定機器使用某個固定 IP
  1. 切換到 "AMIs and Instances"
  2. 於 Your Instances 區塊
  3. 找到要 指定的機器 按滑鼠右鍵, 選 "Associate Elastic IP with Instance"
  4. 點選 Associate 即可.
  5. 就可以 ssh -i ~/ec2-keys/id_YOUR_NAME root@EIP

阅读(2341) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~