AWS Storage Gateway(File Gateway)を使って大容量ディスクをマウントする方法
社内のドキュメントの保管をオンプレミスのファイルサーバを使用していた場合、容量がだんだん枯渇してしまうことがあります。ディスクを追加できれば良いのですが、そう簡単に個人の判断でディスクを調達したり、稼働中のサーバのリソースを変更することは難しいと思います。そこで、AWSのS3をファイルサーバ代わりに使う方法をご紹介します。
具体的な内容に入る前に、最初に言及しますが、この方法における費用面について、容量のS3の従量課金に加え、StorageGatewayに使用するEC2インスタンスに費用がかかります。AWSの推奨スペック通りで半日稼働(12時間/日)とすると、約7,000円~8,000円程度です。(S3容量は別)
よって、ある程度の人数で共同利用されるには良いと思いますが、個人利用では費用対効果が薄いかもしれません。(個人利用の場合は、OneDriveやGoogleDriveを検討したほうが良いかも。)
S3バケットを作成しよう
何はともあれまずはS3バケットを準備しましょう。
S3バケットの作成そのものは簡単で、Webコンソールから数分で完了します。
S3をサービスから選択し、トップ画面から「バケットの作成」を押下します。
![S3バケットを作成しよう(1)](https://tktech-blog.com/wp-content/uploads/2023/02/Screenshot-2023-02-23-at-20-40-05-S3-Management-Console-1024x617.png)
バケットを作成の画面にて、バケット名に任意の名前を入力し、その他はデフォルトのままで良いです。入力がすべて完了したら画面下部の「バケットを作成」を押下します。
![S3バケットを作成しよう(2)](https://tktech-blog.com/wp-content/uploads/2023/02/Screenshot-2023-02-23-at-20-44-55-S3-bucket-1024x617.png)
※ご参考 バケット名:(任意) AWSリージョン:(任意) ACL無効(推奨) パブリックアクセスをすべてブロック バケットのバージョニング:無効にする タグ:(任意) 暗号化キータイプ:Amazon S3 マネージドキー (SSE-S3) バケットキー:有効にする 詳細設定 オブジェクトロック:無効にする
S3バケットの準備が整いました。
![S3バケットを作成しよう(3)](https://tktech-blog.com/wp-content/uploads/2023/02/Screenshot-2023-02-23-at-20-59-15-S3-Management-Console-1024x617.png)
Storage Gatewayを設定しよう
次に、先ほど作成したS3バケットに接続するための”入り口”を作成します。
これがStorageGatewayの「File Gateway」という機能です。
Webコンソールの検索窓に”Storage”等の文言で検索すると「Storage Gateway」が表示されます。
Storage Gatewayのトップ画面から「ゲートウェイの作成」を押下します。
![Storage Gatewayを設定しよう(1)](https://tktech-blog.com/wp-content/uploads/2023/02/Screenshot-2023-02-23-at-21-27-51-AWS-Storage-Gateway-1024x609.png)
ゲートウェイのセットアップ画面です。
この画面で何をするかというと、ゲートウェイの名前と種類(今回は「ファイルゲートウェイ」)の定義に加え、このゲートウェイを稼働させるEC2インスタンスを作成することになります。
EC2インスタンスの作成は、何でもよいという訳ではなく、このファイルゲートウェイを稼働させるに見合う”推奨スペック”というものがあります。これはm5.xlargeのインスタンスで、EBSは150Gibが相当します。冒頭で費用面について少し言及しましたが、費用がかかるのは主にこの部分です。EBSは何に使用するかというと”キャッシュ”です。データはS3に保管されることになりますが、S3へのアクセスはどちらかというと低速になりますので、それを補う為、ローカルのエリアにキャッシュのEBSを配置し、繰り返し使用するデータへのアクセスを補助しています。当然、このEC2インスタンスを停止状態にするとS3への”入り口”がなくなってしまう為、S3へのアクセスができなくなってしまいます。
使用しない時間帯はEC2インスタンスを停止状態にするかSavingPlanを検討する等でコスト改善は可能です。
![Storage Gatewayを設定しよう(2)](https://tktech-blog.com/wp-content/uploads/2023/02/Screenshot-2023-02-23-at-21-35-13-ゲートウェイの作成-AWS-Storage-Gateway-1024x609.png)
ゲートウェイタイプは「AmazonS3ファイルゲートウェイ」を選択します。
プラットフォームオプションで「Amazon EC2」を選び、EC2インスタンスの起動は「デフォルト設定を使用」を選びます。(「設定をカスタマイズ」を選択した場合、任意のEC2インスタンス構成で作成できます。)
![Storage Gatewayを設定しよう(3)](https://tktech-blog.com/wp-content/uploads/2023/02/Screenshot-2023-02-23-at-21-36-53-ゲートウェイの作成-AWS-Storage-Gateway-1024x609.png)
EC2インスタンスを配置するVPCとサブネットを選択します。キーペアも作成しましょう。
入力完了後、左下の「インスタンスの起動」を押下し、インスタンスが起動したら「次へ」を押下します。
![Storage Gatewayを設定しよう(4)](https://tktech-blog.com/wp-content/uploads/2023/02/Screenshot-2023-02-23-at-21-39-29-ゲートウェイの作成-AWS-Storage-Gateway-1024x609.png)
![Storage Gatewayを設定しよう(5)](https://tktech-blog.com/wp-content/uploads/2023/02/Screenshot-2023-02-23-at-22-07-34-ゲートウェイの作成-AWS-Storage-Gateway-1024x609.png)
AWSに接続の画面になります。デフォルトのままで問題ありませんが、IPアドレスに先ほどStorageGateway用に作成したパブリックIPが入力されていることを確認してください。
画面左下の「次へ」を押下します。
![Storage Gatewayを設定しよう(6)](https://tktech-blog.com/wp-content/uploads/2023/02/Screenshot-2023-02-23-at-22-09-39-ゲートウェイの作成-AWS-Storage-Gateway-1024x609.png)
確認およびアクティブ化の画面になります。設定内容の確認のみになりますので、「次へ」を押下します。(ゲートウェイが使用可能となるアクティブ化が行われます。)
![Storage Gatewayを設定しよう(7)](https://tktech-blog.com/wp-content/uploads/2023/02/Screenshot-2023-02-23-at-22-11-44-ゲートウェイの作成-AWS-Storage-Gateway-1024x609.png)
ゲートウェイのアクティブ化が行われました。最後にCloudWatchロググループとアラームの設定を行います。今回は練習の為、CloudWatchロググループの設定を非アクティブ化としましたが、本運用では「新しいロググループを作成」にしてログ記録を行うべきです。
入力完了後、画面右下の「設定」を押下します。
![Storage Gatewayを設定しよう(8)](https://tktech-blog.com/wp-content/uploads/2023/02/Screenshot-2023-02-23-at-22-15-20-ゲートウェイの作成-AWS-Storage-Gateway-1024x609.png)
![Storage Gatewayを設定しよう(9)](https://tktech-blog.com/wp-content/uploads/2023/02/Screenshot-2023-02-23-at-22-17-32-ゲートウェイの作成-AWS-Storage-Gateway-1024x609.png)
ゲートウェイが作成されました。
ファイル共有の設定でS3バケットとの紐付けを行う
「ファイル共有の作成」を押下し、最初に作成したS3バケットとの紐付けを行います。
![ファイル共有の設定でS3バケットとの紐付けを行う(1)](https://tktech-blog.com/wp-content/uploads/2023/02/Screenshot-2023-02-23-at-22-19-04-ゲートウェイ-AWS-Storage-Gateway-1024x609.png)
ファイル共有の作成画面です。
ゲートウェイは先に作成したゲートウェイの名前を選択します。
ファイル共有タイプは、クライアントがWindowsであれば「SMB」を選択します。
(クライアントがLinuxやMacOSであれば「NFS」を選択します。)
S3バケットも最初に作成したバケットの名前を選択しましょう。
ユーザー認証は今回は「ゲストアクセス」とします。
※ADを導入されていればAD認証を選択しても問題ありません。
![ファイル共有の設定でS3バケットとの紐付けを行う(2)](https://tktech-blog.com/wp-content/uploads/2023/02/Screenshot-2023-02-23-at-22-21-26-ファイル共有の作成-AWS-Storage-Gateway-1024x716.png)
ゲストアクセスに使用するゲストパスワードを決めます。
任意のパスワードを入力後、「保存」を押下します。
![ファイル共有の設定でS3バケットとの紐付けを行う(3)](https://tktech-blog.com/wp-content/uploads/2023/02/Screenshot-2023-02-23-at-22-23-42-ファイル共有の作成-AWS-Storage-Gateway-1024x609.png)
これでファイル共有の設定が完了しました。
画面の一番下に”コマンドの例”というのがあります。これをコピーしてください。
![ファイル共有の設定でS3バケットとの紐付けを行う(4)](https://tktech-blog.com/wp-content/uploads/2023/02/Screenshot-2023-02-23-at-22-26-54-ファイル共有の詳細-AWS-Storage-Gateway-1-1024x716.png)
コマンドは以下のような内容になります。[WindowsDriveLetter]の箇所は任意の空きドライブに変更してください。
■変更前コマンド net use [WindowsDriveLetter]: \\XX.XX.XX.XX\sample-bucket-20230223 /user:sgw-XXXXXXXX\smbguest
■変更後コマンド net use D: \\XX.XX.XX.XX\sample-bucket-20230223 /user:sgw-XXXXXXXX\smbguest (例として「D」ドライブに割り当てを行います。)
後はこのコピーしたコマンド(変更後コマンド)を管理者権限でクライアントやサーバで実行するとドライブが追加されます。以下は、AWS上にWindowsサーバを用意し、もともと存在しないDドライブを作成する手順になります。
エクスプローラからDドライブが存在しないことを確認します。
![ファイル共有の設定でS3バケットとの紐付けを行う(5)](https://tktech-blog.com/wp-content/uploads/2023/02/タイトルなし11-1024x653.png)
先のコマンドをコマンドプロンプトから実行します。
パスワードが求めらるので、設定したゲストパスワードを入力しEnterを押下すると
接続に成功します。
![ファイル共有の設定でS3バケットとの紐付けを行う(6)](https://tktech-blog.com/wp-content/uploads/2023/02/タイトルなし23-1024x653.png)
Dドライブ(ネットワークドライブ)が作成されました。
![ファイル共有の設定でS3バケットとの紐付けを行う(7)](https://tktech-blog.com/wp-content/uploads/2023/02/タイトfffルなし-1-1024x653.png)
試しにテキストデータを置いてみます。
![ファイル共有の設定でS3バケットとの紐付けを行う(8)](https://tktech-blog.com/wp-content/uploads/2023/02/タイトルrrrrなし-1024x653.png)
AWSコンソールのS3バケットのページにデータが表示されました。
S3は重量課金となるので、保存したデータの容量に対し課金が行われます。
![ファイル共有の設定でS3バケットとの紐付けを行う(9)](https://tktech-blog.com/wp-content/uploads/2023/02/Screenshot-2023-02-23-at-22-52-45-sample-bucket-20230223-S3-bucket-1024x617.png)
今回は、AWS上のWindowsインスタンスから接続を行いましたが、もちろんWindows10やWindows11といったオンプレミス環境のクライアントからも接続が可能です。
ただし、クライアントからの接続には条件があり、それは「SMBダイレクト」というWindowsの機能が有効になっている必要があることです。見落としがちなところですが、この機能は残念ながらWindowsのHomeエディションには存在しないようです。(Windows Professionalに付帯)
この機能がない状態でコマンドを実行しても、ネットワークが見つからないというエラーが表示される為、Proへのアップグレードを検討する必要があります。
コメント