簡體   English   中英

適用於 PHP 托管的 AWS CloudFront

[英]AWS CloudFront for PHP hosting

我是 AWS 新手,在理解 CloudFront 時遇到了一些困難。 我從一個 EC2 實例開始,它在公共文件夾中包含 NGINX、MySQL 和一些 PHP 文件,以向世界公開 API。 然后我被告知 CloudFront 可用於保護實例免受惡意攻擊。 我認為 CloudFront 需要一個彈性負載均衡器。 所以我創建了一個 ELB,另外一個 EC2 實例(總共兩個 EC2 實例),創建了一個“目標組”,將這兩個 EC2 實例分組。 我還創建了一個 S3 存儲桶,CloudFront 似乎需要它,盡管我認為我不需要它,因為我的應用程序沒有任何 static 內容。 現在通過互聯網搜索,一般的想法似乎是 PHP 文件應該存在於 EC2 實例的 EBS 中,而不是 CloudFront S3 存儲桶中,因為需要執行 PHP 文件。 (並且 S3 不能執行任何文件)

  • 在這種情況下,我是否需要將我的 PHP 文件部署到兩個 EC2 實例?
  • 如何讓 EC2 實例指向同一個數據庫,以便將所有數據保存在一個位置? 目前,每個 EC2 實例都在自己的 EBS 存儲中擁有自己的 MySQL 數據庫。
  • 端到端的請求流程是怎樣的? 例如,客戶端點擊 CloudFront。 CloudFront 與 ELB 對話。 ELB 與我的一個 EC2 實例對話。 EC2 實例連接到通用 MySQL 數據庫並獲取數據。 響應數據以相反的順序返回。

我理解這個正確嗎?

我認為 CloudFront 需要一個彈性負載均衡器。

ELB 不需要使用 CF,但它簡化了一些事情,例如在 CF 和服務器之間使用 HTTPS。

我需要將我的 PHP 文件部署到兩個 EC2 實例嗎?

是的,但這不是“手動”完成的。 相反,它通常通過使用用戶數據(或自定義 AMI)和 Auto Scaling 組來完成。 所以你必須閱讀這些主題如何做到這一點。

EC2 實例在其自己的 EBS 存儲中擁有自己的 MySQL 數據庫。

您的數據庫應該在您的網絡服務器之外。 如果您想自托管它,那么它將是專用實例。 如果要使用托管解決方案,則可以將 MySQL 遷移到 RDS MySQL。

端到端的請求流程是怎樣的?

正如你所描述的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM