设置 AEM S3 数据存储的最佳方法

Best approach for setting up AEM S3 Data Store

我们现有的 AEM 6.1 设置使用 TarMK 进行数据存储。为了将所有资产迁移到 S3,我遵循了此处的所有步骤:https://docs.adobe.com/docs/en/aem/6-1/deploy/platform/data-store-config.html#Data%20Store%20Configurations(Amazon S3 数据存储)。显然,数据已同步到 S3,但当我检查磁盘使用报告时,我仍然看到资产正在使用磁盘 space,即使对于现有资产和新添加的资产也是如此。如果他们仍然使用磁盘 space,那么将 S3 用于资产的目的是什么?还是我做错了什么?如何验证我的设置是否真的在使用 S3?这是我的 S3DataStore.config

accessKey="xxxxxxxxxx"
secretKey="xxxxxxxxxx"
s3Bucket="dev-aem-assets-local"
s3Region="eu-west-1"
connectionTimeout="120000"
socketTimeout="120000"
maxConnections="40"
writeThreads="30"
maxErrorRetry="10"
continueOnAsyncUploadFailure=B"true"
cacheSize="0"
minRecordLength="10"

另一个问题是:我需要在发布者上做同样的设置吗?还是只对作者执行此操作并通过复制二进制数据按原样使用发布者是否可以?

你的问题有几个部分,所以我会把答案分解成逻辑块。有什么漏了就喊

您的迁移设置是正确的,S3 使用磁盘 space。这是用于直写缓存。

AEM 使用直写缓存写入 S3,此缓存的所有设置都在您的 S3 配置文件中。对数据存储的任何写入都首先写入此缓存。然后异步后台线程上传到 S3 存储桶。这种机制使 AEM 响应迅速,因为它不会被缓慢的 S3 写入阻塞。此外,最近写入的 blob 的数据读取速度很快,因为它们不需要从 S3 进行缓慢读取。简而言之,S3 IO 流量对于 AEM 而言太慢,因此此缓存可提高性能。您不能 禁用它,因为异步写入 S3 需要它。您可以减小大小,但建议至少为 S3 存储桶大小的 50%。

您可以通过查看日志中与 AWS 相关的消息(grep for aws)来验证您的 S3 设置。

至于发布者,是的,您需要从旧发布者迁移到新发布者。假设您没有使用无二进制复制,您将需要为您的发布者使用不同的 S3 存储桶。通常,您会从一个作者迁移到另一个作者,再从一个出版商迁移到另一个出版商,以实现标准实施。

您还可以通过查看 S3 存储桶及其上的流量来验证您的 S3 数据使用情况。如果在您的 S3 存储桶上启用了版本控制,所有 blob 都将显示版本标记。

可以从日志中监控 blob 的异步上传,IP 流量监控将显示与您的 S3 存储桶相关的活动。最有用的方法是查看 AEM 服务器和 S3 端点之间的网络流量。