如何配置 Elastic Beanstalk 以将 Rails 与 Postgres 一起使用?

roh*_*hra 4 ruby-on-rails amazon-web-services amazon-beanstalk

Elastic Beanstalk 内置了对 RDS 的支持。但是,我想将 Postgresql 与 Elastic Beanstalk 一起使用。哪种方法是最好的方法?

小智 5

我发现的最简单、最干净的方法,假设您使用的是 Elastic Beanstalk CLI eb

  1. 创建一个实例(按照步骤):

    eb init
    
    Run Code Online (Sandbox Code Playgroud)

    这将使用 MySQL 创建一个实例。

  2. 一旦它被创建,停止它。

    eb stop
    
    Run Code Online (Sandbox Code Playgroud)

    这将停止您的实例并删除由初始设置创建的 MySQL 数据库。

  3. 编辑.elasticbeanstalk项目根目录中的实例配置文件,将部分中的DBEngine条目替换[aws:rds:dbinstance]postgres

    vi .elasticbeanstalk/optionsettings.<my-app>-env
    
    [aws:rds:dbinstance]
    DBDeletionPolicy=Delete
    DBEngine=postgres
    DBInstanceClass=db.t1.micro
    DBSnapshotIdentifier=
    DBUser=<dbrootuser>
    
    Run Code Online (Sandbox Code Playgroud)
  4. 重启实例:

    eb start
    
    Starting application ".<my-app>".
    Waiting for environment "<my-app>-env" to launch.
    2014-07-17 17:53:15 INFO    createEnvironment is starting.
    2014-07-17 17:53:21 INFO    Using elasticbeanstalk-us-east-1-xxxxxxx as Amazon S3 storage bucket for environment data.
    2014-07-17 17:53:52 INFO    Created EIP: nn.nnn.nnn.nnn
    2014-07-17 17:53:58 INFO    Created security group named: awseb-e-xxx
    2014-07-17 17:54:10 INFO    Creating RDS database named: <db name>. This may take a few minutes.
    2014-07-17 18:06:09 INFO    Created RDS database named: <db name>
    2014-07-17 18:07:07 INFO    Waiting for EC2 instances to launch. This may take a few minutes.
    
    Run Code Online (Sandbox Code Playgroud)
  5. 检查状态。一旦它变绿,您现在将拥有一个 postgres 数据库。

    eb status --verbose
    
    URL         : <my-app>-env-xxxxx.elasticbeanstalk.com
    Status      : Ready
    Health      : Green
    
    RDS Database: YYYYDatabase | <db name>.zzzzzz.us-east-1.rds.amazonaws.com:5432
    Database Engine:    postgres 9.3.3
    Allocated Storage:  10
    Instance Class:     db.t1.micro
    Multi AZ:           False
    Master Username:    <dbrootuser>
    Creation Time:      2014-07-17 18:02:28
    DB Instance Status: available
    
    Run Code Online (Sandbox Code Playgroud)