它们在性能方面似乎大致相同.
型号vCPU Mem(GiB)SSD存储(GB)m3.medium 1 3.75 1 x 4
型号vCPU CPU积分/小时内存(GiB)存储t2.medium 2 24 4 EBS-Only
t2.medium允许突发性能,而m3.medium则不允许.t2.medium甚至比m3.medium有更多的vCPU(1对2)和内存(3.75对4).唯一的性能提升是带有m3.medium的SSD,如果我做重I/O,我认为这可能很重要.
这是我唯一可以在t2.medium上选择m3.medium吗?
我想运行一个每月20-30k点击率的网络服务器,所以我怀疑其中任何一个都可以满足我的需求,但有什么更好的选择呢?
我正在从快照创建新的RDS MySQL实例,并通过API和UI更新其配置.无论我如何创建或更新实例,这些操作都会自动触发通过某种自动备份过程创建的新快照.有没有办法在执行这些操作时禁用快照创建,因为我不需要额外的快照,并且它们的创建导致不必要的延迟?
我们在遗留系统中有一个写入密集型表(在AWS RDS MySQL上),我们希望将该表中的每个写入事件(插入或更新)流式传输到kinesis.我们的想法是创建一个管道来预热缓存并更新搜索引擎.
目前我们使用rudimentar轮询架构,基本上使用SQL,但最理想的是使用推送架构直接从事务日志中读取事件.
有人试过吗?任何建议的架构?
我是AWS的新手,我正在寻找一种从RDS服务触发Lambda的方法,特别是MYSql.有没有办法实现它?如果没有,有没有其他方法来实现相同的目标?
使用最新的Aurora更新(1.8),LOAD DATA FROM S3引入了该命令.有没有人得到这个工作?升级到1.8之后,我按照设置指南在此处创建角色以允许从RDS访问S3.
重新启动服务器并尝试运行命令后
LOAD DATA FROM S3 PREFIX 's3://<bucket_name>/prefix' INTO TABLE table_name
Run Code Online (Sandbox Code Playgroud)
在SQL Workbench/J中,我得到错误:
Warnings:
S3 API returned error: Missing Credentials: Cannot instantiate S3 Client
S3 API returned error: Failed to instantiate S3 Client
Internal error: Unable to initialize S3Stream
Run Code Online (Sandbox Code Playgroud)
是否还需要其他步骤?我可以只从SDK运行吗?我没有在文件中的任何地方看到这一点
amazon-s3 amazon-web-services amazon-rds amazon-aurora aws-rds
我们在AWS RDS上使用innodb引擎获得MySQL数据库,MySQL版本为5.6.19.
尝试在表中添加列时,我们会收到以下错误消息:
ERROR 1041(HY000):内存不足; 检查mysqld或其他进程是否使用了所有可用内存; 如果没有,你可能必须使用'ulimit'来允许mysqld使用更多的内存,或者你可以添加更多的交换空间
我们运行到alter table的脚本如下:ALTER TABLE mytablenameADD COLUMN temp_colume varchar(255)NULL temp_firstcolumn;
我们的RDS在db.m3.2xlarge上,内存为30GB:我们的innodb缓冲区大小为DBInstanceClassMemory*3/4~ = 24GB
我们可以使用已经对其进行的列更改成功地重新创建表,但是在更改表时我们会收到错误.
有没有人遇到同样的问题?
我尝试使用Robomongo连接到AWS中的MongoDB.当我连接时,我收到此错误:
Cannot connect to the MongoDB at x.x.x.x:27017
Error:
Missing expected field "mechanism"
Run Code Online (Sandbox Code Playgroud)
有谁知道如何解决这个错误?我已经打开了27017端口0.0.0.0.
简而言之,我无法通过利用Postgresql,Node.js和node-postgres的数据API每分钟支持超过5000个读取请求.瓶颈似乎介于API和DB之间.以下是详细信息.
我正在使用AWS Postgresql RDS数据库实例(m4.4xlarge - 64 GB内存,16个vCPU,350 GB SSD,没有预配置IOPS)用于Node.js支持的数据API.默认情况下,RDS的max_connections = 5000.节点API在两个集群之间进行负载平衡,每个集群有4个进程(2个Ec2,其中4个vCPU运行API,集群模式下为PM2).我使用node-postgres将API绑定到Postgresql RDS,并尝试使用它的连接池功能.下面是我的连接池代码示例:
var pool = new Pool({
user: settings.database.username,
password: settings.database.password,
host: settings.database.readServer,
database: settings.database.database,
max: 25,
idleTimeoutMillis: 1000
});
/* Example of pool usage */
pool.query('SELECT my_column FROM my_table', function(err, result){
/* Callback code here */
});
Run Code Online (Sandbox Code Playgroud)
使用此实现并使用负载测试器进行测试,我可以在一分钟内支持大约5000个请求,平均响应时间约为190毫秒(这是我所期望的).每当我每分钟发出超过5000个请求时,我的响应时间会在最好的情况下增加到超过1200毫秒,在最糟糕的情况下,API开始经常超时.监控表明对于运行Node.js API的EC2,CPU利用率仍低于10%.因此,我的重点是数据库和API与数据库的绑定.
我试图增加(并减少)node-postgres"max"连接设置,但API响应/超时行为没有变化.我也尝试过在RDS上配置IOPS,但没有改进.另外,有趣的是,我将RDS扩展到m4.10xlarge(160 GB内存,40个vCPU),虽然RDS CPU利用率大幅下降,但API的整体性能却大幅下降(甚至无法支持每分钟5000个请求)我能用较小的RDS).
我在许多方面处于不熟悉的领域,并且不确定如何在每分钟超过5000个请求时最好地确定哪些移动部件是瓶颈API性能.如上所述,我已根据对Postgresql配置文档和node-postgres文档的审核尝试了各种调整,但无济于事.
如果有人有关于如何诊断或优化的建议我会非常感激.
在扩展到m4.10xlarge之后,我执行了一系列的负载测试,改变了每个池中请求/分钟数和最大连接数.以下是监控指标的一些屏幕截图:
我正在使用Slick3.1.1 + HikariCP2.5.1.我的配置是:
rdsConfig = {
url = "jdbc:mysql://mydb.........us-west-2.rds.amazonaws.com:3306/owlschema"
driver = "com.mysql.jdbc.Driver"
connectionPool = HikariCP
maxConnections = 222
minConnections = 30
keepAliveConnection = true
properties = {
user = "me"
password = "mydarksecret"
}
numThreads = 40
}
Run Code Online (Sandbox Code Playgroud)
我每3秒运行一次查询,每次查询时间<0.4秒.起初一切运行正常,但大约2小时后,HikariCP开始关闭连接,导致错误"连接关闭后不允许操作":
15:20:38.288 DEBUG [] [rdsConfig-8] com.zaxxer.hikari.pool.HikariPool - rdsConfig - Timeout failure stats (total=30, active=0, idle=30, waiting=0)
15:20:38.290 DEBUG [] [rdsConfig connection closer] com.zaxxer.hikari.pool.PoolBase - rdsConfig - Closing connection com.mysql.jdbc.JDBC4Connection@229960c: (connection is evicted or dead)
15:20:38.333 DEBUG [] [rdsConfig connection closer] com.zaxxer.hikari.pool.PoolBase - …Run Code Online (Sandbox Code Playgroud) 通过控制台非常简单,但是我需要在CLI中执行相同的操作。
首先,我创建了一个数据库快照:
aws rds create-db-cluster-snapshot \
--db-cluster-snapshot-identifier $SNAPSHOT_ID \
--db-cluster-identifier $CLUSTER \
Run Code Online (Sandbox Code Playgroud)
CLUSTER仅包含一个writer实例
我没有使用
create-db-snapshot方法,因为它引发了错误调用CreateDBSnapshot操作时发生客户端错误(InvalidParameterValue):指定的实例是群集的成员,并且无法直接创建快照。请改用CreateDBClusterSnapshot API。
有用:
aws rds create-db-cluster-snapshot \
--db-cluster-snapshot-identifier $SNAPSHOT_ID \
--db-cluster-identifier $CLUSTER \
{
"DBClusterSnapshot": {
"Engine": "aurora",
"SnapshotCreateTime": "2016-12-08T11:48:07.534Z",
....
}
Run Code Online (Sandbox Code Playgroud)
因此,我想从快照中还原新的Aurora群集,然后尝试进行以下操作:
aws rds restore-db-instance-from-db-snapshot \
--db-instance-identifier from-snap2 \
--db-snapshot-identifier snap2 \
A client error (DBSnapshotNotFound) occurred when calling the RestoreDBInstanceFromDBSnapshot operation: DBSnapshot not found: snap2
Run Code Online (Sandbox Code Playgroud)
所以我尝试用以下方法还原:
aws rds restore-db-cluster-from-snapshot \
--db-cluster-identifier from-snap2 \
--snapshot-identifier snap2 \
--engine aurora \
--vpc-security-group-ids $PREPROD_SG \ …Run Code Online (Sandbox Code Playgroud) aws-rds ×10
mysql ×3
amazon-rds ×2
amazon-s3 ×1
api ×1
aws-lambda ×1
hikaricp ×1
innodb ×1
mongodb ×1
mysql-backup ×1
node.js ×1
php ×1
postgresql ×1
robo3t ×1
slick ×1