云计算 频道

amazon aws 使用笔记

四、开始使用Instance

  1、使用secucrt连接到instance

  使用putty的话可以查看官方文档,我习惯使用secucrt,但是官方没有提供将amazon的key转换成secucrt的文档。下面的内容摘自论坛:

  原理:使用openssh ssh-keygen将.pem转换为openssh格式的key。

  (1)、上传gsg-keypair.pem到一台linux服务器上
  (2)、cat gsg-keypair.pem>amazonec2key
  (3)、chmod 600 amazonec2key
  (4)、ssh-keygen -p -f amazonec2key
  (5)、ssh-keygen -e -f amazonec2key >> amazonec2key.pub
  (6)、使用amazonec2key.pub做为secuCRT的key文件。

  2、使用ec2-api

  (1)设置环境变量
export JAVA_HOME=/usr/java/jdk1.5.0_15
export EC2_HOME=/opt/ec2/ec2-api-tools-1.3-30349
export EC2_PRIVATE_KEY=/opt/ec2/pk-6FW5MJGDE7EHO6WFDZVOTDNHBMM5MRPA.pem
export EC2_CERT=/opt/ec2/cert-6FW5MJGDE7EHO6WFDZVOTDNHBMM5MRPA.pem
PATH=$PATH:$EC2_HOME/bin:$JAVA_HOME/bin
  (2)使用,ec2-api提供对aws的操作,如启动实例,挂载EBS存储,等等,等等~~~好多
PROMPT> ec2-describe-regions
REGION us-east-1 us-east-1.ec2.amazonaws.com
REGION eu-west-1 eu-west-1.ec2.amazonaws.com
  (3)关于下面的报错
一般是由于jdk的版本造成的,建议使用jdk1.5.
另外,还有可能是CLASSPATH里包含了某些jar包造成的,建议先取消环境变量CLASSPATH试一下:unset CLASSPATH

org.codehaus.xfire.fault.XFireFault: Signature creation failed; nested exception is:
java.lang.NullPointerException
at org.codehaus.xfire.fault.XFireFault.createFault(XFireFault.java:89)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:83)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:114)
at org.codehaus.xfire.client.Client.invoke(Client.java:336)
at org.codehaus.xfire.client.XFireProxy.handleRequest(XFireProxy.java:77)
at org.codehaus.xfire.client.XFireProxy.invoke(XFireProxy.java:57)
at $Proxy12.describeAddresses(Unknown Source)
at com.amazon.aes.webservices.client.Jec2.describeAddresses(Jec2.java:1645)
at com.amazon.aes.webservices.client.Jec2.describeAddresses(Jec2.java:1616)
at com.amazon.aes.webservices.client.cmd.DescribeAddresses.invokeOnline(DescribeAddresses.java:42)
at com.amazon.aes.webservices.client.cmd.BaseCmd.invoke(BaseCmd.java:637)
at com.amazon.aes.webservices.client.cmd.DescribeAddresses.main(DescribeAddresses.java:51)
Caused by: org.apache.ws.security.WSSecurityException: Signature creation failed; nested exception is:
java.lang.NullPointerException
at org.apache.ws.security.message.WSSecSignature.computeSignature(WSSecSignature.java:666)
at com.amazon.aes.webservices.client.Jec2.signRequest(Jec2.java:258)
at com.amazon.aes.webservices.client.Jec2.access$000(Jec2.java:70)
at com.amazon.aes.webservices.client.Jec2$1.invoke(Jec2.java:152)
at org.codehaus.xfire.handler.HandlerPipeline.invoke(HandlerPipeline.java:131)
at org.codehaus.xfire.client.Invocation.invoke(Invocation.java:79)
... 10 more
Caused by: java.lang.NullPointerException
at org.apache.crimson.tree.ElementNode2.getAttributeNodeNS(ElementNode2.java:432)
at org.apache.crimson.tree.ElementNode2.hasAttributeNS(ElementNode2.java:388)
at org.apache.ws.security.util.WSSecurityUtil.findElementById(WSSecurityUtil.java:269)
at org.apache.ws.security.util.WSSecurityUtil.getElementByWsuId(WSSecurityUtil.java:438)
at org.apache.ws.security.message.EnvelopeIdResolver.engineResolve(EnvelopeIdResolver.java:117)
at org.apache.xml.security.utils.resolver.ResourceResolver.resolve(Unknown Source)
at org.apache.xml.security.signature.Reference.getContentsBeforeTransformation(Unknown Source)
at org.apache.xml.security.signature.Reference.dereferenceURIandPerformTransforms(Unknown Source)
at org.apache.xml.security.signature.Reference.calculateDigest(Unknown Source)
at org.apache.xml.security.signature.Reference.generateDigestValue(Unknown Source)
at org.apache.xml.security.signature.Manifest.generateDigestValues(Unknown Source)
at org.apache.xml.security.signature.XMLSignature.sign(Unknown Source)
at org.apache.ws.security.message.WSSecSignature.computeSignature(WSSecSignature.java:659)
... 15 more


