Subir un AMI creado por Amazon
Primero tenemos que instalar el software que nos hace falta para ejecutar los AMI
Instalamos Java 5
$ apt-get install sun-java5-jre sun-java5-jdk
o
$sudo apt-get install sun-java6-jre sun-java6-jdk
Para saber que java usamos, ponemos el siguiente comando
$sudo update-alternatives --config java
Esto lo ponemos en el fichero .bashrc de cada usuario y en el shell actual
$sudo vi /home/sysadmin/.bashrc
...
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
...
De la pagina de amazon http://aws.amazon.com (Usuario: jxxxx.xxxxxxxxx@gmail.com Clave: sistemas), nos hemos descargado nuestro X509 certificate y private key file que solo nos lo podemos descargar una vez. Tambien tenemos que saber cual es nuestro Account Number (en nuestro caso es 4472-6514-7265, pero hay que ponerlo como 447265147265. Tambien me he descargado las siguientes herramientas:
ec2-ami-tools.zip http://developer.amazonwebservices.com/connect/entry.jspa?externalID=368&categoryID=88
ec2-api-tools.zip http://developer.amazonwebservices.com/connect/entry.jspa?externalID=351
Para tener esto organizado he creado la siguiente estructura de directorios
/usr/local/ec2/cert - aqui guardo los certificados
/usr/local/ec2/soft - aqui guardo las herramientas descargadas
Procedemos a instalar las herramientas descargadas, solo con descomprimir los ficheros.
$ unzip ec2-ami-tools.zip
$ unzip ec2-api-tools.zip
En caso de habernos descargado el fichero .rpm tenemos que usar alien.
$ alien /tmp/ec2-ami-tools.noarch.rpm
Warning: Skipping conversion of scripts in package ec2-ami-tools: preinst
Warning: Use the --scripts parameter to include the scripts.
ec2-ami-tools_1.3-20042_all.deb generated
$ dpkg -i ec2-ami-tools_1.3-20042_all.deb
Configuramos las variables EC2_CERT y EC2_PRIVATE_KEY
Esto lo ponemos tambien en el fichero /home/jcgutierrez/.bashrc para que se ejecute siempre que arranquemos el sistema
$sudo vi /home/jcgutierrez/.bashrc
...
Instalamos Java 5
$ apt-get install sun-java5-jre sun-java5-jdk
o
$sudo apt-get install sun-java6-jre sun-java6-jdk
Para saber que java usamos, ponemos el siguiente comando
$sudo update-alternatives --config java
Esto lo ponemos en el fichero .bashrc de cada usuario y en el shell actual
$sudo vi /home/sysadmin/.bashrc
...
export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
...
De la pagina de amazon http://aws.amazon.com (Usuario: jxxxx.xxxxxxxxx@gmail.com Clave: sistemas), nos hemos descargado nuestro X509 certificate y private key file que solo nos lo podemos descargar una vez. Tambien tenemos que saber cual es nuestro Account Number (en nuestro caso es 4472-6514-7265, pero hay que ponerlo como 447265147265. Tambien me he descargado las siguientes herramientas:
ec2-ami-tools.zip http://developer.amazonwebservices.com/connect/entry.jspa?externalID=368&categoryID=88
ec2-api-tools.zip http://developer.amazonwebservices.com/connect/entry.jspa?externalID=351
Para tener esto organizado he creado la siguiente estructura de directorios
/usr/local/ec2/cert - aqui guardo los certificados
/usr/local/ec2/soft - aqui guardo las herramientas descargadas
Procedemos a instalar las herramientas descargadas, solo con descomprimir los ficheros.
$ unzip ec2-ami-tools.zip
$ unzip ec2-api-tools.zip
En caso de habernos descargado el fichero .rpm tenemos que usar alien.
$ alien /tmp/ec2-ami-tools.noarch.rpm
Warning: Skipping conversion of scripts in package ec2-ami-tools: preinst
Warning: Use the --scripts parameter to include the scripts.
ec2-ami-tools_1.3-20042_all.deb generated
$ dpkg -i ec2-ami-tools_1.3-20042_all.deb
Configuramos las variables EC2_CERT y EC2_PRIVATE_KEY
Esto lo ponemos tambien en el fichero /home/jcgutierrez/.bashrc para que se ejecute siempre que arranquemos el sistema
$sudo vi /home/jcgutierrez/.bashrc
...
- Variables para Amazon EC2
export JAVA_HOME=/usr/lib/jvm/java-6-sun
- export JAVA_HOME=/usr/lib/jvm/java-1.5.0-sun
export EC2_HOME=/usr/local/ec2/soft/ec2-api-tools-1.3-26369
export EC2_AMITOOL_HOME=/usr/local/ec2/soft/ec2-ami-tools-1.3-26357
export EC2_APITOOL_HOME=/usr/local/ec2/soft/ec2-api-tools-1.3-26369
export EC2_AMITOOL_HOME=/usr/local/ec2/soft/ec2-ami-tools-1.3-26357
export EC2_APITOOL_HOME=/usr/local/ec2/soft/ec2-api-tools-1.3-26369
- export AWS_ACCESS_KEY_ID=03ADK1XS7GH4ZHH74F02
- export AWS_SECRET_ACCESS_KEY=JTFIpj9lc+FXaWqwNPaQSlmEKd2Ovxs6oO4kQNln
export PATH=$PATH:$EC2_HOME/bin
export EC2_PRIVATE_KEY=/usr/local/ec2/cert/pk-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem
export EC2_CERT=/usr/local/ec2/cert/cert-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem
export EC2_PRIVATE_KEY=/usr/local/ec2/cert/pk-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem
export EC2_CERT=/usr/local/ec2/cert/cert-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem
- export PATH=$PATH:$EC2_HOME/bin
export PATH=$PATH:/usr/local/ec2/soft/ec2-api-tools-1.3-26369/bin:/usr/local/ec2/soft/ec2-ami-tools-1.3-26357/bin:/usr/local/ec2/soft/s3cmd-0.9.7
...
Copiar el certificado en la ruta /usr/local/ec2/soft/ec2-ami-tools-1.3-21885/etc/ec2/amitools/cert-ec2.pem
$ cd /usr/local/ec2/ec2-api-tools-1.3-19403/bin
Para ver las imagenes que hay predefinidas en amazon. $ sudo sh ec2-describe-images -o self -o amazon
IMAGE ami-bd9d78d4 ec2-public-images/demo-paid-AMI.manifest.xml amazon available public A79EC0DB i386 machine
IMAGE ami-26b6534f ec2-public-images/developer-image.manifest.xml amazon available public i386 machine
IMAGE ari-a51cf9cc ec2-public-images/ec2-initrd-2.6.21.7-2.fc8xen.i386.manifest.xml amazon available public i386 ramdisk
IMAGE ari-b31cf9da ec2-public-images/ec2-initrd-2.6.21.7-2.fc8xen.x86_64.manifest.xml amazon available public x86_64 ramdisk
IMAGE aki-a71cf9ce ec2-public-images/ec2-vmlinuz-2.6.21.7-2.fc8xen.i386.manifest.xml amazon available public i386 kernel
IMAGE aki-b51cf9dc ec2-public-images/ec2-vmlinuz-2.6.21.7-2.fc8xen.x86_64.manifest.xml amazon available public x86_64 kernel
IMAGE ami-f51aff9c ec2-public-images/fedora-8-i386-base-v1.06.manifest.xml amazon available public i386 machine aki-a71cf9ce ari-a51cf9cc
IMAGE ami-f21aff9b ec2-public-images/fedora-8-x86_64-base-v1.06.manifest.xml amazon available public x86_64 machine aki-b51cf9dcari-b31cf9da
IMAGE ami-a21affcb ec2-public-images/fedora-core-6-x86_64-base-v1.06.manifest.xml amazon available public x86_64 machine aki-a53adfccari-a23adfcb
IMAGE ami-25b6534c ec2-public-images/fedora-core4-apache-mysql.manifest.xml amazon available public i386 machine
IMAGE ami-23b6534a ec2-public-images/fedora-core4-apache.manifest.xml amazon available public i386 machine
IMAGE ami-20b65349 ec2-public-images/fedora-core4-base.manifest.xml amazon available public i386 machine
IMAGE ami-22b6534b ec2-public-images/fedora-core4-mysql.manifest.xml amazon available public i386 machine
IMAGE ami-36ff1a5f ec2-public-images/fedora-core6-base-x86_64.manifest.xml amazon available public x86_64 machine
IMAGE ami-2bb65342 ec2-public-images/getting-started.manifest.xml amazon available public i386 machine
IMAGE ari-a23adfcb ec2-public-images/initrd-2.6.20-1.3002.fc6xen.ari.manifest.xml amazon available public x86_64 ramdisk
IMAGE aki-9b00e5f2 ec2-public-images/vmlinuz-2.6.18-xenU-ec2-v1.0.i386.aki.manifest.xml amazon available public i386 kernel
IMAGE aki-9800e5f1 ec2-public-images/vmlinuz-2.6.18-xenU-ec2-v1.0.x86_64.aki.manifest.xml amazon available public x86_64 kernel
IMAGE aki-a53adfcc ec2-public-images/vmlinuz-2.6.20-1.3002.fc6xen.aki.manifest.xml amazon available public x86_64 kernel
El keypair se genera solo la primera vez que nos damos de alta, luego con copiar el fichero id_rsa-gsg-keypair desde otra maquina en el directorio /usr/local/ec2/ec2-api-tools-1.3-19403/bin ya nos vale. $ sudo sh ec2-add-keypair gsg-keypair
KEYPAIR gsg-keypair eb:c1:e5:32:1a:fa:20:42:13:8f:6a:1b:e8:f4:db:63:e4:06:e5:20
...
Copiar el certificado en la ruta /usr/local/ec2/soft/ec2-ami-tools-1.3-21885/etc/ec2/amitools/cert-ec2.pem
$ cd /usr/local/ec2/ec2-api-tools-1.3-19403/bin
Para ver las imagenes que hay predefinidas en amazon. $ sudo sh ec2-describe-images -o self -o amazon
IMAGE ami-bd9d78d4 ec2-public-images/demo-paid-AMI.manifest.xml amazon available public A79EC0DB i386 machine
IMAGE ami-26b6534f ec2-public-images/developer-image.manifest.xml amazon available public i386 machine
IMAGE ari-a51cf9cc ec2-public-images/ec2-initrd-2.6.21.7-2.fc8xen.i386.manifest.xml amazon available public i386 ramdisk
IMAGE ari-b31cf9da ec2-public-images/ec2-initrd-2.6.21.7-2.fc8xen.x86_64.manifest.xml amazon available public x86_64 ramdisk
IMAGE aki-a71cf9ce ec2-public-images/ec2-vmlinuz-2.6.21.7-2.fc8xen.i386.manifest.xml amazon available public i386 kernel
IMAGE aki-b51cf9dc ec2-public-images/ec2-vmlinuz-2.6.21.7-2.fc8xen.x86_64.manifest.xml amazon available public x86_64 kernel
IMAGE ami-f51aff9c ec2-public-images/fedora-8-i386-base-v1.06.manifest.xml amazon available public i386 machine aki-a71cf9ce ari-a51cf9cc
IMAGE ami-f21aff9b ec2-public-images/fedora-8-x86_64-base-v1.06.manifest.xml amazon available public x86_64 machine aki-b51cf9dcari-b31cf9da
IMAGE ami-a21affcb ec2-public-images/fedora-core-6-x86_64-base-v1.06.manifest.xml amazon available public x86_64 machine aki-a53adfccari-a23adfcb
IMAGE ami-25b6534c ec2-public-images/fedora-core4-apache-mysql.manifest.xml amazon available public i386 machine
IMAGE ami-23b6534a ec2-public-images/fedora-core4-apache.manifest.xml amazon available public i386 machine
IMAGE ami-20b65349 ec2-public-images/fedora-core4-base.manifest.xml amazon available public i386 machine
IMAGE ami-22b6534b ec2-public-images/fedora-core4-mysql.manifest.xml amazon available public i386 machine
IMAGE ami-36ff1a5f ec2-public-images/fedora-core6-base-x86_64.manifest.xml amazon available public x86_64 machine
IMAGE ami-2bb65342 ec2-public-images/getting-started.manifest.xml amazon available public i386 machine
IMAGE ari-a23adfcb ec2-public-images/initrd-2.6.20-1.3002.fc6xen.ari.manifest.xml amazon available public x86_64 ramdisk
IMAGE aki-9b00e5f2 ec2-public-images/vmlinuz-2.6.18-xenU-ec2-v1.0.i386.aki.manifest.xml amazon available public i386 kernel
IMAGE aki-9800e5f1 ec2-public-images/vmlinuz-2.6.18-xenU-ec2-v1.0.x86_64.aki.manifest.xml amazon available public x86_64 kernel
IMAGE aki-a53adfcc ec2-public-images/vmlinuz-2.6.20-1.3002.fc6xen.aki.manifest.xml amazon available public x86_64 kernel
El keypair se genera solo la primera vez que nos damos de alta, luego con copiar el fichero id_rsa-gsg-keypair desde otra maquina en el directorio /usr/local/ec2/ec2-api-tools-1.3-19403/bin ya nos vale. $ sudo sh ec2-add-keypair gsg-keypair
KEYPAIR gsg-keypair eb:c1:e5:32:1a:fa:20:42:13:8f:6a:1b:e8:f4:db:63:e4:06:e5:20
BEGIN RSA PRIVATE KEY-----
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
END RSA PRIVATE KEY-----
Todo esto lo guardamos en un fichero con el siguiente nombre id_rsa-gsg-keypair
$ cat id_rsa-gsg-keypair
BEGIN RSA PRIVATE KEY-----
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
END RSA PRIVATE KEY-----
Este fichero tiene que tener los siguientes permisos:
$sudo chmod 600 id_rsa-gsg-keypair
$sudo chown usuario:usuario id_rsa-gsg-keypair
Esto es para que el usuario local pueda lanzar el comando de conexion a la instancia
Arrancamos la instancia elegida
$ sudo sh ec2-run-instances ami-25b6534c -k gsg-keypair
RESERVATION r-ffc40596 447265147265 default
INSTANCE i-e32ce78a ami-25b6534c pending gsg-keypair 0 m1.small 2008-06-0 5T08:30:45+0000 us-east-1c
La instancia escogida es ami-25b6534c y se representa por medio del id i-e32ce78a.
Para comprobar el estado de nuestra instancia hacemos lo siguiente
$ sudo sh ec2-describe-instances i-e32ce78a
RESERVATION r-ffc40596 447265147265 default
INSTANCE i-e32ce78a ami-25b6534c ec2-75-101-248-109.compute-1.amazonaws.com domU-12-31-39-00-C4-31.compute-1.internal running gsg-keypair 0 m1.small 2008-06-05T08:30:45+0000 us-east-1c
A continuacion permitimos el acceso a la red de nuestra instancia. Para ello hacemos lo siguiente:
$ sudo sh ec2-authorize default -p 22
GROUP default
PERMISSION default ALLOWS tcp 22 22 FROM CIDR 0.0.0.0/0
sysadmin@berny:/usr/local/ec2/ec2-api-tools-1.3-19403/bin$ sudo sh ec2-authorize default -p 80
GROUP default PERMISSION default ALLOWS tcp 80 80 FROM CIDR 0.0.0.0/0
Para probar nuestra instancia podemos hacerlo siguiente
http://ec2-75-101-248-109.compute-1.amazonaws.com/
Este es el nombre publico de tu instancia, lo puedes ver cuando ves el estado de tu instancia.
Para conectarnos a nuestra instancia a traves de ssh se hace lo siguiente
$ ssh -i id_rsa-gsg-keypair root@ec2-75-101-248-109.compute-1.amazonaws.com
The authenticity of host 'ec2-75-101-248-109.compute-1.amazonaws.com (75.101.248.109)' can't be established.
RSA key fingerprint is f1:4e:d1:14:87:f0:57:71:89:6e:ed:b5:1c:14:84:b5.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'ec2-75-101-248-109.compute-1.amazonaws.com,75.101.248.109' (RSA) to the list of known hosts.
-
- __| __| __) Rev: 2
- _| ( /
- ___| \___| (___|
- Welcome to an EC2 Public Image
-
- :-)
-
- Apache2+MySQL4
- __ c __ /etc/ec2/release-notes.txt
[root@domU-12-31-39-00-C4-31 ~]$
Para salir de esta session de SSH pulsamos CTRL+D
Si queremos registrar una instancia modificada tenemos que hacer lo siguiente:
Lo primero es subir el certificado y el private key a nuestra instancia
$ sudo scp -i id_rsa-gsg-keypair /usr/local/ec2/cert/pk-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem /usr/local/ec2/cert/cert-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem root@ec2-67-202-39-7.compute-1.amazonaws.com:/mnt
pk-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem 100% 926 0.9KB/s 00:00
cert-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem 100% 916 0.9KB/s 00:00
Esto se hace dentro de la instancia
$ ec2-bundle-vol -d /mnt -k /mnt/pk-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem -c /mnt/cert-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem -u 447265147265 -r i386
Con el parametro -p le puedes dar un nombre a tu instancia
Copying / into the image file /mnt/image...
Excluding:
- /sys
- /proc
- /dev/pts
- /net
- /proc/sys/fs/binfmt_misc
- /dev
- /media
- /mnt
- /proc
- /sys
- /mnt/image
- /mnt/img-mnt
1+0 records in
1+0 records out
mke2fs 1.38 (30-Jun-2005)
/etc/fstab:
1+0 records out
mke2fs 1.38 (30-Jun-2005)
/etc/fstab:
- # Legacy /etc/fstab
- # Supplied by: ec2-ami-tools-1.3-20041
- /dev/sda1 / ext3 defaults 1 1
- /dev/sda2 /mnt ext3 defaults 0 0
- /dev/sda3 swap swap defaults 0 0
- none /proc proc defaults 0 0
- none /sys sysfs defaults 0 0
Bundling image file...
[1]+ Done openssl sha1
Splitting /mnt/image.tar.gz.enc...[1]+ Done openssl sha1
Created image.part.00
Created image.part.01
Created image.part.02
Created image.part.03
Created image.part.04
Created image.part.05
Created image.part.06
Created image.part.07
Created image.part.08
Created image.part.09
Created image.part.10
Created image.part.11
Created image.part.12
Created image.part.13
Created image.part.14
Created image.part.15
Created image.part.16
Created image.part.17
Created image.part.18
Created image.part.19
Created image.part.20
Created image.part.21
Created image.part.22
Created image.part.23
Created image.part.24
Generating digests for each part...
Digests generated.
Unable to read instance meta-data for ancestor-ami-ids
Unable to read instance meta-data for kernel-id
Unable to read instance meta-data for ramdisk-id
Unable to read instance meta-data for product-codes
Creating bundle manifest...
ec2-bundle-vol complete.
Este es el contenido del directorio /mnt de nuestra instancia
$ls -l /mnt/
total 1403960
-rw-r--r-- 1 root root 916 Jun 5 06:39 cert-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem
-rw-r--r-- 1 root root 10737418240 Jun 5 06:46 image
-rw-r--r-- 1 root root 5586 Jun 5 06:53 image.manifest.xml
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.00
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.01
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.02
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.03
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.04
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.05
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.06
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.07
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.08
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.09
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.10
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.11
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.12
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.13
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.14
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.15
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.16
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.17
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.18
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.19
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.20
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.21
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.22
-rw-r--r-- 1 root root 10485760 Jun 5 06:53 image.part.23
-rw-r--r-- 1 root root 4711040 Jun 5 06:53 image.part.24
drwxr-xr-x 2 root root 4096 Jun 5 06:46 img-mnt
drwx------ 2 root root 16384 Apr 14 15:30 lost+found
-rw-r--r-- 1 root root 393 Jun 5 06:24 openssh_id.pub
-rw-r--r-- 1 root root 926 Jun 5 06:39 pk-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem
Creacion de una instancia en S3 con EC2
El bucket se crea automaticamente si no existe como podemos ver en la ayuda
$ ec2-upload-bundle --help
Usage: ec2-upload-bundle PARAMETERS
MANDATORY PARAMETERS
$ ec2-upload-bundle --help
Usage: ec2-upload-bundle PARAMETERS
MANDATORY PARAMETERS
-b, --bucket BUCKET The bucket to upload the bundle to. Created if nonexistent. -m, --manifest PATH The path to the manifest file. -a, --access-key USER The user's AWS access key ID. -s, --secret-key PASSWORD The user's AWS secret access key.
OPTIONAL PARAMETERS
--acl ACL The access control list policy ["public-read" | "aws-exec-read"]. Defaults to "aws-exec-read". --ec2cert PATH The path to the EC2 X509 public key certificate for the upload. Defaults to "/etc/aes/amiutil/cert-ec2.pem". -d, --directory DIRECTORY The directory containing the bundled AMI parts to upload. Defaults to the directory containing the manifest. --debug Print debug messages. --part PART Upload the specified part and upload all subsequent parts. --url URL The S3 service URL. Defaults to https://s3.amazonaws.com. --retry Automatically retry failed uploads. Use with caution. --skipmanifest Do not upload the manifest. -h, --help Display the help message and exit. --manual Display the manual and exit.
$ ec2-upload-bundle -b pecblom01 -m /mnt/image.manifest.xml -a 03ADK1XS7GH4ZHH74F02 -s JTFIpj9lc+FXaWqwNPaQSlmEKd2Ovxs6oO4kQNln --ec2cert /mnt/cert-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pemAre you sure you want to specify a different EC2 public certificate? [y/n]
y
Using specified EC2 public certificate: /mnt/cert-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem.
Setting bucket ACL to allow EC2 read access ...
Uploading bundled image parts to https://s3.amazonaws.com:443/pecblom01 ...
Uploaded image.part.00 to https://s3.amazonaws.com:443/pecblom01/image.part.00.
Uploaded image.part.01 to https://s3.amazonaws.com:443/pecblom01/image.part.01.
Uploaded image.part.02 to https://s3.amazonaws.com:443/pecblom01/image.part.02.
Uploaded image.part.03 to https://s3.amazonaws.com:443/pecblom01/image.part.03.
Uploaded image.part.04 to https://s3.amazonaws.com:443/pecblom01/image.part.04.
Uploaded image.part.05 to https://s3.amazonaws.com:443/pecblom01/image.part.05.
Uploaded image.part.06 to https://s3.amazonaws.com:443/pecblom01/image.part.06.
Uploaded image.part.07 to https://s3.amazonaws.com:443/pecblom01/image.part.07.
Uploaded image.part.08 to https://s3.amazonaws.com:443/pecblom01/image.part.08.
Uploaded image.part.09 to https://s3.amazonaws.com:443/pecblom01/image.part.09.
Uploaded image.part.10 to https://s3.amazonaws.com:443/pecblom01/image.part.10.
Uploaded image.part.11 to https://s3.amazonaws.com:443/pecblom01/image.part.11.
Uploaded image.part.12 to https://s3.amazonaws.com:443/pecblom01/image.part.12.
Uploaded image.part.13 to https://s3.amazonaws.com:443/pecblom01/image.part.13.
Uploaded image.part.14 to https://s3.amazonaws.com:443/pecblom01/image.part.14.
Uploaded image.part.15 to https://s3.amazonaws.com:443/pecblom01/image.part.15.
Uploaded image.part.16 to https://s3.amazonaws.com:443/pecblom01/image.part.16.
Uploaded image.part.17 to https://s3.amazonaws.com:443/pecblom01/image.part.17.
Uploaded image.part.18 to https://s3.amazonaws.com:443/pecblom01/image.part.18.
Uploaded image.part.19 to https://s3.amazonaws.com:443/pecblom01/image.part.19.
Uploaded image.part.20 to https://s3.amazonaws.com:443/pecblom01/image.part.20.
Uploaded image.part.21 to https://s3.amazonaws.com:443/pecblom01/image.part.21.
Uploaded image.part.22 to https://s3.amazonaws.com:443/pecblom01/image.part.22.
Uploaded image.part.23 to https://s3.amazonaws.com:443/pecblom01/image.part.23.
Uploaded image.part.24 to https://s3.amazonaws.com:443/pecblom01/image.part.24.
Uploading manifest ...
Uploaded manifest to https://s3.amazonaws.com:443/pecblom01/image.manifest.xml.
Bundle upload completed.
Para terminar, tenemos que registrar nuestra imagen
$ sudo sh ec2-register pecblom01/image.manifest.xml
[sudo] password for sysadmin:
IMAGE ami-1ea64277
Para saber las instancias que tienes en pie hacemos lo siguiente
$ ec2-describe-instances
RESERVATION r-bec607d7 447265147265 default INSTANCE i-4021ea29 ami-25b6534c ec2-67-202-39-7.compute-1.amazonaws.com ip-10-251-111-112.ec2.internal running gsg-keypair 0 m1.small 2008-06-05T10:24:44+0000 us-east-1b
Para apagar una instancia hacemos lo siguiente
$ sudo sh ec2-terminate-instances i-e32ce78a
INSTANCE i-e32ce78a running shutting-down
Para poder asignar una ip a la misma instancia lo primero que tenemos que hacer es solicitar la ip a Amazon. Recordar que solo se pueden solicitar 5 ip por cuenta.
$ ec2-allocate-address
ADDRESS 75.101.144.120
Para saber en todo momento las ip que tengo podemos hacer lo siguiente
$ ec2-describe-address
ADDRESS 75.101.139.213
ADDRESS 75.101.144.120
ADDRESS 75.101.145.251
Para asociar una ip a una instancia hacemos lo siguiente:
$ ec2-describe-instances
RESERVATION r-4cce0f25 447265147265 default INSTANCE i-a838f3c1 ami-1ea64277 ec2-75-101-228-166.compute-1.amazonaws.com domU-12-31-38-00-8D-23.compute-1.internal running 0 m1.small 2008-06-05T15:53:35+0000 us-east-1a
Se que mi instancia tiene el id i-a838f3c1
$ ec2-associate-address -i i-a838f3c1 75.101.139.213
ADDRESS 75.101.139.213 i-a838f3c1
Una vez hecho esto, podemos ver que efectivamente esta asociado
$ ec2-describe-instances
RESERVATION r-4cce0f25 447265147265 default INSTANCE i-a838f3c1 ami-1ea64277 ec2-75-101-139-213.compute-1.amazonaws.com domU-12-31-38-00-8D-23.compute-1.internal running 0 m1.small 2008-06-05T15:53:35+0000 us-east-1a
$ ec2-describe-addresses
ADDRESS 75.101.139.213 i-a838f3c1
ADDRESS 75.101.144.120
ADDRESS 75.101.145.251
Para desasociar una ip de la instancia
$ ec2-disassociate-address 75.101.139.213
ADDRESS 75.101.139.213
Estas son las ip que tengo reservadas
$ ec2-describe-addresses
ADDRESS 75.101.139.213 i-a838f3c1
ADDRESS 75.101.144.120
ADDRESS 75.101.145.251
Para poder devolver las ip que hemos reservado
$ ec2-release-address 75.101.144.120
ADDRESS 75.101.144.120
$ ec2-describe-addresses
ADDRESS 75.101.139.213 i-a838f3c1
ADDRESS 75.101.145.251
Cuando una instancia termina se desasocia la ip a esa instancia
Anexo 1
Para subir documentos a nuestra instancia lo hacemos asi
$ sudo scp -i id_rsa-gsg-keypair -r /tmp/*.jp*g root@amazon.blom.es:/tmp
Fuentes:
http://docs.amazonwebservices.com/AWSEC2/2008-02-01/GettingStartedGuide/?ref=get-started
http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1346
Instalar S3CMD para manejar bucket
Vamos a usar s3cmd para el manejo de los bucket.
Primero instalamos python
$ sudo apt-get install python2.4-setuptools
[sudo] password for sysadmin:
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Nota, seleccionando python-setuptools en lugar de python2.4-setuptools
Se instalarán los siguientes paquetes NUEVOS:
: python-setuptools
0 actualizados, 1 se instalarán, 0 para eliminar y 1 no actualizados.
Necesito descargar 211kB de archivos.
Se utilizarán 786kB de espacio de disco adicional después de desempaquetar.
Des:1 http://us.archive.ubuntu.com gutsy/main python-setuptools 0.6c6-1 [211kB]
Descargados 211kB en 2s (90,2kB/s)
Seleccionando el paquete python-setuptools previamente no seleccionado.
(Leyendo la base de datos ...
33671 ficheros y directorios instalados actualmente.)
Desempaquetando python-setuptools (de .../python-setuptools_0.6c6-1_all.deb) ...
Configurando python-setuptools (0.6c6-1) ...
en el .bashrc ponemos la variable PATH apuntando donde esta descomprimido el paquete y la variable de entorno S3CMD_PACKAGING=yes si no queremos que nos instale los manuales y la documentacion.
$ vi /home/sysadmin/.bashrc
...
export PATH=$PATH:$EC2_HOME/bin:/usr/local/s3cmd-0.9.7 ...
Para hacer la instalacion de s3cmd lanzamos el siguiente comando $ s3cmd --configure
Enter new values or accept defaults in brackets with Enter.
Refer to user manual for detailed description of all options.
Access key and Secret key are your identifiers for Amazon S3
Access Key: 03ADK1XS7GH4ZHH74F02
Secret Key: JTFIpj9lc+FXaWqwNPaQSlmEKd2Ovxs6oO4kQNln
Encryption password is used to protect your files from reading
by unauthorized persons while in transfer to S3
Encryption password: sistemas
Path to GPG program [/usr/bin/gpg]:
When using secure HTTPS protocol all communication with Amazon S3
servers is protected from 3rd party eavesdropping. This method is
slower than plain HTTP and can't be used if you're behind a proxy
Use HTTPS protocol [No]:
On some networks all internet access must go through a HTTP proxy.
Try setting it here if you can't conect to S3 directly
HTTP Proxy server name [192.168.33.86]:
HTTP Proxy server port [3128]:
New settings:
Primero instalamos python
$ sudo apt-get install python2.4-setuptools
[sudo] password for sysadmin:
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias
Leyendo la información de estado... Hecho
Nota, seleccionando python-setuptools en lugar de python2.4-setuptools
Se instalarán los siguientes paquetes NUEVOS:
: python-setuptools
0 actualizados, 1 se instalarán, 0 para eliminar y 1 no actualizados.
Necesito descargar 211kB de archivos.
Se utilizarán 786kB de espacio de disco adicional después de desempaquetar.
Des:1 http://us.archive.ubuntu.com gutsy/main python-setuptools 0.6c6-1 [211kB]
Descargados 211kB en 2s (90,2kB/s)
Seleccionando el paquete python-setuptools previamente no seleccionado.
(Leyendo la base de datos ...
33671 ficheros y directorios instalados actualmente.)
Desempaquetando python-setuptools (de .../python-setuptools_0.6c6-1_all.deb) ...
Configurando python-setuptools (0.6c6-1) ...
en el .bashrc ponemos la variable PATH apuntando donde esta descomprimido el paquete y la variable de entorno S3CMD_PACKAGING=yes si no queremos que nos instale los manuales y la documentacion.
$ vi /home/sysadmin/.bashrc
...
export PATH=$PATH:$EC2_HOME/bin:/usr/local/s3cmd-0.9.7 ...
Para hacer la instalacion de s3cmd lanzamos el siguiente comando $ s3cmd --configure
Enter new values or accept defaults in brackets with Enter.
Refer to user manual for detailed description of all options.
Access key and Secret key are your identifiers for Amazon S3
Access Key: 03ADK1XS7GH4ZHH74F02
Secret Key: JTFIpj9lc+FXaWqwNPaQSlmEKd2Ovxs6oO4kQNln
Encryption password is used to protect your files from reading
by unauthorized persons while in transfer to S3
Encryption password: sistemas
Path to GPG program [/usr/bin/gpg]:
When using secure HTTPS protocol all communication with Amazon S3
servers is protected from 3rd party eavesdropping. This method is
slower than plain HTTP and can't be used if you're behind a proxy
Use HTTPS protocol [No]:
On some networks all internet access must go through a HTTP proxy.
Try setting it here if you can't conect to S3 directly
HTTP Proxy server name [192.168.33.86]:
HTTP Proxy server port [3128]:
New settings:
- Access Key: 03ADK1XS7GH4ZHH74F02
- Secret Key: JTFIpj9lc+FXaWqwNPaQSlmEKd2Ovxs6oO4kQNln
- Encryption password: sistemas
- Path to GPG program: /usr/bin/gpg
- Use HTTPS protocol: False
- HTTP Proxy server name: 192.168.33.86
- HTTP Proxy server port: 3128
Test access with supplied credentials? [Y/n]
Please wait...
Success. Your access key and secret key worked fine :-)
Now verifying that encryption works...
Success. Encryption and decryption worked fine :-)
Save settings? [y/N] y
Configuration saved to '/home/sysadmin/.s3cfg'
Ya tenemos instalado y configurado el s3cmd
Para ver los bucket que tenemos creados
$ s3cmd ls
2008-06-05 15:04 s3://pecblom01
Vamos acrear un bucket, debemos saber que el nombre del bucket debe ser unico para todos los usuarios de S3
$ s3cmd mb s3://pecblom02
Bucket 'pecblom02' created
Para ver el contenido de un bucket, este concretamente no tiene ningun dato
$ s3cmd ls s3://blom.valladolid.sistemas
Bucket 'blom.valladolid.sistemas':
Si intentamos subir algo a un bucket que no existe nos da los siguientes mensajes de error
$ s3cmd put /tmp/loader.gif s3://blom.valladolid.sistemas.gif
Traceback (most recent call last):
Configuration saved to '/home/sysadmin/.s3cfg'
Ya tenemos instalado y configurado el s3cmd
Para ver los bucket que tenemos creados
$ s3cmd ls
2008-06-05 15:04 s3://pecblom01
Vamos acrear un bucket, debemos saber que el nombre del bucket debe ser unico para todos los usuarios de S3
$ s3cmd mb s3://pecblom02
Bucket 'pecblom02' created
Para ver el contenido de un bucket, este concretamente no tiene ningun dato
$ s3cmd ls s3://blom.valladolid.sistemas
Bucket 'blom.valladolid.sistemas':
Si intentamos subir algo a un bucket que no existe nos da los siguientes mensajes de error
$ s3cmd put /tmp/loader.gif s3://blom.valladolid.sistemas.gif
Traceback (most recent call last):
- File "/usr/local/s3cmd-0.9.7/s3cmd", line 935, in
- cmd_func(args)
- File "/usr/local/s3cmd-0.9.7/s3cmd", line 194, in cmd_object_put
- response = s3.object_put_uri(real_filename, uri_final, extra_headers)
- File "/usr/local/s3cmd-0.9.7/S3/S3.py", line 195, in object_put_uri
- return self.object_put(filename, uri.bucket(), uri.object(), extra_headers)
- File "/usr/local/s3cmd-0.9.7/S3/S3.py", line 175, in object_put
- response = self.send_file(request, file)
- File "/usr/local/s3cmd-0.9.7/S3/S3.py", line 384, in send_file
- debug("MD5 sums: computed=%s, received=%s" % (md5_computed, response["headers"]["etag"]))
KeyError: 'etag'
Ahora vamos a subir 3 imagenes desde nuestro directorio tmp al bucket blom.valladolid.sistemas
$ s3cmd put /tmp/loader.gif s3://blom.valladolid.sistemas
File '/tmp/loader.gif' stored as s3://blom.valladolid.sistemas/loader.gif (10847 bytes in 0.0 seconds, 3.05 MB/s) [1 of 1]
$ s3cmd put /tmp/blomg.gif s3://blom.valladolid.sistemas
File '/tmp/blomg.gif' stored as s3://blom.valladolid.sistemas/blomg.gif (5207 bytes in 0.0 seconds, 2.19 MB/s) [1 of 1]
$ s3cmd put /tmp/conejo.jpg s3://blom.valladolid.sistemas
File '/tmp/conejo.jpg' stored as s3://blom.valladolid.sistemas/conejo.jpg (8192 bytes in 0.0 seconds, 3.28 MB/s) [1 of 1]
Listamos nuestros bucket
$ s3cmd ls
2008-06-18 06:54 s3://blom.valladolid
2008-06-18 06:54 s3://blom.valladolid.sistemas
2008-06-05 15:04 s3://pecblom01
2008-06-18 06:52 s3://pecblom02
Listamos nuestro bucket para ver si estan las imagenes que hemos subido
$ s3cmd ls s3://blom.valladolid.sistemas
Bucket 'blom.valladolid.sistemas':
2008-06-18 07:07 5207 s3://blom.valladolid.sistemas/blomg.gif
2008-06-18 07:08 8192 s3://blom.valladolid.sistemas/conejo.jpg
2008-06-18 07:07 10847 s3://blom.valladolid.sistemas/loader.gif
Recuperamos un fichero de los que hemos subido, lo guardamos con otro nombre y verificamos que no esta corrupto
$ s3cmd get s3://blom.valladolid.sistemas/conejo.jpg /tmp/conejo2.jpg
Object s3://blom.valladolid.sistemas/conejo.jpg saved as '/tmp/conejo2.jpg' (8192 bytes in 0.3 seconds, 25.85 kB/s)
Ahora lo verificamos
$ md5sum /tmp/conejo.jpg /tmp/conejo2.jpg
87d01f7be1b612ac0713f8a606c7507a /tmp/conejo.jpg
87d01f7be1b612ac0713f8a606c7507a /tmp/conejo2.jpg
Para subir varios ficheros al bucket
$ s3cmd put /tmp/*.* s3://pecblom02
File '/tmp/blomg.gif' stored as s3://pecblom02/blomg.gif (5207 bytes in 0.0 seconds, 2.22 MB/s) [1 of 4]
File '/tmp/conejo2.jpg' stored as s3://pecblom02/conejo2.jpg (8192 bytes in 0.0 seconds, 3.40 MB/s) [2 of 4]
File '/tmp/conejo.jpg' stored as s3://pecblom02/conejo.jpg (8192 bytes in 0.0 seconds, 3.39 MB/s) [3 of 4]
File '/tmp/loader.gif' stored as s3://pecblom02/loader.gif (10847 bytes in 0.0 seconds, 3.11 MB/s) [4 of 4]
Para borrar un bucket tenemos que tenerlo primero vacio, en caso de que tenga datos nos saldria lo siguiente
$ s3cmd rb s3://pecblom02
ERROR: S3 error: 409 (Conflict): BucketNotEmpty
Primero borramos los datos
$ s3cmd del s3://pecblom02/conejo2.jpg
Object s3://pecblom02/conejo2.jpg deleted
La ayuda de s3cmd
$ s3cmd --help
Usage: s3cmd [options] COMMAND [parameters]
S3cmd is a tool for managing objects in Amazon S3 storage. It allows for
making and removing "buckets" and uploading, downloading and removing
"objects" from these buckets.
Options:
Ahora vamos a subir 3 imagenes desde nuestro directorio tmp al bucket blom.valladolid.sistemas
$ s3cmd put /tmp/loader.gif s3://blom.valladolid.sistemas
File '/tmp/loader.gif' stored as s3://blom.valladolid.sistemas/loader.gif (10847 bytes in 0.0 seconds, 3.05 MB/s) [1 of 1]
$ s3cmd put /tmp/blomg.gif s3://blom.valladolid.sistemas
File '/tmp/blomg.gif' stored as s3://blom.valladolid.sistemas/blomg.gif (5207 bytes in 0.0 seconds, 2.19 MB/s) [1 of 1]
$ s3cmd put /tmp/conejo.jpg s3://blom.valladolid.sistemas
File '/tmp/conejo.jpg' stored as s3://blom.valladolid.sistemas/conejo.jpg (8192 bytes in 0.0 seconds, 3.28 MB/s) [1 of 1]
Listamos nuestros bucket
$ s3cmd ls
2008-06-18 06:54 s3://blom.valladolid
2008-06-18 06:54 s3://blom.valladolid.sistemas
2008-06-05 15:04 s3://pecblom01
2008-06-18 06:52 s3://pecblom02
Listamos nuestro bucket para ver si estan las imagenes que hemos subido
$ s3cmd ls s3://blom.valladolid.sistemas
Bucket 'blom.valladolid.sistemas':
2008-06-18 07:07 5207 s3://blom.valladolid.sistemas/blomg.gif
2008-06-18 07:08 8192 s3://blom.valladolid.sistemas/conejo.jpg
2008-06-18 07:07 10847 s3://blom.valladolid.sistemas/loader.gif
Recuperamos un fichero de los que hemos subido, lo guardamos con otro nombre y verificamos que no esta corrupto
$ s3cmd get s3://blom.valladolid.sistemas/conejo.jpg /tmp/conejo2.jpg
Object s3://blom.valladolid.sistemas/conejo.jpg saved as '/tmp/conejo2.jpg' (8192 bytes in 0.3 seconds, 25.85 kB/s)
Ahora lo verificamos
$ md5sum /tmp/conejo.jpg /tmp/conejo2.jpg
87d01f7be1b612ac0713f8a606c7507a /tmp/conejo.jpg
87d01f7be1b612ac0713f8a606c7507a /tmp/conejo2.jpg
Para subir varios ficheros al bucket
$ s3cmd put /tmp/*.* s3://pecblom02
File '/tmp/blomg.gif' stored as s3://pecblom02/blomg.gif (5207 bytes in 0.0 seconds, 2.22 MB/s) [1 of 4]
File '/tmp/conejo2.jpg' stored as s3://pecblom02/conejo2.jpg (8192 bytes in 0.0 seconds, 3.40 MB/s) [2 of 4]
File '/tmp/conejo.jpg' stored as s3://pecblom02/conejo.jpg (8192 bytes in 0.0 seconds, 3.39 MB/s) [3 of 4]
File '/tmp/loader.gif' stored as s3://pecblom02/loader.gif (10847 bytes in 0.0 seconds, 3.11 MB/s) [4 of 4]
Para borrar un bucket tenemos que tenerlo primero vacio, en caso de que tenga datos nos saldria lo siguiente
$ s3cmd rb s3://pecblom02
ERROR: S3 error: 409 (Conflict): BucketNotEmpty
Primero borramos los datos
$ s3cmd del s3://pecblom02/conejo2.jpg
Object s3://pecblom02/conejo2.jpg deleted
La ayuda de s3cmd
$ s3cmd --help
Usage: s3cmd [options] COMMAND [parameters]
S3cmd is a tool for managing objects in Amazon S3 storage. It allows for
making and removing "buckets" and uploading, downloading and removing
"objects" from these buckets.
Options:
- -h, --help show this help message and exit
- --configure Invoke interactive (re)configuration tool.
- -c FILE, --config=FILE
-
- Config file name. Defaults to /home/sysadmin/.s3cfg
-
- --dump-config Dump current configuration after parsing config files
-
- and command line options and exit.
-
- -e, --encrypt Encrypt files before uploading to S3.
- --no-encrypt Don't encrypt files.
- -f, --force Force overwrite and other dangerous operations.
- -P, --acl-public Store objects with ACL allowing read for anyone.
- --acl-private Store objects with default ACL allowing access for you
-
- only.
- --delete-removed Delete remote objects with no corresponding local file
- [sync]
-
- --no-delete-removed Don't delete remote objects.
- -p, --preserve Preserve filesystem attributes (mode, ownership,
-
- timestamps). Default for [sync] command.
-
- --no-preserve Don't store FS attributes
- --bucket-location=BUCKET_LOCATION
-
- Datacentre to create bucket in. Either EU or US
- (default)
-
- -m MIME/TYPE, --mime-type=MIME/TYPE
-
- Default MIME-type to be set for objects stored.
-
- -M, --guess-mime-type
-
- Guess MIME-type of files by their extension. Falls
- back to default MIME-Type as specified by --mime-type
- option
-
- -H, --human-readable-sizes
-
- Print sizes in human readable form.
-
- -v, --verbose Enable verbose output.
- -d, --debug Enable debug output.
- --version Show s3cmd version (0.9.7) and exit.
Commands:
- 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_DIR
- Disk usage by buckets
- s3cmd du [s3://BUCKET[/PREFIX]]
- Get various information about Buckets or Objects
- s3cmd info s3://BUCKET[/OBJECT]
See program homepage for more information at
http://s3tools.logix.cz
Podemos sincronizar un directorio de nuestra maquina con un bucket.
Por ejemplo si nuestro directorio tmp esta vacio y hacemos la sincronizacion de nuestro directorio con el bucket no hace nada.
$ s3cmd sync /tmp/ s3://pecblom02
Compiling list of local files...
Retrieving list of remote files...
Found 0 local files, 3 remote files
Verifying checksums...
Summary: 0 local files to upload, 3 remote files to delete
not-deleted 's3://pecblom02/blomg.gif'
not-deleted 's3://pecblom02/conejo.jpg'
not-deleted 's3://pecblom02/loader.gif'
Done. Uploaded 0 bytes in 0.0 seconds, 0.00 B/s
Pero si sincronizamos nuestro bucket con el directorio vacio tmp de nuestro equipo, nos copia los ficheros del bucket al directorio.
$ s3cmd sync s3://pecblom02 /tmp
Retrieving list of remote files...
Compiling list of local files...
Found 3 remote files, 0 local files
Verifying checksums...
Summary: 3 remote files to download, 0 local files to delete
File 's3://pecblom02/blomg.gif' stored as /tmp/blomg.gif (5207 bytes in 0.0 seconds, 203.41 kB/s) [1 of 3]
File 's3://pecblom02/conejo.jpg' stored as /tmp/conejo.jpg (8192 bytes in 0.2 seconds, 52.26 kB/s) [2 of 3]
File 's3://pecblom02/loader.gif' stored as /tmp/loader.gif (10847 bytes in 0.2 seconds, 61.39 kB/s) [3 of 3]
Si yo tengo esto tanto en mi directorio tmp como en el bucket
$ ls -l /tmp
total 0
$ s3cmd ls s3://pecblom02
Bucket 'pecblom02':
2008-06-18 07:40 5207 s3://pecblom02/blomg.gif
2008-06-18 07:40 8192 s3://pecblom02/conejo.jpg
2008-06-18 07:40 10847 s3://pecblom02/loader.gif
Y hago una sincronizacion del tmp al bucket
$ s3cmd sync --delete-removed /tmp/ s3://pecblom02
Compiling list of local files...
Retrieving list of remote files...
Found 0 local files, 3 remote files
Verifying checksums...
Summary: 0 local files to upload, 3 remote files to delete
deleted 's3://pecblom02/blomg.gif'
deleted 's3://pecblom02/conejo.jpg'
deleted 's3://pecblom02/loader.gif'
Done. Uploaded 0 bytes in 0.0 seconds, 0.00 B/s
Vemos como quedan el directorio tmp local y el bucket
$ ls -l /tmp
total 0
$ s3cmd ls s3://pecblom02
Bucket 'pecblom02':
Ahora ya podemos borrar el bucket
Listamos nuestros bucket
$ s3cmd ls
2008-06-18 06:54 s3://blom.valladolid
2008-06-18 06:54 s3://blom.valladolid.sistemas
2008-06-05 15:04 s3://pecblom01
2008-06-18 06:52 s3://pecblom02
Borramos el que queremos
$ s3cmd rb s3://pecblom02
Bucket 'pecblom02' removed
Volvemos a listar los bucket y vemos que pecblom02 a desaparecido
$ s3cmd ls
2008-06-18 06:54 s3://blom.valladolid
2008-06-18 06:54 s3://blom.valladolid.sistemas
2008-06-05 15:04 s3://pecblom01
Montar bucket de S3 como unidad de la instancia EC2
Para poner un bucket de S3 como una unidad de la instanacia en EC2, tenemos que instalar los siguientes paquetes
$sudo apt-get install libcurl3-openssl-dev
$sudo apt-get install -y subversion build-essential libcurl4-openssl-dev libxml2-dev libfuse-dev
http://s3fs.googlecode.com/svn/trunk/s3fs/contrib/readme.txt
S3FS-Fuse
S3FS is FUSE (File System in User Space) based solution to mount/unmount an Amazon S3 storage buckets and use system commands with S3 just like it was another Hard Disk.
In order to compile s3fs, You'll need the following requirements:
$sudo apt-get install libcurl3-openssl-dev
$sudo apt-get install -y subversion build-essential libcurl4-openssl-dev libxml2-dev libfuse-dev
http://s3fs.googlecode.com/svn/trunk/s3fs/contrib/readme.txt
S3FS-Fuse
S3FS is FUSE (File System in User Space) based solution to mount/unmount an Amazon S3 storage buckets and use system commands with S3 just like it was another Hard Disk.
In order to compile s3fs, You'll need the following requirements:
- Kernel-devel packages (or kernel source) installed that is the SAME version of your running kernel
- LibXML2-devel packages
- CURL-devel packages (or compile curl from sources at: curl.haxx.se/ use 7.15.X)
- GCC, GCC-C++
- pkgconfig
- FUSE (2.7.x)
- FUSE Kernel module installed and running (RHEL 4.x/CentOS 4.x users - read below)
- OpenSSL-devel (0.9.8)
- Subversion
If you're using YUM or APT to install those packages, then it might require additional packaging, allow it to be installed.
Downloading & Compiling:
In order to download s3fs, user the following command:
svn checkout http://s3fs.googlecode.com/svn/trunk/ s3fs-read-only
Go inside the directory that has been created (s3fs-read-only/s3fs) and run: make
This should compile the code. If everything goes OK, you'll be greated with "ok!" at the end and you'll have a binary file called "s3fs"
As root (you can use su, su -, sudo) do: "make inatall" -this will copy the "s3fs" binary to /usr/bin.
Congratulations. S3fs is now compiled and Installed.
Usage:
svn checkout http://s3fs.googlecode.com/svn/trunk/ s3fs-read-only
Go inside the directory that has been created (s3fs-read-only/s3fs) and run: make
This should compile the code. If everything goes OK, you'll be greated with "ok!" at the end and you'll have a binary file called "s3fs"
As root (you can use su, su -, sudo) do: "make inatall" -this will copy the "s3fs" binary to /usr/bin.
Congratulations. S3fs is now compiled and Installed.
Usage:
In order to use s3fs, make sure you have the Access Key and the Secret Key handy.
First, create a directory where to mount the S3 bucket you want to use.
Example (as root): mkdir -p /mnt/s3
Then run: s3fs mybucket -o accessKeyId=aaa -o secretAccessKey=bbb /mnt/s3
This will mount your bucket to /mnt/s3. You can do a simple "ls -l /mnt/s3" to see the content of your bucket.
If you want to allow other people access the same bucket in the same machine, you can add "-o allow _other" to read/write/delete content of the bucket.
You can add a fixed mount point in /etc/fstab, here's an example:
s3fs#mybucket /mnt/s3 fuse allow_other,accessKeyId=XXX ,secretAccessKey=YYY 0 0
This will mount upon reboot (or by launching: mount -a) your bucket on your machine.
All other options can be read at: http://code.google.com/p/s3fs/wiki/FuseOverAmazon
Known Issues:
First, create a directory where to mount the S3 bucket you want to use.
Example (as root): mkdir -p /mnt/s3
Then run: s3fs mybucket -o accessKeyId=aaa -o secretAccessKey=bbb /mnt/s3
This will mount your bucket to /mnt/s3. You can do a simple "ls -l /mnt/s3" to see the content of your bucket.
If you want to allow other people access the same bucket in the same machine, you can add "-o allow _other" to read/write/delete content of the bucket.
You can add a fixed mount point in /etc/fstab, here's an example:
s3fs#mybucket /mnt/s3 fuse allow_other,accessKeyId=XXX ,secretAccessKey=YYY 0 0
This will mount upon reboot (or by launching: mount -a) your bucket on your machine.
All other options can be read at: http://code.google.com/p/s3fs/wiki/FuseOverAmazon
Known Issues:
s3fs should be working fine with S3 storage. However, There are couple of limitations:
- There is no full UID/GID support yet, everything looks as "root" and if you allow others to access the bucket, others can erase files. There is, however, permissions support built in.
- Currently s3fs could hang the CPU if you have lots of time-outs. This is *NOT* a fault of s3fs but rather libcurl. This happends when you try to copy thousands of files in 1 session, it doesn't happend when you upload hundreds of files or less.
- CentOS 4.x/RHEL 4.x users - if you use the kernel that shipped with your distribution and didn't upgrade to the latest kernel RedHat/CentOS gives, you might have a problem loading the "fuse" kernel. Please upgrade to the latest kernel (2.6.16 or above) and make sure "fuse" kernel module is compiled and loadable since FUSE requires this kernel module and s3fs requires it as well.
- Moving/renaming/erasing files takes time since the whole file needs to be accessed first. A workaround could be touse s3fs's cache support with the use_cache option.
Descargamos de internet el paquete para hacer luego la instalacion
$svn checkout http://s3fs.googlecode.com/svn/trunk/ s3fs-read-only
Nos movemos dentro del directorio que nos hemos descargado
$cd s3fs-read-only/s3fs
Hacemos la instalacion
$make install
Creamos un directorio para poder montar luego el bucket (no lo hacemos sobre el directorio /mnt porque son directorios volatiles que se borran al terminar la instancia)
$mkdir -p /s3/sugardatas3
Montamos en este directorio un bucket que teniamos en S3
$s3cmd ls
2008-06-18 06:54 s3://blom.valladolid
2008-06-18 06:54 s3://blom.valladolid.sistemas
2008-06-19 09:14 s3://blom.valladolid.sistemas.ubuntu
2008-06-20 06:23 s3://blom.valladolid.sugarcrm
2008-06-05 15:04 s3://pecblom01
$s3fs blom.valladolid.sugarcrm -o accessKeyId=03ADK1XS7GH4ZHH74F02 -o secretAccessKey=JTFIpj9lc+FXaWqwNPaQSlmEKd2Ovxs6oO4kQNln /s3/sugardatas3
Creamos un fichero en nuestro directorio /s3/sugardatas3 para ver que luego esta en el bucket del S3
$vi /s3/sugardatas3/leeme.txt
- hola esto esta creado en el directorio /s3/sugardatas3 de nuestra instanacia EC2
Listamos nuestro bucket para ver si esta el fichero que acabamos de crear en la instancia
$s3cmd ls s3://blom.valladolid.sugarcrm
Bucket 'blom.valladolid.sugarcrm':
2008-06-20 09:56 7 s3://blom.valladolid.sugarcrm/leeme.txt
Efectivamente vemos que si que se ha subido el fichero que hemos creado en la instancia EC2 al bucket S3
Para que se monte el bucket siempre editamos el fichero /etc/fstab
$vi /etc/fstab
- Legacy /etc/fstab
- Supplied by: ec2-ami-tools-1.3-20041
/dev/sda1 / ext3 defaults 1 1
/dev/sda2 /mnt ext3 defaults 0 0
/dev/sda3 swap swap defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
/dev/sda2 /mnt ext3 defaults 0 0
/dev/sda3 swap swap defaults 0 0
none /proc proc defaults 0 0
none /sys sysfs defaults 0 0
- montaje de una unidad del S3 jc-20-06-2008
s3fs#blom.valladolid.sugarcrm /s3/sugardatas3 fuse allow_other,accessKeyId=03ADK1XS7GH4ZHH74F02,secretAccessKey=JTFIpj9lc+FXaWqwNPaQSlmEKd2Ovxs6oO4kQNln 0 0
Vemos con mount como esta nuestro sistema de archivos
# mount
/dev/sda1 on / type ext3 (rw)
proc on /proc type proc (rw,noexec,nosuid,nodev)
/sys on /sys type sysfs (rw,noexec,nosuid,nodev)
varrun on /var/run type tmpfs (rw,noexec,nosuid,nodev,mode=0755)
varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)
udev on /dev type tmpfs (rw,mode=0755)
devshm on /dev/shm type tmpfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda2 on /mnt type ext3 (rw)
fuse on /s3/sugardatas3 type fuse (rw,nosuid,nodev)
Antes de terminar la instancia para que no borre la unidad que tenemos montada en el bucket deberiamos desmontarla con umount
$umount /s3/sugardatas3
Si queremos lanzar un demonio (arrancar mysql) despues de que la maquina arranque, hacemos lo siguiente
Creamos un fichero .sh con el scrip que queremos lanzar
Le damos los permisos 755 al fichero
Copiamos el fichero al directorio /etc/init.d/
Lanzamos un update-rc.d para que se actualizen los ficheros de arranque.
EJEMPLO:
Tenemos una maquina con mysql que tiene los datos en un bucket. El bucket se monta sobre una unidad local en el fstab cuando arranca. Despues tenemos que arrancar a mano mysql ya que para crear la imagen no podemos tener montado el bucket sobre nuestro disco, porque nos lo borra al terminar la instancia.
Creamos el fichero ejecutable
$vi /tmp/mysqlstart.sh
#!/bin/bash
#Arrancamos mysql despues de que se ejecute el fstab donde montamos la BD en el bucket s3://blom.valladolid.sugarcrm
/etc/init.d/mysql start
Le damos los permisos al fichero
$chmod 755 /tmp/mysqlstart.sh
Copias el fichero al directorio /etc/init.d/
$cp /tmp/mysqlstart.sh /etc/init.d/
Ejecutamos el update-rc.d para que se actualize
$update-rc.d mysqlstart.sh defaults
Adding system startup for /etc/init.d/mysqlstart.sh ...
Vemos con mount como esta nuestro sistema de archivos
# mount
/dev/sda1 on / type ext3 (rw)
proc on /proc type proc (rw,noexec,nosuid,nodev)
/sys on /sys type sysfs (rw,noexec,nosuid,nodev)
varrun on /var/run type tmpfs (rw,noexec,nosuid,nodev,mode=0755)
varlock on /var/lock type tmpfs (rw,noexec,nosuid,nodev,mode=1777)
udev on /dev type tmpfs (rw,mode=0755)
devshm on /dev/shm type tmpfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
/dev/sda2 on /mnt type ext3 (rw)
fuse on /s3/sugardatas3 type fuse (rw,nosuid,nodev)
Antes de terminar la instancia para que no borre la unidad que tenemos montada en el bucket deberiamos desmontarla con umount
$umount /s3/sugardatas3
Si queremos lanzar un demonio (arrancar mysql) despues de que la maquina arranque, hacemos lo siguiente
Creamos un fichero .sh con el scrip que queremos lanzar
Le damos los permisos 755 al fichero
Copiamos el fichero al directorio /etc/init.d/
Lanzamos un update-rc.d para que se actualizen los ficheros de arranque.
EJEMPLO:
Tenemos una maquina con mysql que tiene los datos en un bucket. El bucket se monta sobre una unidad local en el fstab cuando arranca. Despues tenemos que arrancar a mano mysql ya que para crear la imagen no podemos tener montado el bucket sobre nuestro disco, porque nos lo borra al terminar la instancia.
Creamos el fichero ejecutable
$vi /tmp/mysqlstart.sh
#!/bin/bash
#Arrancamos mysql despues de que se ejecute el fstab donde montamos la BD en el bucket s3://blom.valladolid.sugarcrm
/etc/init.d/mysql start
Le damos los permisos al fichero
$chmod 755 /tmp/mysqlstart.sh
Copias el fichero al directorio /etc/init.d/
$cp /tmp/mysqlstart.sh /etc/init.d/
Ejecutamos el update-rc.d para que se actualize
$update-rc.d mysqlstart.sh defaults
Adding system startup for /etc/init.d/mysqlstart.sh ...
- /etc/rc0.d/K20mysqlstart.sh -> ../init.d/mysqlstart.sh
- /etc/rc1.d/K20mysqlstart.sh -> ../init.d/mysqlstart.sh
- /etc/rc6.d/K20mysqlstart.sh -> ../init.d/mysqlstart.sh
- /etc/rc2.d/S20mysqlstart.sh -> ../init.d/mysqlstart.sh
- /etc/rc3.d/S20mysqlstart.sh -> ../init.d/mysqlstart.sh
- /etc/rc4.d/S20mysqlstart.sh -> ../init.d/mysqlstart.sh
- /etc/rc5.d/S20mysqlstart.sh -> ../init.d/mysqlstart.sh
Instalar s3sync
Descargamos el paquete para instalarlo mas tarde
$wget http://s3.amazonaws.com/ServEdge_pub/s3sync/s3sync.tar.gz
Instalamos ruby
$apt-get install ruby libopenssl-ruby
Para ver la version de ruby que tenemos instalada
$ruby -v
Descomprimimos el paquete que nos hemos descargado antes
$tar xvzf s3sync.tar.gz
movemos el directorio que se crea al descomprimir a la ruta /usr/local/bin
$mv s3sync /usr/local/bin/
Dentro del directorio /usr/local/bin/s3sync creamos la carpeta certs
$mkdir /usr/local/bin/s3sync/certsNos movemos dentro de este nuevo directorio y descargamos unos certificados, luego los instalamos
$cd /usr/local/bin/s3sync/certs/
$wget http://mirbsd.mirsolutions.de/cvs.cgi/~checkout~/src/etc/ssl.certs.shar
$sh ssl.certs.shar
Tenemos que editar el fichero .bashrc para introducir al final del fichero las claves para EC2
$vi /root/.bashrc
...
#variables para el servicio de amazon EC2 y S3 editado por juan carlos 24_06_2008
export AWS_ACCESS_KEY_ID=03ADK1XS7GH4ZHH74F02
export AWS_SECRET_ACCESS_KEY=JTFIpj9lc+FXaWqwNPaQSlmEKd2Ovxs6oO4kQNln
...
Creamos 2 ficheros que son los que hacen la sincronizacion con el bucket de los directorios que le digamos
$vi /usr/local/bin/s3sync/upload.sh
#!/bin/bash
# script to upload local directory upto s3
#cd /path/to/yourshellscript/
cd /usr/local/bin/s3sync/
export AWS_ACCESS_KEY_ID=03ADK1XS7GH4ZHH74F02
export AWS_SECRET_ACCESS_KEY=JTFIpj9lc+FXaWqwNPaQSlmEKd2Ovxs6oO4kQNln
export SSL_CERT_DIR=/usr/local/bin/s3sync/certs
#ruby s3sync.rb -r --ssl --delete /home/john/localuploadfolder/ mybucket:/remotefolder
# copy and modify line above for each additional folder to be synced
$vi /usr/local/bin/s3sync/download.sh
#!/bin/bash
# script to download local directory upto s3
#cd /path/to/yourshellscript/
cd /usr/local/bin/s3sync/
export AWS_ACCESS_KEY_ID=03ADK1XS7GH4ZHH74F02
export AWS_SECRET_ACCESS_KEY=JTFIpj9lc+FXaWqwNPaQSlmEKd2Ovxs6oO4kQNln
export SSL_CERT_DIR=/your/path/to/s3sync/certs
#ruby s3sync.rb -r --ssl --delete mybucket:/remotefolder/ /home/john/localdownloadfolder
# copy and modify line above for each additional folder to be synced
Ahora ya podemos utilizar los comandos
Podemos ver la informacion de los comandos en 2 ficheros
$less /usr/local/bin/s3sync/README_s3cmd.txt
$less /usr/local/bin/s3sync/README.txt
Ejemplos s3sync:
$wget http://s3.amazonaws.com/ServEdge_pub/s3sync/s3sync.tar.gz
Instalamos ruby
$apt-get install ruby libopenssl-ruby
Para ver la version de ruby que tenemos instalada
$ruby -v
Descomprimimos el paquete que nos hemos descargado antes
$tar xvzf s3sync.tar.gz
movemos el directorio que se crea al descomprimir a la ruta /usr/local/bin
$mv s3sync /usr/local/bin/
Dentro del directorio /usr/local/bin/s3sync creamos la carpeta certs
$mkdir /usr/local/bin/s3sync/certsNos movemos dentro de este nuevo directorio y descargamos unos certificados, luego los instalamos
$cd /usr/local/bin/s3sync/certs/
$wget http://mirbsd.mirsolutions.de/cvs.cgi/~checkout~/src/etc/ssl.certs.shar
$sh ssl.certs.shar
Tenemos que editar el fichero .bashrc para introducir al final del fichero las claves para EC2
$vi /root/.bashrc
...
#variables para el servicio de amazon EC2 y S3 editado por juan carlos 24_06_2008
export AWS_ACCESS_KEY_ID=03ADK1XS7GH4ZHH74F02
export AWS_SECRET_ACCESS_KEY=JTFIpj9lc+FXaWqwNPaQSlmEKd2Ovxs6oO4kQNln
...
Creamos 2 ficheros que son los que hacen la sincronizacion con el bucket de los directorios que le digamos
$vi /usr/local/bin/s3sync/upload.sh
#!/bin/bash
# script to upload local directory upto s3
#cd /path/to/yourshellscript/
cd /usr/local/bin/s3sync/
export AWS_ACCESS_KEY_ID=03ADK1XS7GH4ZHH74F02
export AWS_SECRET_ACCESS_KEY=JTFIpj9lc+FXaWqwNPaQSlmEKd2Ovxs6oO4kQNln
export SSL_CERT_DIR=/usr/local/bin/s3sync/certs
#ruby s3sync.rb -r --ssl --delete /home/john/localuploadfolder/ mybucket:/remotefolder
# copy and modify line above for each additional folder to be synced
$vi /usr/local/bin/s3sync/download.sh
#!/bin/bash
# script to download local directory upto s3
#cd /path/to/yourshellscript/
cd /usr/local/bin/s3sync/
export AWS_ACCESS_KEY_ID=03ADK1XS7GH4ZHH74F02
export AWS_SECRET_ACCESS_KEY=JTFIpj9lc+FXaWqwNPaQSlmEKd2Ovxs6oO4kQNln
export SSL_CERT_DIR=/your/path/to/s3sync/certs
#ruby s3sync.rb -r --ssl --delete mybucket:/remotefolder/ /home/john/localdownloadfolder
# copy and modify line above for each additional folder to be synced
Ahora ya podemos utilizar los comandos
Podemos ver la informacion de los comandos en 2 ficheros
$less /usr/local/bin/s3sync/README_s3cmd.txt
$less /usr/local/bin/s3sync/README.txt
Ejemplos s3sync:
(using S3 bucket 'mybucket' and prefix 'pre')
- Put the local etc directory itself into S3
- s3sync.rb -r /etc mybucket:pre
- (This will yield S3 keys named pre/etc/...)
- Put the contents of the local /etc dir into S3, rename dir:
- s3sync.rb -r /etc/ mybucket:pre/etcbackup
- (This will yield S3 keys named pre/etcbackup/...)
- Put contents of S3 "directory" etc into local dir
- s3sync.rb -r mybucket:pre/etc/ /root/etcrestore
- (This will yield local files at /root/etcrestore/...)
- Put the contents of S3 "directory" etc into a local dir named etc
- s3sync.rb -r mybucket:pre/etc /root
- (This will yield local files at /root/etc/...)
- Put S3 nodes under the key pre/etc/ to the local dir etcrestore
- and create local dirs even if S3 side lacks dir nodes**
- s3sync.rb -r --make-dirs mybucket:pre/etc/ /root/etcrestore
- (This will yield local files at /root/etcrestore/...)
Ejemplos s3cmd:
List all the buckets your account owns:
- s3cmd.rb listbuckets
Create a new bucket:
- s3cmd.rb createbucket BucketName
Create a new bucket in the EU:
- s3cmd.rb createbucket BucketName EU
Find out the location constraint of a bucket:
- s3cmd.rb location BucketName
Delete an old bucket you don't want any more:
- s3cmd.rb deletebucket BucketName
Find out what's in a bucket, 10 lines at a time:
- s3cmd.rb list BucketName 10
Only look in a particular prefix:
- s3cmd.rb list BucketName:startsWithThis
Look in the virtual "directory" named foo;
lists sub-"directories" and keys that are at this level.
Note that if you specify a delimiter you must specify a max before it.
(until I make the options parsing smarter)
- s3cmd.rb list BucketName:foo/ 10 /
Delete a key:
- s3cmd.rb delete BucketName:AKey
Delete all keys that match (like a combo between list and delete):
- s3cmd.rb deleteall BucketName:SomePrefix
Only pretend you're going to delete all keys that match, but list them:
s3cmd.rb --dryrun deleteall BucketName:SomePrefix
Delete all keys in a bucket (leaving the bucket):
- s3cmd.rb deleteall BucketName
Get a file from S3 and store it to a local file
- s3cmd.rb get BucketName:TheFileOnS3.txt ALocalFile.txt
Put a local file up to S3
Note we don't automatically set mime type, etc.
NOTE that the order of the options doesn't change. S3 stays first!
- s3cmd.rb put BucketName:TheFileOnS3.txt ALocalFile.txt
./s3cmd.rb listbuckets
blom.valladolid
blom.valladolid.sistemas
blom.valladolid.sistemas.ubuntu
blom.valladolid.sugarcrm
pecblom01
Si no estamos en el directorio tenemos que poner toda la ruta para que el comando funcione
$/usr/local/bin/s3sync/./s3cmd.rb listbuckets
Comandos mas usados EC2 y S3
Listado de imagenes de amazon
$ sudo sh ec2-describe-images -o self -o amazon
Arrancamos la instancia elegida
$ sudo sh ec2-run-instances ami-25b6534c -k gsg-keypair
Para comprobar el estado de nuestra instancia hacemos lo siguiente
$ sudo sh ec2-describe-instances i-e32ce78a
Para permitir el acceso a la red de nuestra instancia.
$ sudo sh ec2-authorize default -p 22
Para probar nuestra instancia podemos hacerlo siguiente
http://ec2-75-101-248-109.compute-1.amazonaws.com/
Para conectarnos a nuestra instancia a traves de ssh se hace lo siguiente
$ ssh -i id_rsa-gsg-keypair root@ec2-75-101-248-109.compute-1.amazonaws.com
Para salir de una session de SSH pulsamos CTRL+D
Si queremos registrar una instancia modificada tenemos que subir el certificado y el private key a nuestra instancia
$ sudo scp -i id_rsa-gsg-keypair /usr/local/ec2/cert/pk-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem /usr/local/ec2/cert/cert-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem root@ec2-67-202-39-7.compute-1.amazonaws.com:/mnt
Esto se hace dentro de la instancia
Generamos una imagen de nuestro ami para poderla subirla a S3. Primero tenemos que desmontar las unidades que tengamos montadas con fuse. lo vemos con el comando mount
$ ec2-bundle-vol -d /mnt -k /mnt/pk-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem -c /mnt/cert-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem -u 447265147265 -r i386
Con el parametro -p le puedes dar un nombre a tu instancia
$ ec2-bundle-vol -d /mnt -k /mnt/pk-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem -c /mnt/cert-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem -u 447265147265 -r i386 -p ubuntu710apache2
Un ejemplo mas completo, nos guarda los directorios montados virtuales con -a (pero los guarda como locales) y el fichero de arranque fstab con --fstab /etc/fstab
$ec2-bundle-vol -k /s3/pk-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem -c /s3/cert-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem -u 447265147265 -r i386 -d /mnt -p sugar20080627 -a --fstab /etc/fstab
Diferencias de directorios copiados con -a y sin la opcion -a
$ec2-bundle-vol -d /mnt -k /s3/pk-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem -c /s3/cert-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem -u 447265147265 -r i386 -p sugar20080627 -a --fstab /etc/fstab
Copying / into the image file /mnt/sugar20080627...
Excluding:
$ sudo sh ec2-describe-images -o self -o amazon
Arrancamos la instancia elegida
$ sudo sh ec2-run-instances ami-25b6534c -k gsg-keypair
Para comprobar el estado de nuestra instancia hacemos lo siguiente
$ sudo sh ec2-describe-instances i-e32ce78a
Para permitir el acceso a la red de nuestra instancia.
$ sudo sh ec2-authorize default -p 22
Para probar nuestra instancia podemos hacerlo siguiente
http://ec2-75-101-248-109.compute-1.amazonaws.com/
Para conectarnos a nuestra instancia a traves de ssh se hace lo siguiente
$ ssh -i id_rsa-gsg-keypair root@ec2-75-101-248-109.compute-1.amazonaws.com
Para salir de una session de SSH pulsamos CTRL+D
Si queremos registrar una instancia modificada tenemos que subir el certificado y el private key a nuestra instancia
$ sudo scp -i id_rsa-gsg-keypair /usr/local/ec2/cert/pk-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem /usr/local/ec2/cert/cert-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem root@ec2-67-202-39-7.compute-1.amazonaws.com:/mnt
Esto se hace dentro de la instancia
Generamos una imagen de nuestro ami para poderla subirla a S3. Primero tenemos que desmontar las unidades que tengamos montadas con fuse. lo vemos con el comando mount
$ ec2-bundle-vol -d /mnt -k /mnt/pk-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem -c /mnt/cert-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem -u 447265147265 -r i386
Con el parametro -p le puedes dar un nombre a tu instancia
$ ec2-bundle-vol -d /mnt -k /mnt/pk-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem -c /mnt/cert-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem -u 447265147265 -r i386 -p ubuntu710apache2
Un ejemplo mas completo, nos guarda los directorios montados virtuales con -a (pero los guarda como locales) y el fichero de arranque fstab con --fstab /etc/fstab
$ec2-bundle-vol -k /s3/pk-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem -c /s3/cert-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem -u 447265147265 -r i386 -d /mnt -p sugar20080627 -a --fstab /etc/fstab
Diferencias de directorios copiados con -a y sin la opcion -a
$ec2-bundle-vol -d /mnt -k /s3/pk-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem -c /s3/cert-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem -u 447265147265 -r i386 -p sugar20080627 -a --fstab /etc/fstab
Copying / into the image file /mnt/sugar20080627...
Excluding:
- /dev
- /media
- /mnt
- /proc
- /sys
- /mnt/sugar20080627
- /etc/udev/rules.d/70-persistent-net.rules
- /mnt/img-mnt
$ec2-bundle-vol -k /s3/pk-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem -c /s3/cert-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem -u 447265147265 -r i386 -d /mnt -p sugar20080627_1 --fstab /etc/fstab
Copying / into the image file /mnt/sugar20080627_1...
Excluding:
- /s3/sugardatas3
- /sys
- /proc
- /dev/pts
- /dev
- /media
- /mnt
- /proc
- /sys
- /mnt/sugar20080627_1
- /etc/udev/rules.d/70-persistent-net.rules
- /mnt/img-mnt
Creacion y subida de una instancia a S3 con EC2. El bucket se crea automaticamente si no existe
$ ec2-upload-bundle -b pecblom01 -m /mnt/image.manifest.xml -a 03ADK1XS7GH4ZHH74F02 -s JTFIpj9lc+FXaWqwNPaQSlmEKd2Ovxs6oO4kQNln --ec2cert /mnt/cert-PCLWRIZ45AUYXUHW67HG37MRNTD3HBPK.pem
Para terminar, tenemos que registrar nuestra imagen
$ sudo sh ec2-register pecblom01/image.manifest.xml
Para saber las instancias que tienes en pie hacemos lo siguiente
$ ec2-describe-instances
Para apagar una instancia hacemos lo siguiente
$ sudo sh ec2-terminate-instances i-e32ce78a
Para borrar una imagen subida al bucket primero la tenemos que quitar el registro
$ec2-deregister ami-6eb85c07
Y despues ls podemos borrar todos sus ficheros, esto se tiene que hacer desde dentro de la instancia
$ec2-delete-bundle -b blom.valladolid.sistemas.ubuntu -a 03ADK1XS7GH4ZHH74F02 -s JTFIpj9lc+FXaWqwNPaQSlmEKd2Ovxs6oO4kQNln -p crm
Para poder asignar una ip a la misma instancia, solicitamos la ip a Amazon. Solo se pueden solicitar 5 ip por cuenta.
$ ec2-allocate-address
Para saber las ip que tengo y la instancia asociada
$ ec2-describe-addresses
Asociar una ip a una instancia
$ ec2-associate-address -i i-a838f3c1 75.101.139.213
Ver ip's asociadas a instancias
$ ec2-describe-instances
Para desasociar una ip de la instancia
$ ec2-disassociate-address 75.101.139.213
Para poder devolver las ip que hemos reservado
$ ec2-release-address 75.101.144.120
Cuando una instancia termina se desasocia la ip a esa instancia
Para borrar una imagen: primero terminamos la instancia, borramos todos los ficheros de la imagen en el bucket y luego la quitamos el registro $ec2-deregister ami-c5b054ac
Para subir documentos a nuestra instancia lo hacemos asi
$ sudo scp -i id_rsa-gsg-keypair -r /tmp/*.jp*g root@amazon.blom.es:/tmp
Ejemplo:
$ sudo scp -i id_rsa-gsg-keypair -r /tmp/*.jp*g root@ec2-75-101-234-255.compute-1.amazonaws.com:/tmp
Para ver los bucket que tenemos creados
$ s3cmd ls
Vamos acrear un bucket, debemos saber que el nombre del bucket debe ser unico para todos los usuarios de S3
$ s3cmd mb s3://pecblom02
Para ver el contenido de un bucket
$ s3cmd ls s3://blom.valladolid.sistemas
Subir archivos desde nuestro directorio tmp al bucket blom.valladolid.sistemas
$ s3cmd put /tmp/loader.gif s3://blom.valladolid.sistemas
Listado del contenido de un bucket
$ s3cmd ls s3://blom.valladolid.sistemas
Recuperamos un fichero de los que hemos subido, lo guardamos con otro nombre y verificamos que no esta corrupto
$ s3cmd get s3://blom.valladolid.sistemas/conejo.jpg /tmp/conejo2.jpg
Ahora lo verificamos
$ md5sum /tmp/conejo.jpg /tmp/conejo2.jpg
Para subir varios ficheros al bucket
$ s3cmd put /tmp/*.* s3://pecblom02
Para borrar un bucket tenemos que tenerlo primero vacio. Primero borramos los datos
$ s3cmd del s3://pecblom02/conejo2.jpg
Podemos sincronizar un directorio de nuestra maquina con un bucket.
Por ejemplo si nuestro directorio tmp esta vacio y hacemos la sincronizacion de nuestro directorio con el bucket no hace nada.
$ s3cmd sync /tmp/ s3://pecblom02
Pero si sincronizamos nuestro bucket con el directorio vacio tmp de nuestro equipo, nos copia los ficheros del bucket al directorio.
$ s3cmd sync s3://pecblom02 /tmp
Si yo tengo no tengo nada en mi directorio tmp y hago una sincronizacion con el comando --delete-removed borra todo lo del bucket
$ s3cmd sync --delete-removed /tmp/ s3://pecblom02
Borramos el bucket que queramos
$ s3cmd rb s3://pecblom02
Comandos:
- Crear bucket
- s3cmd mb s3://BUCKET
- Borrar bucket
- s3cmd rb s3://BUCKET
- Listar objetos o buckets
- s3cmd ls [s3://BUCKET[/PREFIX]]
- Listar todos los objetos en todos los buckets
- s3cmd la
- Subir ficheros al bucket
- s3cmd put FILE [FILE...] s3://BUCKET[/PREFIX]
- Descargar ficheros desde el bucket
- s3cmd get s3://BUCKET/OBJECT LOCAL_FILE
- Borrar ficheros desde el bucket
- s3cmd del s3://BUCKET/OBJECT
- Sincronizar un directorio con el S3
- s3cmd sync LOCAL_DIR s3://BUCKET[/PREFIX] or s3://BUCKET[/PREFIX] LOCAL_DIR
- Uso de disco por los buckets
- s3cmd du [s3://BUCKET[/PREFIX]]
- Informacion variada de los buckets o los objetos
- s3cmd info s3://BUCKET[/OBJECT]
No hay comentarios:
Publicar un comentario
Nota: solo los miembros de este blog pueden publicar comentarios.