Plat_Forms 2012 FAQ

 

Contents:

  1. Does Amazon Web Services (AWS) support language X?
  2. What storage services does AWS provide?
  3. What database services does AWS provide?
  4. What other services from AWS we can use?
  5. When would I use or not use S3?
  6. When would I use or not use SimpleDB?
  7. When would I use or not use DynamoDB?
  8. How would I achieve scalability?
  9. Are the PaaS services of Amazon Web Services allowed in the Plat_Forms 2012?
  10. I cannot find the SimpleDB administration panel in the AWS Console?
 
 

1. Does Amazon Web Services (AWS) support language X?

AWS provides you with bare, virtual hardware on which you can run any variant of Linux or Windows OS that you like and then obviously any language and infrastructure software you would like to use. The initial info for AWS Elastic Cloud service (the service that hosts and runs the Virtual Machines - VM) can be found here http://aws.amazon.com/ec2
 
Also, if you do not have time to prepare the image of the VM for yourself you can use some of the official machine images created by Amazon, Microsoft, IBM and the comunity.
You can browse the Amazon Machine Images directory here http://aws.amazon.com/amis
 
Apart from the Machine Image you also need to choose the size of the virtual hardware you want your virtual server instance to run on in order to meet your computing needs. Each instance provides a predictable amount of dedicated compute capacity which is expressed in amount of memory, EC2 compute units (i.e. virtual CPU cores), instance storage (virtual HDD) and I/O performance level. Amazon EC2 instances are grouped into six families: Standard, Micro, High-Memory, High-CPU, Cluster Compute, and Cluster GPU.
 
For example the Standard Large Instance has 7.5 GB memory, 4 EC2 Compute Units (2 virtual cores with 2 EC2 Compute Units each), 850 GB instance storage,64-bit platform and high I/O Performance.
 
You can find all the possible instance types here: http://aws.amazon.com/ec2/instance-types/
 
Keep in mind however, that one of the evaluation criteria will be cost. So you should not go with the largest instance you can get out of simplicity but rather choose what you really need.
 

2. What storage services does AWS provide?

There are two main storage services you can use: EBS and S3.
 
EBS (Elastic Block Storage) provides block level storage volumes for use with Amazon EC2 instances. Think of it like network disk that can by mounted inside your VM. Amazon EBS is particularly suited for applications that require a local database, file system, or access to raw block level storage. Keep in mind though, that in order to access data stored on EBS, you'll need a VM running which in turn costs you money. http://aws.amazon.com/ebs
 
S3 (Simple Storage Service) provides a simple web services interface that can be used to store and retrieve any amount of data, at any time, from anywhere on the web. Think of it like internet disk for storing (large) files which you can access via URL. http://aws.amazon.com/s3
 

3. What database services does AWS provide?

There are four main storage services you can use: RDS, DynamoDB, SimpleDB and ElastiCache
 
RDS (Relational Database Service) is a web service that makes it easy to set up, operate, and scale a relational database in the cloud. Amazon RDS gives you access to the capabilities of a familiar MySQL or Oracle database. Basically it's a preconfigured EC2 instance. http://aws.amazon.com/rds
 
DynamoDB is the newest database service from Amazon. DynamoDB is a fully managed NoSQL database service that provides fast and predictable performance with seamless scalability. Think of it like hosted Cassandra or Riak key-value store. http://aws.amazon.com/dynamodb
 
SimpleDB is a highly available and flexible non-relational data store. The data is simply stored and queried via web services requests. http://aws.amazon.com/simpledb
 
ElastiCache  is a web service that makes it easy to deploy, operate, and scale an in-memory cache in the cloud. ElastiCache is protocol-compliant with Memcached, a widely adopted memory object caching system. http://aws.amazon.com/elasticache
 

4. What other services from AWS we can use?

Other services from AWS include Elastic Load Balancing, Simple Queue ServiceCloudWatch, etc...
 
For example Elastic Load Balancing automatically distributes incoming application traffic across multiple Amazon EC2 instances. Also, ELB detects unhealthy instances and reroutes traffic.
 
Fell free to explore the services and decide what will suit your project solution the best.
 

5. When would I use or not use S3?

S3 is not a database or a database replacement. The most common usage scenarios for S3 include Content Storage and Distribution, Storage for Data Analysis, Backup, Archiving and Disaster Recovery.
 

6. When would I use or not use SimpleDB?

SimpleDB is a easy to use database webservice. The most common usage scenarios include Online Gaming Data storage for player scores and preferences, game session state etc. In other scenarios SimpleDB is used for Metadata Indexing and Logging. 
 
SimpleDB has size and scalability constraints which may or may not impact your application. (http://aws.amazon.com/simpledb/faqs/)
 

7. When would I use or not use DynamoDB?

DynamoDB is fast seamlesly infinitely scalable NoSQL key-value store. 
The values stored in the DynamoDB tend to be small in size. If you need storing large objects consider using S3 or EBS (http://aws.amazon.com/dynamodb/faqs/)
 

8. How would I achieve scalability?

You need to write your application such that:
  • Several instances of it can be run on separate computers
  • These instances are independent of each other
  • An instance is allowed to fail at any time without loss of persistent data; only the requests currently serviced by that instance are allowed to fail.
For example: the load balancer will distribute incoming requests to your instances. Instances do not store state (whether persistent state or necessary session state) themselves, but rely on the storage or database services for this exclusively. This page has several good whitepapers on this topic (http://aws.amazon.com/whitepapers)
 

9. Are the PaaS services of Amazon Web Services allowed in the Plat_Forms 2012?

The PaaS (Platform as a Service) services of AWS like Amazon Elastic Beanstalk and Elastic MapReduce are NOT allowed! The teams should be able to create and develop the complete scalable solution without usage of this or any other PaaS services. 
 

10. I cannot find the SimpleDB administration panel in the AWS Console?

The administration panel for SimpleDB is still not available in the AWS Console. You can create and use the SimpleDB service you just need to use some other admin tools. There are several available on the web but you can start with the official one for eclipse environment. You can download it from here http://aws.amazon.com/eclipse