如何自定义通过Terraform模块创建的AWS托管Grafana工作区URL
AWS托管Grafana工作区自定义URL配置方案
首先明确:AWS托管Grafana默认生成的URL前缀(如g-tz999ee66)是AWS自动分配的,无法直接修改,无论通过Terraform还是控制台都无法自定义这部分内容。要实现类似自定义URL的需求,可通过以下两种方案解决:
方案一:配置自定义域名(CNAME转发)
这是官方推荐的方式,步骤如下:
- 在DNS服务商(如AWS Route 53)创建CNAME记录,将你期望的自定义域名(例如
grafana.yourdomain.com)指向AWS生成的Grafana工作区默认URL。 - 在AWS ACM(证书管理器)中申请对应自定义域名的SSL证书,确保证书区域与Grafana工作区所在区域一致。
- 通过Terraform模块配置自定义域名:找到模块中
custom_domain相关参数,填入你的自定义域名,并关联ACM证书ARN。示例Terraform配置片段:module "managed_grafana" { source = "terraform-aws-modules/managed-service-grafana/aws" version = "x.x.x" # 替换为实际使用的版本 # 其他必要配置... custom_domain { domain_name = "grafana.yourdomain.com" certificate_arn = "arn:aws:acm:us-east-1:123456789012:certificate/abc123-xyz456" } } - 配置完成后,用户即可通过自定义域名访问Grafana工作区。
方案二:反向代理转发
若无法配置DNS或需要额外流量控制,可部署反向代理服务器(如Nginx)实现:
- 部署Nginx服务器,确保其网络可访问目标Grafana工作区。
- 配置Nginx反向代理规则,将自定义域名的请求转发到AWS生成的默认URL。示例配置:
server { listen 443 ssl; server_name my-custom-grafana.example.com; ssl_certificate /etc/nginx/certs/custom-cert.pem; ssl_certificate_key /etc/nginx/certs/custom-key.pem; location / { proxy_pass https://g-tz999ee66.grafana-workspace.region.amazonaws.com; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; } } - 将自定义域名的DNS记录指向反向代理服务器的公网IP,用户访问该域名即可跳转至Grafana工作区。
注意:若你期望的是
my_defined_workspace_id.grafana-workspace.region.amazonaws.com这类AWS官方后缀的域名,由于该域名归AWS所有,你无法直接创建自定义子域名,只能通过上述两种方案实现类似自定义访问地址的效果。
内容的提问来源于stack exchange,提问作者pafede2
相关产品推荐
相关产品推荐

