Cloud architecting on AWS or other cloud services is not an easy job. Though cloud providers provide many features to host your application, but still while architecting you may need to take care of various things. Not taking care f these pointers may land you in some problems. In this article I am trying to put certain pointers as per my personal experience while working on AWS cloud. These pointers may stand well on other cloud providers as well.
- First and foremost you should know what geography your customer wants to cater, this will really help you in picking right services, as not all aws services are available in all regions.
- Cloud VM’s may suffer from noisy neighbours issue (stolen cpu). It might be possible that due to some other customers workload on same host, you may not be able to utilize cpu cycles and they might be stolen by noisy neighbour. You can see through top command is there is any stolen cpu. Ideally it should remain around 0.0 %. If you observe this problem, better stop the VM and start it again, doing this you may get shifted to a new host. Before doing stop and start make sure your instance have elastic ip, otherwise the public ip may change.
- The IOPS (input output operations per second) are a factor of volume, lets say if EBS volume size is 100 GB, then you will get 100 x 3, i.e 300 iops. If your application does too many file, read write pick the volume size accordingly. Otherwise on concurrent hits on server the queue length may increase due to shortage of iops. Inorder to get more iops either you can increase volume size or use provisioned iops by purchasing additional iops. Another option will be to use raid setup of volumes.
- The EBS volume has certain limitation on throughput depends on volume size and type. It might be possible that the volume is already operating on top limits and you application might perform slow. This might increase volume queue length as well. Keep a check on network in and network out data if the sum of this is near to volume bandwidth or crossing it. You can check in aws simple monthly calculator what is the default volume throughput by changing volume size and type.