基于AWS的文件同步服务系统架构
鉴于Web服务上的资源可以通过它们的URL就能识别,采用无状态的客户端 - 服务器架构,开发团队就可以为部门间,为企业,或者直接用于消费者自由地创建应用完成文件共享和同步。
下图描述了利用AWS实现的可扩展性和成本效益的文件共享和同步平台的核心架构。
1. 文件同步服务端点是Elastic Load Balancer, 将呼入请求分发到一组基于AmazonElastic Compute Cloud (Amazon EC2) 实例上的应用服务器。 根据应用需要,Auto Scaling 可以自动调整AmazonEC2 实例的数量。
2. 为了上传一个文件,客户端首先需要请求服务的权限和安全令牌。
3. 在检查用户标识后,应用服务器从AWSSecurity Token Service (STS)得到一个临时凭据,这一凭据允许用户上传文件。
4. 用户将文件上传到 Amazon Simple Storage Service(Amazon S3)中, Amazon S3 可以在任何时候很容易地存储和检索任何数量的数据。
5. 文件的描述数据,版本信息和唯一标识通过应用服务器存储在AmazonDynamoDB 的表中。随着应用所维护的文件数量的增长, Amazon DynamoDB 可以相应增长,能够存取任意数量的数据,服务于任何流量水平。
6. 文件改变通知可以通过Amazon Simple Email Service(Amazon SES)以邮件的方式发给用户,这是一个易用的低成本电子邮件解决方案。
7. 其他客户端共享相同的文件,同时查询服务端点,以检查是否有更新的版本可供选择。该查询比较的本地文件校验和与mazon DynamoDB表中列出的文件校验。如果查询到较新的文件,服务端点就可以从Amazon S3检索出该文件并发送到客户端应用程序。