【发布时间】:2021-03-23 20:51:22
【问题描述】:
我是 AWS 新手,在理解 CloudFront 时遇到了一些困难。 我从一个 EC2 实例开始,其中包含 NGINX、MySQL 和公共文件夹中的一些 PHP 文件,以向世界公开 API。 然后我被告知 CloudFront 可用于保护实例免受恶意攻击。 我认为 CloudFront 需要一个弹性负载均衡器。 所以我创建了一个 ELB,另外一个 EC2 实例(总共两个 EC2 实例),创建了一个“目标组”,将这两个 EC2 实例分组。 我还创建了一个 S3 存储桶,CloudFront 似乎需要它,尽管我认为我不需要它,因为我的应用程序没有任何静态内容。 现在通过互联网搜索,一般的想法似乎是 PHP 文件应该存在于 EC2 实例的 EBS 中,而不是 CloudFront S3 存储桶中,因为 PHP 文件需要执行。 (而且 S3 不能执行任何文件)
- 在这种情况下,我是否需要将我的 PHP 文件部署到两个 EC2 实例?
- 如何让 EC2 实例指向同一个数据库,以便所有数据都保存在一个位置?目前,每个 EC2 实例都在自己的 EBS 存储中拥有自己的 MySQL 数据库。
- 端到端的请求流程是怎样的? 例如 客户端点击 CloudFront。 CloudFront 与 ELB 对话。 ELB 与我的一个 EC2 实例对话。 EC2 实例连接到通用 MySQL 数据库并获取数据。 响应数据以相反的顺序返回。
我理解这个正确吗?
【问题讨论】:
-
您应该查看 Elastic Beanstalk,它将处理自我修复、扩展环境所需的所有 AWS 服务。运行第一个应用程序后,您可以深入了解设置并熟悉组件。
标签: php amazon-web-services amazon-s3 amazon-ec2 amazon-cloudfront