メインコンテンツまでスキップ
バージョン: User Guides (Cloud)

AWS S3との統合
Private Preview

Zilliz Cloudでは、Amazon Simple Storage Service(Amazon S3)と統合して、バックアップファイルまたは監査ログを指定されたS3バケットにエクスポートできます。

📘ノート

この機能は、エンタープライズプロジェクト内の専用クラスターでのみ利用可能です。

BUEcwkZiChJrTlbziBMc3V49nFe

始める前に

  • Zilliz CloudをAWS S3と統合するには、プロジェクトに組織オーナーまたはプロジェクト管理者のアクセス権が必要です。必要な権限がない場合は、Zilliz Cloud組織オーナーに連絡してください。

  • AWSマネジメントコンソールへの管理アクセス権が必要です。

ステップ1:Zilliz Cloudコンソールで統合を開始

  1. Zilliz Cloudコンソールにログインします。

  2. プロジェクトページで、左側のナビゲーションペインから統合に移動します。

  3. Amazon S3セクションで、+ 統合をクリックします。

  4. 表示されるダイアログボックスで、基本設定を構成します:

    • 統合名:この統合の一意の名前(例:integration_0819)。

    • 統合の説明(オプション):この統合の説明(例:for export backupfile)。

  5. 次へをクリックします。Amazon S3バケットの作成ステップにリダイレクトされます:

    1. Zilliz Cloudクラスター リージョンフィールドで、Zilliz Cloudクラスターが存在するクラウドリージョンを選択します。後で作成するバケットは、Zilliz Cloudクラスターと同じリージョンにある必要があります。

    2. S3コンソールを開き、ステップ2に進みます。

ステップ2:AWSコンソールでS3バケットを作成

  1. Amazon S3コンソールの右上隅で、Zilliz Cloudクラスターのリージョンと一致するAWSリージョンを選択します。

    📘ノート
    • バケットを作成するAWSリージョンは、Zilliz Cloudクラスターが存在するリージョンと一致している必要があります。Zilliz Cloudがサポートするリージョンについては、クラウドプロバイダーとリージョンを参照してください。

    • 異なるリージョンで実行されているクラスターについては、各リージョンに個別の統合を作成し、バックアップファイルまたは監査ログが適切にエクスポートされるようにします。

  2. 左側のナビゲーションペインで、汎用バケットを選択し、バケットの作成をクリックします。

  3. バケット設定を構成します:

    1. バケットタイプで、汎用を選択します。

    2. バケット名には、バケットの名前を入力します(例:zilliz-bucket-for-integration-0819)。このバケット名を覚えておいてください。今後のステップで必要になります。

    3. 他の設定はデフォルトのままにして、バケットの作成をクリックします。

    詳細については、バケットの作成を参照してください。

バケットが作成されたら、Zilliz Cloudコンソールに戻り、以下のことを行ってください:

  1. バケット名フィールドに、 vừa作成したバケットの名前を入力します(この例ではzilliz-bucket-for-integration-0819)。次に、次へをクリックします。

  2. IAMポリシーの作成ステップで、JSONポリシーをコピーします。これはステップ3で必要になります。

  3. 完了したら、IAMコンソールを開き、ステップ3に進みます。

ステップ3:AWSコンソールでIAMポリシーを作成

Zilliz CloudがAWS S3にアクセスできるようにするには、IAMポリシーを作成します。このポリシーには、Zilliz CloudとS3バケット間でバックアップファイルを転送するために必要な特定のアクションとリソースが含まれている必要があります。

簡単にするために、JSONエディターを使用してポリシーを作成します。

  1. IAMコンソールで、ポリシー > ポリシーの作成を選択します。

  2. ポリシー エディターセクションで、JSONオプションを選択します。

  3. Zilliz Cloudで提供されたJSONポリシードキュメントをポリシー エディターにコピーして貼り付けます。次に、次へをクリックします。

    以下はJSONポリシードキュメントのサンプルです。統合に合わせた正確なポリシーについては、Zilliz CloudコンソールのIAMポリシーの作成ステップを参照してください。

    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Sid": "Statement1",
    "Effect": "Allow",
    "Action": [
    "s3:GetObject",
    "s3:PutObject",
    "s3:ListBucket",
    "s3:GetBucketLocation"
    ],
    "Resource": [
    "arn:aws:s3:::<bucket>",
    "arn:aws:s3:::<bucket>/*"
    ]
    }
    ]
    }

    ただし、AWS KMSを使用してバケットでサーバー側暗号化を有効にしている場合は、kms:GenerateDataKeyアクションを許可する別のIAMポリシーを追加する必要があります。この場合、以下のJSONポリシーを使用してください。

    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Sid": "Statement1",
    "Effect": "Allow",
    "Action": [
    "s3:GetObject",
    "s3:PutObject",
    "s3:ListBucket",
    "s3:GetBucketLocation"
    ],
    "Resource": [
    "arn:aws:s3:::<bucket>",
    "arn:aws:s3:::<bucket>/*"
    ]
    },
    {
    "Sid": "AllowKMSGenerateDataKey",
    "Effect": "Allow",
    "Action": [
    "kms:GenerateDataKey"
    ],
    "Resource": "arn:aws:kms:<region>:<account_id>:key/<key_id>"
    }
    ]
    }
    📘ノート
    • <bucket>は、S3バケットの実際の名前に置き換えてください。

    • <region><account_id>、および<key_id>は、それぞれの実際の値に置き換えてください。詳細については、AWSドキュメントのキー識別子を参照してください。

  4. レビューと作成ページで、作成しているポリシーのポリシー名(例:zilliz-policy-for-integration-0819)と説明(オプション)を入力し、このポリシーで定義された権限を確認してください。ポリシー名を覚えておいてください。今後のステップで必要になります。

  5. ポリシーの作成を選択して、新しいポリシーを保存します。完了したら、ステップ4に進みます。

