我发现一些线程说这是可行的,但没有找到具体的说明或配置信息.
我也想从Beanstalk这样做:应用程序应该使用一个将hibernate指向elasticache实例的配置部署到beanstalk.
我在amazon上使用RDS与MySQL接口.我的应用程序在EC2节点上运行并读取/更新数据库,但读取和写入的数量太多,从而降低了性能.大多数情况下,连接数超过允许的限制.我正在考虑使用Elasticache来提高性能,但是我没有在web上找到资源,如何配置数据库以有效地使用它.这是提高读/写性能的最佳方法吗?有什么建议?
SQS看起来很容易使用,但有一些消息大小限制,例如256 KB的消息大小(真的,非常小).另一方面,ElasticCache似乎更高端?我不确定这些假设是否正确 - 请纠正我.
我正在使用一种或另一种类型的消息传递(和/或缓存)系统在AWS使用上部署应用程序.在什么情况下我会选择一个而不是另一个?
在ElasticCache中寻找帮助我们正在使用ElasticCache Redis来运行基于Resque的Qing系统.这意味着它是排序集和列表的混合.在正常操作中,一切正常,我们看到了良好的响应时间和吞吐量.CPU级别约为7-10%,Get + Set命令约为120-140K操作.(所有指标都是基于云计算的.)但是 - 当系统遇到(轻微)数据突发时,将几条K消息排入队列,我们发现服务器几乎没有响应.CPU稳定@ 100%利用率(度量标准为50,但它使用单核)运行次数减少到~10K响应时间对于每个请求的SECONDS来说很慢我们可以预期,即使CPU加载到在这种程度上,吞吐量水平将保持不变,这是我们在本地运行Redis时遇到的情况.redis可以利用CPU,但吞吐量仍然很高.因为它本身是单核的,所以不会出现上下文切换.AFAWK - 我们不强加任何限制,或持久性,不复制.使用基本配置.
size:cache.r3.large我们也不使用定期快照
我正在构建一个API,它将充当n个底层API的代理,而所有这些API都做同样的事情。它将使用断路器模式来确定基本API之一何时不可用,因此代理API将具有状态。一种解决方案是在AWS lambda上运行API,并将断路器状态存储在AWS ElastiCache中。
是否有另一个更具成本效益的解决方案,不需要我运行像ElasticCache这样的“始终在线”服务?
amazon-web-services circuit-breaker amazon-elasticache aws-lambda
我正在尝试使用无服务器框架来创建Lambda函数,该函数可以访问Elasticache集群以及调出Internet。
我已经进行了配置,serverless.yml以创建Lambda函数,创建Elasticache集群(内存缓存引擎),最后创建VPC,并将Lambda函数和Elasticache集群都放置在其中(否则,它们将无法通信)。
我了解VPC内的事物无法访问Internet,通过围绕该主题进行研究,我得出的结论是,处理此问题的最佳实践方法是为VPC创建一个NAT网关,从而允许其在外部进行访问。访问。
我可以看到如何在AWS控制台中执行此操作,但是我想坚持在其中进行定义,serverless.yml以避免任何手动的基础架构设置。
serverless.yml?为了达到目前的目的,我大量复制了一个无服务器示例(这是一个基于Java的示例,但是概念和服务定义是相同的)。它创建一个Lambda函数,一个Elasticache集群,并将它们放入VPC中,以便它们可以进行通信。我认为Lambda函数无法访问互联网存在相同的问题。https://github.com/mugglmenzel/serverless-examples-cached-rds-ws/blob/master/serverless.yml
amazon-web-services node.js amazon-elasticache amazon-vpc serverless-framework
我有一个用于开发的AWS账户.由于开发人员处于一个时区,我们会在数小时后关闭资源以节省使用量.
是否可以临时关闭弹性缓存集群中的节点?我在cli中找到的所有内容都是'删除集群':http: //docs.aws.amazon.com/cli/latest/reference/elasticache/index.html
我有一个我认为是带有 Redis 的 AWS ElastiCache 的简单 Terraform 配置:
resource "aws_elasticache_replication_group" "my_replication_group" {
replication_group_id = "my-rep-group",
replication_group_description = "eln00b"
node_type = "cache.m4.large"
port = 6379
parameter_group_name = "default.redis5.0.cluster.on"
snapshot_retention_limit = 1
snapshot_window = "00:00-05:00"
subnet_group_name = "${aws_elasticache_subnet_group.my_subnet_group.name}"
automatic_failover_enabled = true
cluster_mode {
num_node_groups = 1
replicas_per_node_group = 1
}
}
Run Code Online (Sandbox Code Playgroud)
我尝试使用以下方法定义端点输出:
output "my_cache" {
value = "${aws_elasticache_replication_group.my_replication_group.primary_endpoint_address}"
}
Run Code Online (Sandbox Code Playgroud)
当我通过 terragrunt 运行 apply 时,我得到:
错误:运行计划出错:发生 1 个错误:
module.mod.output.my_cache:资源“aws_elasticache_replication_group.my_replication_group”没有变量“aws_elasticache_replication_group.my_replication_group.primary_endpoint_address”的属性“primary_endpoint_address”
我在这里做错了什么?
amazon-web-services amazon-elasticache terraform redis-cluster
我刚刚创建了一个支持 SSL 的 EC Redis 复制组。
这是主要终点:master.dev-my-site.wmrsll.use1.cache.amazonaws.com:6379
dev-my-site.mydomain.com我还创建了一个 CNAME:master.dev-my-site.wmrsll.use1.cache.amazonaws.com
在我的机器上,我可以通过 cli 连接到 redis:
redis-cli -h dev-my-site.mydomain.com -p 6379 --tls
Run Code Online (Sandbox Code Playgroud)
但是当我使用Lambda时,我可以连接master.dev-my-site.wmrsll.use1.cache.amazonaws.com 但不能连接 CNAME:dev-my-site.mydomain.com
当我尝试使用 CNAME 时,收到以下错误:
2021-08-26T19:15:27.442Z 5801f8d4-08ae-4bd0-8091-e856d95d008c ERROR Uncaught Exception {"errorType":"Error","errorMessage":"Redis connection to dev-my-site.mydomain.com:6379 failed - Hostname/IP does not match certificate's altnames: Host: dev-my-site.mydomain.com. is not in the cert's altnames: DNS:*.dev-ec-my-site.wmrsll.use1.cache.amazonaws.com","trace":["Error [ERR_TLS_CERT_ALTNAME_INVALID]: Hostname/IP does not match certificate's altnames: Host: dev-my-site. is not in the cert's altnames: DNS:*.dev-ec-my-site.wmrsll.use1.cache.amazonaws.com"," at Object.checkServerIdentity (tls.js:297:12)"," at TLSSocket.onConnectSecure …Run Code Online (Sandbox Code Playgroud) 我已逐步按照这些说明进行操作:https ://docs.aws.amazon.com/AmazonElastiCache/latest/red-ug/backups-exporting.html
但是我有以下错误:
An error occurred (InvalidParameterValue) when calling the CopySnapshot operation: Elasticache was unable to validate the authenticated user has access on the S3 bucket ...
Run Code Online (Sandbox Code Playgroud)
该存储桶与备份位于同一区域
这是我的存储桶配置:
{
"LocationConstraint": "eu-central-1"
}
Run Code Online (Sandbox Code Playgroud)
{
"Version": "2012-10-17",
"Id": "xxxxxxxx",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"Service": "eu-central-1.elasticache-snapshot.amazonaws.com"
},
"Action": [
"s3:PutObject",
"s3:GetObject",
"s3:ListBucket",
"s3:GetBucketAcl",
"s3:ListMultipartUploadParts",
"s3:ListBucketMultipartUploads"
],
"Resource": [
"arn:aws:s3:::my-bucket-name/*",
"arn:aws:s3:::my-bucket-name"
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
这是快照
{
"Snapshots": [
{
"SnapshotName": "my-snapshot-name",
"CacheClusterId": "xxxxxxxx-xxx",
"SnapshotStatus": "available",
"SnapshotSource": "manual",
"CacheNodeType": …Run Code Online (Sandbox Code Playgroud) amazon-ec2 ×2
aws-lambda ×2
redis ×2
amazon-s3 ×1
amazon-sqs ×1
amazon-vpc ×1
hibernate ×1
java ×1
mysql ×1
node.js ×1
performance ×1
terraform ×1