Saturday, January 29, 2011

Amazon EC2

I think I'm in love again.

Amazon Web Services (AWS) is an API that you can use to interface w/a suite of products including the mind-altering EC2 service, which allows you to boot up virtual boxes in the Amazon cloud infrastructure for, all things considered, very reasonable rates. I've just written my first AWS Python script, and I've booted my first EC2 image. It will be my always-on mail server, which will prevent the dilemma I'm in now from ever happening again.

Yes, my ISP is run by incompetents who did not realize that AT&T was going to drop me last night at approximately 2:30am, while I was just wrapping up a change window for work. I'm now without Internet, and they do not expect to have my service back up until tomorrow sometime, maybe. How am I writing this you ask? Well, my friend Tom was kind enough to donate his Cradlepoint to me, so I supplanted my own DSL modem with it, thereby putting me on the Internet via 3G, but since it works on what seem to be frequently changing IP addresses, I can't re-establish my mail server with it, so I had to urgently configure Google Apps as my email service and point my MX records to it, and manually enter in about 4 dozen email aliases. Not an ideal situation, because now my mail is being delivered to Google. It's nice to have some server accepting my mail, but it sucks to have it being stored on a different server than it usually is, because now it's split.

Anyway, check out my new EC2 server. This is a "micro" image. It's the smallest category of image they offer, and will run me about $18/month. The memory footprint is modest, but adequate for the image:
    [ec2-user@pyrocumulus ~]$ cat /proc/meminfo
MemTotal: 610612 kB
MemFree: 359064 kB
Buffers: 6104 kB
Cached: 205492 kB
SwapCached: 0 kB
Active: 88092 kB
...
Committed_AS: 32908 kB

And the CPU provided is ostensibly a Xeon E5430:

[ec2-user@pyrocumulus ~]$ cat /proc/cpuinfo
processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 23
model name : Intel(R) Xeon(R) CPU E5430 @ 2.66GHz
stepping : 10
cpu MHz : 2659.996
cache size : 6144 KB
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu tsc msr pae cx8 cmov pat pse36 clflush dts mmx fxsr sse sse2 ss ht pbe syscall nx lm constant_tsc up arch_perfmon pebs bts rep_good aperfmperf pni dtes64 monitor ds_cpl vmx est tm2 ssse3 cx16 xtpr pdcm dca sse4_1 lahf_lm tpr_shadow vnmi flexpriority
bogomips : 5319.99
clflush size : 64
cache_alignment : 64
address sizes : 38 bits physical, 48 bits virtual
power management:

And just look at this little tiny install image! I chose the standard Amazon Linux 64-bit AMI image, which they say is based on CentOS 5, but it has the RHEL 6 kernel:

[ec2-user@pyrocumulus ~]$ df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/xvda1 8256952 963668 7209400 12% /
tmpfs 305304 0 305304 0% /dev/shm
[ec2-user@pyrocumulus ~]$ uname -a
Linux pyrocumulus 2.6.34.7-56.40.amzn1.x86_64 #1 SMP Fri Oct 22 18:48:49 UTC 2010 x86_64 x86_64 x86_64 GNU/Linux

And there is a fully-stocked YUM repo handy, so I could immediately install Postfix with exactly what you would expect, "yum install postfix".

I guess it's about time something forced me to take a look at this stuff.

No comments: