Before Mitch arrived today, I properly got my head around things and
just confirmed with him as well.
So, the services instances get the secret (less secure) keys. those
keys should really not belong to the account that owns any resources.
they should access resources via sharing mechanisms (which are in
place for SQS and S3 at the moment). The lifeguard server will use
double secret (more secure) keys to launch instances, create queues,
grant access to the less secure keys as needed. SimpleDB is a pain,
and so, all the data stored there would be through the secret (less
secure) keys. We used SimpleDB for data logging in our lifeguard
installation, but not everybody has to deal with that.
Eucalyptus was another complication and since it has it's own set of
keys, it could simply replace the double secret keys, but Eucalyptus
doesn't provided all of the services that AWS does. So, we need to
decide what parts of Eucalyptus to support. I'm shooting for the host,
and storage (Walrus). I say this, even though the later is very
immature. I'm not even certain if Walrus supports ACLs like S3 does.
It certainly isn't multi-threaded yet and so supporting it is somewhat
risky. But, since computing "near" the data is pretty important for
system performance, I would maintain that we don't want to support
local compute via Eucalyptus and remote data via Amazon S3. I think
using SQS for both internal and external clouds is acceptable.
David