Amazon EFSを試してみました

Pocket

はじめに

2018年7月12日より東京リージョンでAmazon Elastic File System (Amazon EFS) を利用できるようになりました。既に一部の海外リージョンで利用可能であったため、今回のリリースを待ちわびた方は多いのではないでしょうか?

本記事ではAmazon EFSのストレージサービスとしての特徴を把握し、簡単な動作検証を行いたいと思います。

Amazon EFSとは

サービス概要

    • 複数のAmazon EC2で共有可能
      複数のAmazon EC2からAmazon EFSをマウントして利用できます。NFSv4プロトコルをサポートしますが現在はLinux OSのみで、Windows OSはサポート対象外です。
    • フルマネージドNFSサービス
      容量拡縮は自動で行われ、制限もありません。容量が増えるとスループット及びIOPSが増加します。
    • 高い可用性
      Amazon EFSの管理単位を「ファイルシステム」と言います。ファイルシステムは複数のAvailability Zoneで構成されます。東京リージョンでは3つのAvailability Zoneで構成されるため、高い可用性を実現しています。
    • オンプレミス環境からもマウント可能
      Amazon Direct Connectを導入している場合、オンプレミス環境からマウント可能です。
    • AWS無料利用枠(アカウント作成から12か月間)で5GB/月まで容量が無料です!

従来のストレージサービスとの比較

比較項目 Amazon S3 Amazon EFS Amazon EBS
ストレージタイプ オブジェクトストレージ ファイルストレージ ブロックストレージ
耐久性・可用性 〇(少なくとも3箇所以上のAvailability Zoneで複製) 〇(複数Availability Zoneで複製) △(単一Availability Zone内で複製)
同時アクセス 不可
操作性 △(AWS CLI・REST API) 〇(OSのファイル操作コマンド) 〇(OSのファイル操作コマンド)
速度
価格(月額) 0.025USD/GB(使用分) 0.36 USD/GB(使用分) 0.12USD/GB(確保容量分)

容量単価で比較するとAmazon EFSが一番高く、使った分だけ費用が発生する課金体系なので、こまめに削除またはAmazon S3にバックアップする等の考慮が必要かと思います。

東京リージョンにリリースされたAmazon EFSの検証をやってみた

以下の環境を構築し、簡単なAmazon EFSの検証を行います。ファイルシステムを作成すると各Availability ZoneにAmazon EC2のマウント先となる「マウントターゲット」が作成されます。

Amazon EC2を作成(1号機、2号機を別々のAvailability Zoneに配置する)

Amazon EC2の作成手順については公式ドキュメント等を参考に2台(OSはAmazon Linux)構築してみてください。
ポイントは

  • デフォルトVPCのap-northeast-1a(1号機)とap-northeast-1c(2号機)にAmazon EC2を作成
    ap-northeast-1a(1号機)の設定 ↓

    ap-northeast-1c(2号機)の設定 ↓

 

  • 作成した2台のAmazon EC2をデフォルトVPCセキュリティグループに参加させる(1号機、2号機両方)

    「default」のチェックを追加する ↓

  • 作成した2台のAmazon EC2のセキュリティグループ設定でHTTP通信を許可する(1号機、2号機両方)

以上3点です。

作成したAmazon EC2にApacheとPHPをインストール

  • yumアップデートを実施(1号機、2号機両方)

 

  • ApacheとPHPのインストール(1号機、2号機両方)

 

  • Apacheを起動(1号機、2号機両方)

 

Amazon EFSでファイルシステムを作成

  • AWSマネージメントコンソールで「EFS」をクリック

 

  • 「ファイルシステムの作成」をクリック

 

  • VPC「(デフォルト)」を選択し「次のステップ」をクリック

 

  • オプション設定は何も変更せず「次のステップ」をクリック

 

  • 「ファイルシステムの作成」をクリック

 

  • しばらくすると「成功!」のメッセージが表示され、ファイルシステムが利用可能となる
    Amazon EC2からマウントする際に「ファイルシステムID」を使用するのでメモしてください。

 

ファイルシステムをマウント

  • Amazon EC2にコマンドユーティリティをインストール(1号機、2号機両方)

 

  • マウント実施(1号機、2号機両方)
    マウント先のディレクトリを作成しておきます。

 

  • 90秒程経過後、マウントコマンドを実施(公式ドキュメントより)。「fs-xxxxxxxx」は、先程メモした「ファイルシステムID」に置き換えてください。

 

  • マウント状態を確認(1号機、2号機両方)

 

共有するファイルを配置

  • 共有ディレクトリを作成(1号機のみ)

 

  • 共有ディレクトリの権限を変更(1号機のみ)
    ec2-userに権限を付与します。

 

  • 作成した共有ディレクトリへのリンクを作成(1号機、2号機両方)

 

  • 処理サーバのIPアドレスを確認するためのPHPコードを配置(1号機のみ)

 

共有の確認

配置したPHPコードを1号機、2号機の両方から参照できることを確認します。

  • ブラウザで1号機側のパブリックDNS(IPv4)を開き、処理サーバが1号機のプライベートIPと同じである事を確認

 

  • ブラウザで2号機側のパブリックDNS(IPv4)を開き、処理サーバが2号機のプライベートIPと同じである事を確認

    それぞれのAmazon EC2で共有できていることを確認できました!

 

まとめ

ファイルシステム作成からマウントまで簡単に実装できました。通常のNFSサーバと同じように利用ができ、さらに容量を気にする必要はなさそうですが、置きっぱなしにすると費用が掛かるので気を付けなければいけません。
もう一点気になるのはバックアップです。Amazon EBSのスナップショットのような仕組みは持っていないので、ユーザ側でバックアップを実装する必要があります。機会があればこのあたりを検証したいと思います。

※Amazon Web Services その他のAWS商標は、米国その他の国における、Amazon.com,Inc.またはその関連会社の商標です。

お問い合わせ先

執筆者プロフィール

Yonezawa Kouhei
Yonezawa Kouheitdi デジタルイノベーション技術部
福岡県在住。半導体関連、アプリケーション開発、運用関連業務を経て、現在はインフラ系の技術支援業務を担当。直近のテーマはクラウド技術者育成と体力づくり。
Pocket

関連記事