关于启动了的Instance的相关信息,可以通过下面的工具查看
wget http://s3.amazonaws.com/ec2metadata/ec2-metadata

chmod u+x ec2-metadata
./ec2-metadata
或者查看EC2 Developer Guide > Using Amazon EC2 >Launching and Using Instances >Instance Metadata

  3、关于挂载EBS存储

  (1)创建一个存储,大小的单位是G,可以使用--snapshot充一个快照进行创建。
ec2-create-volume --size 1 --availability-zone us-east-1c
  (2)挂载一个vol到一个Instance
ec2-attach-volume VOLUME -i INSTANCE -d DEVICE
如:ec2-attach-volume vol-0553b76c -i i-9743d7fe -d /dev/sdh
注意,不要挂载到/dev/sd3上去,/dev/sd3是swap分区。
登陆到linux上
mkfs.ext3 /dev/sdh
mount /dev/sdh /mnt/data-store
  (3)卸载存储
首先,从linux卸掉挂载 umount /mnt/data-store
卸载存储:
ec2detvol [GENERAL OPTIONS] VOLUME [-i INSTANCE [-d DEVICE]] [-f|--force]
ec2-detach-volume vol-0553b76c -i i-fd33a694 -d /dev/sdh

  4、关于操作S3上的bucket

  常用于删除修改后删除以前的AMI
  需要使用工具:s3cmd工具,第三方的。
  下载地址:http://s3tools.org/s3cmd
  安装:(1)先安装windows的python
  (2)右击“我的电脑”->“属性”->“高级”->“环境变量”,选择“PATH”,点“编辑”,把;C:\Python26加入“变量值”中(注意分号分割)。确定
  (3)运行python setup.py install
  (4)运行python c:\python26\scripts\s3cmd --configure
设定 access_key和secret_key
  (5)关于删除bucket,s3cmd 0.9.9 以前的版本不支持删除非空bucket,建议使用s3cmd 0.9.9 版本。
Many people wanted an easy way to delete a subtrees from S3 or to remove non-empty buckets. Both is now possible – del understands

—recursive and rb honours —force (which in fact will do a recursive delete first internally):
~$ python c:\python26\scripts\s3cmd rb --force s3://bkt-test
WARNING: Bucket is not empty. Removing all the objects from it
first. This may take some time...
File s3://bkt-test/testfile.txt deleted
Bucket 's3://bkt-test/' removed
  (6)其余操作:
Make bucket
s3cmd mb s3://BUCKET
Remove bucket
s3cmd rb s3://BUCKET
List objects or buckets
s3cmd ls [s3://BUCKET[/PREFIX]]
List all object in all buckets
s3cmd la
Put file into bucket
s3cmd put FILE [FILE...] s3://BUCKET[/PREFIX]
Get file from bucket
s3cmd get s3://BUCKET/OBJECT LOCAL_FILE
Delete file from bucket
s3cmd del s3://BUCKET/OBJECT
Synchronize a directory tree to S3
s3cmd sync LOCAL_DIR s3://BUCKET[/PREFIX] or s3://BUCKET[/PREFIX] LOCAL_DI

Disk usage by buckets
s3cmd du [s3://BUCKET[/PREFIX]]
Get various information about Buckets or Objects
s3cmd info s3://BUCKET[/OBJECT]
Copy object
s3cmd cp s3://BUCKET1/OBJECT1 s3://BUCKET2[/OBJECT2]
Move object
s3cmd mv s3://BUCKET1/OBJECT1 s3://BUCKET2[/OBJECT2]
Modify Access control list for Bucket or Object
s3cmd setacl s3://BUCKET[/OBJECT]
List CloudFront distribution points
s3cmd cflist
Display CloudFront distribution point parameters
s3cmd cfinfo [cf://DIST_ID]
Create CloudFront distribution point
s3cmd cfcreate s3://BUCKET
Delete CloudFront distribution point
s3cmd cfdelete cf://DIST_ID
Change CloudFront distribution point parameters
s3cmd cfmodify cf://DIST_ID

0
相关文章