In theory, it might be possible, but performance would not be expected to be very good. Consider the following approach:
1. Create a VPC that will support two different private subnets - this is a MUST
2. Create three subnets: subnet 1 for NFS-Oracle traffic, subnet 2 for application-Oracle traffic, subnet 3 for RAC interconnect traffic
3. Create an EC2 instances and configure nfs service. This EC2 instance will use an IP addresses in "subnet 1".
4. Create two EC2 instances for Oracle RAC nodes with:
- primary interface in "subnet 2"
- secondary additional interfaces in "subnet 1" and "subnet 3"
- Oracle Direct NFS Client installed and configured to use IP address in subnet 1
5. Follow guidelines for installing Oracle RAC using NFS on Oracle RAC node EC2 instances
- this may help: ORACLE-BASE - Oracle Database 11g Release 2 RAC On Linux Using NFS
- specify private interface as the interface using subnet 3
- specify public interface as the interface using subnet 2
6. Create one or more EC2 instances for application servers, with primary IP addresses in subnet 2
Obviously, Amazon offers Oracle through Amazon RDS, which can be configured with Multi-AZ option which is probably easier than this and probably performs better. This was something I was came up with when trying to figure out a way to put Oracle RAC on Amazon cloud, just to prove it works. I'll try to update this thread if I get it working and can provide any information on how well it performs (or doesn't perform as the case may be).
While it might be technically possible to setup the high speed interlink necessary for RAC systems, this is currently not a supported architecture in AWS.
It appears that your source doesn't match your statement. Your source says,
Is Oracle RAC supported on OVM on EC2? Not at this time as Amazon EC2 does not support shared Elastic Block Store volumes.
I don't know when that Amazon page was updated, so I can't tell if it changed since your post. Currently, your source does not refer to the use of AWS VPC for the high-speed interconnect.
Assuming this hurdle doesn't exist, the deployment suggested by "davis" appears to have merit.
I don't understand your statement about AWS RDS Multi-AZ performing better than Oracle RAC on AWS.
Obviously, Amazon offers Oracle through Amazon RDS, which can be configured with Multi-AZ option which is probably easier than this and probably performs better.
It is obvious to me that AWS RDS Multi-AZ is much easier than Oracle RAC on AWS. However, the performance comparison isn't so clear. I am using these explanations of AWS RDS Multi-AZ
You can run your DB instance in several Availability Zones, an option called a Multi-AZ deployment. When you select this option, Amazon automatically provisions and maintains a synchronous standby replica of your DB instance in a different Availability Zone. The primary DB instance is synchronously replicated across Availability Zones to the standby replica to provide data redundancy, failover support, eliminate I/O freezes, and minimize latency spikes during system backups.
Note that the high-availability feature is not a scaling solution for read-only scenarios; you cannot use a standby replica to serve read traffic. To service read-only traffic, you should use a read replica.
It appears that Oracle's version of "read replica" is not supported by AWS RDS Multi-AZ
A physical standby database can be open for read-only access while Redo Apply is active if a license for the Oracle Active Data Guard option has been purchased. This capability, known as real-time query, also provides the ability to have block-change tracking on the standby database, thus allowing incremental backups to be performed on the standby.
Multi-AZ deployments are available for the MySQL and Oracle database engines. Read Replicas are currently supported for the MySQL database engine.
This leaves 2 very different configurations for Oracle in AWS.
Clearly there are cases where parallel DML aganst multiple Oracle RAC instances can be slower than AWS RDS multi-AZ (DML against a single instance). However running all DML against only one RAC instance should bring the performance to par. Additionally, applications with higher read-rates will greatly benefit from the multi-instance scaling available with Oracle RAC. Finally, there is nothing to prevent the use of Oracle Active Data Guard Option with Oracle RAC, given that the cost of licenses can be managed.