向 Elastic Beanstalk 环境中添加数据库

lastic Beanstalk 提供了与 Amazon Relational Database Service (Amazon RDS) 的集成以帮助您将数据库实例添加到 Elastic Beanstalk 环境。您可以使用 Elastic Beanstalk 在创建环境期间或之后将 MySQL、PostgreSQL、Oracle 或 SQL Server 数据库添加到您的环境。当您将数据库实例添加到您的环境时,Elastic Beanstalk 会通过设置数据库主机名、端口、用户名、密码和数据库名称的环境属性向您的应用程序提供连接信息。

属于您的环境一部分的数据库实例将关联到环境的生命周期。在将数据库实例添加到环境后,无法从环境中将其删除。如果终止环境,则会同时终止数据库实例。您可以配置 Elastic Beanstalk 使其在您终止环境时保存数据库的快照,并在您向环境中添加数据库实例时从快照中恢复数据库。您可能产生存储数据库快照的费用。

对于生产环境,您可以在您的环境之外启动一个数据库实例并将应用程序配置为在 Elastic Beanstalk 提供的功能范围之外连接到该实例。要使用环境外部的数据库实例,需要其他安全组和连接字符串配置。但是,这也使您能够从多个环境连接到数据库、使用集成数据库不支持的数据库类型、执行蓝/绿部署以及停用您的环境,而不会影响数据库实例。

在启动数据库实例并配置安全组后,您可以使用环境属性将连接信息(终端节点、密码等)传递到应用程序。这是当您在环境中运行数据库实例时,Elastic Beanstalk 使用的相同机制。

环境属性部分中,定义应用程序读取的用于构建连接字符串的变量。为了与具有集成 RDS 数据库实例的环境兼容,请使用以下内容。

  • RDS_HOSTNAME – 数据库实例的主机名。

    Amazon RDS 控制台标签 – 终端节点(这是主机名)

  • RDS_PORT – 数据库实例接受连接的端口。默认值因数据库引擎而异。

    Amazon RDS 控制台标签 – 端口

  • RDS_DB_NAME – 数据库名称,ebdb

    Amazon RDS 控制台标签 – 数据库名称

  • RDS_USERNAME – 您为数据库配置的用户名。

    Amazon RDS 控制台标签 – 用户名

  • RDS_PASSWORD – 您为数据库配置的密码。

为了提高安全性,您可以将连接信息存储在 Amazon S3 中,并将 Elastic Beanstalk 配置为在部署期间检索该信息。利用配置文件 (.ebextensions),您可以在部署应用程序时配置环境中的实例以从 Amazon S3 安全地检索文件。

在 Amazon S3 中存储连接字符串

使用环境属性向应用程序提供连接信息是将密码置于代码外的好方法,但这不是完美解决方案。环境属性可在环境管理控制台中发现,并且可由有权在环境上描述配置设置的任何用户查看。根据平台,环境属性还可能显示在实例日志中。

您可以通过在控制的 Amazon S3 存储桶中存储连接信息来锁定该信息。基本步骤如下所示:

  • 将包含连接字符串的文件上传到 Amazon S3 存储桶。
  • 向 EC2 实例配置文件授予读取该文件的权限。
  • 将您的应用程序配置为在部署期间下载该文件。
  • 在应用程序代码中读取该文件。

首先,创建存储桶来存储包含连接字符串的文件。在本示例中,我们将使用具有单个键和值的 JSON 文件。该值是 Amazon RDS 中的 PostgreSQL 数据库实例的 JDBC 连接字符串。

beanstalk-database.json

{ "connection": "jdbc:postgresql://mydb.b5uacpxznijm.us-west-2.rds.amazonaws.com:5432/ebdb?user=username&password=mypassword" }

------------------------------------------------------------------------------------------------------------

~/my-app/.ebextensions/database.config

Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Auth:
          type: "s3"
          buckets: ["my-secret-bucket-123456789012"]
          roleName: "aws-elasticbeanstalk-ec2-role"

files:
  "/tmp/beanstalk-database.json" :
    mode: "000644"
    owner: root
    group: root
    authentication: "S3Auth"
    source: https://s3-us-west-2.amazonaws.com/my-secret-bucket-123456789012/beanstalk-database.json

原文地址:https://www.cnblogs.com/cloudrivers/p/11258383.html

时间: 2024-10-18 15:56:25

向 Elastic Beanstalk 环境中添加数据库的相关文章

Elastic Beanstalk 环境的 Auto Scaling 组

