LoginSignup
2
3

More than 3 years have passed since last update.

Storage Gatewayを用いたEC2のS3マウント方法について

Last updated at Posted at 2020-03-08

1. 目的

Storage Gateway は、オンプレミスのサーバをAWSストレージと接続することを主目的としたサービスですが、EC2との接続も可能です。その実態は、Storage Gateway用にAWSが準備したAMIイメージをもつEC2インスタンスで、マウント元のEC2インスタンスとS3とを標準マウントプロトコルで仲介します。
接続元のEC2インスタンスのOSによって、マウントプロトコルが異なります。

  • Linuxクライアント: NFS バージョン 3 または 4.1 プロトコル
  • Windowsクライアント:SMB ファイルシステムのバージョン 2 および 3 のプロトコル

本投稿では、EC2(Linuxクライアント)をStorage Gatewayを介してNFSプロトコルでS3にマウントする設定する方法について解説します。

2. 前提

以下概念図が示す通り3つの構成要素が存在しますが、EC2インスタンスとS3の設定手順は本手順書では対象外となります。以下条件と満たすように、AWS公式ページから作成してください。

EC2インスタンス: S3にマウント先にもつLinuxサーバ。

  • Linux OSベースのAMIで作成されていること
  • マウント先のS3へアクセス可能なIAMロールがアタッチされていること

S3: マウント先のストレージ

  • StorageGWおよびEC2インスタンスからアクセス可能なIAMポリシが設定されていること

StorageGW: EC2インスタンスとS3を仲介するゲートウェイ。実態はEC2インスタンス。

20181121_StorageGateway_arch.png

3. Storage Gatewayの作成

3-1. Storage Gateway用EC2インスタンスの起動

Storage Gatewayを作成したいリージョンを選択して、「ゲートウェイの作成」を押下します。以下画面に遷移しますので、「ファイルゲートウェイ」を選択します。

スクリーンショット 2020-03-08 10.29.16.png

「Amazon EC2」を選択します。

スクリーンショット 2020-03-08 11.18.46.png

上記画面で、「インスタンスの起動」を押すと、Storage Gateway用のEC2インスタンスの作成画面に遷移します。一般的なEC2インスタンスと同様の要領で作成するのですが、以下注意事項があります。

AMIイメージ
Storage Gateway用のAMIイメージが選択されていることを確認します。

スクリーンショット 2020-03-08 11.23.09.png

インスタンスタイプ
Amazon EC2でゲートウェイをデプロイする場合、ゲートウェイが機能するためにはインスタンスサイズは少なくとも xlarge である必要があります。ただし、コンピューティング最適化インスタンスファミリーの場合は、サイズとして少なくとも 2xlarge が必要ですゲートウェイの種類に応じて次のインスタンスタイプのうち 1 つを使用することをお勧めします。

  • 汎用インスタンスファミリー — m4 または m5 インスタンスタイプ。
  • コンピューティング最適化インスタンスファミリー — c4 または c5 インスタンスタイプ。2xlarge 以上のインスタンスサイズを選択し、必要な RAM 要件を満たします。
  • メモリ最適化インスタンスファミリー — r3 インスタンスタイプ。
  • ストレージ最適化インスタンスファミリー — i3 インスタンスタイプ。

ストレージ
Storage Gatewayには、VM 用の 80 GiB 以外にもディスク領域が必要になります。次の表は、デプロイされるゲートウェイのローカルディスクストレージの推奨サイズを示しています。したがって、ファイルゲートウェイとしてのStorage Gatewayには、最低でも230GBの領域が必要であることを注意しなければなりません。

スクリーンショット 2020-03-08 11.32.32.png

上記仕様に従い、以下のようにストレージ設定画面で少なくとも150GiBのEBSをアタッチします。

スクリーンショット 2020-03-08 11.39.18.png

セキュリティグループ
Storage Gatewayのポート要件に記載の通り、インバウンドとアウトバウンドの通信許可を設定します。

上記事項を注意しパラメータの設定が完了したら、「起動」を押下してStorage Gateway用EC2インスタンスを起動します。

3-2. Storage Gatewayのアクティブ化

Storage Gateway用EC2インスタンスが起動したら設定しているWebブラウザから接続可能なIPアドレス(今回はパブリックIPアドレス)を入力して、「ゲートウェイに接続」を押下します。

スクリーンショット 2020-03-08 11.59.23.png

タイムゾーンとTagを編集して「ゲートウェイのアクティブ化」を押下すると、Storage Gatewayのアクティブ化が完了です。

スクリーンショット 2020-03-08 12.01.36.png

3-3. Storage Gatewayのストレージ割り当て

Storage Gatewayのアクティブ化が完了すると、「ステータス」欄に実行中の文字が表示されます。

スクリーンショット 2020-03-08 12.06.08.png

キャッシュ用にアタッチしたEBSを割り当てるとストレージ割り当てが完了します。

スクリーンショット 2020-03-08 12.07.55.png

4. マウントの設定

Storage Gatewayの設定画面から「ファイル共有の設定」を押下して、

スクリーンショット 2020-03-08 12.11.41.png

接続先のAmazon S3バケット名を選択肢して、

スクリーンショット 2020-03-08 12.10.04.png

オブジェクトストレージクラス、オブジェクトメタデータ、IAMロールの設定を行い「次」へを押下すると、

スクリーンショット 2020-03-08 12.13.29.png

ファイル共有用の領域と接続用のコマンドが発行されます。

スクリーンショット 2020-03-08 12.16.33.png

このコマンドをマウント元のEC2インスタンスで実行することで、正常にマウントが実行されます。

mountコマンドの実行例
mount -t nfs -o nolock,hard XXX.XXX.XXX.XXX:/bucket /home/ec2-user/mount-test

以下の通りマウントができていることが確認できたら設定は完了です。個人情報はマスキングしておきます。

dfコマンドの実行例
df
Filesystem                       1K-blocks    Used        Available Use% Mounted on
devtmpfs                           8194060       0          8194060   0% /dev
tmpfs                              8212108       0          8212108   0% /dev/shm
tmpfs                              8212108     484          8211624   1% /run
tmpfs                              8212108       0          8212108   0% /sys/fs/cgroup
/dev/xvda1                       314560492 3316464        311244028   2% /
tmpfs                              1642424       0          1642424   0% /run/user/1000
XXX.XXX.XXX.XXX:/bucket-XXXX 9007199254740992       0 9007199254740992   0% /home/ec2-user/mount-test ←ここです

以上

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3