Diff for /wikisrc/amazon_ec2.mdwn between versions 1.9 and 1.14

version 1.9, 2011/02/18 01:04:32 version 1.14, 2011/02/18 02:46:16
Line 210  rsync -aPv -e "ssh -i $EC2_SSH_KEY" NetB Line 210  rsync -aPv -e "ssh -i $EC2_SSH_KEY" NetB
         ec2-user@ec2-67-202-24-108.compute-1.amazonaws.com:          ec2-user@ec2-67-202-24-108.compute-1.amazonaws.com:
 """]]  """]]
 Connect to the instance, through its name. We will format and mount the Grub partition, create the *menu.lst* file, then copy files to their respective partitions.  Before connecting to the instance, we have to allow connection on SSH port (22) through firewall. Then, log in to the instance, through its name. We will format and mount the Grub partition, create the *menu.lst* file, then copy files to their respective partitions.
 [[!template id=programlisting text="""  [[!template id=programlisting text="""
 $ ec2-describe-instances i-5babe737  $ ec2-describe-instances i-5babe737
 INSTANCE        i-5babe737      ami-74f0061d    <strong>ec2-67-202-24-108.compute-1.amazonaws.com</strong>       ip-10-99-86-193.ec2.internal    running &lt;your_ssh_key_pair_name&gt;  0               t1.micro        2011-02-17T23:22:37+0000        us-east-1c      aki-427d952b                    monitoring-disabled                    ebs  INSTANCE        i-5babe737      ami-74f0061d    <strong>ec2-67-202-24-108.compute-1.amazonaws.com</strong>       ip-10-99-86-193.ec2.internal    running &lt;your_ssh_key_pair_name&gt;  0               t1.micro        2011-02-17T23:22:37+0000        us-east-1c      aki-427d952b                    monitoring-disabled                    ebs
   $ ec2-authorize default -p 22
   GROUP           default 
   PERMISSION              default ALLOWS  tcp     22      22      FROM    CIDR
 $ ssh -i "$EC2_SSH_KEY" ec2-user@ec2-67-202-24-108.compute-1.amazonaws.com  $ ssh -i "$EC2_SSH_KEY" ec2-user@ec2-67-202-24-108.compute-1.amazonaws.com
 [...]  [...]
 [ec2-user@ip-10-99-86-193 ~]$ sudo su  [ec2-user@ip-10-99-86-193 ~]$ sudo su
Line 224  $ ssh -i "$EC2_SSH_KEY" ec2-user@ec2-67- Line 227  $ ssh -i "$EC2_SSH_KEY" ec2-user@ec2-67-
 [root@ip-10-99-86-193 ec2-user]# mount /dev/sdg /mnt/grub/  [root@ip-10-99-86-193 ec2-user]# mount /dev/sdg /mnt/grub/
 [root@ip-10-99-86-193 ec2-user]# mkdir -p /mnt/grub/boot/grub/  [root@ip-10-99-86-193 ec2-user]# mkdir -p /mnt/grub/boot/grub/
 [root@ip-10-99-86-193 ec2-user]# cat > /mnt/grub/boot/grub/menu.lst << EOF  [root@ip-10-99-86-193 ec2-user]# cat > /mnt/grub/boot/grub/menu.lst << EOF
         default=0  default=0
         timeout=0  timeout=0
         hiddenmenu  hiddenmenu
         title NetBSD AMI  title NetBSD AMI
             root (hd0)  root (hd0)
             kernel /boot/netbsd root=xbd1  kernel /boot/netbsd root=xbd1
 [root@ip-10-99-86-193 ec2-user]# mv netbsd /mnt/grub/boot/  [root@ip-10-99-86-193 ec2-user]# mv netbsd /mnt/grub/boot/
 [root@ip-10-99-86-193 ec2-user]# umount /dev/sdg  [root@ip-10-99-86-193 ec2-user]# umount /dev/sdg
 [root@ip-10-99-86-193 ec2-user]# gunzip < NetBSD-AMI.img.gz | dd of=/dev/sdf bs=32k  [root@ip-10-99-86-193 ec2-user]# gunzip < NetBSD-AMI.img.gz | dd of=/dev/sdf bs=32k
   [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.
   [[!template id=programlisting text="""
   # ec2-detach-volume vol-36f88d5e
   ATTACHMENT      vol-36f88d5e    i-5babe737      /dev/sdf        detaching       2011-02-18T00:14:00+0000
   # ec2-detach-volume vol-24f88d4c
   ATTACHMENT      vol-24f88d4c    i-5babe737      /dev/sdg        detaching       2011-02-18T00:14:10+0000
   # ec2-create-snapshot vol-36f88d5e
   SNAPSHOT        <strong>snap-deef2bb2</strong>   vol-36f88d5e    pending 2011-02-18T01:17:59+0000                983624114127    5
   # ec2-create-snapshot vol-24f88d4c
   SNAPSHOT        <strong>snap-8aef2be6</strong>   vol-24f88d4c    pending 2011-02-18T01:18:10+0000                983624114127    1
   # ec2-terminate-instances i-5babe737
   INSTANCE        i-5babe737      running shutting-down
 ## Create your first NetBSD AMI  ## Create your first NetBSD AMI
   An AMI requires multiples components to be registered: the snapshots IDs we made in the previous chapter, as well as a specific AKI: the one that can chain-load Xenified kernels through PyGrub.
   /!\ AKIs are entitled to the same conditions as AMIs: their IDs are region-specific. So chose one carefully, or you will not be able to launch a NetBSD instance later!
   The list of AKIs that suits our situation can be obtained with the following command:
   [[!template id=programlisting text="""
   # Obtain all kernel images (AKI) for region US East, for which manifest location contains pv-grub (for PyGrub)
   # ec2-describe-images -a --region=us-east-1 -F image-type=kernel -F manifest-location=*pv-grub*
   IMAGE   aki-407d9529    ec2-public-images/pv-grub-hd0-V1.01-i386.gz.manifest.xml        amazon  available       public          i386    kernel                          instance-store  paravirtual     xen
   IMAGE   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
   <strong>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</strong>
   We pick the one with the correct architecture (x86_64). **hd00** are for EBS backed images, while **hd0** are for S3 backed ones. Chose **hd00** AKIs. In our case, its ID is **aki-4e7d9527**.
   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 \
       -b "/dev/sda1=snap-8aef2be6" -b "/dev/sda2=snap-deef2bb2" -n "NetBSD-x86_64-current" \
       -d "&lt;add your own description here&gt;
   IMAGE   <strong>ami-74d0231d</strong>
 # Play with your first NetBSD instance  # Play with your first NetBSD instance
 ## Create the instance  You can now start your own NetBSD instance, via:
   [[!template id=programlisting text="""
   $ ec2-run-instances ami-74d0231d -t t1.micro -z us-east-1c     
   RESERVATION     r-08218465      983624114127    default
   INSTANCE        <strong>i-953d72f9</strong>      ami-74d0231d                    pending         0               t1.micro        2011-02-18T02:05:46+0000        us-east-1c      aki-4e7d9527                    monitoring-disabled
   *** Wait a few minutes, micro instances take time to start ***
   # Query console output for your new instance
   $ ec2-get-console-output i-953d72f9
 ## Connect to it  ## Connect to it

Removed from v.1.9  
changed lines
  Added in v.1.14

CVSweb for NetBSD wikisrc <wikimaster@NetBSD.org> software: FreeBSD-CVSweb