ステップ4:IAMロールを作成

AWSコンソールでIAMロールを作成する前に、Zilliz Cloudコンソールで以下のことを行ってください:

  1. Zilliz Cloudコンソールで、次へをクリックしてIAMロールの作成ステップに進みます。

  2. 信頼されたエンティティの選択で、JSONコンテンツをコピーし、IAMコンソールに移動します。

それが完了したら、IAMロールを作成するために以下のことを行ってください:

  1. IAMコンソールで、ロール > ロールの作成を選択します。

  2. カスタム信頼ポリシーロールタイプを選択します。

  3. カスタム信頼ポリシーセクションで、ロール用のカスタム信頼ポリシーをコピーして貼り付けます。次に、次へをクリックします。

    以下はJSON信頼ポリシーのサンプルです。統合に合わせた正確な信頼ポリシーについては、Zilliz CloudコンソールのIAMロールの作成ステップを参照してください。

    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Effect": "Allow",
    "Action": "sts:AssumeRole",
    "Principal": {
    "AWS": "965570967084"
    },
    "Condition": {
    "StringEquals": {
    "sts:ExternalId": "my-external-id"
    }
    }
    }
    ]
    }
    📘ノート

    965570967084my-external-idは、Zilliz Cloudコンソールのロールの作成ステップに表示される実際のAWSアカウントIDと外部IDに置き換えてください。

  4. 権限の追加ステップのアクセス許可ポリシーで、ステップ3で作成したポリシーを検索して選択し、アクセス許可を追加します。次に、次へをクリックします。

  5. 名前、レビュー、および作成ステップで、ロール名(例:zilliz-integration-role-0819)を入力し、設定を確認します。次に、ロールの作成をクリックします。

  6. 作成されたロールの詳細ページに移動し、ロールに対応するARNをコピーします。これは、ステップ5のZilliz Cloudコンソールで必要になります。

ステップ5:統合の検証と追加

  1. Zilliz CloudコンソールIAMロールの作成ステップで、前のステップでIAMコンソールからコピーしたARNを貼り付けます。

  2. 次に、統合の検証をクリックして、S3バケットとIAMロールの設定を確認します。

  3. ステータスが成功に変わったら、統合は正常に動作しています。次に、追加をクリックします。

これで、この統合を使用してバックアップファイルをエクスポートしたり、監査ログをAmazon S3バケットに転送したりできるようになりました。詳細については、バックアップファイルのエクスポートまたは監査ログを参照してください。

統合の管理

統合が追加されると、その詳細を表示したり、必要に応じて統合を削除したりできます。

YODhb5leToWLsjxGRrpcyuZNnPb

統合IDの取得

RESTful APIを使用してZilliz Cloudと統合されたAWS S3バケットのいずれかにバックアップファイルをエクスポートする必要がある場合は、詳細の表示をクリックして統合の詳細を表示し、統合IDをコピーしてください。

トラブルシューティング

統合プロセス中に問題が発生した場合は、以下に示す一般的なエラーメッセージとその解決策を参考にしてください。

バケットリージョンの不一致

説明:S3バケットのリージョンがZilliz Cloudクラスターのリージョンと一致しない場合、以下の例のようなエラーが発生します。

"bucket region not match, want[us-west-1] got[us-west-2]"

解決策

  • S3バケットが存在するAWSリージョンが、Zilliz Cloudクラスターのリージョンと一致していることを確認します。

  • 必要に応じて、正しいリージョンに新しいバケットを作成するか、バケットのリージョンに合わせてクラスターのリージョンを調整してください。

バケットが見つからない

説明:指定されたS3バケットが存在しないか、バケット名が間違っている場合にこのエラーが発生します。

check bucket failed: get bucket location: operation error S3: GetBucketLocation, https response error StatusCode: 404, RequestID: ..., HostID: ..., api error NoSuchBucket: The specified bucket does not exis

解決策

  • Zilliz CloudコンソールとAWS S3コンソールの両方でバケット名を再確認してください。

  • バケットが存在し、Zilliz Cloud構成に正しく入力されていることを確認してください。

バケットの場所へのアクセスが拒否された

説明:IAMロールにS3バケットの場所にアクセスするための必要な権限がない場合にこのエラーが発生します。

check bucket failed: get bucket location: operation error S3: GetBucketLocation, https response error StatusCode: 403 ...

解決策

  • Zilliz Cloudが使用しているロールにアタッチされたIAMポリシーを確認してください。

  • ポリシーにs3:GetBucketLocation権限とその他必要な権限(例:s3:GetObjects3:PutObjects3:ListBucket)が含まれていることを確認してください。

ロールの想定に失敗

説明:ロールARN、外部ID、または信頼ポリシーが正しくない場合、IAMロールの想定に問題が発生します。

try assume role from[zilliz-role] to [arn:aws:iam::041623484421:role/testoss121703] with externalId[zilliz-external-1umVCIK7q96kzDE] failed

解決策

  • Zilliz CloudコンソールのロールARNと外部IDがIAM信頼ポリシーの対応する値と一致していることを確認してください。

  • IAMロールの信頼ポリシーがZilliz Cloudがロールを想定できるようにしていることを確認してください。