在我的main.tf我定义了一个空的 aws 提供程序
provider aws {}
Run Code Online (Sandbox Code Playgroud)
在没有环境变量的情况下,aws 提供程序[default]从~/.aws/credentials. 但是我仍然被提示输入该区域:
>terraform plan
provider.aws.region
The region where AWS operations will take place. Examples
are us-east-1, us-west-2, etc.
Enter a value:
Run Code Online (Sandbox Code Playgroud)
我怎样才能让 aws 提供者自动选择对应的区域到[default]中定义的凭证~/.aws/config?
我有以下配置作为我的 EC2 实例的用户数据的一部分生成
{
"agent": {
"run_as_user": "root"
},
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/hapee-2.0/lb-access*",
"log_group_name" : <insert-region-here>
"log_stream_name": "haproxy-{instance_id}"
}
]
}
}
},
"metrics": {
"metrics_collected": {
"net": {
"measurement": [
"net_packets_recv",
"net_packets_sent"
],
"metrics_collection_interval": 60
},
"mem": {
"measurement": [
"used_percent"
]
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
因为log_group_name我希望能够附加region实例正在运行的内容。我知道该区域是实例元数据的一部分,但我可以在 cloudwatch 配置中使用它吗?
environment-variables amazon-ec2 amazon-cloudwatch aws-regions
我在同一地区有一个EC2和RDS,US East(N. Virginia)但是两种资源都在不同的区域中;中的RDS us-east-1a和中的EC2 us-east-1b。
现在的问题是,如果我将两个资源放在同一个位置,zone那么它将加快数据到DB或从DB传输的速度吗?我每天从应用程序收到20k-30k的条目到此实例。
编辑
我在这里读到:
每个可用区都是隔离的,但是区域中的可用区通过低延迟链接连接。
现在我想知道它们low-latency links是否很小,还是应该考虑在同一区域中转移资源以加快数据传输速度?
结论
如答案和评论中所述:
EC2and的一个实例,因此RDSa中一项服务的失败zone将影响整个系统。因此,将它们放在单独的区域中没有任何优势。zones连接在一起,low-latency links但仍然存在一些延迟,在我的情况下可以忽略不计。EC2RDS我们计划将我们的软件扩展到东南亚地区。我们自托管的Mongo集群完全搭建在中国的AWS数据中心。我们如何将 MongoDB 复制集设置为 AWS Singapore 并允许在两个区域上写入并依赖 MongoDB 在后台异步同步数据?
我有一个 SQS URL,其中也包含区域。我正在使用官方 Go SDK 在此 SQS 上执行操作,这需要 AWS 区域来初始化会话。目前,我已经编写了一个实用程序函数来解析 URL 并返回 AWS 区域。
示例网址:https://sqs.us-east-1.amazonaws.com/774557911234/my_sqs_name
示例初始化代码:
sess, err := session.NewSession()
if err != nil {
return
}
s := sqs.New(sess, aws.NewConfig().WithRegion(getRegionFromSQSURL(config.SQSURL))
Run Code Online (Sandbox Code Playgroud)
从 URL 获取区域的示例函数
func getRegionFromSQSURL(url string) string {
return strings.Split(url, ".")[1]
}
Run Code Online (Sandbox Code Playgroud)
只是想知道这是否是正确的方法。
是否存在 SQS URL 中的 URL 区域与 SQS 存在的区域不同的情况?
我是否应该在服务中再添加一个要设置的环境变量?
我对许多 AWS 服务都比较有经验 - 但我在 Aurora/RDS 方面确实有很大差距
我正在尝试创建多区域多主(写入副本)设置
目的是为用户提供低延迟(如果每个读写副本都在用户的区域中)并提供弹性(如果出现区域中断,用户可以将其请求路由到另一个区域(延迟会更高) ,但减少服务总比没有服务好))
我正在尝试了解 AWS Aurora,并且创建了一个玩具集群来学习。看来我可以创建一个由多个区域提供服务的集群(Aurora 会自动在区域之间复制数据)。我还读到可以进行多主设置(在我的玩具集群中,它只有一个写入分区,我无法弄清楚如何在另一个区域创建另一个写入分区,这让我怀疑是否这是可能的?)
这是我的想法的图表:
https://i.stack.imgur.com/bfigZ.jpg
先感谢您!
我正在编写一个简单的js函数,该函数从AWS CloudWatch Logs中读取一些信息。
遵循Node.js AWS开发工具包中的配置区域中的答案以及AWS nodejs SDK文档中的内容,我提出了以下内容:
var AWS = require('aws-sdk');
var cloudwatchlogs = new AWS.CloudWatchLogs();
console.log(AWS.config.region) // Undefined
AWS.config.region = 'eu-central-1' // Define the region with dot notation
console.log(AWS.config.region) . // eu-central-1
AWS.config.update({region:'eu-central-1'}); // Another way to update
console.log(AWS.config.region) . // eu-central-1
var params = {
limit: 0,
// logGroupNamePrefix: 'STRING_VALUE',
// nextToken: 'STRING_VALUE'
};
// This call is failing
cloudwatchlogs.describeLogGroups(params, function(err, data) {
if (err) console.log(err, err.stack); // an error …Run Code Online (Sandbox Code Playgroud) 快一点.
当你在多个地区部署一个lambda时,它会是什么样子?它只是两个相同代码的单独副本,具有不同的名称,不同的ARN等?
AWS将它们视为无关的lambdas吗?
或者它是否知道它们在不同地区部署的是相同的东西?
我有以下deploy.tf文件:
provider "aws" {
region = "us-east-1"
}
provider "aws" {
alias = "us_west_1"
region = "us-west-2"
}
resource "aws_us_east_1" "my_test" {
# provider = "aws.us_east_1"
count = 1
ami = "ami-0820..."
instance_type = "t2.micro"
}
resource "aws_us_west_1" "my_test" {
provider = "aws.us_west_1"
count = 1
ami = "ami-0d74..."
instance_type = "t2.micro"
}
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用它来部署 2 台服务器,每个区域一台。我不断收到以下错误:
aws_us_east_1.narc_test: Provider doesn't support resource: aws_us_east_1
Run Code Online (Sandbox Code Playgroud)
我已尝试为两个提供程序块设置别名,并以多种不同方式引用正确的区域。我已经阅读了多区域支持,一些答案表明这可以通过模块来完成,但是,这是一个简单的测试,我想保持简单。这是目前可能的吗?
到底是什么地区的AWS世界?
我不得不问哪个区域适合我的业务。在 AWS 中选择区域之前,哪些因素很重要?
我不想让人们在不应该使用的区域使用 AWS 服务。我可以为组织完全禁用区域吗?
我在这里看到“您无法禁用默认启用的区域”。此处: https: //docs.aws.amazon.com/general/latest/gr/rande-manage.html
还有别的办法吗?
我的 AWS 配置文件配置为默认为 eu-west-1,但是当我运行 AWS CLI 命令时,它在 us-east-1 中执行:
>aws configure get region
eu-west-1
>aws events put-rule --name hourly_trigger --schedule-expression "rate(60 minutes)"
{
"RuleArn": "arn:aws:events:us-east-1:588237033746:rule/hourly_trigger"
}
Run Code Online (Sandbox Code Playgroud)
我查看了配置文件和配置选项,但无法确定这是为什么。我的个人资料设置如下:
[default]
region = eu-west-1
Run Code Online (Sandbox Code Playgroud)
如果我添加 --region,则该命令可以在预期区域中工作
>aws events put-rule --name hourly_trigger --schedule-expression "rate(60 mi
nutes)" --region eu-west-1
{
"RuleArn": "arn:aws:events:eu-west-1:588237033746:rule/hourly_trigger"
}
Run Code Online (Sandbox Code Playgroud) aws-regions ×12
terraform ×2
amazon-ec2 ×1
amazon-sqs ×1
amazon-vpc ×1
aws-cli ×1
aws-lambda ×1
aws-sdk ×1
aws-sdk-js ×1
go ×1
latency ×1
mongodb ×1
node.js ×1
regions ×1
replicate ×1