• EC2からStorage Gateway経由でS3をNFSマウント

    こんにちは、インフラ担当の赤川です。

    AWSの最新情報(英語版)にて、StorageGatewayを利用してEC2からS3マウントが可能になるとのアナウンスされました。

    今回のアップデートにより、これまでの問題が解消できるのかベンチマークを取ってみました。

    準備した環境

    クライアント

    比較するために以下A〜C3つのインスタンスを準備しました。

    A.FileGateway経由でS3バケットをnfsマウントしたディレクトリをDocumentRootとしたインスタンス B.s3fsでS3バケットをマウントしたディレクトリをDocumentRootとしたインスタンス C.ローカルディスク内にDocumentRootを配備したインスタンス

    各インスタンスにhttpdをインストール。 サーバ毎にDocumentRootを変更。

    StorageGateway

    Gatewayの要件はこちら

    ・・・なのですが、 読まないで進めたらいつまで経ってもGatewayインスタンスに接続できませんでした。 sshでGatewayインスタンスに接続すると、ご丁寧にvCPUが足りんと警告が。ちゃんと読んでスペックを確認しましょう。 (この画像はCPUでWarningですが、メモリ足りない場合はCriticalが出ていました。)

    aws-sg1

    ちなみにGatewayインスタンスへのssh接続ユーザのデフォルトは「sguser」です。

    aws-sg2

    S3

    マウントするバケットを事前に作成しておきます。

    FileGateway設定

    まずはStorage GatewayのメニューからFile Gatewayを作成します。

    aws-sg3

    GatewayのタイプはEC2を選択します。 赤枠で囲ったボタンをクリックするとEC2起動画面が開きます。

    aws-sg4

    どうやらGateway用のAMIが用意されているようです。 前述の注意点を気にしながらインスタンスを作成します。

    aws-sg5

    インスタンスを作成したらFile Gatewayの画面に戻ります。 Gateway IPアドレスを求められるので先ほど作成したインスタンスのIPを指定します。 続いてアクティベートも実行されます。

    aws-sg6

    次にファイル共有の設定を実施します。 作成したGatewayを選択して「ファイル共有の作成」をクリック。

    aws-sg7

    マウントするS3バケット名を入れます。 また、S3へ接続できるIAMロールも設定しておきます。

    ...