簡體   English   中英

在 Elastic Beanstalk 上使用帶有 Rails 的 Redis

[英]Using Redis with Rails on Elastic Beanstalk

我正在嘗試在 AWS 上啟動 rails API。 我創建了一個 Elastic Beanstalk 應用程序,創建了一個 PostgreSQL RDS,並設置了 CodePipeline,但是當我嘗試部署時,我收到一條錯誤消息,顯示“CannotConnectError:連接到 Redis 時出錯”。 我的應用程序使用 Redis 來緩存用戶登錄證書,當我在本地運行它時,我只需在終端中的“rails s”之前輸入“redis-server”,它就像一個魅力。 我嘗試創建一個 ElastiCache 實例,但我不知道如何將它連接到我的應用程序。 我也不確定是否為此使用 ElastiCache 可能是矯枉過正,如果在部署時以某種方式配置應用程序以在沒有它的情況下開始運行 Redis 是否會更好。 我能想到的另一個可能的解決方案是,是否有辦法讓我在我的 Elastic Beanstalk 應用程序上運行終端命令並手動部署 Redis?

我很難找到一個清晰的解釋來說明我應該做什么來設置 Redis 以使用 Elastic Beanstalk。 誰能幫忙解釋一下,或者給我一個好的資源?

如果我有辦法在我的 Elastic Beanstalk 應用程序上運行終端命令並手動部署 Redis?

是的,你可以這樣做。 EB 允許您通過.ebextensions編寫自定義腳本。 因此,您可以使用它在 EB 上安裝和設置本地 Redis 服務器。

要安裝 redis,可以使用.ebextensions配置文件中的以下10_install_redis.config

commands:
    10_install_redis:
       command: amazon-linux-extras install -y redis4.0

您必須在上述基礎上進一步設置和自定義 redis 服務器以滿足您的需求。

但是,在您的 EB 實例上運行 redis 並不是一個很好的做法。 與運行 AWS 托管的 ElastiCache 相比,如果您想節省成本,最好將它放在您的 EB 環境之外,例如在單獨的 EC2 實例或 ECS 容器上。

暫無
暫無

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

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