您的 Elastic Beanstalk 包含一个 Auto Scaling 组,该组管理您环境中的 Amazon EC2 实例.在单实例环境中,Auto Scaling 组可确保始终有一个正在运行的实例.在负载均衡的环境中,您将为组配置一系列要运行的实例,Amazon EC2 Auto Scaling 将根据负载按需添加或删除实例. Auto Scaling 组还会为您的环境中的实例管理启动配置.您可以修改启动配置,以更改实例类型.密钥对.Amazon Elastic Block Store

Sqlserver 中添加数据库登陆账号并授予数据库所有者权限

USE master GO --通过sp_addlogin创建登录名 --DEMO:登陆账号 --123456:登陆密码 execute sp_addlogin 'DEMO','123456' --切换数据库 USE dbtest go --在数据库dbtest里创建数据库Demo账号 --每一个DEMO为登陆名 --第二个DEMO为账号 execute sp_grantdbaccess 'DEMO','DEMO' --将DEMO账号添加到数据库角色为数据库所有者 execute sp_addr

nuxtjs 环境中添加全局axios

nuxtjs官方文档: https://zh.nuxtjs.org/ 身为小白的我,在使用axios做小demo的时候: 做了几个页面后,在需要通过发送axios请求获取数据时,发现每个组件都需要重新引入 axios 依赖,这样也太浪费时间了不是吗?: 但可以看见nuxtjs没有像vue-cli一样直接添到全局的 main.js 和app.vue; 废话不多,直接代码: 首先需要在  nuxt.config.js  添加代码 { modules: [ '@nuxtjs/axios', ], pl

Web.Config文件中添加数据库配置文件

1获取所有配置文件节点的类ConfigurationManager 2数据库节点<ConnectionStrings> <add> name ="Sqlconnection" providerName="System.Data.SqlClient" connetionString="server=.;uid=sa;pwd=221100;database=pubs"/> </ConnetionString>

在原生不支持的旧环境中添加兼容的 Object.keys

1 if (!Object.keys) { 2 Object.keys = (function () { 3 var hasOwnProperty = Object.prototype.hasOwnProperty, //原型上的方法,只取自身有的属性: 4 hasDontEnumBug = !({toString: null}).propertyIsEnumerable('toString'), //ie6一下,!之后的内容为false; 5 dontEnums = [ 6 'toString

将应用程序部署到 AWS Elastic Beanstalk 环境

部署方法 方法 部署失败带来的影响 部署时间 零停机时间 无 DNS 更改 回滚过程 代码部署到 一次部署全部 停机时间 ? ? 手动重新部署 现有实例 滚动 单个批次服务中断:任何在故障之前成功的批次将运行新应用程序版本 † ? ? 手动重新部署 现有实例 附加批次滚动部署 如果第一个批次失败,则影响最小:否则类似于滚动 † ? ? 手动重新部署 新实例和现有实例 不可变的 最低 ? ? 终止新实例 新实例 蓝/绿 最低 ? ? 交换 URL 新实例 † 根据批处理大小而变化. 原文地址:ht

How to force https on amazon elastic beanstalk

假设您已在负载平衡器安全组中启用https,将SSL证书添加到负载平衡器,将443添加到负载平衡器转发的端口,并使用Route 53将您的域名指向Elastic Beanstalk环境(或等效DNS服务).它还假定您没有使用基于docker的部署 所有你需要做的是将以下内容添加到您的一个.config files in the .ebextensions directory of your project: files: "/etc/httpd/conf.d/ssl_rewrite.conf&q

在SSH2项目中添加JBPM4的开发环境

1.导入JBPM4开发所需的jar包,注意不要和原有的SSH2jar包冲突,启动tomcat,如果正常,则进行下一步的操作 2.将下面的JBPM4的映射文件代码,写入到hibernate.cfg.xml配置文件中: <!-- 导jpbm入映射文件 --> <mapping resource="jbpm.repository.hbm.xml" /> <mapping resource="jbpm.execution.hbm.xml" /&

在WebStorm环境中给nodejs项目中添加packages

照前文 http://www.cnblogs.com/wtang/articles/4133820.html  给电脑设置了WebStorm的IDE的nodejs开发环境.新建了个express的网站项目.想给网站增加数据库功能,于是需要导入一个包(packages).在nodejs中操作mongodb很方便的包是mongoose.那么在WebStorm中添加包的方法是 我的WebStorm的版本是8.0.3,在File->Settings->(Project Settings[项目名]) N