代码之家  ›  专栏  ›  技术社区  ›  Emre

如何从Heroku迁移到Amazon Web Services(AWS)

  •  6
  • Emre  · 技术社区  · 7 年前

    我在heroku上有一个rails应用程序。我想知道我是如何从Heroku迁移到AWS Elastic Beanstalk的。

    我使用Heroku postgres,我有cron作业运行在工作Dyno上。

    我在互联网上搜索过,但大多数链接都使用docker,但我需要本机解决方案。


    编辑: 我最好写一些东西给以后读的人。

    首先,我们在弹性豆茎上设置环境变量。接下来,我们配置了数据库。RDS的yml文件。你可以跟随 this blog post 对于这些初始设置步骤。

    sidekiq是在这一过程中迫使我们付出最大努力的最困难的事情。

    我们使用Amazon ElastiCache创建了一个redis实例。然后,我们更改了redis和sidekiq配置设置。在这样做的过程中, this blog post 在这方面对我们非常有用。

    下一步是备份数据库并恢复到RDS。在此步骤之后,我们配置了ssl和dns设置。

    同时,如果您的项目中有force\u ssl config设置,则会导致您的项目在新打开的elastic beanstalk环境中失败。因为默认情况下,弹性beanstalk没有任何ssl定义。

    2 回复  |  直到 6 年前
        1
  •  4
  •   David Weber    7 年前

    你在用Heroku postgres吗?拉一个备份。将备份还原到RDS实例(不是由EBS启动的实例)。如果需要,可以使用AWS服务,如codebuild、codecommit和pipelines。否则,打包您的回购并将其上载到EBS。在EBS中设置环境变量,并按照AWS的说明如何连接数据库。如果你需要一个工人,你需要做出一些决定如何去做。EBS现在有可以使用的工作层,但您必须对应用程序进行一些更改。

    您的需求越具体,我们就越能提供帮助。

    AWS docs on setting up a rails app on ebs

        2
  •  2
  •   user4468000 user4468000    7 年前

    Cron在EB上可能有点棘手(尤其是与Heroku调度器相比)。 This 应该可以带你去那里。

    我还建议您保存一份常用heroku命令的电子商务翻译备忘单。例如,假设您已经完成了 eb ssh :

    heroku run console 成为 cd /var/app/current && rails c

    heroku logs -t 成为 cd /var/app/current && tail -f log/*.log

    不断地。有点痛苦,但您有一个真正的shell,所以它更适合您正常的dev-env调试习惯(比如, tail -f log/sidekiq.log 如果你只想看你的sidekiq日志)。