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版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2023/01/9784815617929-1-407x596.jpg)
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
![](https://www.sbcr.jp/wp-content/uploads/2024/01/9784815625382-3-420x596.jpg)
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
![](https://www.shuwasystem.co.jp//images/book/637791.jpg)
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
![](https://book.mynavi.jp/files/topics/135344_ext_06_0.jpg?v=1673514682)
「AWSではじめるLinux入門ガイド」という本を書きました。
![](https://www.yamamanx.com/wp-content/uploads/2023/12/81Rp5O9We6L._SY522_.jpg)
![@yamamanx](https://www.yamamanx.com/wp-content/plugins/lazy-load/images/1x1.trans.gif)
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
Amazon Glacierでボールトロックポリシーの作成開始をしてみました
Glacierを単体で使用することもそうそうないので、確認しました。 まずボール …
-
-
Amazon Aurora Serverless のログをCloudWatch Logsに出力する
WordPress W3 Total Cache のDatabaseCacheを …
-
-
AWS CodeStarで静的webサイトのテンプレートプロジェクトを作成する
執筆環境の検討中です。 CodeCommitは使うつもりで、コミットしたときにE …
-
-
Amazon Location Service入門ワークショップ-ジオフェンス
関連記事 Amazon Location Service入門ワークショップの前提 …
-
-
RDSの拡張モニタリングを有効にしました
RDS for MySQLです。 変更メニューで、[拡張モニタリングを有効にする …
-
-
ヤマムギ vol.24 API GatewayでREST API作成と直接DynamoDB登録のデモをしました
2週間ぶりのヤマムギ勉強会デモなのでなんだか久しぶりな気がしました。 今日はポケ …
-
-
QuickSightのVisualizeをダッシュボード化して定期メール
「Backlogの実績工数をAmazon QuickSightで可視化してわかっ …
-
-
ヤマムギvol.27 Amazon Route 53プライベートホストゾーンとリゾルバーのデモをしました
今日は『AWS認定資格試験テキスト&問題集AWS認定ソリューションアーキ …
-
-
AWSアカウント内のCloudWatchアラームを削除する
やりたいこと 特定アカウント特定リージョン内のCloudWatdchアラームを全 …
-
-
Lambdaでちょっとしたコードを試すときに便利なエディタのフルスクリーン機能
Lambda歴6年で、はじめて使いました。 この存在に気がついてなかったです。 …