Sometimes EC2 CloudWatch monitoring shows 100% CPU usage but when you ssh to your instance and try to see it with ‘top’ you can’t understand what is happening. Probably, Amazon is “borrowing” some of your CPU cycles to give to someone else who needs it – this is standard practice for a virtualised environment where physical server resources like RAM usage and CPU cycles are often hugely over-committed.
To check for CPU steal, run
top and take a look for the
%st value. If this value is anything other than zero, it means your VM’s CPU cycles are being “borrowed”.
More: Understanding CPU Steal Time
In case you lose your Amazon EC2 SSH Key, and can’t login in your instance. This isn’t a big problem if your instance is EBS based and you use an Elastic IP.
1. Upload your new SSH Key, or use one made by AWS
2. Make an AMI of your instance
3. Launch a new machine from your AMI, select the new SSH Key
4. Log in your machine with default user (ubuntu, ec2-user, depends on your original AMI image)
5. Change the Elastic IP to the new machine
6. Turn of the old machine and terminate it.
With my t1.micro, i can host my personal redmine, git and blog. But i couldn’t do that with default settings.
I have used swap on file to it and here is how you can do it:
Copy & paste the code below:
sudo su -c '
dd if=/dev/zero of=/var/swapfile bs=4096 count=524288
chown root:root /var/swapfile
chmod 0600 /var/swapfile
echo "/var/swapfile none swap sw 0 0" >> /etc/fstab
To disable you can use:
sudo swapoff -v /var/swapfile
sudo rm /var/swapfile
sudo sed -i '/swapfile/d' /etc/fstab
How to get started with AWS free?
Just go to http://aws.amazon.com/free/ and make your account.
Credicard will be needed even for a free account.
What can be done with the free account?
It’s up to you! If you are going to make a light traffic website free tier can handle it. 🙂
You can have up to two EC2 instances (1 Linux, 1 Windows) with 613M Ram and up to 30GB EBS Size. You can go with all your 30GB on a Linux instance it’s the best way to spend your ‘free’ resources. (Windows is memory hungry.)
You can have up to one RDS instance (postgres, mysql, …) with 20GB of DB storage and 20GB for backups.
You can have up to one S3 with 5GB of storage with up to 20k put and 20k get requests.
You can have up to one Memcached server with 213MB
And some more things (ELB, DynamoDB, SNS, CloudWatch, …)