将 AWS 从一个区域迁移到其他区域(新加坡到孟买)时应该注意什么
What should I take care while migrating AWS from One Region to other ( Singapore to Mumbai )
我们即将从 AWS 新加坡迁移到孟买。在此区域迁移或任何其他过程中,我应该注意什么?
部分 AWS 服务并非在所有地区都受支持。例如,Lambda 在孟买不可用。确保您需要的所有服务在您的目的地区域都可用。
有许多实例类型在特定区域不受支持。例如,m3 实例在孟买不可用。这是因为现在我们应该使用 m4,但是没有像 m4.medium
这样的东西。 m4 class 以大开头。所以,你别无选择,只能去t2.medium
。请确保您所需的实例类型在您的目标区域可用。
某些 MySQL RDS 版本在孟买不可用;因此你不能直接迁移它们。您需要先将 RDS 升级到最近的 MySQL 版本。迁移 RDS 的最佳方式是在目标区域创建一个 read-replica,然后将 read-replica 提升为 master。
在所有较旧的地区(例如新加坡),S3 支持签名版本 2 和 4,但在较新的地区(例如孟买)仅支持签名版本 4。当我们意识到当存储桶迁移到孟买地区时,我们所有的 AWS CLI、Java 的 SDK 都开始失败,这让我们感到震惊。解决方案是升级您的 SDK,然后在发出 S3 请求时指定区域。
对我们来说,这是一个挑战,因为我们必须从 AWS Java SDK 1.8 迁移到 1.11.11,而 AWS 已经停止使用许多基本的 classes,例如 JSONObject ,JSON数组等。我们在我们的应用程序代码库中使用这些 classes 进行 JSON 操作。因此,急需大量代码re-write。
- S3 存储桶非常庞大且不断更新,不能直接迁移到另一个区域。您不能只删除此存储桶并在目标区域(一段时间后)创建一个新存储桶,因为同步可能需要很多天。我们可能可以接受一段时间的停机时间,但不是 1-2 天。
现在有两个选择:第一个是否可以更改存储桶名称;然后你可以有零停机时间:在目标区域创建新的bucketname并开始同步..确保你在原始bucket上启用了"Cross Region replication",这确保将任何新项目添加到目标bucket。如果未启用; aws sync 可能永远无法跟上。同步完成后;您可以更改代码库并进行部署。如果您正在使用 CDN;也不要忘记在那里更改原点。
如果您无法更改存储桶名称;会有一些停机时间(取决于桶有多大)。这里重复第一个选项中的过程;然后删除原始存储桶 --> 一段时间后在目标区域中创建另一个具有相同名称的存储桶 --> 在同一目标区域同步两个存储桶.. 这种同步会快得多,因为它在同一区域。
这不是完整列表;只是我们遇到的几个痛点。
我们即将从 AWS 新加坡迁移到孟买。在此区域迁移或任何其他过程中,我应该注意什么?
部分 AWS 服务并非在所有地区都受支持。例如,Lambda 在孟买不可用。确保您需要的所有服务在您的目的地区域都可用。
有许多实例类型在特定区域不受支持。例如,m3 实例在孟买不可用。这是因为现在我们应该使用 m4,但是没有像
m4.medium
这样的东西。 m4 class 以大开头。所以,你别无选择,只能去t2.medium
。请确保您所需的实例类型在您的目标区域可用。某些 MySQL RDS 版本在孟买不可用;因此你不能直接迁移它们。您需要先将 RDS 升级到最近的 MySQL 版本。迁移 RDS 的最佳方式是在目标区域创建一个 read-replica,然后将 read-replica 提升为 master。
在所有较旧的地区(例如新加坡),S3 支持签名版本 2 和 4,但在较新的地区(例如孟买)仅支持签名版本 4。当我们意识到当存储桶迁移到孟买地区时,我们所有的 AWS CLI、Java 的 SDK 都开始失败,这让我们感到震惊。解决方案是升级您的 SDK,然后在发出 S3 请求时指定区域。
对我们来说,这是一个挑战,因为我们必须从 AWS Java SDK 1.8 迁移到 1.11.11,而 AWS 已经停止使用许多基本的 classes,例如 JSONObject ,JSON数组等。我们在我们的应用程序代码库中使用这些 classes 进行 JSON 操作。因此,急需大量代码re-write。
- S3 存储桶非常庞大且不断更新,不能直接迁移到另一个区域。您不能只删除此存储桶并在目标区域(一段时间后)创建一个新存储桶,因为同步可能需要很多天。我们可能可以接受一段时间的停机时间,但不是 1-2 天。
现在有两个选择:第一个是否可以更改存储桶名称;然后你可以有零停机时间:在目标区域创建新的bucketname并开始同步..确保你在原始bucket上启用了"Cross Region replication",这确保将任何新项目添加到目标bucket。如果未启用; aws sync 可能永远无法跟上。同步完成后;您可以更改代码库并进行部署。如果您正在使用 CDN;也不要忘记在那里更改原点。
如果您无法更改存储桶名称;会有一些停机时间(取决于桶有多大)。这里重复第一个选项中的过程;然后删除原始存储桶 --> 一段时间后在目标区域中创建另一个具有相同名称的存储桶 --> 在同一目标区域同步两个存储桶.. 这种同步会快得多,因为它在同一区域。
这不是完整列表;只是我们遇到的几个痛点。