AWSコアサービス3
S3の概要
AWSストレージサービス
AWSは3つの形式でストレージサービスを提供。
●ブロックストレージ
・EC2にアタッチして活用できるディスクサービス
・ブロック形式でデータを保存
・高速、広帯域幅
・EBS、インスタンスストア
●オブジェクトストレージ
・安価かつ高い耐久性をもつオンラインストレージ
・オブジェクト形式でデータを保存
・S3、Glacier
●ファイルストレージ
・複数のEC2インスタンスから同時にアタッチ可能な共有ストレージサービス
・ファイル形式でデータを保存
・EFS
Simple Storage Service(S3)
ユーザがデータを容量制限なく保存可能なマネージド型で提供されるオブジェクト型ストレージ。
◾️特徴
・高い耐久性
99.99999999%
・安価なストレージ
容量単価:月額1GB / 約2.5円
・スケーラブルで安定して性能
データは冗長化されて保存されデータ容量に依存しない性能が
AWS側で保証される
・暗号化
転送中や保存時にデータを暗号化可能
◾️データ保存形式
・バケット
オブジェクトの保存場所
名前はグローバルでユニークな必要あり
・オブジェクト
S3に格納されるファイルでURLが付与される
バケット内オブジェクト数は無制限
・データサイズ
データサイズは0KBから5TBまで保存可能
S3のオブジェクト構成
◾️Key
オブジェクトの名前であり、バケット内のオブジェクトは一意に識別する
◾️Value
データそのものであり、バイト値で構成される
◾️バージョンID
バージョン管理に用いるID
◾️メタデータ
オブジェクトに付随する属性の情報
◾️サブリソース
バケット構成情報を保存および管理するためのサポートを提供
アクセス制御リスト(ACL)
S3のデータ構造
S3はバケット単位で保存スペースを区別し、オブジェクトでデータを格納する
S3→バケット→オブジェクト
AWSストレージサービス
・STANDARD(※通常これを選ぶ)
複数箇所にデータを複製するため耐久性が非常に高い
・STANDARD-IA
スタンダードに比べて安価
データの読み出しに容量に応じた課金
・One Zone-IA
アクセス頻度は低いが、必要に応じてすぐに取り出すデータ向け
・RRS
Reduced Redundancy Storage 低冗長化ストレージ
Glacierから取り出したデータ配置等
・Amazon Glacier
最安のアーカイブ用ストレージ
データ抽出にコストと時間(3〜5時間)を要する
ライフサイクルマネジメントで指定
ボールロック機能でデータを保持
S3 Inteligent-Tiering
低頻度アクセスのオブジェクトを自動的に低頻度アクセス層に移動することでコストを削減する。
※30日間アクセスがないと自動的に低頻度アクセス層に移動する
データベースの基礎
データベース
データベースは関連したデータの形式を揃えて収集・整理して検索などの操作やデータ管理を実行するシステム。
データベースを実現したシステムをDBMS(データベースマネジメントシステム)という。
基本的なデータベースはテーブルという表形式でデータを格納している。
データベースは追加・参照・更新・削除などのデータ操作を容易に実行するソフトウェアやデータモデルと一体。
総称してCRUDと呼ぶ。
データベースとストレージ
ストレージはデータベースの記憶装置を構成する1つの要素。
◾️ストレージ
・コンピュータの主要な構成要素の1つでデータを永続的に記憶する装置
◾️データベース
・データベース内のデータを保存する装置はストレージであるが、
データベースそのものではない
・ストレージ+データを管理、操作するデータベースソフトウェア
データベースの役割
データベースはデータ操作を異常なく実行でき、データを安全に保護しつつ、保存、操作ができる仕組みを提供している。
データベースの役割を支える仕組みを理解する。
◾️トランザクション
データベースをある一貫した状態から別の一貫した状態へ変更する
1つの処理の束のこと
◾️データモデル
実世界におけるデータの集合をDBMS上で利用可能な形に
落とし込むためのモデル
トランザクション
データベースをある一貫した状態から別の一貫した状態へ変更する1つの処理の束のこと。
・同時アクセスした場合に上手く処理する
・データ処理に失敗したら、元に戻してくれる
・システムがクラッシュしてもデータを保護する
トランザクション:ACID
ACIDは信頼性のあるトランザクションシステムの持つべき性質のこと。
◾️Atomicity(原子性)
トランザクションが「全て実行される」か「1つも実行されない」の
どちらかの状態になるという性質
◾️Consistency(整合性)
トランザクションの前後でデータの整合性が保たれ、
矛盾のない状態が継続される性質
◾️Isolation(独立性)
トランザクション実行中の処理過程が外部から隠蔽され、
他の処理などに影響を与えない性質
◾️Durability(耐久性)
トランザクションが完了したら、その結果は記録されクラッシュしても
失われることがないという性質
トランザクション:耐久性
データを更新する際にCOMMITとする更新が反映されるがCOMMITされないとデータがロールバックして保護する。
トランザクション:整合性
同時に複数人がアクセスした場合などにデータ整合性を維持する必要がある。
同時に複数人がアクセスした場合など、データのデータ整合性を維持するための方式(結果整合性や強い整合性など)
データモデル
データモデルはデータベースのデータの持ち方などの構造や処理を定めるデータの論理的な表現方法。
データベースには様々なデータモデルが存在し、利用目的に応じて使い分ける。
・リレーショナルモデル
・グラフモデル
・キーバリューストア
・オブジェクト
・ドキュメント
・ワイドカラム
・階層型
RDSの概要
RDSは様々なデータベースソフトウェアに対応したフルマネージドなリレーショナルデータベース。
以下のような標準ソフトウェアを利用したデータベースを構築できる。
AWSのデータベース構築
AWSにおけるデータベース構築はEC2に自らインストールして構築するか、専用DBサービスを利用するかの2通り。
・EC2
メリット:自由にDB構成や機能を利用
デメリット:構築・運用が手間
・RDS等
メリット:構築・管理が楽(大部分がAWS側)
デメリット:AWS提供の範囲内での利用制限
RDSの制約事項
RDSはマネージド型で楽な反面、AWSから提供される機能範囲内での制限を受ける。
【RDSの主な制限事項】
・バージョンが限定される
・キャパシティに上限がある
・OSへのログインができない
・ファイルシステムへのアクセスができない
・IPアドレスが固定できない
・一部の機能が使えない
・個別パッチは適用できない
RDSの特徴
RDS自体がマネージド型の高可用なのに加え、マルチAZによるMaster / Slave構成を容易に構築することができる。
同期レプリケーションや自動ファイルオーバーなどのような構成にすることによって信頼性や耐障害性を高められる。
さらに、非同期レプリケーション(リードレプリカ)を作ることによってリードレプリカをデータを参照するので読み込み速度をスケーリングすることができる。
最大15台(Aurora)、RDSは5台設置できる。
また、自動 / 主導でスナップショットを取得して保存管理し、耐障害性を確保できる。
スケーリング
マネージドコンソールやAPIからスケールアップ可能。
・インスタンスタイプを変更してスケールアップ / ダウンを実施
・コマンドライン(AWS CLI)やAPIからストレージを数クリックで容易にスケールアップ / ダウンをする
・一時的にインスタンスタイプを大きくしてその後戻すことも可能
・ストレージサーズは拡張はできるが縮小はできない
データベースシャーディングを利用してRDSの書き込み処理をスケーリングする。
ユーザーのIDによってデータベースのアクセス先を変えることができる。
DBインスタンスの暗号化
保管時のインスタンスとスナップショットの暗号化が可能。
【暗号化対象】
・DBインスタンス
・自動バックアップ
・リードレプリカ
・スナップショット
【暗号化方式】
・AES-256暗号化
・AWS KMSによる鍵管理
・リードレプリカも同じ鍵を利用
・インスタンス作成時にのみ設定可能
・スナップショットのコピーの暗号化 / リストア可能