FPGA開発日記

カテゴリ別記事インデックス https://msyksphinz.github.io/github_pages , English Version https://fpgadevdiary.hatenadiary.com/

AWSの共有ファイルシステムEFSを試す

f:id:msyksphinz:20190818215623p:plain

AWSで複数のEC2でディスクを共有し、プロジェクトファイルのコピーの無駄を省こうといろいろ試行したのだが、AWSのEBSはどうも複数のEC2にアタッチメントをすることができないらしい。これは初めて知った。

その代わりに、複数のEC2インスタンスで同じファイルを参照するためにはいくつかの方法がある。 S3を使ってSynchronizeする方法もあるが、EFS(Elastic File System)を試してみることにした。

aws.amazon.com

EFSは、EBSと異なり複数のインスタンスでマウントすることができる。 これにより、EFS上にLLVMなどのファイルを配置しておき、ビルドの時はビルドサーバを立ち上げたうえで共有ファイルシステムをアタッチし、ファイルにアクセスすることでS3を介した転送に必要なファイルアクセスを削減する。

とりあえずは、EFSを作成した。EFSを使用するEC2インスタンスとは、同じセキュリティグループを設定する必要があるらしい。 また、セキュリティグループの設定で2049番のポート(つまりNFSのポート)を開けておく必要があった。

f:id:msyksphinz:20190828001913p:plain
EFS作成状況

これをEC2インスタンスからマウントするためには、efsのツールセットをインストールした上でmountコマンドを試す。

sudo yum install -y amazon-efs-utils
sudo apt-get install nfs-common
sudo mkdir efs
sudo mount -t efs fs-[efsのファイルシステムID]:/ efs

これで、マウントできた。