継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

【AWS】AWS クラウドのストレージオプション(日本語)を読んだ

タダです。

タイトルにある、『AWS クラウドのストレージオプション(日本語)』を読んだのでそのメモになります。


AWS ストレージオプション

・従来のストレージとクラウドベースのストレージ

従来のストレージの設計には膨大なデータストレージオプションがある

・メモリー : ファイルキャッシュ、オブジェクトキャッシュ、インメモリーデータベース、RAMディスクなどインメモリーストレージでは非常に迅速にデータにアクセスできる
・メッセージキュー: コンピュータシステム間またはアプリケーションコンポーネント間で非同期的に送信されるデータを対象とした耐久性に優れた一時ストレージ
・SAN:専用SAN上にブロックデバイス(仮想ディスクLUN)は、通常ビジネスクリティカルなファイルのデータとデータベースストレージの両方に対して最高レベルのディスクパフォーマンスと耐久性を提供するが、最もコストのかかるシステムの1つ
・DAS:各サーバに存在するローカルディスクまたはアレイは、SANよりも高いパフォーマンスを提供するが一時ファイルと永続ファイル、データベースストレージ、及びOSブートストレージの耐久性はSANよりも低い
NASNASの速度はSANまたはDASよりも遅くなる傾向にある
・データベース:一般てkにデータベースストレージボリュームはSANまたはDASデバイスにある
・オフライン:バックアップ及びアーカイブ目的で保存されたデータは、通常テープ、CD、DVD等の非ディスクメディアに配置される

AWSが提供するストレージオプション
・名前と説明
・理想的な使用シナリオ
・パフォーマンス
・耐久性と可用性
・弾力性と拡張性
アンチパターン

EBS
・名前と説明
Elastic Block Storage
EC2で使うためのブロックストレージ
1つのEBSボリュームを他のユーザーと共有することはできないが、EBSスナップショットは別。

・理想的な使用シナリオ
比較的頻繁ン井変更され長期永続性が必要なデータを対象とする
ファイルシステムの主要ストレージ、データベースとして使用するのに適している
詳細な好悪深夜フォーマットされていないブロックレベルの未加工ストレージへの悪セうを必要とするアプリにもあっている

・パフォーマンス
外部電源のUSBドライブと同等のパフォーマンス、故障までの平均時間(MTTF)、及び信頼性を期待できる
EBSはEC2のネットワーク接続されているため、ネットワークI/Oや共有ネットワークの全負荷がEBSのパフォーマンスに影響を及ぼす可能性有り


・耐久性と可用性
1つのハードウェアコンポーネントで障害が発生した時にデータが紛失しないよう各EBSボリュームが同じAZ内で自動的にレプリケートされている
EBSスナップショット(ポイントインタイム)を作ってS3に保管できる

EBSの耐久性は、ボリュームサイズと最後にスナップショットを作成してから変更されたデータ量の両方に依存する
→EBSの可用性と耐久性を高めるためには、スナップショットを頻繁に取得することが大事

・弾力性と拡張性
スナップショットを使って新しいボリュームを作成する

アンチパターン
1.一時ストレージ
2.耐久性に優れたストレージ : S3を採用するほうが良い。EBSスナップっショット作成後に変更されたデータが20GB未満の場合、耐久性は年間99.5~99.9%ほど。
3.静的データまたはウェブコンテンツ : データ変更が頻繁に更新されない場合やウェブコンテンツはS3を採用する方が良い
4.キーと値のペアに関する情報

EC2ローカルインスタンスストアボリューム(エフェラルストレージ)
・名前と説明
EC2のローカルインスタンスストアボリューム
インスタンスストアボリュームの数とサイズは、EC2インスタンスタイプが大きくなるほど増大する
このボリュームは一時的なものなので、スクラッチボリューム、RAMディスクのように使用するのが最適

・理想的な使用シナリオ
継続的に変更される情報(バッファ、キャッシュ、スクラッチデータ、その他の一時コンテンツなど)、及びインスタンスのフリートにわたってレプリケートされたデータ(不可分指されたWebサーバープール等)に適している

・パフォーマンス
ローカルストレージのため、高速にやり取りできる
1秒あたりのI/O 操作を増やすか、ディスクスループットを向上させるためにRAID0ソフトウェアを使って、複数のボリュームをまとめられる

・耐久性と可用性
このストレージは、耐久性に優れたストレージとして使わない
インスタンスが停止されると、データは消失する

