複数のユーザーが異なる場所から異なるデバイスを使用して Object Storage Service (OSS) バケット内のデータにローカルファイルにアクセスするのと同じようにアクセスできるようにするには、Cloud Storage Gateway (CSG) を使用して OSS バケットを Elastic Compute Service (ECS) インスタンスにアタッチし、バケットをローカルディレクトリにマッピングします。このようにして、ローカルファイルを管理するのと同じ方法で OSS オブジェクトを管理し、オブジェクトを共有できます。
前提条件
CSG がアクティブ化されており、OSS、ECS、および Virtual Private Cloud (VPC) へのアクセス権限が付与されていること。CSG コンソールに移動して、CSG をアクティブ化します。
Cloud Storage Gateway サービスは、特定のリージョンでのみサポートされています。
アタッチするバケットと同じリージョンに VPC と vSwitch が作成されていること。詳細については、「VPC の作成と管理」と「vSwitch の作成と管理」をご参照ください。
アタッチするバケットと同じリージョンに ECS インスタンスが作成されていること。ECS インスタンスの作成方法の詳細については、「ECS コンソール (エクスプレスバージョン) を使用した ECS インスタンスの作成と管理」をご参照ください。
使用上の注意
CSG を使用してバケットを ECS インスタンスにアタッチした後、アーカイブ、コールドアーカイブ、およびディープコールドアーカイブオブジェクトをバケットにアップロードしないことをお勧めします。
CSG を使用して ECS インスタンスにアタッチしたバケットにオブジェクトをアップロードすると、CSG は CopyObject 操作を呼び出してオブジェクトメタデータを変更し、オブジェクトの最終更新時刻を設定します。アーカイブ、コールドアーカイブ、またはディープコールドアーカイブオブジェクトは、CopyObject 操作中にリストアする必要があります。これは時間がかかり、アップロード効率に影響します。さらに、オブジェクトのアップロードに失敗する可能性があります。アップロード後に長期間オブジェクトを変更する必要がない場合は、ストレージクラスを標準または低頻アクセス (IA) に設定し、オブジェクトをアップロードしてから、ライフサイクルルールを設定してストレージクラスをアーカイブ、コールドアーカイブ、またはディープコールドアーカイブに変更できます。詳細については、「最終更新時刻に基づくライフサイクルルール」をご参照ください。
CSG を使用して OSS にアクセスする場合、ゲートウェイの仕様、キャッシュタイプ、およびパブリック帯域幅に基づいて課金されます。また、ストレージ料金と API 操作呼び出し料金も課金されます。詳細については、「課金」をご参照ください。
ステップ 1: CSG を設定する
OSS コンソールにログインします。
左側のナビゲーションウィンドウで、バケット をクリックします。[バケット] ページで、目的のバケットを見つけてクリックします。
左側のナビゲーションツリーで、 を選択します。表示されるページで、ゲートウェイの設定 をクリックします。
[基本情報] ステップで、次のパラメータを設定し、次へ をクリックします。
パラメータ
説明
[エディション]
アタッチするバケットの容量とデータ転送に必要な帯域幅に基づいて、ゲートウェイの仕様を選択します。詳細については、「ファイルゲートウェイ」をご参照ください。
[VPC]
バケットをアタッチする ECS インスタンスが存在する VPC を選択します。
[vSwitch]
アタッチするバケットが存在する ECS インスタンスがある VPC 内の vSwitch を選択します。
[プロトコルの設定] ステップで、次のパラメータを設定し、次へ をクリックします。
パラメータ
説明
名前
ゲートウェイの名前を指定します。名前は 60 文字以内で、文字、数字、アンダースコア (_)、ハイフン (-)、およびピリオド (.) を使用できます。文字で始める必要があります。
[サブディレクトリ]
CSG を使用してバケットのサブディレクトリをファイルシステムとして ECS インスタンスにアタッチする場合は、バケット名 の横にある [サブディレクトリ] を選択し、サブディレクトリ名を入力します。
[プロトコル]
ファイルゲートウェイで使用されるプロトコルを選択します。
[NFS]: Linux システムに適用可能。
[SMB]: Windows システムに適用可能。
[共有名]
アタッチされたバケットにアクセスするために使用されるネットワーク共有名を指定します。
ネットワーク共有名には、文字、数字、
ピリオド (.)、アンダースコア (_)、およびハイフン (-)のみを含めることができます。名前は文字で始める必要があります。名前は最大 32 文字までです。[ユーザーマッピング]
NFS クライアントからアタッチされたバケットにアクセスするために使用されるユーザーを指定します。このパラメータは、[プロトコル] が [NFS] に設定されている場合にのみ設定できます。有効な値:
none: NFS クライアントユーザーは、NFS サーバーの nobody ユーザーにマッピングされません。
root_squash: root ID を使用する NFS クライアントは、NFS サーバーの nobody ユーザーにマッピングされます。
all_squash: クライアントが使用する ID に関係なく、NFS クライアントは NFS サーバーの nobody ユーザーにマッピングされます。
all_anonymous: クライアントが使用する ID に関係なく、NFS クライアントは NFS サーバーの匿名ユーザーにマッピングされます。
説明CSG を使用してバケットを ECS インスタンスにアタッチした後、すべてのユーザーはバケット内のオブジェクトに対する読み取り、書き込み、および実行権限を持ちます。要件に基づいて、次のいずれかの方法で [ユーザーマッピング] を設定できます。
アタッチされたバケット内のオブジェクトへのアクセス権限を管理する場合は、[ユーザーマッピング] を [none] に設定してから、root ユーザーとしてアクセス権限を管理します。詳細については、「ステップ 3: (オプション) オブジェクトのアクセス権限を設定する」をご参照ください。
アタッチされたバケット内のオブジェクトへのアクセス権限を管理する必要がない場合は、[ユーザーマッピング] を none 以外の値に設定します。
[リバース同期]
OSS バケットからゲートウェイのキャッシュディスクにメタデータを同期して、OSS バケットとゲートウェイキャッシュ間の一貫性を維持します。
[リバース同期間隔] を最小値 15 秒、最大値 36,000 秒で設定します。間隔を 3,600 秒以上に設定することをお勧めします。
重要[リバース同期] を有効にすると、アタッチされたバケット内のすべてのオブジェクトがスキャンされ、API 操作呼び出し料金が発生します。詳細については、「API 操作呼び出し料金」をご参照ください。
[キャッシュディスクタイプ]
キャッシュディスクのタイプを選択します。有効な値: ウルトラディスク、標準 SSD、および ESSD クラウドディスク。サポートされているキャッシュディスクタイプは、ECS インスタンスが存在するリージョンによって異なる場合があります。ビジネス要件に基づいてキャッシュディスクタイプを選択します。
[キャッシュ容量]
データキャッシュの容量を選択します。単位: GB。有効な値: [100, 32768]。
データアクセス パフォーマンスを確保するために、CSG はこのパラメータで指定されたサイズに相当する ECS インスタンスのストレージスペースを予約して、ホットデータをキャッシュします。
[課金情報] ステップで、[Cloud Storage Gateway サービス契約] と「OSS サービスは CSG サービスとは独立しています。OSS バケットを削除しても、バケットに関連付けられているゲートウェイは解放されません。ゲートウェイを使用しなくなった場合は、CSG コンソールに移動してゲートウェイを解放してください。」を選択し、完了 をクリックします。
説明デフォルトでは、従量課金ゲートウェイが作成されます。ゲートウェイの課金方法をサブスクリプションに変更できます。これはより費用対効果が高くなります。詳細については、「従量課金からサブスクリプションへの課金方法の切り替え」をご参照ください。
ステップ 2: バケットをアタッチしてアクセスする
ゲートウェイを購入した後、バケットを ECS インスタンスにアタッチできます。次の手順では、NFS プロトコルを使用するファイルゲートウェイを使用してバケットをアタッチします。SMB プロトコルを使用するゲートウェイを使用してバケットをアタッチするには、「SMB 共有へのアクセス」をご参照ください。
左側のナビゲーションツリーで、 を選択します。
ゲートウェイリストで、使用するゲートウェイに対応する [サーバーマウントターゲット] 列の値を確認します。
バケットをアタッチする ECS インスタンスにログインします。ECS インスタンスは Linux システムを実行し、ゲートウェイと同じリージョンにあります。 詳細については、「VNC を使用してインスタンスに接続する」をご参照ください。
NFS コマンドを実行して、バケットを ECS インスタンスにアタッチします。
たとえば、[サーバーマウントターゲット] の値が
172.16.0.2:/testで、バケットがアタッチされるローカルパスが/mnt/nfs/の場合、次のコマンドを実行してバケットを ECS インスタンスにアタッチできます。mount.nfs 172.16.0.2:/test /mnt/nfs/アタッチされたバケットにアクセスします。
次の例は、NFS コマンドを使用してアタッチされたバケットにアクセスする方法を示しています。例:
マウントされたバケットのルートディレクトリにあるオブジェクトを一覧表示します。
ls mnt/nfs/アタッチされたバケットのルートディレクトリから example.txt という名前のオブジェクトをローカルのルートディレクトリにダウンロードします。
cp mnt/nfs/example.txt example.txt
ステップ 3: (オプション) オブジェクトのアクセス権限を設定する
root ユーザーとして NFS クライアントにログインします。
アタッチされたバケット内のオブジェクトのアクセス権限を設定します。
たとえば、nfsnobody ユーザーに example.txt という名前のオブジェクトに対する読み取り専用権限を付与するには、次の手順を実行します。 デフォルトでは、nfsnobody ユーザーの UID と GID は両方とも
429496****です。example.txt に関連付けられているユーザーグループを nfsnobody ユーザーグループに変更します。
chgrp -R 429496**** example.txtexample.txt に対する読み取り専用権限を nfsnobody ユーザーグループに付与します。
chmod 444 example.txt
説明アタッチされたバケット内のオブジェクトのアクセス権限を設定した後、[ユーザーマッピング] の値を [root_squash]、[all_squash]、または [all_anomnymous] に変更して、root ユーザーの権限を制限することをお勧めします。
オプション: [ユーザーマッピング] の値を変更します。
にログインします。
左側のナビゲーションウィンドウで、[ゲートウェイ] をクリックします。次に、バケットを ECS インスタンスにアタッチするために使用されるゲートウェイをクリックします。
ゲートウェイの [アクション] 列の [設定] をクリックします。
[NFS 共有設定] ダイアログボックスで、要件に基づいて [ユーザーマッピング] の値を変更します。
[OK] をクリックします。
よくある質問
CSG を使用した OSS のアタッチと ossfs を使用した OSS のアタッチの違いは何ですか?
CSG を使用して OSS をアタッチするパフォーマンスは、ossfs を使用して OSS をアタッチするよりも優れています。 ossfs は、高い同時実行性と大きなオブジェクトのアップロードとダウンロードには適していません。 ossfs は、小さなオブジェクトの管理に適しています。詳細については、「ossfs」をご参照ください。
ゲートウェイを使用してアタッチされたバケットを削除すると、ゲートウェイは解放されますか?
いいえ、ゲートウェイは解放されません。ゲートウェイを使用する必要がなくなった場合は、CSG コンソールに移動して、不要な料金が発生しないようにタイムリーに削除してください。