とある日の出来事です。
後輩ちゃんから AWS におけるデータ保持の方法ってどうなってるんですか? というざっくりとした質問を受けました。
後輩の疑問点としては、データを保持するサービスが複数出てきて、それがなんのためにあるのか?どのようなユースケースがあるのか?がわからなくなったとのことです。
- EBS
- EFS
- S3
確かに質問されてみるとぱっとは回答ができなかったので、改めて学習し直してみました。
EBS
特徴
- EC2インスタンスに直接アタッチして使用する仮想ハードディスクのようなもの。
- EBSとEC2は 1:1 の関係
- インスタンス間で共有は出来ない
- 容量を動的に変更できる
- EC2 の一部ではない。ネットワーク接続を通してEC2インスタンスにアタッチされる。
- RDSのストレージにも使われているよ
- DockerのVolumeをAWSに管理させているイメージ
ユースケース
- データの書き換えが頻繁に行われるアプリケーション
まー、一般的なウェブシステムとかで使われていると思ってもらえればええんちゃいますの。
EFS
特徴
- 複数のEC2インスタンスから同時にアクセスできるファイルストレージ
- 自動スケーリング
- 複数のデータセンターでレプリケートされるので高可用
- POSIX互換なので、Linux で標準的なファイルシステムのように使える
- 直接アクセスることが出来ない
サブネット内にマウントターゲットを設置する必要がある
ユースケース
- 複数のインスタンスで共有する必要のあるファイルストレージ
- コンテンツ管理
- ログファイルの共有
- ホームディレクトリの管理
僕が経験したのは、バッチ関連のファイルをEFSを用いて複数EC2で使用する運用を経験しました。
cronの設定は各インスタンスで行う必要があるのですが、cronで叩かれる実行ファイルはEFSに保管しているファイルを叩くというような構成です。
(個人的にはLambdaでええんちゃいますのと思った案件でした
S3
特徴
- 大量のデータを保存するのに適したストレージ
- ファイルをオブジェクトとして保存し、キーを付与する
- KVS
- 世界中からHTTP/HTTPS アクセスできる
- バージョニング ← これメチャクチャ便利!使ってみてほしい、。
- ライフサイクル ← これも便利
ユースケース
- 静的なWebサイトのホスティング
- 画像、ビデオなどのメディアファイルの保存
- バックアップやログの長期保存
汎用性が高いため、なんだかんだでS3は使いがちです。
保険明細の管理や本人識別書の管理といった個人情報をS3で保管するといったことも運用も経験しました。
便利が故にアクセスポリシーなどの設定を間違えてしまうと重大なセキュリティインシデントになりかねないサービスでもあるなぁというのが所存です。
まとめ
ユースケースごとに使用されるサービスが異なってくるのはなんとなく理解してもらえたでしょうか。
かゆいところまで手が届くようにしているAWSさんは凄いっススス