EFSをEC2(Amazon Linux 2)からマウントする
2018/08/16
Amazon Elastic File Systemが東京リージョンに来たこともあって、AWSへの移行でアプリケーションのカスタマイズをしない純粋なフォークリフティングで利用されるケースがありそうだなあと。
アプリケーションのカスタマイズをしないことにより、移行の敷居は下がるので、使ってみないとなあと思ってまして。
ちょうどオートスケーリングさせたいEC2を使ったシステムでアプリケーションをカスタマイズしたくない、というシステムを作る機会があったので構築してみました。
作ろうとしているシステムはこちらです。
目次
高可用なRedmine
Amazon Elastic File System(EFS)の設定
EFS用のセキュリティグループの作成
今回はAMIを作るためのEC2のセキュリティグループと、オートスケーリンググループ起動設定のセキュリティグループを送信元(ソース)として、ポートは2049(NFS)を設定しました。
EFSの設定
VPC、サブネット、セキュリティグループを設定します。
セキュリティグループはサブネットごとに設定出来るのですね。
タグ、パフォーマンスモード、スループット、暗号化の設定をします。
パフォーマンスモード
General Purposeがデフォルトです。
画面に書いているとおりですが、Max I/Oの設定をすると数千のEC2インスタンスが接続するようなケースに最適化されていて、高いレベルの集計スループットを提供しますが、レイテンシーがわずかに高くなるという特徴があります。
ビッグデータ解析、メディア処理、ゲノム解析などの高度に並列化されたアプリケーションに適しているようです。
スループットモード
デフォルトはBurstingで自動的にスループットがバーストします。
Provisionedを選択すると1~1024MiB/秒を設定することができます。(別途課金)
暗号化
暗号化はKMSを使用します。
デフォルトキーがあるので使いました。
VPCの設定
EFSのDNS名にEC2からアクセスしますので、DNSホスト名を有効にしておきます。
これをしておかないと、マウントするときに以下のエラーになります。
1 2 |
mount.nfs4: Failed to resolve server (EFSのDNS): Name or service not known |
EC2からマウント
Amazon Linux 2を起動してSSHでログインします。
1 2 3 4 5 |
$ sudo yum install -y amazon-efs-utils $ sudo mkdir /var/efs $ sudo chown apach:apache /var/efs $ sudo vim /etc/fstab |
chownは用途に応じて行ってください。
/etc/fstabには以下の行を追加します。
fs-5c768917:/ /var/efs efs defaults,_netdev 0 0
- “fs-5c768917″はEFSのファイルシステムIDですので環境によって変わります。
- “/var/efs”はマウント先ですので環境によって変わります。
- “efs”はマウントタイプです。EFSの場合は”efs”です。
- “defaults,_netdev”はmount optionsです。
詳細はこちらのAmazon EFS ファイルシステムの自動マウントをご参照ください。
マウントしてデータを保存してみます。
1 2 |
$ sudo mount -a -t efs defaults |
問題なさそうであれば、EC2からAMIを作成して新しいインスタンスを起動します。
ユーザーデータに以下を記述しておきます。
1 2 3 |
#!/bin/bash mount -a -t efs defaults |
新たに起動したインスタンスからもファイルをEFSに保存してみます。
両方のインスタンスから、同じファイルが見えていることが確認できました。
Redmineの添付ファイル保存先設定
config.ymlに次の行を追加すればOKです
attachments_storage_path: /var/efs
課金体系
今回の場合は、プロビジョンドスループット を使っていませんので、保存している容量に対しての課金のみです。
EFSはEBSと違ってストレージ容量をプロビジョニングする必要がない上に保存しているデータに対してのみ課金が発生します。
2018/8/11現在でEBS, EFS, S3でGB月(1ヶ月間1GB保存した場合)のバージニア北部の料金を比較してみます。
サービス | 料金 |
---|---|
EBS | 0.1 USD |
EFS | 0.3 USD |
S3 | 0.023 USD |
- EBSはプロビジョニング容量に対しての課金ですのでEFS,S3のように保存した実容量ではありません。
- S3は最初の50TBで、リクエスト料金も発生します。
- リージョン外へのデータ転送料金はS3も発生します。
- リージョン外へのデータ転送料金はEBSとEFSはEC2を経由して発生します。
コストや耐久性を考えるとアプリケーションをカスタマイズしてS3を利用することを検討するのが良さそうですが、
カスタマイズできない、したくないアプリケーションをAWSへ移行して、EC2を単一障害点にしないよう複数台の高可用性構成にする場合に、EFSは有効に使えると思いました。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
このブログをAWS大阪リージョンへ移行しました
大阪リージョン爆誕!! 朝起きて寝ぼけながらリージョンを見てると。 「大阪リージ …
-
「雲勉 第1回【勉強会:新技術好き!】AWSマネージドサービス勉強会」に行ってきました
「雲勉 第1回【勉強会:新技術好き!】AWSマネージドサービス勉強会」に行ってき …
-
AWS CDKでクロススタックリファレンスをする
CloudFormationで複数のスタックで参照することがあります。 それをC …
-
リザーブドインスタンスはじめました
このブログも2014年9月にはじめたので、もうすぐ3年。 1件~17件とばらつき …
-
Amazon Linux2(EC2)にEC-CUBE 4をインストール
こちらのHOMEお知らせ・コラムAmazon Linux2にEC-CUBE4.0 …
-
GoogleフォームからAPI Gatewayで作成したREST APIにPOSTリクエストする
「API GatewayからLambdaを介さずにSNSトピックへ送信」の続きで …
-
Lucidchart AWSアカウントからインポート機能で自動作図
SNSでLucidchartというサービスが話題になってました。 AWSの環境を …
-
S3 Intelligent-Tieringで高頻度階層(FREQUENT)に戻る「アクセス」にS3 SelectとGlueクローラーが該当するのか確認してみました
ユーザーガイドのS3 Intelligent-Tiering のしくみには、「低 …
-
LINE Bot APIのファーストステップをLambda+API Gatewayでやってみたらものすごく簡単で驚いた
トライアル当初はホワイトリストのしばりや、初回反応するまで時間がかかったりとみな …
-
AWS Organizations SCPがリソースベースのポリシーには影響しないことを確認
AWS Organizations SCPで許可ポリシーの設定をし継承の関係を確 …