我似乎无法让Capistrano与AmazonRDS很好地配合.我已经到处查看有关正确设置的任何信息,但没有找到任何信息.现在,当我cap deploy,这个过程超时.
这是我的deploy.rb:
set :deploy_to, "/opt/bitnami/apps/annarbortshirtcompany.com/cms/"
set :scm, :git
set :repository, "ssh://user@ec2-repository.compute-1.amazonaws.com/~/repo/cms.git"
set :deploy_via, :remote_cache
set :user, "user"
ssh_options[:keys] = [File.join(ENV["HOME"], "EC2", "admin.pem")]
ssh_options[:forward_agent] = true
set :branch, "master"
set :use_sudo, true
set :location, "ec2-webserver.compute-1.amazonaws.com"
role :web, location
role :app, location
role :db, "cmsinstance.c7r8frl6npxn.us-east-1.rds.amazonaws.com", :primary => true
# If you are using Passenger mod_rails uncomment this:
namespace :deploy do
task :start do ; end
task :stop do ; end
task :restart, :roles => :app, :except => { :no_release …Run Code Online (Sandbox Code Playgroud) 我刚刚设置了一个Amazon RDS实例.我有一个单独的应用程序服务器,我试图找出如何从我的EC2应用程序服务器连接到RDS实例.在Instance页面上,我有
enbdpoint: mycompany.czdv3mj7ps25.us-west-2.rds.amazonaws.com:5432
Run Code Online (Sandbox Code Playgroud)
我尝试使用该地址登录到psql,但我得到了
$ psql -h mycompany.czdv3mj7ps25.us-west-2.rds.amazonaws.com:5432 -U myuser -d mydb
psql: could not translate host name "mycompany.czdv3mj7ps25.us-west-2.rds.amazonaws.com:5432" to address: Name or service not known
Run Code Online (Sandbox Code Playgroud)
如何连接到实例数据库?我没有在RDS控制台中看到任何其他IP地址.
我在自己的VPC中有一个在Amazon EC2中运行的Kubernetes集群,我正在尝试将Dockerized服务连接到RDS数据库(在不同的VPC中).我已经找到了对等和路由表条目,所以我可以从minion机器上做到这一点:
ubuntu@minion1:~$ psql -h <rds-instance-name>
Password:
Run Code Online (Sandbox Code Playgroud)
所以这一切都在发挥作用.问题是当我尝试从Kubernetes管理的容器内部建立连接时,我得到一个超时:
ubuntu@pod-1234:~$ psql -h <rds-instance-name>
…
Run Code Online (Sandbox Code Playgroud)
为了让minion连接,我配置了一个对等连接,从Kubernetes VPC设置路由表,以便10.0.0.0/16(RDS VPC的CIDR)映射到对等连接,并更新RDS实例的安全组以允许流量到端口5432来自地址范围172.20.0.0/16(Kubernetes VPC的CIDR).
我正在配置备份gem(http://backup.github.io/backup/v4/)以在我的EC2实例上运行,在RDS中复制PostgreSQL数据库,并将备份存储在新的S3存储桶中.
备份gem运行pg_dump命令,但是AWS不允许在EC2和RDS上安装相同版本的Postgres,从而导致以下错误:
pg_dump: server version: 9.4.7; pg_dump version: 9.2.13
pg_dump: aborting because of server version mismatch
Run Code Online (Sandbox Code Playgroud)
这是因为EC2实例有版本:
$ pg_dump --version
pg_dump (PostgreSQL) 9.2.13
Run Code Online (Sandbox Code Playgroud)
RDS实例有版本:
9.4.7-R1(9.5.2-R1的唯一其他版本选项)
在EC2上,运行yum list postgres*仅提供PostgreSQL 9.3之前的可用包.
因此,我似乎无法降级RDS或将EC2升级到匹配版本.
这是我的备份宝石模型配置,如果它有帮助:https://gist.github.com/anonymous/35f6f9e81846f53693fb03662c2192ad
在我发现有太多人开始提醒我RDS有内置备份之前.我的用例:我还希望能够将个人用户的数据回滚到不同的时间段而不影响整个数据库,而不仅仅是拥有完整的数据库回退.我计划保留这些手动备份,并最终编写脚本以从中提取以前的用户特定数据.
我的朋友推荐了另一个选项:如果用户想要回滚,我可以从自动快照中启动新的RDS,克隆我的EC2实例,将它们相互连接,从该快照收集用户特定数据,然后合并这些更改回主EC2实例.
我想使用AWS Data Pipeline将数据从Postgres RDS传输到AWS S3。有人知道这是怎么做的吗?
更确切地说,我想使用数据管道将Postgres表导出到AWS S3。我使用数据管道的原因是我想自动执行此过程,并且此导出将每周运行一次。
任何其他建议也将起作用。
postgresql amazon-s3 amazon-web-services amazon-rds amazon-data-pipeline
我们将 AWS RDS mysql 实例从 5.5.42 升级到 53,并将原始参数组应用于此实例。
但是,当我检查 rds 实例的配置详细信息时,即使我已手动重新启动 rds,参数组值仍为“pending-reboot”。
我该如何解决这个问题?谢谢!
我正在寻找AWS Lambda来处理RDS数据库连接池机制,还是我们为此解决了这个问题?
如果我们没有这个选项,我将很快面临最大连接错误..
我们正在针对发布Postgres数据库的应用程序运行负载测试.
在测试期间,我们突然错误率上升.在分析平台和应用程序行为后,我们注意到:
在postgres日志中,我们看到:
2018-08-21 08:19:48 UTC :: @:[XXXXX]:日志:服务器进程(PID XXXX)被信号9终止:被杀
在调查和阅读文档之后,似乎有一种可能性是linux oomkiller运行已经杀死了这个过程.
但由于我们使用的是RDS,因此我们无法访问系统日志/ var/log消息进行确认.
有人可以这样说:
我在这里找不到答案:
我想弄清楚如何创建一个简单的数据库实例。到目前为止,我只有一个DBSubnetGroup和DBInstance。在这一点上,我已经根据我尝试使用我的模板(在 Designer 中创建)创建堆栈时遇到的错误找出了一些事情。
我现在遇到了一个错误,根据实例类文档,它似乎应该被支持,但我想不是。根据我下面的片段,我应该使用什么?
myDB:
Type: 'AWS::RDS::DBInstance'
Properties:
DBInstanceClass: db.m1.small
DBName: myDB
DBSubnetGroupName: !Ref myDBSubnetGroup
Engine: mysql
EngineVersion: 5.6.41
AllocatedStorage: '100'
MasterUsername: admin
MasterUserPassword: AmazingPassword
Run Code Online (Sandbox Code Playgroud)
实际错误是
RDS does not support creating a DB instance with the following combination: DBInstanceClass=db.m1.small, Engine=mysql, EngineVersion=5.6.41, LicenseModel=general-public-license. For supported combinations of instance class and database engine version, see teh documentation. (Service: AmazonRDS; Status Code: 400; Error Code: InvalidParameterCombination; Request ID: 04a8be38-9368-40e4-b677-1cdc442b3cae
Run Code Online (Sandbox Code Playgroud)
再次,我查看了文档,它说 db.m1.small 支持 MySQL v5.6。也许这已经过时了?我想我可以尝试5.7。
有什么想法吗?
我正在为我在高流量高峰期间出现的问题寻找好的解决方案。我在 AWS 上使用 postgres 和 nodejs(knex 用于查询构建) - 详细信息如下。
当我在 RDS 控制台中查看 Performance Insights 时,我看到一些查询停留在“ClientRead”上。我的 RDS 实例相当大,我的 CPU 利用率非常低(1%-10%)。所以我通过连接到数据库并运行查询来确认它pg_stats,结果我看到很多查询在 ClientRead 事件上是空闲的。
什么连接这些查询?绑定。我假设这些参数化查询等待从我的 EC2 实例获取值。我觉得我的服务太慢了,所以我扩展到更多的实例,但在RDS上的结果更糟,更多的连接被阻塞。
对于测试解决方案,我将几个查询从参数化转换为没有绑定的原始 sql 查询(直接在查询中使用值)。而这些查询正是立即运行,没有任何问题。但即使出于安全原因,似乎也不是完美的解决方案。
目前我不知道问题出在哪里?我应该通过在 api gw 上添加节流来减少流量吗?在我的服务中创建内部队列?这是我的 RDS/postgre 的通信问题或设置吗?
如果有人对类似案例有更多经验,或者可以指出可能的解决方案,请链接到可以帮助我或检测问题所在的文档,那就太好了。
AWS RDS (Aurora) Postgres 9.6.9 nodejs 10.12.0 knex 0.17.3 node-postgres 7.4.1
postgresql amazon-web-services amazon-rds node.js amazon-aurora
amazon-rds ×10
postgresql ×5
amazon-ec2 ×2
amazon-s3 ×2
amazon-vpc ×1
aws-lambda ×1
backup ×1
capistrano ×1
docker ×1
kubernetes ×1
node.js ×1
performance ×1