AWS 中 Web 应用程序的最佳实践

Best practices for web application in AWS

我目前正在为学校开发一个 Web 应用程序,该应用程序将充当各种课程计划数据库,供教育工作者搜索、上传和下载课程计划文件。我设置了用于构建 PHP 应用程序的 EC2 实例,并为 MySQL 部署了 RDS。

我正在慢慢学习 PHP 我需要合并到客户网页上的东西,但随着我做更多的研究,我看到了其他方法,例如使用 Elastic-Beanstalk、带 S3 存储的主机、 Dynamo...我以为我大体上知道从哪里开始,但我想我有点不知道如何在不让我和客户头晕的情况下解决这个问题。

我们的应用程序想要在某种程度上反映此设置,但我认为我们不会使用 Flash 应用程序:http://spirit.unomaha.edu/

关于如何处理这个问题有什么建议吗? 更具体地说,如何使 PHP 与 EC2 通信并允许在该存储桶中上传文件?也就是说,我想要存储在 AWS 上的文件而不是临时文件夹。

感谢任何帮助!

我假设您是在谈论将文件上传到 S3,而不是 EC2 中的存储桶。

这是 PHP SDK 的文档(特别是您将用于将文件上传到 S3 的部分):
http://docs.aws.amazon.com/aws-sdk-php/latest/class-Aws.S3.S3Client.html

至于您的设置,最简单的方法是运行您在 Elastic Beanstalk 上的应用程序,使用 RDS 作为数据库,使用 S3 作为存储。

但是 运行在 EC2 实例上运行应用程序,使用 RDS 数据库和 S3 存储,也可以正常工作,但如果您想利用它,您需要做更多的工作AWS 的自动缩放功能。

这基本上就是您将文件从您的应用程序上传到 S3 的方式:

    $s3 = S3Client::factory(array(
        'key' => 'YOUR_KEY',
        'secret' => 'YOUR_SECRET'
    ));
    $result = $s3->putObject(array(
        'Bucket' => 'MyBucket',
        'Key' => 'myFolder/myFile.txt',
        'SourceFile' => '/path/to/temp/upload/file',
        'ACL' => 'private' // Access config
    ));