--- wikisrc/amazon_ec2.mdwn 2011/02/18 02:39:26 1.12 +++ wikisrc/amazon_ec2.mdwn 2011/02/18 03:47:33 1.16 @@ -15,7 +15,7 @@ Before you can start playing with Amazon 1. you "sign-up" directly on [Amazon Web Services](http://aws.amazon.com/) home-page. This is where you enter your credentials, and confirm your AWS account registration. 1. you sign-up to EC2 through [EC2 AWS home-page](http://aws.amazon.com/ec2/). You will be asked some more information, like a credit card (for billing), and a phone-number, for account validation. -## What do you need to know +## What do you need to know? EC2 uses different types of credentials. In addition to your login and password, you need an access key, a X.509 certificate (with its private key), and a pair of RSA keys, for remote SSH access. @@ -54,7 +54,7 @@ export EC2_SECRET_KEY=MYSECRETACCESSKEY Please note that the rest of the tutorial will assume that these variables are set. -### Installing EC2 API tools +## Installing EC2 API tools NetBSD provides EC2 API tools, to ease EC2 account management a little bit. The package is found inside [pkgsrc](http://www.pkgsrc.org), under [[!template id=pkg category=misc name=ec2-api-tools]]. @@ -65,7 +65,7 @@ make ACCEPTABLE_LICENSES+=amazon-softwar Package depends on Java, so build will take some time to finish. While it builds, just continue reading. -### EC2 vocabulary -- last notes +## EC2 vocabulary -- last notes Before starting to play with EC2, you need to be familiar with the EC2 vocabulary used throughout this tutorial. @@ -77,11 +77,7 @@ These instances are tied to a *region* ( AKI, or *Amazon Kernel Image*, are a specific type of image. It represents the Xen guest para-virtualized kernel, as used by an AMI. Certain AKIs are allowed to boot customized operating systems, e.g. those that are still not officially supported by Amazon. Thanks to [PyGrub](http://wiki.xensource.com/xenwiki/PyGrub), it can boot a kernel that resides inside an AMI's snapshot. -# Building your first AMI (Amazon Image) - -## Pre-built AMIs - -(For the future) Once NetBSD has decent support for Amazon EC2, we will publish the AMI identifiers so you can quickly boot up in a NetBSD environment without going through all the steps given below. +# Building-up your NetBSD system ## Fetch and build NetBSD @@ -93,7 +89,7 @@ This tutorial assumes that you will buil XXX build and install /mnt/ec2 -## Configuration +# Configuration of your NetBSD EC2 tree /!\This part assumes that you have a non-configured NetBSD system extracted under */mnt/ec2*; that is, it should have not been modified through [[!template id=man name=sysinst section=8]], nor by you. @@ -140,7 +136,7 @@ Image `NetBSD-AMI.img' complete $ gzip -9n NetBSD-AMI.img """]] -## Upload your OS +# Uploading NetBSD to EC2 We must now upload our NetBSD system to EC2. For that, we will have to create a minimalist EC2 instance, to which we will copy our files to construct our snapshots. For that, we will use an Amazon Linux AMI instance. @@ -148,7 +144,7 @@ EC2 being localized in geographical regi The examples listed here assume that the instances run in **US East**, within the **c** zone (e.g. **us-east-1c**). To have a list of EC2 regions, you can use the command **ec2-describe-regions**, and **ec2-describe-availability-zones** for availability zones. -### Creating the instance +## Creating the instance Creating an instance straightforward. Amazon provides [different types of instances](http://aws.amazon.com/ec2/pricing/), with varying levels of billing and reliability. We will use a [*micro* instance](http://aws.amazon.com/ec2/faqs/#How_much_compute_power_do_Micro_instances_provide); its pricing is almost free. @@ -166,14 +162,14 @@ $ sleep 5 && ec2-describe-instances i-5b INSTANCE i-5babe737 ami-74f0061d ec2-67-202-24-108.compute-1.amazonaws.com ip-10-99-86-193.ec2.internal running <your_ssh_key_pair_name> 0 t1.micro 2011-02-17T23:22:37+0000 us-east-1c aki-427d952b monitoring-disabled 67.202.24.108 10.99.86.193 ebs """]] -### Upload your files +## Upload your files We will have to create and attach two EBS volumes: 1. one to contain the Grub *menu.lst* config file, as well as the NetBSD kernel. 1. the other one will contain the root file-system. -#### Creating and attaching volumes +### Creating and attaching volumes [[!template id=programlisting text=""" ec2-create-volume -s 1 -z us-east-1c # 1GiB -- will be used for Grub and kernel @@ -197,7 +193,7 @@ VOLUME vol-24f88d4c 1 ATTACHMENT vol-24f88d4c i-5babe737 /dev/sdg attached 2011-02-18T00:14:10+0000 """]] -### Snapshots! +## Snapshots! We have to upload the kernel and the NetBSD disk image created earlier, *NetBSD-AMI.img*, to our instance host: @@ -241,7 +237,7 @@ EOF [root@ip-10-99-86-193 ec2-user]# sync """]] -### Shutdown the Linux instance +## Shutdown the Linux instance We now have to detach volumes, snapshot them, then we shutdown the Linux instance. @@ -258,6 +254,8 @@ SNAPSHOT snap-8aef2be6IMAGE aki-427d952b ec2-public-images/pv-grub-hd0-V1.01-x86_64.gz.manifest.xml amazon available public x86_64 kernel instance-store paravirtual xen IMAGE aki-4c7d9525 ec2-public-images/pv-grub-hd00-V1.01-i386.gz.manifest.xml amazon available public i386 kernel instance-store paravirtual xen -IMAGE aki-4e7d9527 ec2-public-images/pv-grub-hd00-V1.01-x86_64.gz.manifest.xml amazon available public x86_64 kernel instance-store paravirtual xen +IMAGE aki-4e7d9527 ec2-public-images/pv-grub-hd00-V1.01-x86_64.gz.manifest.xml amazon available public x86_64 kernel instance-store paravirtual xen """]] -We pick the one with the correct architecture (x86_64). Its ID is **aki-4e7d9527**. Then we can proceed to the creation of our AMI, with: +Pick the one with the correct architecture (x86_64 here). **hd0** are for AMIs where the snapshot contains no partition (where the volume is itself the whole partition), while **hd00** are for snapshots partitioned in a classical way (via MBR). Choose **hd0** AKIs. In this case, that will be **aki-427d952b**. -1. */dev/sda1* as Grub partition (*/dev/sdg*, snapshot *snap-8aef2be6* of volume *vol-24f88d4c*) -1. */dev/sda2* as root file-system (*/dev/sdf*, snapshot *snap-deef2bb2* of volume *vol-36f88d5e*) +We can proceed to the creation of our AMI, with: + +1. */dev/sda1* as Grub partition (*/dev/sdg*, snapshot **snap-8aef2be6** of volume **vol-24f88d4c**) +1. */dev/sda2* as root file-system (*/dev/sdf*, snapshot **snap-deef2bb2** of volume **vol-36f88d5e**) [[!template id=programlisting text=""" $ ec2-register -a x86_64 --kernel aki-4e7d9527 --region us-east-1 \ @@ -287,7 +287,7 @@ $ ec2-register -a x86_64 --kernel aki-4e IMAGE ami-74d0231d """]] -# Play with your first NetBSD instance +## Launch your first instance You can now start your own NetBSD instance, via: @@ -298,9 +298,17 @@ INSTANCE i-953d72f9