🐁

EFSのファイル管理をGUIで管理するAWSソリューションを使ってみた

2022/10/02に公開

概要

AWSはソリューションライブラリとよばれるビジネス課題、技術的課題を解決するためのテンプレートソリューションを数多く提供しています。

そのなかでEFSのファイル管理をGUIから管理できる「Simple File Manager for Amazon EFS」というものを見つけました。
https://aws.amazon.com/jp/solutions/implementations/simple-file-manager-for-amazon-efs/


アーキテクチャ図(上記サイトより引用)

通常EFSにあるファイル管理はマウントされたEC2を経由してファイルコピーや削除をする必要があります。このソリューションではCloudFrontをフロントに配置することで、Web UIを提供し任意のデバイスから自由にEFSへアクセスできるようにします。

コスト

想定されるコストは以下のリソース使用量が挙げられます。

  • API Gatewayリクエスト数
  • Lambdaリクエスト数
  • CloudFrontからの通信トラフィック
  • Cognitoのアクティブユーザー数

全部合わせても月の合計コストは約$1くらいです。

実装

実装ガイドに飛んでステップ1のスタック起動からソリューション起動をクリックしますとCloudFormationのスタックテンプレートが起動します。

(起動リージョンがバージニアになっていますので必要に応じて東京リージョンに変えます)
パラメーターにはSimple File Managerへログインするためのメールアドレスを記載します。

後はデフォルトのまま次へを選択し、CloudFormationを作成します。
ネストされて複数のスタックがデプロイされるので15分間程で完了します。
記載したメールアドレスに初期パスワードが添付されたメールが届いていますので控えておきます。
CloudFormationの出力タブにWeb UIのログイン画面へのURLが表示されています。

ログイン画面でメールアドレスとパスワードを入力すれば作成されたEFSのリストが表示されます。

使い方

新規に作成したEFSのManagedステータスはfalseになっています。Web UIからファイル管理できるようにするためにTrueに変更します。false部分をクリックし、管理したいルートディレクトリを指定すればsubmitします。(UserIDとGroupIDはEFS側でよっぼど変な設定をしていない限りデフォルトで大丈夫です)

ManagedのステータスがTrueに変更されたらWeb UI経由でEFS内のファイルを管理できるようになります。EFS IDをクリックすればEFSディレクトリ構造を確認できます。

これでWeb UI経由でファイルのアップロード、ダウンロード、EFSのディレクトリの変更ができます。

改良

このままでもすぐに実践に使えるソリューションですが、より使いやすくするように改良していきます。

独自ドメイン追加

作成されたWeb UIのドメインはCloudFrontが生成したドメインになります。

視認性も悪いので、独自ドメインを追加しましょう。CFnで作成したCloudFrontをコンソールから編集します。

Route 53で取得したドメインでしたら、Route 53のホストのレコードに設定したドメインとCloudFrontの追加します。

レコード情報が更新されましたら設定したドメインでSimple File Managerにアクセスできるようになります。

できなかったこと

Simple File Managerへのログイン方法がメールアドレス認証しかなかったので、Cognitoの設定を変更してGoogle認証を追加できないか検証しました。

ただCognito側でGoogleのIDプロバイダを追加してもログイン画面にGoogleログインのポップアップが追加されませんでした。
ログイン画面のフロントデザインはS3から取得しているので、ここのソースコードを修正できれば実装できる気がしますが、よくわからず断念。。。

所感

Simple File Managerについて紹介して独自ドメインを実装して多少改良してみました。
EFSへファイルを送る場合、EC2からマウントしてFTPで転送する必要がありましたが、Web UIがあることで非エンジニアにも簡単にファイルアップロード、共有ができるようになり便利になったかと思います。ログイン方法がメールアドレス認証だけだと運用コストが高くなりますので、何とかしてGoogle認証でログインできるようにしたいと考えています。

参考資料

https://d1.awsstatic.com/Solutions/ja_JP/simple-file-manager-for-amazon-efs.pdf

GitHubで編集を提案

Discussion