複数のユーザーがローカルファイルにアクセスするときに異なるデバイスを使用して、異なる場所にあるObject Storage Service (OSS) バケットのデータにアクセスできるようにするには、Cloud Storage Gateway (CSG) を使用してOSSバケットをElastic Compute Service (ECS) インスタンスにアタッチし、バケットをローカルディレクトリにマッピングします。 これにより、ローカルファイルの管理やオブジェクトの共有と同じ方法でOSSオブジェクトを管理できます。
前提条件
CSGが有効化され、OSS、ECS、およびVirtual Private Cloud (VPC) へのアクセス権限が付与されます。 CSGを有効にするには、CSGコンソールに移動します。
ECSインスタンスにアタッチするバケットは、中国 (杭州) 、中国 (上海) 、中国 (青島) 、中国 (北京) 、中国 (張家口) 、中国 (フフホト) 、中国 (ウランカブ) 、中国 (深セン) 、中国 (河原) 、中国 (香港) 、シンガポールのいずれかのリージョンにある必要があります。マレーシア (クアラルンプール) 、インドネシア (ジャカルタ) 、日本 (東京) 、ドイツ (フランクフルト) 、米国 (シリコンバレー) 、米国 (バージニア) 。
VPCとvSwitchは、アタッチするバケットと同じリージョンに作成されます。 詳細については、「VPCの作成と管理」および「vSwitchの作成と管理」をご参照ください。
ECSインスタンスは、アタッチするバケットと同じリージョンに作成されます。 ECSインスタンスの作成方法の詳細については、「ECSコンソール (エクスプレスバージョン) を使用したECSインスタンスの作成と管理」をご参照ください。
使用上の注意
CSGを使用してバケットをECSインスタンスにアタッチした後は、アーカイブ、コールドアーカイブ、およびディープコールドアーカイブオブジェクトをバケットにアップロードしないことを推奨します。
CSGを使用してECSインスタンスにアタッチしたバケットにオブジェクトをアップロードすると、CSGはCopyObject操作を呼び出してオブジェクトメタデータを変更し、オブジェクトの最終変更時刻を設定します。 CopyObject操作中にアーカイブ、コールドアーカイブ、またはディープコールドアーカイブのオブジェクトを復元する必要があります。これは時間がかかり、アップロードの効率に影響します。 さらに、キャッシュディスク内のデータがタイムリーにアップロードされないため、オブジェクトのアップロードに失敗する可能性があります。 オブジェクトのアップロード後に長期間オブジェクトを変更する必要がない場合は、ストレージクラスを標準または低頻度アクセス (IA) に設定し、オブジェクトをアップロードしてから、ライフサイクルルールを設定してストレージクラスをアーカイブ、コールドアーカイブ、またはディープコールドアーカイブに変更できます。 詳細については、「最終変更時刻に基づくライフサイクルルール」をご参照ください。
CSGを使用してOSSにアクセスする場合、ゲートウェイの仕様、キャッシュタイプ、およびパブリック帯域幅に基づいて課金されます。 ストレージ料金とAPI操作呼び出し料金も請求されます。 詳細については、「課金」をご参照ください。
ステップ1: CSGの設定
OSSコンソールにログインします。
左側のナビゲーションウィンドウで、バケットリスト をクリックします。 [バケット] ページで、目的のバケットを見つけてクリックします。
左側のナビゲーションツリーで、 を選択します。 表示されるページで、構成クラウドストレージゲートウェイ をクリックします。
[ゲートウェイの作成] ダイアログボックスの基本情報ステップで、次のパラメーターを設定し、次へをクリックします。
パラメーター
説明
エディション
ゲートウェイの仕様を選択します。 これは、アタッチするバケットの容量と、バケットとECSインスタンス間のデータ転送に必要な帯域幅によって異なります。
たとえば、バケットに格納されているオブジェクトが1,000万個以下で、バケットの容量が64テラバイトを超えず、必要な帯域幅が1 Gbit/sを超えない場合、[Basic] を選択します。 詳細については、「ファイルゲートウェイ」をご参照ください。
[VPC]
バケットをアタッチするECSインスタンスが存在するVPCを選択します。
VSwitch
アタッチするバケットが存在するECSインスタンスが存在するVPCのvSwitchを選択します。
設定プロトコルステップで、以下のパラメータを設定し、次へをクリックします。
パラメーター
説明
名前
作成するゲートウェイの名前を入力します。
名前は最大60文字で、英数字、
ピリオド (.) 、アンダースコア (_) 、およびハイフン (-)
を使用できます。 先頭は文字である必要があります。サブディレクトリ
CSGを使用してバケットのサブディレクトリをファイルシステムとしてECSインスタンスにアタッチする場合は、バケット名 の横にある [サブディレクトリ] を選択し、サブディレクトリ名を入力します。
プロトコル
ファイルゲートウェイで使用されるプロトコルを選択します。
NFS: Linuxシステムに適用できます。
SMB: Windowsシステムに適用されます。
共有名
接続されたバケットへのアクセスに使用するネットワーク共有の名前を指定します。
ネットワーク共有名には、英数字、
ピリオド (.) 、アンダースコア (_) 、およびハイフン (-)
のみを使用できます。 先頭は英字とする必要があります。 名前の長さは最大32文字です。ユーザーマッピング
NFSクライアントからアタッチされたバケットにアクセスするために使用されるユーザーを指定します。 このパラメーターは、[プロトコルタイプ] が [NFS] に設定されている場合にのみ設定できます。 有効な値:
none: NFSクライアント上のすべてのユーザーが、接続されたバケットへのアクセスに直接使用されます。
root_squash: NFSクライアントのrootユーザーは、接続されたバケットにアクセスするために、NFSサーバーのnfsnobodyユーザーにマップされます。
all_squashおよびall_anonymous: NFSクライアント上のすべてのユーザーは、接続されたバケットにアクセスするために、NFSサーバー上のnfsnobodyユーザーにマップされます。
CSGを使用してバケットがECSインスタンスにアタッチされると、すべてのユーザーがバケット内のオブジェクトに対する読み取り、書き込み、および実行権限を持ちます。 要件に基づいて、次のいずれかの方法でユーザーマッピングを設定できます。
接続されたバケット内のオブジェクトのアクセス許可を管理する場合は、[ユーザーマッピング] を [なし] に設定し、ルートユーザーとしてアクセス許可を管理します。 詳細については、「手順3 :( オプション) オブジェクトのアクセス許可の設定」をご参照ください。
接続されたバケット内のオブジェクトに対するアクセス許可を管理する必要がない場合は、ユーザーマッピングをnone以外の値に設定します。
逆同期
接続されたバケット内のオブジェクトのメタデータをゲートウェイのキャッシュディスクに同期するかどうかを選択します。 [逆同期] を [はい] に設定すると、ゲートウェイとOSSバケット間のデータの整合性が確保されます。
[逆同期] を [はい] に設定した場合、[逆同期間隔] を指定する必要があります。
重要逆同期間隔は、2つの連続する逆同期タスクが実行される間隔を指定します。 有効な値: [15, 36000] 。 単位は秒です。 [逆同期] を [はい] に設定すると、キャッシュディスクのパフォーマンスが低下する可能性があります。 逆方向同期間隔を300より小さい値に設定しないことを推奨します。
逆同期を有効にすると、添付されたバケット内のすべてのオブジェクトがスキャンされ、API操作呼び出し料金が課金されます。 詳細については、「API 操作呼び出し料金」をご参照ください。
キャッシュディスクタイプ
キャッシュディスクのタイプを選択します。 有効な値: Ultra Disk、Standard SSD、およびESSDクラウドディスクPL1。 サポートされるキャッシュディスクタイプは、ECSインスタンスが存在するリージョンによって異なる場合があります。 ビジネス要件に基づいてキャッシュディスクタイプを選択します。
キャッシュ容量
データキャッシュの容量を選択します。 (単位:GB) 有効な値: [100, 32768] 。
データアクセスのパフォーマンスを確保するために、CSGは、ホットデータをキャッシュするために、このパラメーターで指定されたサイズに相当するECSインスタンスのストレージスペースを予約します。
[課金情報] ステップで、[Cloud Storage Gateway Service Agreement] および [OSSサービスはCSGサービスから独立しています] を選択します。 OSSバケットを削除すると、バケットに関連付けられているゲートウェイはリリースされません。 ゲートウェイを使用しなくなった場合は、CSGコンソールに移動してゲートウェイをリリースします。"、完了 をクリックします。
デフォルトでは、従量課金ゲートウェイが作成されます。 ゲートウェイの課金方法をサブスクリプションに変更することができます。 詳細については、「課金方法を従量課金からサブスクリプションに切り替える」をご参照ください。
ステップ2: バケットのアタッチとアクセス
ゲートウェイを購入した後、バケットをECSインスタンスにアタッチできます。 次の手順では、NFSプロトコルを使用するファイルゲートウェイを使用してバケットをアタッチします。 SMBプロトコルを使用してバケットをアタッチするゲートウェイを使用するには、「SMB共有へのアクセス」をご参照ください。
左側のナビゲーションツリーで、を選択します。
ゲートウェイのリストで、サーバーマウントターゲット使用するゲートウェイに対応する列。
バケットをアタッチするECSインスタンスにログインします。 ECSインスタンスはLinuxシステムを実行しており、ゲートウェイと同じリージョンにあります。
詳細については、「VNCを使用したインスタンスへの接続」をご参照ください。
NFSコマンドを実行して、バケットをECSインスタンスにアタッチします。
たとえば、Server Mount Targetの値が
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クライアントにログオンします。
接続されたバケット内のオブジェクトに対するアクセス許可を設定します。
たとえば、次の手順を実行して、example.txtという名前のオブジェクトに対する読み取り専用権限をnfsnobodyユーザーに付与できます。 デフォルトでは、nfsnobodyユーザーのUIDとGIDはどちらも
429496 ****
です。次のコマンドを実行して、example.txtに関連付けられているユーザーグループをnfsnobodyユーザーグループに変更します。
chgrp -R 429496**** example.txt
次のコマンドを実行して、example.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コンソールに移動してタイムリーに削除してください。