本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Veeam Backup & Replication 备份数据并将其存档至 Amazon S3
由珍娜·詹姆斯、安东尼·菲奥雷 (AWS) (AWS) 和威廉·奎格利创作
环境:生产 | 技术:存储和备份 | AWS服务:亚马逊EC2;亚马逊 S3;亚马逊 S3 Glacier |
Summary
此模式详细介绍了使用 Veeam 横向扩展备份存储库功能将 Veeam Backup & Replication 创建的备份发送至支持的 Amazon Simple Storage Service (Amazon S3) 对象存储类的过程。
Veeam 支持多个 Amazon S3 存储类,以更好地满足您的特定需求。您可以根据备份或存档数据的数据访问、弹性和成本要求选择存储类型。例如,您可以将 30 天或更长时间内不打算访问的数据存储为 Amazon S3 不经常访问 (IA) 存储类型,从而降低成本。如果您计划将数据存档 90 天或更长时间,则可以使用 Amazon Simple Storage Service Glacier (Amazon S3) Glacier Flexible Retrieval 或 S3 Glacier Deep Archive (带 Veeam 存档层)。您还可以使用 S3 对象锁定功能,使 Amazon S3 中的备份保持不变。
此模式不包括如何在 AWS Storage Gateway 中使用磁带网关设置 Veeam Backup & Replication。有关该主题的信息,请参阅 Veeam 网站上的 Veeam 使用AWSVTL网关进行备份和复制-部署指南
警告:这种情况要求IAM用户具有编程访问权限和长期证书,这会带来安全风险。为帮助减轻这种风险,我们建议仅向这些用户提供执行任务所需的权限,并在不再需要这些用户时将其移除。必要时可以更新访问密钥。有关更多信息,请参阅《IAM用户指南》中的更新访问密钥。 |
先决条件和限制
先决条件
Veeam Backup & Replication,包括 Veeam Availability Suite 或 Veeam Backup Essentials,已安装(您可以注册免费试用
) 具有企业版或企业增强版功能的 Veeam Backup & Replication 许可证,其中包括 Veeam 通用许可 () VUL
有权访问 Amazon S3 存储桶的活跃AWS身份和访问管理 (IAM) 用户
有权访问亚马逊弹性计算云 (AmazonEC2) 和亚马逊虚拟私有云 (AmazonVPC)(如果使用存档层)的活跃IAM用户
通过公共互联网连接或 Di AWS rect Connect 公共虚拟接口,从本地连接到具有可用带宽的AWS服务,用于备份和恢复流量 (VIF)
打开以下网络端口和端点,以确保与对象存储库通信正常:
亚马逊 S3 存储 — TCP — 端口 443:用于与亚马逊 S3 存储进行通信。
亚马逊 S3 存储 — 云端节点 — *.amazonaws.com 适用于AWS地区和 AWS GovCloud (美国)地区,或*.amazonaws.com.rproxy.goskope.com.cn 用于中国区域:用于与亚马逊 S3 存储进行通信。有关连接终端节点的完整列表,请参阅AWS文档中的 Amazon S3 终端节点。
Amazon S3 存储 TCP HTTP — — 端口 80:用于验证证书状态。请考虑证书验证终端节点(证书吊销列表 (CRL) URLs 和在线证书状态协议 () 服务器OCSP)可能会发生变化。实际地址列表请参见证书本身。
Amazon S3 存储 – 证书验证端点 – *.amazontrust.com:用于验证证书状态。请考虑证书验证端点(CRLURLs和OCSP服务器)可能会发生变化。实际地址列表请参见证书本身。
限制
对于用作 Veeam 对象存储库的任何 S3 存储桶,Veeam 均不支持其 S3 生命周期策略。其中包括带有 Amazon S3 存储类转换和 S3 生命周期过期规则的策略。Veeam 必须 是管理这些对象的唯一实体。启用 S3 生命周期策略可能会导致异常结果,包括数据丢失。
产品版本
Veeam Backup & Replication v9.5 Update 4 或更高版本(仅备份或容量层)
Veeam Backup & Replication v10 或更高版本(仅备份或容量层和 S3 对象锁定)
Veeam Backup & Replication v11 或更高版本(备份或容量层、存档或存档层以及 S3 对象锁定)
Veeam Backup & Replication v12 或更高版本(性能层、备份或容量层、存档或存档层以及 S3 对象锁定)
S3 标准
S3 标准 - IA
S3 单区 - IA
S3 Glacier Flexible Retrieval(仅 v11 及更高版本)
S3 Glacier Deep Archive(仅 v11 及更高版本)
S3 Glacier Instant Retrieval (仅 v12 及更高版本)
架构
源技术堆栈
从 Veeam 备份服务器或 Veeam 网关服务器连接至 Amazon S3 的本地 Veeam Backup & Replication 安装
目标技术堆栈
Amazon S3
Amazon VPC 和 AmazonEC2(如果使用存档层)
目标架构:SOBR
下图显示了横向扩展备份存储库 (SOBR) 架构。
Veeam Backup and Replication 软件可保护数据免受逻辑错误(例如系统故障、应用程序错误或意外删除)的影响。在此图中,备份首先在本地运行,然后将辅助副本直接发送至 Amazon S3。备份代表数据的 point-in-time副本。
工作流程包括将三个主要组件(分层或复制备份至 Amazon S3 所需组件)和一个选件:
Veeam Backup & Replication (1) – 是负责协调、控制和管理备份基础设施、设置、任务、恢复任务和其他过程的备份服务器。
Veeam 网关服务器(未在图中显示)— 当 Veeam 备份服务器未与 Amazon S3 出站连接时需要使用的可选本地网关服务器。
横向扩展备份存储库 (2) – 支持多层数据存储水平扩展的存储库系统。横向扩展备份存储库由一个或多个备份存储库组成,可快速访问数据,并可使用 Amazon S3 对象存储库扩展,以便用于长期存储(容量层)和存档(存档层)。Veeam 使用横向扩展备份存储库在本地(性能层)与 Amazon S3 对象存储(容量层和存档层)之间自动分层数据。
Amazon S3 (3) — 提供可扩展性、数据可用性、安全性和性能的AWS对象存储服务。
目标架构:DTO
下图显示了 direct-to-object (DTO) 架构。
在此图中,备份数据被直接发送至 Amazon S3,无需先存储于本地。辅助副本可以存储至 S3 Glacier。
自动化和扩缩
您可以使用存储库中提供的AWS CloudFormation 模板自动创建IAM资源和 S3 VeeamHub GitHub 存储
工具
工具和AWS服务
Veeam Backup & Replication
是用于保护、备份、复制和恢复虚拟和物理工作负载的 Veeam 解决方案。 AWS CloudFormation帮助您对资源进行建模和设置,快速一致地配置AWS资源,并在资源的整个生命周期中对其进行管理。您可以使用模板来描述资源及其依赖关系,然后将它们作为堆栈一起启动和配置,而不必单独管理资源。您可以跨多个AWS账户和AWS地区管理和配置堆栈。
亚马逊弹性计算云 (AmazonEC2) 在AWS云中提供可扩展的计算容量。您可以根据需要使用 Amazon EC2 启动任意数量或数量的虚拟服务器,也可以进行横向扩展或扩展。
AWSIdent@@ ity and Access Management (IAM) 是一项用于安全控制AWS服务访问的 Web 服务。借IAM助,您可以集中管理用户、安全证书(例如访问密钥)以及控制用户和应用程序可以访问哪些AWS资源的权限。
Amazon Simple Storage Service (Amazon S3) 是一项对象存储服务。您可以通过 Amazon S3 随时在 Web 上的任何位置存储和检索的任意大小的数据。
Amazon S3 Glacier (S3 Glacier) 是一项安全、持久且成本较低的存储服务,适用于数据存档和长期备份。
Amazon Virtual Private Cloud(AmazonVPC)提供了AWS云中逻辑上隔离的部分,您可以在其中启动您定义的虚拟网络中的AWS资源。该虚拟网络与您在自己的数据中心中运行的传统网络非常相似,其优点是使用的可扩展基础架构。AWS
代码
使用VeeamHub GitHub 存储库
最佳实践
根据IAM最佳实践,我们强烈建议您定期轮换长期IAM用户证书,例如用于将 Veeam Backup & Replication 备份写入 Amazon S3 的IAM用户。有关更多信息,请参阅IAM文档中的安全最佳实践。
操作说明
任务 | 描述 | 所需技能 |
---|---|---|
创建IAM用户。 | 按照IAM文档中的说明创建IAM用户。此用户不应具有AWS控制台访问权限,您需要为此用户创建访问密钥。Veeam 使用此实体进行身份验证AWS以读取和写入您的 S3 存储桶。您必须授予最低权限(即,只授予执行任务所需权限),这样用户拥有的权限就不会超出所需。有关向 Veeam IAM 用户附加的IAM策略示例,请参阅 “其他信息” 部分。 注意或者,您可以使用VeeamHub GitHub 存储库 | AWS管理员 |
创建 S3 存储桶。 |
有关更多信息,请参阅 Amazon S3 文档中的创建存储桶。 | AWS管理员 |
任务 | 描述 | 所需技能 |
---|---|---|
启动新对象存储库向导。 | 在 Veeam 中设置对象存储和横向扩展备份存储库前,必须添加要用于容量和存档层的 Amazon S3 和 Amazon S3 Glacier 存储库。在下一个操作说明中,将学习如何将此类存储库连接至横向扩展备份存储库。
| AWS管理员、应用程序所有者 |
为容量层添加 Amazon S3 存储。 |
| AWS管理员、应用程序所有者 |
为存档层添加 S3 Glacier 存储。 | 如果要创建存档层,请使用 “其他信息” 部分中详述的IAM权限。
| AWS管理员、应用程序所有者 |
任务 | 描述 | 所需技能 |
---|---|---|
启动新横向扩展备份存储库向导。 |
| 应用程序所有者、AWS系统管理员 |
添加横向扩展备份存储库,并配置容量和存档层。 |
| 应用程序所有者、AWS系统管理员 |
相关资源
在您的AWS账户中创建IAM用户(IAM文档)
创建存储桶(Amazon S3 文档)
阻止对 Amazon S3 存储的公有访问(Amazon S3 文档)
使用 S3 对象锁定(Amazon S3 文档)
如何为连接 S3 对象存储创建安全IAM策略
(Veeam 文档)
其他信息
以下各节提供了在此模式的 Epics 部分创建IAM用户时可以使用的示例IAM策略。
IAM容量等级策略
请注意:将示例策略中的 S3 存储桶的名称从 <yourbucketname>
更改为欲用于 Veeam 容量层备份的 S3 存储桶的名称。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:GetObjectVersion", "s3:ListBucketVersions", "s3:ListBucket", "s3:PutObjectLegalHold", "s3:GetBucketVersioning", "s3:GetObjectLegalHold", "s3:GetBucketObjectLockConfiguration", "s3:PutObject*", "s3:GetObject*", "s3:GetEncryptionConfiguration", "s3:PutObjectRetention", "s3:PutBucketObjectLockConfiguration", "s3:DeleteObject*", "s3:DeleteObjectVersion", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::/*", "arn:aws:s3:::" ] }, { "Sid": "VisualEditor1", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets", "s3:ListBucket" ], "Resource": "*" } ] }
IAM存档层策略
请注意:将示例策略中的 S3 存储桶的名称从 <yourbucketname>
更改为要用于 Veeam 存档层备份的 S3 存储桶的名称。
要使用现有的VPC、子网和安全组,请执行以下操作:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:DeleteObject", "s3:PutObject", "s3:GetObject", "s3:RestoreObject", "s3:ListBucket", "s3:AbortMultipartUpload", "s3:GetBucketVersioning", "s3:ListAllMyBuckets", "s3:GetBucketLocation", "s3:GetBucketObjectLockConfiguration", "s3:PutObjectRetention", "s3:GetObjectVersion", "s3:PutObjectLegalHold", "s3:GetObjectRetention", "s3:DeleteObjectVersion", "s3:ListBucketVersions", "ec2:DescribeInstances", "ec2:CreateKeyPair", "ec2:DescribeKeyPairs", "ec2:RunInstances", "ec2:DeleteKeyPair", "ec2:DescribeVpcAttribute", "ec2:CreateTags", "ec2:DescribeSubnets", "ec2:TerminateInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeImages", "ec2:DescribeVpcs" ], "Resource": "*" } ] }
要创建新组VPC、子网组和安全组,请执行以下操作:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": [ "s3:DeleteObject", "s3:PutObject", "s3:GetObject", "s3:RestoreObject", "s3:ListBucket", "s3:AbortMultipartUpload", "s3:GetBucketVersioning", "s3:ListAllMyBuckets", "s3:GetBucketLocation", "s3:GetBucketObjectLockConfiguration", "s3:PutObjectRetention", "s3:GetObjectVersion", "s3:PutObjectLegalHold", "s3:GetObjectRetention", "s3:DeleteObjectVersion", "s3:ListBucketVersions", "ec2:DescribeInstances", "ec2:CreateKeyPair", "ec2:DescribeKeyPairs", "ec2:RunInstances", "ec2:DeleteKeyPair", "ec2:DescribeVpcAttribute", "ec2:CreateTags", "ec2:DescribeSubnets", "ec2:TerminateInstances", "ec2:DescribeSecurityGroups", "ec2:DescribeImages", "ec2:DescribeVpcs", "ec2:CreateVpc", "ec2:CreateSubnet", "ec2:DescribeAvailabilityZones", "ec2:CreateRoute", "ec2:CreateInternetGateway", "ec2:AttachInternetGateway", "ec2:ModifyVpcAttribute", "ec2:CreateSecurityGroup", "ec2:DeleteSecurityGroup", "ec2:AuthorizeSecurityGroupIngress", "ec2:AuthorizeSecurityGroupEgress", "ec2:DescribeRouteTables", "ec2:DescribeInstanceTypes" ], "Resource": "*" } ] }