--- 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