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

From http://blog.longwin.com.tw/2009/02/amazon-ec2-build-op-elasticfox-note-2009/

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

不过也有些缺点, 就是在上面的资料是不会被储存的, 若是机器当掉、强制关机等等, 资料就会消失. IP 不固定等问题.不過也有些缺點, 就是在上面的資料是不會被儲存的, 若是機器當掉、強制關機等等, 資料就會消失. IP 不固定等問題.

Amazon 针对这些问题也都有解法: Amazon 針對這些問題也都有解法:

  • 资料储存: 用Amazon Elastic Block Store 解决此问题(而且可以动态新增硬碟并挂载上去), 并可随时为此硬碟做Snapshot.資料儲存: 用Amazon Elastic Block Store 解決此問題(而且可以動態新增硬碟並掛載上去), 並可隨時為此硬碟做Snapshot.
  • IP 不固定: 用Elastic IP Addresses 解决此问题, 可以先把IP 先租起来放. IP 不固定: 用Elastic IP Addresses 解決此問題, 可以先把IP 先租起來放.

这几天照文件都玩过一次, 写写笔纪做纪录.這幾天照文件都玩過一次, 寫寫筆紀做紀錄.

 

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

如果没有Amazon帐号,由此申请一个: Amazon Web Services 如果沒有Amazon 帳號, 由此申請一個: Amazon Web Services

事前研究事前研究

下述会使用到的网页:下述會使用到的網頁:

强列建议要安装此Firefox Extension, 有不少功能靠此外挂会简单很多.強列建議要安裝此Firefox Extension, 有不少功能靠此外掛會簡單很多.

这两篇也是笔记, 往下读前建议先把这两篇看一看, 比较有个概念.這兩篇也是筆記, 往下讀前建議先把這兩篇看一看, 比較有個概念.

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

安装、开启Elasticfox安裝、開啟Elasticfox

  1. 于此Elasticfox Firefox Extension for Amazon EC2安装Firefox extension.於此Elasticfox Firefox Extension for Amazon EC2安裝Firefox extension.
  2. 开启Firefox開啟Firefox
  3. Tools → 执行Elasticfox Tools → 執行Elasticfox
  4. 下面内容都是开启Elasticfox后的操作纪录. 下面內容都是開啟Elasticfox 後的操作紀錄.

设定Elasticfox設定Elasticfox

  1. Elasticfox 开启后会出现Manage EC2 Credentials, 要输入"Account Name", "AWS Access Key", "AWS Secret Access Key" Elasticfox 開啟後會出現Manage EC2 Credentials, 要輸入"Account Name", "AWS Access Key", "AWS Secret Access Key"
  2. 于Elasticfox 最上方的Crednetials 右边选取刚刚设定的Account Name, 即登入完成.於Elasticfox 最上方的Crednetials 右邊選取剛剛設定的Account Name, 即登入完成.
    • 注: 若有要制作自己的AMI Image(若不知道这是什么, 需要时再来申请即可), X.509 Certificate 也要产生储存.(cert-key.pem, pk-key.pem)註: 若有要製作自己的AMI Image(若不知道這是甚麼, 需要時再來申請即可), X.509 Certificate 也要產生儲存.(cert-key.pem, pk-key.pem)

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

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

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

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

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

设定方法:設定方法:

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

选择AMI(Amazon Machine Images) 档選擇AMI(Amazon Machine Images) 檔

由网页选择想要的AMI 档(作业系统Image)由網頁選擇想要的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)由上面挑選, 找到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 找於Elasticfox 找
  1. 切换到"AMIs and Instances"切換到"AMIs and Instances"
  2. 于Machine Images (AMI) 输入debian, 就会把debian 相关的AMI 档都列出来.於Machine Images (AMI) 輸入debian, 就會把debian 相關的AMI 檔都列出來.
  3. 找到alestic/debian-5.0-lenny-base-20081222.manifest.xml 点选.找到alestic/debian-5.0-lenny-base-20081222.manifest.xml 點選.
  4. 按上面的绿色Power键(Launch instance(s)) 或直接按右键(Launch instance(s) of this AMI)按上面的綠色Power鍵(Launch instance(s)) 或直接按右鍵(Launch instance(s) of this AMI)
  5. 注:窗最下面有User Data的栏位,于这边写的资料,机器开完后可以使用curl http://169.254.169.254/1.0/user-data取得,可以当外部参数代入等.註: 窗最下面有User Data 的欄位, 於這邊寫的資料, 機器開完後可以使用curl http://169.254.169.254/1.0/user-data取得, 可以當外部參數代入等.
  6. 选Launch 即可.選Launch 即可.
  7. 于Your Instances 区块, 就可以看到新run 的机器(Status 是running 才算完成)於Your Instances 區塊, 就可以看到新run 的機器(Status 是running 才算完成)

连线方法(连线到刚建立的虚拟主机)連線方法(連線到剛建立的虛擬主機)

