9

過去一週裏,我一直在玩橡膠寶石,似乎無法使它工作。我決定手動設置我的EC2實例會更容易。問題是我不知道如何。 Google對於newb的幫助也不大。有什麼建議麼?真的很感激。在EC2上部署Rails應用程序

+0

什麼不行? – 2012-01-18 21:56:28

回答

27

當然。

  1. 創建一個AWS賬戶。

  2. 決定你想要進入哪個地區。很多事情都會進入這個決定,但是後來擔心它,只是做一個像俄勒岡州或東部這樣便宜的地區。

  3. 確保您位於左上角的正確區域。

  4. 然後點擊啓動服務器。

  5. 此時你必須選擇一個AMI。 AMI基本上是您啓動服務器時想要使用的模板。亞馬遜給你一些,但在社區部分有很多。我是一名CentOS人,所以我通常會搜索CentOS AMI。 RightScale使一些好的,所以你可以搜索其中的一個。確保你選擇i386或x64取決於你想要的服務器的大小。有兩種不同類型的AMI,EBS支持和S3支持。真的,你應該堅持使用EBS,因爲你有更多的自由,但是有理由使用超出這個答案的範圍。尋找EBS,你可能會很好。 EBS是塊存儲。基本上它可以附加硬盤驅動器爲您的實例。因爲雲中的所有東西都是「虛擬的」,沒有任何物質意義,所以你也必須這樣想。所以如果你想要更多的存儲空間,你可以稍後添加一些EBS卷。但有一件事,S3支持實例,當你關閉它們時再見。如果你有刪除終止標誌設置,EBS的也會,但是對於EBS的你可以「停止」它們以及「終止」它們。

  6. 選擇大小和可用區域。如果您要設置某種冗餘,該區域非常重要。就像我使用MySQL的主從設置一樣,我會把主設備放在一個區域,而從設備放在另一個區域,以防亞馬遜遇到了隔離到一個區域的問題。但爲了這個通用目的,請不要擔心。

  7. 高級實例選項。只留下所有這一切很可能是沒有問題的。稍後您可以設置一些小的事情,如終止保護。

  8. 命名它。隨你。

  9. 製作SSH密鑰。嚴格向前。登錄Amazon服務器的唯一方法是使用您分配的SSH密鑰。沒有用戶名或密碼。

  10. 安全組。這是你可能被絆倒的地方,在這裏和#5。但是你應該先創建一個普通的安全組呼叫foo或者其他什麼,然後添加你想要打開的端口。所以如果你想要進入它,我假設你這樣做,然後打開22.如果你想使用它的網頁,然後打開80和8080或任何其他。不過要小心。我通常隨後將我的SSH端口更改爲隨機的。而不是把它0.0.0.0/0,我把我的個人IP。但是如果你不關心那麼多,就把0.0.0.0/0打開,然後把這個壞男孩帶到這個世界。

然後它會啓動。只要這一切按照它應有的方式進行。

現在您可以登錄。只是ssh -i thekey.pem thenwholehostname

希望有所幫助。

有這整個免費的層次,你可以使用。 http://aws.amazon.com/free/

檢查出來。我會在你玩的時候使用它。

我做了所有的記憶,所以我可能已經離開了。 ;)

1

chantheman給了一個很好的教程,如果你想手動做到這一點。如果您正在尋找替代品,則應考慮使用雲管理平臺等第三方解決方案,這樣可以使EC2實例的安裝和應用程序的部署更加輕鬆。 RightScale,之前在chantheman的教程中被提及爲AMI提供商,就是其中之一,但您也可以看看enStratus和Scalr(免責聲明:我在那裏工作)。您需要爲他們提供您的AWS憑據,以便他們代表您進行API調用。雲管理軟件將提供一些預先配置好的AMI(在Scalr,我們稱之爲角色),並提供一個應用程序部署框架(我們寫了關於這個http://scalr.net/blog/announcements/deployments/的博客帖子)。您將因此更快地執行步驟2-10。

如果您的預算緊張,RightScale和enStratus有一個免費帳戶,而Scalr是開源的,並且可以在Apache 2許可下使用。

0

您還應該查看Ubuntu Juju部署選項。

配置的Amazon Web Services

https://juju.ubuntu.com/docs/getting-started.html

使用且具部署on Rails的魅力

0 Rails應用程序

https://juju.ubuntu.com/docs/howto-rails.html

紅寶石的基本用法

創建應用程序的名稱的YAML配置文件,它的git的位置

sample-app.yaml 

sample-app: 
    repo: https://github.com/pavelpachkovskij/sample-rails 

部署應用程序和代理:

juju deploy --config sample-app.yaml rails myapp 
juju deploy haproxy 
juju add-relation haproxy myapp 

部署和相關數據庫:

juju deploy postgresql 
juju add-relation postgresql:db myapp 

現在你可以運行遷移:

juju ssh myapp/0 run rake db:migrate 
Seed database 

juju ssh myapp/0 run rake db:seed 

最後露出代理:

juju expose haproxy 
Find the instance's public URL from 

juju status haproxy 

規模水平,通過添加和除去部:

juju add-unit myapp 
juju remove-unit myapp 

還是去更大的與朱朱添加單元-n10爲10個節點的myapp。