EC2, Amazon's Elastic Compute Cloud virtual machine service, has many configuration options. So, I want to confirm that this configuration is correct for a scalable database and web server backend.
We have a large 500 GB database. (OrientDB.)
We will have it mirrored to one another virtual machine instance in the same EC2 Availability Zone. We believe the database size will grow rapidly.
The plan is:
- Get 4 large instances that are compatible types with Placement Groups (as well as ideally, Enhanced Networking) (2 for web, 2 for DB.)
- We use an EBS-backed instances to store our operating system. Discussion here: http://alestic.com/2012/01/ec2-ebs-boot-recommended
- We can set up ephemeral SSD instance storage as swap space. (But it is lost after even a reboot. I hear its hard to add ephemeral storage if booting from EBS, but possible.)
- For offsite backup, we will take periodic snapshots and store them on S3. Obviously we need to ensure the database is in a safe state when that snapshot happens to avoid corruption. (Any hints here, aside from shutting down the DB?)
- If the database gets too big, we need to create a EBS volume that's larger. We can use RAID to break the 1 TB limit: http://alestic.com/2009/06/ec2-ebs-raid
- Static assets on web servers will be stored on S3.
Is that correct? Or am I missing something?