Memo

メモ > サーバ > サービス: AWS > EFS (Elastic File System)

■EFS (Elastic File System)
複数のサーバにマウント可能な共有ストレージサービス RDSのHDD版のようなもの。と思われる ■料金 EFS使ってみた 基礎編 | レコチョクのエンジニアブログ https://techblog.recochoku.jp/5958 AWS EFSのプロビジョンドスループットについて | 株式会社なないろ 京都でNo1を目指すWeb制作・システム開発クリエイティブ集団 https://www.7-16.co.jp/laboratory/2370 AWSのストレージサービスの違いを解説(S3、EBS、EFS) | 理系男子のIoTライフ https://rikei-danshi.work/entry/2018-08-26-aws EFSのバーストクレジットが減ると速度が非常に遅くなる プロビジョンドスループットによって速度を向上できるようだが、料金が跳ね上がるので注意 ただしEFSの作成画面には 「ほとんどのファイルシステムには、バーストスループットモードをお勧めします。 バーストスループットで許可されるよりも多くのスループットを必要とするアプリケーションには、プロビジョンドスループットモードを使用します。」 と紹介されている アクセス数が非常に多いサイトでなければ、プロビジョンドスループットのことは考えなくていいかも 要検証 「AWS EFSのプロビジョンドスループットについて」のページでは 「EFSに少し大きなファイルを置くことで、バーストクレジットが増えるらしい。」 「ダミーファイルを30GBほど置くことで、1.5(MiB)がデフォルトで出る。」 「EFSにファイルを置くことで少し費用発生するが、プロビジョニング済みにするよりは費用は抑えられる」 のように紹介されている。やはり要検証 2024年5月に、スループットが高速になったという記事がある 改めて検証したい Amazon EFSのクライアント当たりの最大スループットが1.5GB/sに。これまでより3倍高速なファイルアクセスを実現 − Publickey https://www.publickey1.jp/blog/24/amazon_efs15gbs3.html ■EFSの作成 AWS → EFS → ファイルシステムの作成 ステップ 1: ファイルシステムアクセスの設定 作成済みのVPCを選択 作成済みのサブネットを選択(プライベートなサブネットを作成しておく必要があるかも) ステップ 2: オプション設定の構成 必要に応じてタグを追加 パフォーマンスは「汎用」のままでいい (「最大 I/O」は「数十、数百、または数千のEC2インスタンスがファイルシステムにアクセスするアプリケーション」を想定しているとある) スループットは「バースト」のままでいい (「プロビジョニング済み」にすると速度が向上するようだが、料金が跳ね上がる) ステップ 3: 確認と作成 内容を確認して作成する 作成するとファイルシステム一覧の画面に遷移する VPCの設定で「DNS解決の編集」と「DNSホスト名の編集」の両方が「はい」になっている必要がある 「はい」になっていなければその旨が案内されるので設定する ■EC2にマウント(AWSコンソールで設定する場合) ※未検証 EC2作成時に適切なVPCとサブネットを選択しておくと、 「ストレージを設定 → 0xファイルシステム → 編集 → 共有ファイルシステムを追加」 から、EFSとマウントポイントを指定できる マウントポイントは「/var/www/efs」のようなパスを指定できる(パスは一例) この場合、EC2内でマウントのための作業は不要 以下でマウントされているかを確認できる
# df -m
以下で自動マウントが設定されているかを確認できる
# cat /etc/fstab
マウントされていることが確認できたら、必要に応じてシステムに必要なディレクトリを手動作成する 所有者はパーミッションも適宜調整する
# cd /var/www/efs # mkdir xxx
もしマウントされていなければ、通常の手順でマウントを試みる エラーが出てマウントできない場合は、EFSとEC2のセキュリティグループ設定を確認する ■EC2にマウント(手動で設定する場合) ※特に理由が無ければ、AWSコンソールで設定する方が無難か 詳細は「EC2にマウント(AWSコンソールで設定する場合)」を参照 通常の手順でEC2を作成し、以下の手順でマウントを行う 「fs-f4048ed6」のようなIDはAWSコンソールで確認できる (/var/www の外にマウントして公開用ディレクトリにすると、DocumentRootの変更が厄介そうなので注意)
# yum install -y amazon-efs-utils # mkdir /var/www/efs # mount -t efs fs-f4048ed6:/ /var/www/efs
以下のコマンドでマウントを確認できる ファイルタイプは「nfs4」となり、容量は8エクサバイトとなる
# df -Th Filesystem Type Size Used Avail Use% Mounted on devtmpfs devtmpfs 475M 0 475M 0% /dev tmpfs tmpfs 492M 0 492M 0% /dev/shm tmpfs tmpfs 492M 456K 492M 1% /run tmpfs tmpfs 492M 0 492M 0% /sys/fs/cgroup /dev/xvda1 xfs 8.0G 1.2G 6.9G 15% / tmpfs tmpfs 99M 0 99M 0% /run/user/1000 fs-f4048ed6.efs.ap-northeast-1.amazonaws.com:/ nfs4 8.0E 0 8.0E 0% /var/www/efs
参考までに、エクサバイトは以下の要領を表す単位で、GBで表すなら10億GBとなる バイト(Byte) キロバイト(KB) メガバイト(KB) ギガバイト(GB) テラバイト(TB) ペタバイト(PB) エクサバイト(EB) エクサバイトとは - 意味の解説|ITトレンドのIT用語集 https://it-trend.jp/words/exa_byte 以下のように公開用ディレクトリとファイルを作成し、ApacheのDocumentRootを変更し、Apacheを再起動する
# vi /var/www/efs/html/index.html # service httpd restart
自動でマウントするには別途設定が必要みたい 以下などを要確認 Amazon EFSをEC2から使ってみたメモ - Qiita https://qiita.com/miyanaga/items/c393c29c6d29bd1aaecf Amazon EFS ファイルシステムの自動マウント - Amazon Elastic File System https://docs.aws.amazon.com/ja_jp/efs/latest/ug/mount-fs-auto-mount-onreboot.html#mount-fs-auto-moun...
# vi /etc/fstab
fs-f4048ed6:/ /var/www/efs efs defaults,_netdev 0 0
この状態でEC2を複製すれば、rsyncなどを考えなくても容易にファイル共有ができる 設定後、EC2を再起動して自動マウントを確認しておく ■サブディレクトリのマウント ※未検証 EFSのサブディレクトリにEC2をマウントさせる - Qiita https://qiita.com/hirai-11/items/8564791feed63a39ad2f EFSのサブディレクトリをマウントする - ハマログ https://blog.e2info.co.jp/2021/02/07/efs%E3%81%AE%E3%82%B5%E3%83%96%E3%83%87%E3%82%A3%E3%83%AC%E3%82... ■Ansible 以下のページではEFSの作成もAnsibleで行っているようだが、 ネットワークとEFSはあらかじめ作成済みにしておいて、それからAnsibleでEC2を構築してEFSをマウントする …という手順にするか マウント直後は所有者がrootになるみたいだが、中のファイルがどうなのかは要検証 所有者を再帰的にすべてapacheにすべきか否かは要検討 mountモジュールを使えば、自動マウントの設定も含めて行ってくれる optはAWSの推奨値を指定すると良さそうだが、省略すると推奨値になるみたい? AnsibleでAmazon EFSの作成からマウントするまで - Qiita https://qiita.com/comefigo/items/cb2a959f1a5149ef8ec4 ■懸念点 Amazon EFS を利用して WordPress サーバーを冗長化したかった | ハックノート https://hacknote.jp/archives/38636/ ■WordPressを使ってみた所感 Apache+PHP+MySQLを使えるようにした上で、/var/www/efs にEFSをマウントした以降の手順 WordPress用の領域を作成する
# cd /var/www/efs/html # mkdir /var/www/efs/html/wordpress # chown apache. /var/www/efs/html/wordpress # chmod 777 /var/www/efs/html/wordpress # chmod g+s /var/www/efs/html/wordpress
MySQLにアクセスできるようにする
$ mysql -u root -p mysql> CREATE USER webmaster@localhost IDENTIFIED BY 'qazwsxedc'; mysql> GRANT ALL PRIVILEGES ON test.* TO webmaster@localhost; $ mysql -u webmaster -p
WordPressを導入してログイン http://3.112.57.115/wordpress/ admin / ttBFZ!NEHdplPxtd6R EFSでsimpleテーマを使用 ユーザ画面を表示 ... 2.5〜3.2秒程度 管理画面を表示 ... 3.0〜4.2秒程度
# cd /var/www/html # mkdir /var/www/html/wordpress # chown apache. /var/www/html/wordpress # chmod 777 /var/www/html/wordpress # chmod g+s /var/www/html/wordpress
EBSでsimpleテーマを使用 ユーザ画面を表示 ... 0.2〜0.3秒程度 管理画面を表示 ... 0.3〜0.4秒程度 桁を見間違えるくらいには速度差が顕著 費用がどうこう、バーストクレジットがどうこう、以前に元が遅すぎる 現状、EFSで丸ごとコンテンツを配置したり…には使えないかもしれない CloudFrontやS3やキャッシュの仕組みを駆使すれば早くなるかもしれないが、複雑化するので素直にrsyncで同期する方が容易かも 【東京リージョン対応】Amazon EFS の速度計測してみた結果【祝】 | ハックノート https://hacknote.jp/archives/38521/ 2022年に検証された記事が以下にある パフォーマンスは改善されているようだが、それでもEBSのような使い方は難しそう WordPressサイトのWebコンテンツ共有にAmazon EFSは使える? - TechHarmony https://blog.usize-tech.com/web-contents-share-on-amazon-efs/ ■参考 [速報] EFS(Elastic File System)が2018年7月に東京リージョンで提供開始! #AWSSummit | DevelopersIO https://dev.classmethod.jp/cloud/aws/efs-in-tokyo-region/ ついにきた!EFS(Elastic File System)が東京リージョンで利用可能になりました! | DevelopersIO https://dev.classmethod.jp/cloud/aws/elastic-file-system-ga-in-tokyo/ Amazon EFS を使ってみた | cloudpack.media https://cloudpack.media/43376 AWS EFS をEC2にマウントしてみる - Qiita https://qiita.com/tandfy/items/829f9fcc68c4caabc660 以下、東京リージョンでのリリース前の情報 Amazon Elastic File System 東京リージョン 一般提供開始のお知らせと利用上の留意点のまとめ | Amazon Web Services ブログ https://aws.amazon.com/jp/blogs/news/amazon-elastic-file-system-tokyo/ [速報] EFS(Elastic File System)が2018年7月に東京リージョンで提供開始! #AWSSummit | Developers.IO https://dev.classmethod.jp/cloud/aws/efs-in-tokyo-region/ NFSでマウント可能な「Amazon Elastic File System」(Amazon EFS)、AWS東京リージョンで利用可能に − Publickey https://www.publickey1.jp/blog/18/nfsamazon_elastic_file_systemamazon_efsaws.html 【新サービス】共有ストレージ(EFS)が発表!EFSの良い点、気になる点 #AWSSummit | Developers.IO https://dev.classmethod.jp/cloud/elastic-file-system/ 【新機能】Amazon Elastic File System (Amazon EFS)がついにGA (一般利用可能)に! | Developers.IO https://dev.classmethod.jp/cloud/aws/amazon-elastic-file-system-is-generally-available/ 以下、2021年1月に改めて調べたときの情報 Amazon EFS 東京リージョンの限界を試す - Qiita https://qiita.com/zakky/items/08e6aa876f24bda69eb1 EFS使ってみた ~ EBSとEFSの書き込み速度を比較編 ~ | レコチョクのエンジニアブログ https://techblog.recochoku.jp/6015 Amazon Elastic File System (Amazon EFS) におけるバーストとプロビジョニングの変更を自動化する | SEEDS Creators' Blog | 株式会社シーズ https://www.seeds-std.co.jp/blog/creators/2019-08-26-132438/ AWS EFSを使ってみよう 東京リージョンリリース記念!│システムガーディアン株式会社 https://sys-guard.com/post-16347/ Amazon EFS を作成し EC2 からマウントしてみた | Wedding Park CREATORS Blog https://engineers.weddingpark.co.jp/amazon-efs/ Auto-Scalingが有効なEC2にEFSを自動マウントさせる https://zenn.dev/pero_nw/articles/5cb4e0ddd5ee56 以下のページで 1, サービス紹介のような最小構成でEFSを利用する場合は、コンテンツ配布およびWEBアクセスで数秒以上の遅延は覚悟する必要があります。 2, 大容量のNFSを利用する大規模顧客で、EC2+NFSで冗長性が不安だと思っている人向けのサービスみたいです。 3, もしくはあまりコンテンツの更新がなく、アクセスが遅くとも問題の無いサービス向けかと。 と紹介されているので、WordPressやECCubeのサイトで普通のHDD代わりに使うものでは無いかもしれない 技術者の備忘録: EFS導入で夢が広がると思ったら、現実を突き付けられた話 http://laporz.blogspot.com/2018/11/efs.html?m=1

Advertisement