2015-07-11 197 views
2

我下面這個教程和100%的工作就像一個魅力:集成AWS EC2,RDS和... S3?

http://docs.aws.amazon.com/gettingstarted/latest/wah-linux/awsgsg-wah-linux.pdf

,但在該教程,它僅使用在Amazon EC2和RDS。我想知道如果我的服務器擴展到多個EC2實例,那麼我需要更新我的PHP文件。

我必須在這些實例中手動分配嗎?因爲據我所知,這些實例並不相互同步。

所以,我決定使用S3作爲替換我的/ var/www,這樣PHP文件現在集中在一個地方。

因此,只要這些EC2擴大規模,這些文件就保留在一個地方,我不需要上傳到多個EC2。

這是集中文件服務器(S3)/ var/www的最佳實踐嗎?因爲目前我在使用s3fs掛載時仍然有權限問題。

謝謝。

回答

1

你必須把你的/ var/www /放在S3中,當你的實例擴大後,必須從你的bucket創建'aws s3 sync',你可以在userdata中做到這一點。您還必須選擇進行更改的「主」實例,同步腳本將更改上載到S3,並使用rsync將更改複製到活動的FE。這是因爲如果你有3個FE從S3下載/ var/www /並且你想做一個新的更改,你將不得不在你所有的實例中進行s3同步。 您可以使用inotify管理「主」實例中的更改。 Inotify可以檢測/ var/www /和exec兩個命令中的更改,其中一個可以是aws s3 sync,然後是一個rsync到其他實例。您可以通過AWS API從ELB獲取您的實例列表。 最後一件事是在'主'實例中檢查實例終止保護。

你的架構應該像這裏http://www.markomedia.com.au/scaling-wordpress-in-amazon-cloud/

好好看看!