・弾力性と拡張性
このストレージは弾力性にも欠ける
ただし、S3やEBSなどの他のストレージオプションを加えると、弾力性を実現できる

アンチパターン
1.永続ストレージ
2.データベースストレージ
3.共有ストレージ : EC2専用ストレージのため、他のシステムまたは他のユーザーと共有できない
4.スナップショット


S3
・名前と説明
Simple Storage Service
ミッションクリティカルな主要データストレージ向けに設計された拡張性、耐久性、可用性に優れた分散オブジェクトストア

・理想的な使用シナリオ
静的なウェブコンテンツを保存が一般的な使用方法
S3の水平拡張性により、1つの接続に制限されずに複数のコンピューティングノードから同時にデータにアクセスできる
ホットな障害復旧ソリューションのオリジナルストアとして使用されることが多い
複数の施設の複数のデバイスにオブジェクトが冗長的に保存される

・パフォーマンス
同一リージョンのEC2からS3へのアクセスは高速

・耐久性と可用性
選択したリージョン内で複数のデバイスおよび施設両方にレプリケーションされることで、耐久性と可用性を実現している
エラー修正が組み込まれ、単一障害点も無い

・弾力性と拡張性
S3はサポートするファイルの数に制限はない
また、保存できるデータ量も無制限

アンチパターン
1.ファイルシステム : S3はPOSIX対応のスタンドアロンファイルシステムを意図してモノではない
2.クエリ付きの構造化データ : クエリ機能をサポートしていないため、データベースとして使えない
3.急速に変化するデータ : 頻繁に更新する必要があるデータは、EBS、データベース等の読み/書き遅延が少ないストレージが良い

SQS
・名前と説明
Simple Queue Service
信頼性と可用性に優れたホストがたメッセージキューサービスを、一時ストレージ及び短い(64KB以下)テキストベースデータのメッセージに対して提供する

・理想的な使用シナリオ
複数のアプリケーションのコンポーネントが自身の作業を緩く連携させながら伝達および管理する必要があるシナリオに向いている

・パフォーマンス
シングルスレッドの送受信速度ではなく、水平拡張性に合わせて最適化された分散キューシステム
→1秒あたり約5~50メッセージの速度でSQSは送受信できる

・耐久性と可用性
一時的ではあるが、耐久性は高くなる
→メッセージが消失したり、利用不能になることを防ぐため、全てのメッセージは複数のサーバやDCに冗長的に保存される
1時間~14日の範囲で保存期間を設定できる

・弾力性と拡張性
無数のコンピュータが無数のメッセージをいつでも読み書きできるよう設計されている
ユーザー毎にサポートするキュー数やメッセージ数に制限もない

アンチパターン
1.バイナリまたは大きなデータ : SQSが扱えるのはテキストデータ且つ最大64KB
2.長期ストレージ : 14日以上保存する場合、S3などを使う

RDS
・名前と説明
Relational Database Service
データベースの管理の手間と所有コストを削減し、管理作業の自動化(データベースバックアップ等)を実現する

・理想的な使用シナリオ
コード変更せず、拡張性と費用対効果に優れ、メンテナンスの手間が不要なクラウドデータベースを利用する場合に適する

・パフォーマンス
最適なパフォーマンス実現のため、要件に応じ適切なインスタンスタイプを選択する必要がある
また、CloudWatchを使ってパフォーマンスの調整や弾力性の強化が必要がタイミングを飽かる

・耐久性と可用性
耐久性を高めるため、複数のAZに渡ってレプリケートされる2種類のバックアップが用意されている
→1.自動バックアップ(フルバックアップ。最大8日間保存される。)
2.データベーススナップショット

・弾力性と拡張性
RDSリソースはデータベースストレージサイズ、データベースインスタンス計算処理能力、及び読み取り複製の数など複数の側面から弾力的に拡張できる

アンチパターン
1.インデックスおよびクエリ中心のデータ : アプリケーションでインデックスを設定したり、クエリを多用する場合は適さない
2.大量のバイナリラージオブジェクト : 音声ファイルや画像データのBLObはS3に保存が適する
3.弾力性が自動化されている場合 : 弾力性は管理者が実現することなので、弾力性を自動化する場合はS3が適する
4.他のデータベースプラットフォーム:サポート外のデータベースエンジンを使う場合はEC2で設定する方が良い