share facebook facebook2 twitter menu hatena pocket slack

2015.07.10 FRI

Amazon EFS Preview ファーストインプレッション

古渡 晋也

WRITTEN BY古渡 晋也

はじめに

こんにちは。インフラエンジニアレベル1のf_prgです。
個人のアカウントにAmazon EFS Previewが使えるようになったので
ファーストインプレッションレビューをしたいと思います。

EFSって何?

おさらいとして、EFSについて説明したいと思います。
2015年4月に発表されたAWSの新しいストレージサービスです。

http://aws.typepad.com/aws_japan/2015/04/amazon-elastic-file-system-shared-file-storage-for-amazon-ec2.html

  • 特徴

— 容量の割り当てがいらない
— ペタバイトまでのスケールが可能
— スループットもIOPSもスケールがされる
— 1GB あたり 0.30 ドル(USリージョンでの予定価格)

EFSを作成してみます

まずは、EFSを作成してみました。

pic1

pic2

pic3

pic4

pic5

pic6

EC2を立ち上げる

Amazon LinuxでEC2を立ち上げました。

EFSを使ってみます

https://docs.aws.amazon.com/efs/latest/ug/mounting-fs.html
に沿って、設定します。

NFS Clientのインストールします

[ec2-user@ip-10-0-1-192 ~]# sudo yum install nfs-utils

マウントディレクトリの作成します

[ec2-user@ip-10-0-1-192 ~]# sudo mkdir /mnt/efs-a
[ec2-user@ip-10-0-1-192 ~]# sudo mkdir /mnt/efs-b
[ec2-user@ip-10-0-1-192 ~]# sudo mkdir /mnt/efs-c

EFSをマウントします

[ec2-user@ip-10-0-1-192 ~]# sudo mount -t nfs4 us-west-2a.fs-1a22ceb3.efs.us-west-2.amazonaws.com:/ /mnt/efs-a
[ec2-user@ip-10-0-1-192 ~]# sudo mount -t nfs4 us-west-2b.fs-1a22ceb3.efs.us-west-2.amazonaws.com:/ /mnt/efs-b
[ec2-user@ip-10-0-1-192 ~]# sudo mount -t nfs4 us-west-2c.fs-1a22ceb3.efs.us-west-2.amazonaws.com:/ /mnt/efs-c

EFSにファイルを置いてみます

rootユーザーで実行してます。

[root@ip-10-0-1-192 ~]# sudo echo "hello, efs" >> /mnt/efs-a/hello-efs.txt

すると

[root@ip-10-0-1-192 ~]# ls /mnt/efs-a/
hello-efs.txt
[root@ip-10-0-1-192 ~]# ls /mnt/efs-b/
hello-efs.txt
[root@ip-10-0-1-192 ~]# ls /mnt/efs-c/
hello-efs.txt
[root@ip-10-0-1-192 ~]# cat /mnt/efs-c/hello-efs.txt
hello, efs

となります。

EFS上のファイルを消してみます

[root@ip-10-0-1-192 ~]# rm /mnt/efs-c/hello-efs.txt
rm: remove regular file ‘/mnt/efs-c/hello-efs.txt’? y

当然ながら、消えてます。

[root@ip-10-0-1-192 ~]# ls /mnt/efs-b/
[root@ip-10-0-1-192 ~]# ls /mnt/efs-a/

td-agentで流してみる

td-agentインストール

curl -L http://toolbelt.treasuredata.com/sh/install-redhat-td-agent2.sh | sh

confファイルの用意

ちょっと手を抜いて作成しました。

<source>
  type forward
  port 24224
  bind 0.0.0.0
</source>
<match **>
  type file
  path /mnt/efs-a/td-agent/*.log
</match>

td-agent起動

[root@ip-10-0-1-192 ~]# chmod 777 /mnt/efs-a/
[root@ip-10-0-1-192 ~]# service td-agent start
Starting td-agent:                                         [  OK  ]

fluent-catで実行してみる

[root@ip-10-0-1-192 td-agent]# echo '{"msg": "hello"}'|/opt/td-agent/embedded/bin/fluent-cat hello.efs
[root@ip-10-0-1-192 td-agent]# ls /mnt/efs-b/td-agent/20150710.b51a7cb1aa8c768aa.log
[root@ip-10-0-1-192 td-agent]# cat /mnt/efs-b/td-agent/20150710.b51a7cb1aa8c768aa.log
2015-07-10T03:09:02+00:00       hello.efs       {"msg":"hello"}
2015-07-10T03:09:03+00:00       hello.efs       {"msg":"hello"}
2015-07-10T03:09:05+00:00       hello.efs       {"msg":"hello"}

ファイルが出来てますね。

まとめ

EFSは簡単にセットアップできるとてもよいストレージのサービスです。
td-agentのログ転送先として、すぐに閲覧できるや操作できるストレージとして
今後使われるようになるのではないかと予想をしております。
td-agentで、EFSとS3にログを置き、S3のログはGlaicerに移動するようにライフサイクルを設定する感じでしょうかね。
サービスとしてこれからですから、今後も成長が期待できそうです。

元記事はこちら

Amazon EFS Preview ファーストインプレッション

古渡 晋也

古渡 晋也

縁があって、cloudpackにジョインしました。 JAWS-UG さいたま支部コアメンバーとしても活動しております。 cloudpackにてインフラ設計・構築・運用をしております。 HadoopやMongoDBなどいろいろ経験しております。 あと、開発もできるエンジニアです。 開発可能な言語はC, C++, C#, アセンブラ, PHP, Ruby, JavaScript, Java, Objective-Cです。