找DNS Name找DNS Name
  • 对那台机器按滑鼠右键, 选最下面的Connect to Public DNS Name. (会自动抓取~/ec2-keys/id_YOUR_NAME 的key)對那台機器按滑鼠右鍵, 選最下面的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按滑鼠右鍵, 選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直接連線: ssh root@ec2-11-111-111-11.compute-1.amazonaws.com -i ~/ec2-keys/id_YOUR_NAME # 或~/ec2-keys/YOUR_NAME.pem

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

强迫关机/ 重新开机強迫關機/ 重新開機

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

建立属于自己的AMI Image建立屬於自己的AMI Image

文件的方法建立AMI Image文件的方法建立AMI Image

建 立属于自己的AMI Image 的三步骤于文件的方法: (注: 我跑到Bundle into an AMI, 这步骤, Bundle into an AMI 不能点选, 所以放弃此方法,下述只是做个纪录)(注2: 据说Bundle into an AMI 是在Windows 环境的才能跑, Linux 此选项不会启用)建立屬於自己的AMI Image 的三步驟於文件的方法: (註: 我跑到Bundle into an AMI, 這步驟, Bundle into an AMI 不能點選, 所以放棄此方法,下述只是做個紀錄)(註2: 據說Bundle into an AMI 是在Windows 環境的才能跑, Linux 此選項不會啟用)

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

于线上机器直接建立属于自己的AMI Image: (cert-KEY.pem, pk-KEY.pem 由X.509 凭证产生取得)於線上機器直接建立屬於自己的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 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 下方))產生Image: (Account Number 是登入ec2 後, 頁面右上角看到的字串(Sign Out 下方))
  3. ec2-bundle-vol -d /mnt -c <your aws certificate file> -k <your aws private key file> -u <your aws account number> -r i386 -p <your image name> ec2-bundle-vol -d /mnt -c <your aws certificate file> -k <your aws private key file> -u <your aws account number> -r i386 -p <your image name>
    • 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 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註: 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 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. # ACCESS_KEY_ID, SECRTE_ACCRESS_KEY => Amazon S3 key, 就會往Amazon S3 送, 然後會設定為Pirvate.
  5. 若有安装s3cmd, 就可以看到上传上去的Image Bucket 和所有上传档案.若有安裝s3cmd, 就可以看到上傳上去的Image Bucket 和所有上傳檔案.
    • s3cmd ls # 会看到新建立的Bucket s3cmd ls # 會看到新建立的Bucket
    • s3cmd ls s3://YOUR_AMI_IMAGE_NAME_OR_S3_BUCKET_NAME s3cmd ls s3://YOUR_AMI_IMAGE_NAME_OR_S3_BUCKET_NAME
快速纪录建立属于自己的AMI Image 的三步骤快速紀錄建立屬於自己的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 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 <your aws certificate file> -k <your aws private key file> -u <your aws account number> -r i386 -p <your image name> ec2-bundle-vol -d /mnt -c <your aws certificate file> -k <your aws private key file> -u <your aws account number> -r i386 -p <your image name>
  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 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)使用自己的Machine Images (AMIs)

  1. 点选绿色那个+ 号(Register a new AMI)點選綠色那個+ 號(Register a new AMI)
  2. 输入<s3 bucket name>/<your image name>.manifest.xml輸入<s3 bucket name>/<your image name>.manifest.xml
  3. YOUR_AMI_IMAGE_NAME_OR_S3_BUCKET_NAME/YOUR_AMI_IMAGE_NAME.manifest.xml YOUR_AMI_IMAGE_NAME_OR_S3_BUCKET_NAME/YOUR_AMI_IMAGE_NAME.manifest.xml
  4. 点Register AMI 即可.點Register AMI 即可.
  5. 再来就可以开启自己的Machine 啰~再來就可以開啟自己的Machine 囉~ :)

删除AMI刪除AMI

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

建立Elastic Block Store (EBS) Volume建立Elastic Block Store (EBS) Volume

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

Elastic IP (EIP) Elastic IP (EIP)

  • EIP 是要给此机器一个固定的静态IP, 不过IP 是给Account, 并不是给任何一个Instances. EIP 是要給此機器一個固定的靜態IP, 不過IP 是給Account, 並不是給任何一個Instances.
建立一个固定IP (Elastic IP (EIP))建立一個固定IP (Elastic IP (EIP))
  • 点选绿色+(Allocate a new address), 就会自动产生一个新的IP.點選綠色+(Allocate a new address), 就會自動產生一個新的IP.
指定机器使用某个固定IP指定機器使用某個固定IP
  1. 切换到"AMIs and Instances"切換到"AMIs and Instances"
  2. 于Your Instances 区块於Your Instances 區塊
  3. 找到要指定的机器按滑鼠右键, 选"Associate Elastic IP with Instance"找到要指定的機器按滑鼠右鍵, 選"Associate Elastic IP with Instance"
  4. 点选Associate 即可.點選Associate 即可.
  5. 就可以ssh -i ~/ec2-keys/id_YOUR_NAME root@EIP就可以ssh -i ~/ec2-keys/id_YOUR_NAME root@EIP
posted on 2011-05-11 17:59  -Anny-  阅读(2038)  评论(0编辑  收藏  举报