Brc's blog
首页
前端
后端
运维
  • 工作笔记
  • 分类
  • 标签
  • 归档
关于

Brc

努力中
首页
前端
后端
运维
  • 工作笔记
  • 分类
  • 标签
  • 归档
关于
  • 工具安装

  • AWS

    • 配置静态网站托管的S3
    • s3图床
    • AWS Load Balancer Controller
    • 将域转移到其他AWS账户
      • 第 1 步:安装或升级 AWS CLI
      • 第 2 步:创建新的托管区域
      • 第 3 步:创建包含要迁移的记录的文件
      • 第 4 步:编辑要迁移的记录
      • 第 5 步:将大文件拆分为较小的文件
      • 第 6 步:在新托管区域中创建记录
      • 第 7 步:比较新旧托管区域中的记录
      • 步骤 8:更新域注册以使用新托管区域的名称服务器
        • 降低 TTL 设置
        • 等待旧的 TTL 过期
        • 更新 NS 记录以使用 Route 53 名称服务器
      • 第 9 步:等待 DNS 解析器开始使用新的托管区域
      • 第 10 步:(可选)删除旧的托管区域
    • CloudFront迁移中域名的平滑迁移
    • CloudFront跨账户存储日志到S3
  • EKS

  • 其他

  • AWS创建EKS集群
  • 谷歌云创建GKE集群
  • 工作笔记
  • AWS
Brc
2023-06-11
目录

将域转移到其他AWS账户

Migrating a hosted zone to a different AWS account - Amazon Route 53 (opens new window)

# 第 1 步:安装或升级 AWS CLI

下载、安装和配置 AWS CLI

# 第 2 步:创建新的托管区域

使用不同的账户创建新的托管区域

  1. 登录 AWS 管理控制台并在 https://console.aws.amazon.com/route53/打开 Route 53 控制台 (opens new window).

    使用要将托管区域迁移到的帐户的帐户凭据登录。

  2. 创建托管区域。有关更多信息,请参阅创建公共托管区域 (opens new window)。

  3. 记下托管区域 ID。在某些情况下,您稍后会需要此信息。

    Z115268333AQ40FB5IM8O
    
    1

# 第 3 步:创建包含要迁移的记录的文件

要将记录从一个托管区域迁移到另一个托管区域,您可以创建一个包含要迁移的记录的文件,编辑该文件,然后使用编辑后的文件在新的托管区域中创建记录。执行以下过程来创建文件。

创建包含要迁移的记录的文件

  1. 登录 AWS 管理控制台并在 https://console.aws.amazon.com/route53/打开 Route 53 控制台 (opens new window).

    使用创建要迁移的托管区域的帐户的帐户凭证登录。

  2. 获取要迁移的托管区域的托管区域 ID:

    1. 在导航窗格中,选择Hosted zones。

    2. 找到您要迁移的托管区域。如果您有很多托管区域,您可以选择Exact domain name并输入托管区域的名称,然后按Enter筛选列表。

    3. 获取托管区域 ID列的值。

      Z104517622B2JBQ1ULBZ2
      
      1
  3. 运行以下命令:

    aws route53 list-resource-record-sets --hosted-zone-id hosted-zone-id > path-to-output-file
    
    1
    aws route53 list-resource-record-sets --hosted-zone-id Z104517622B2JBQ1ULBZ2 > old.json
    
    1

    请注意以下事项:

    • 对于hosted-zone-id,请指定您在此过程的第 2 步中获得的托管区域的 ID。
    • 对于path-to-output-file,指定要在其中保存输出的目录路径和文件名。

# 第 4 步:编辑要迁移的记录

您在上一过程中创建的文件格式接近于 change-resource-record-sets您用于在新托管区域中创建记录的 AWS CLI 命令所需的格式。但是,该文件需要进行一些编辑。您必须将某些更改应用于每条记录。您可以使用良好的文本编辑器中的搜索和替换功能进行这些更改。

打开在步骤 3中创建的文件的副本,并进行以下更改:

  • 删除输出顶部的前两行:

    {
        "ResourceRecordSets": [
    
    1
    2
  • 删除与 NS 和 SOA 记录相关的行。新托管区域已有这些记录。

  • 可选– 添加一个Comment元素。

  • 添加一个Changes元素。

  • 对于每条记录,添加一个Action和一个ResourceRecordSet元素。

  • 根据需要添加左右大括号 ( { }) 以使 JSON 代码有效。

  • 如果托管区域包含引用同一托管区域中其他记录的任何别名,请进行以下更改:

    • 将托管区域 ID 更改为新托管区域的 ID。

      重要的

      如果别名记录指向另一个资源,例如负载均衡器,请将托管区域 ID 更新为资源本身的托管区域 ID,而不是域的托管区域 ID。该托管区域 ID 可以从创建资源的 AWS 控制台找到。

    • 将别名记录移至文件底部。Route 53 必须先创建别名记录引用的记录,然后才能创建别名记录。

      重要的

      如果一个或多个别名记录引用其他别名记录,则作为别名目标的记录必须出现在引用别名记录之前的文件中。例如,如果alias.example.com是 alias.alias.example.com的别名目标,则alias.example.com必须首先出现在文件中。

    • 删除将流量路由到流量策略实例的任何别名记录。记下这些记录,以便您以后可以重新创建它们。

以下示例显示了 example.com 的托管区域记录的编辑版本。

{
    "Comment": "string",
    "Changes": [
        {
            "Action": "CREATE",
            "ResourceRecordSet":{
                "ResourceRecords": [
                    {
                        "Value": "192.0.2.4"
                    },
                    {
                        "Value": "192.0.2.5"
                    },
                    {
                        "Value": "192.0.2.6"
                    }
                ],
                "Type": "A",
                "Name": "route53documentation.com.",
                "TTL": 300
            }
        },
        {
            "Action": "CREATE",
            "ResourceRecordSet":{
                "AliasTarget": {
                    "HostedZoneId": "Z3BJ6K6RIION7M",
                    "EvaluateTargetHealth": false,
                    "DNSName": "s3-website-us-west-2.amazonaws.com."
            },
                "Type": "A",
                "Name": "www.route53documentation.com."
            }
        }
    ]
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36

# 第 5 步:将大文件拆分为较小的文件

如果您有很多记录,或者如果您有包含很多值的记录(例如,很多 IP 地址),您可能需要将文件拆分成更小的文件。以下是最大值:

  • 每个文件最多可包含 1,000 条记录。
  • 所有元素中值的最大组合长度Value为 32,000 字节。

# 第 6 步:在新托管区域中创建记录

要在新托管区域中创建记录,请使用以下 AWS CLI 命令:

aws route53 change-resource-record-sets --hosted-zone-id id-of-new-hosted-zone --change-batch file://path-to-file-that-contains-records
1

例如:

aws route53 change-resource-record-sets --hosted-zone-id Z115268333AQ40FB5IM8O --change-batch file://./new.json
1

# 第 7 步:比较新旧托管区域中的记录

比较新旧托管区域中的记录

  1. 运行以下命令:

    aws route53 list-resource-record-sets --hosted-zone-id hosted-zone-id --output json > path-to-output-file
    
    1

    指定以下值:

    • 对于hosted-zone-id,指定新托管区域的 ID。
    • 对于path-to-output-file,请指定要在其中保存输出的目录路径和文件名。使用与在步骤 3 中使用的文件名不同的文件名。使用不同的文件名可确保新文件不会覆盖旧文件。

    例如,运行以下命令:

    aws route53 list-resource-record-sets --hosted-zone-id Z115268333AQ40FB5IM8O --output json > new1.json
    
    1
  2. 将输出与步骤 3的输出进行比较。

    除了 NS 和 SOA 记录的值以及您在步骤 4中所做的任何更改(例如不同的托管区域 ID 或域名)之外,这两个输出应该是相同的。

  3. 如果新托管区域中的记录与旧托管区域中的记录不匹配,您可以执行以下操作之一:

    • 使用 Route 53 控制台进行较小的更正。有关详细信息,请参阅 编辑记录 (opens new window)。
    • 如果大量记录丢失,创建一个包含丢失记录的新文本文件,然后重复 步骤 6:在新托管区域中创建记录
    • 删除新托管区中除NS和SOA记录外的所有记录,重复以下步骤:
      • 第 4 步:编辑要迁移的记录
      • 第 5 步:将大文件拆分为较小的文件
      • 第 6 步:在新托管区域中创建记录
      • 第 7 步:比较新旧托管区域中的记录

# 步骤 8:更新域注册以使用新托管区域的名称服务器

在新托管区域中完成创建记录后,更改域注册的名称服务器以使用新托管区域的名称服务器。

重要的

如果您不更新域注册以使用新托管区域的名称服务器,Route 53 将继续使用旧托管区域为域路由流量。如果您删除旧的托管区域而不更新域注册的名称服务器,则该域将在 Internet 上变得不可用。如果您在新托管区域中添加、更新或删除记录而不更新域注册的名称服务器,则不会根据这些更改路由流量。

有关更多信息,请参阅使 Amazon Route 53 成为现有域的 DNS 服务 (opens new window)。

使 Route 53 成为正在使用的域的 DNS 服务 (opens new window)

笔记

无论您是使用该过程为正在使用的域迁移 DNS 服务,还是为非活动域迁移 DNS 服务,您都可以跳过以下步骤,因为您已经创建了一个新的托管区域和该托管区域中的记录:

  • 第 1 步:从当前 DNS 服务提供商处获取当前 DNS 配置
  • 第 2 步:创建托管区域
  • 第 3 步:创建记录

# 降低 TTL 设置

降低 Route 53 托管区域中 NS 记录的 TTL 设置

  1. 登录 AWS 管理控制台并在 https://console.aws.amazon.com/route53/打开 Route 53 控制台 (opens new window).
  2. 在导航窗格中选择托管区域。
  3. 选择托管区域的名称。
  4. 选择 NS 记录,然后选择Edit。
  5. **更改TTL(秒)**的值。我们建议您指定一个介于 60 秒和 900 秒(15 分钟)之间的值。
  6. 选择保存更改。

# 等待旧的 TTL 过期

为确保一次性将 DNS 服务迁移到 Route 53,请在降低 TTL 后等待两天。在为期两天的 TTL 到期并且解析器请求您的域的名称服务器后,解析器将获得当前的名称服务器,还将获得新 TTL。

# 更新 NS 记录以使用 Route 53 名称服务器

要开始使用 Amazon Route 53 作为域的 DNS 服务,请使用注册商或父区域提供的方法,将 NS 记录中的当前名称服务器替换为 Route 53 名称服务器。

笔记

当您使用当前 DNS 服务提供商更新 NS 记录以使用 Route 53 名称服务器时,您正在更新域的 DNS 配置。(这类似于更新域的 Route 53 托管区域中的 NS 记录,不同之处在于您使用要迁移的 DNS 服务更新设置。)

在注册商或父区域更新 NS 记录以使用 Route 53 名称服务器

  1. 在 Route 53 控制台中,获取托管区域的名称服务器:

    1. 登录 AWS 管理控制台并在 https://console.aws.amazon.com/route53/打开 Route 53 控制台 (opens new window).

    2. 在导航窗格中,选择Hosted zones。

    3. 在Hosted zones页面上,选择适用的托管区域的名称。

    4. 记下托管区域详细信息部分中为名称服务器列出的四个名称。

      ns-1774.awsdns-29.co.uk.
      ns-479.awsdns-59.com.
      ns-968.awsdns-57.net.
      ns-1390.awsdns-45.org.
      
      1
      2
      3
      4
  2. 更新托管区域的 NS 记录。

    记下托管区域的 NS 记录中当前名称服务器的名称。如果您需要恢复到当前的 DNS 配置,这些是您将指定的服务器。

    ns-573.awsdns-07.net.
    ns-1052.awsdns-03.org.
    ns-1998.awsdns-57.co.uk.
    ns-418.awsdns-52.com.
    
    1
    2
    3
    4

    添加或更改域的名称服务器或粘合记录

    1. 登录 AWS 管理控制台并在 https://console.aws.amazon.com/route53/打开 Route 53 控制台 (opens new window).
    2. 在导航窗格中,选择Registered Domains。
    3. 选择您要为其编辑设置的域的名称。
    4. 选择添加/编辑名称服务器。

# 第 9 步:等待 DNS 解析器开始使用新的托管区域

如果您的域正在使用中(例如,如果您的用户正在使用域名浏览网站或访问 Web 应用程序),则 DNS 解析器会缓存您当前 DNS 服务提供商提供的名称服务器的名称。几分钟前缓存该信息的 DNS 解析器会将其保存最多两天。

笔记

如果您在新托管区域中创建的任何记录未出现在旧托管区域中,则在解析器开始使用新托管区域的名称服务器之前,您的用户无法使用新记录访问您的资源。例如,假设您在应该将 Internet 流量路由到您的网站的新托管区域中创建记录 test.example.com。如果记录未出现在旧托管区域中,则在解析器开始使用新托管区域之前,您无法在 Web 浏览器中输入 test.example.com。

为确保在删除旧托管区域之前已完成将托管区域迁移到另一个 AWS 账户,请在更新域注册后等待两天以使用新托管区域的名称服务器。在为期两天的 TTL 到期并且解析器请求您的域的名称服务器后,解析器将获得当前的名称服务器。

dig birenchong.cn NS +noall +answer
1

# 第 10 步:(可选)删除旧的托管区域

当您确信不再需要旧的托管区域时,您可以选择将其删除。

重要的

在更新域注册以将名称服务器用于新托管区域后至少 48 小时内不要删除旧托管区域或该托管区域中的任何记录。如果您在 DNS 解析器停止使用该托管区域中的记录之前删除旧托管区域,则在解析器开始使用新托管区域之前,您的域可能无法在 Internet 上使用。

除默认 NS 和 SOA 记录外,托管区域必须为空。如果旧托管区域包含大量记录,使用控制台删除它们可能需要很长时间。一种选择是执行以下步骤:

  1. 为步骤 4中编辑的文件制作另一个副本。

  2. 在文件的副本中,为每条记录更改"Action": "CREATE"为。"Action": "DELETE"

  3. 使用以下 AWS CLI 命令删除记录:

    aws route53 change-resource-record-sets --hosted-zone-id id-of-old-hosted-zone --change-batch file:///path-to-file-that-contains-records
    
    1
    aws route53 change-resource-record-sets --hosted-zone-id Z104517622B2JBQ1ULBZ2 --change-batch file://./old-delete.json
    
    1

    重要的

    确保您为托管区域 ID 指定的值是旧托管区域的 ID,而不是新托管区域的 ID。

  4. 删除所有剩余记录和托管区域:

    1. 登录 AWS 管理控制台并在 https://console.aws.amazon.com/route53/打开 Route 53 控制台 (opens new window).

      使用创建旧托管区域的帐户的帐户凭据登录。

    2. 在导航窗格中,选择Hosted zones。

    3. 选择旧托管区域的名称。如果您有很多托管区域,您可以选择 Exact domain name并输入托管区域的名称,然后按Enter筛选列表。

    4. 如果托管区域包含除默认 NS 和 SOA 记录以外的任何记录(例如将流量路由到流量策略实例的别名记录),请选中相应的复选框并选择 Delete。

    5. 在导航窗格中,选择Hosted zones。

    6. 在托管区域列表中,选择要删除的托管区域的单选按钮。

    7. 选择删除。

#AWS
Last Updated: 2023/11/08, 14:45:54
AWS Load Balancer Controller
CloudFront迁移中域名的平滑迁移

← AWS Load Balancer Controller CloudFront迁移中域名的平滑迁移→

最近更新
01
谷歌云创建GKE集群
07-26
02
ElastiCacheForRedis启用密码
07-26
03
upload-to-gcs
06-29
更多文章>
Theme by Vdoing | Copyright © 2021-2024 Brc | MIT License | 浙ICP备19031881号-4
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式