[AWS Cloud Practitiner Essential] (https://explore.skillbuilder.aws/learn/course/1875/play/27620/aws-cloud-practitioner-essentials-japanese-ri-ben-yu-shi-xie-ban) 殴りがき
インスタンスストア
EC2を作成すると、「インスタンスストアボリューム」というローカルストレージ(ハードディスクみたいな。)が提供される。
- インスタンスストアボリュームは、インスタンスが実行されるホストのストレージを仮想的に取得したもの
- そのため、インスタンスを終了させると、そのインスタンスが保存していたデータは失われる。
- 再度同じインスタンスを実行しても、同じ物理ホスト上で実行されるとは限らないため。
- 一時的なデータなどを保管する際に使う。
Amazon EBS(Elastic Block Store)
- ブロックストレージ
- 「EBSボリューム」という仮想ストレージが、インスタンスとひもづく。- 物理ホストとの紐付きではないため、インスタンスが終了され、再び実行してもデータは残ったまま。
- 設定を考える
- サイズ
- タイプ
- EBSのバックアップは、増分バックアップ(スナップショットを作成する)
- 1回目: 全てのデータがバックアップされる
- 2回目: 1回目から増えた分だけバックアップする
- 3回目: 2回目から増えた分だけバックアップする
- EC2インスタンスと1セットとなる。
- AZレベルでEBSが作られるため、違うAZのインスタンスに対してEBS上のデータを共有することはできない
※ 増分バックアップと差分バックアップの違い
- 増分は、前回からその都度増えた分だけバックアップをとる。
- 差分は、フルバックアップ(初回)から増えた分その都度バックアップをとる。 ⇦ 3回目の内容には、2回目の内容も含まれる。
S3(Amazon Simple Storage Service)
-
オブジェクトストレージ
-
データの保存・取得に制限がない。
-
アップロードの最大容量(= 一回にアップできるファイルの最大サイズ)は5TB
-
データ: オブジェクトとして保存される。
-
ディレクトリ: バケットと呼ばれる。
-
バケットにオブジェクトを保存するイメージ。
-
オブジェクトをバージョン管理する機能がある。
- 誤って削除されても、指定のバージョンにすぐに戻すことができる。
-
オブジェクトは、データ・メタデータ・キーで構成される
- データ: 保存する内容
- メタデータ: データの種類・使用方法・サイズ
- キー: 一意の識別子
-
アップする際に、アクセス制御を設定する。
S3ライフサイクルポリシー
ストレージクラス間でデータを自動的に移動する
- 例: 90日はS3標準で保存し、その後30日はS3低頻度アクセスで保存する。そしてその後はS3 Glacierで保存する。
- このような、どの期間をどのシステムで保存するかを設定できる。
ストレージクラス
S3標準
- 9 * 11 (イレブン9)の耐久性。 99.999999999%データを失うことはない。
- 静的Webサイトのホスティングができる ⇦ オブジェクトとしてWebサイトを保存すれば、それにアクセスするだけでWebサイトが使える
- 頻繁にアクセスされるデータ用
- 最低3つのアベイラビリティゾーンにデータが保存される。
S3標準 - 低頻度アクセス(S3標準-IA)
- バックアップなど、長期間でのデータ保存が必要だか、頻繁にアクセスすることはないデータを保存する。
- 頻繁にアクセスされることはないが、必要な際にはすぐアクセスできる設計
- 保存にかかる料金は低い。取り出しにかかる料金が高い。
- 最低3つのアベイラビリティゾーンにデータが保存される。
S3 1ゾーン - 低頻度アクセス(S3 1ゾーン - IA)
- 1つのアベイラビリティーゾーンにデータが保存される
- 長期データの保存が必要かつ頻繁にアクセスされることのないデータを保存する
- ストレージコストを節約する場合に適する
- AZが一つであるため、三つ使うストレージクラスより安い
- AZに障害が発生した場合にデータを簡単に復元できる。
S3 Intelligent-Tiering
- アクセスする頻度が不明な際、このストレージクラスを選択することにより、アクセス状況に応じて適切なストレージクラスに移動される。
- 30日間連続アクセスなし: S3標準-低頻度アクセスに移動。
- 低頻度アクセスに移動後にアクセスが増えた: S3標準に移動。
S3 Glacier
- データをアーカイブする必要がある場合。
- データの取得には数分から数時間かかる。(S3標準やS3標準-低頻度アクセスより取得に時間がかかる)
S3 Glacier Deep Archive
- 最も低コスト
- データ取得には12時間(以内)かかる。(S3 Glacierよりさらに取得に時間がかかる)
EBS と S3 の比較
- EBS
- 一つのファイルに対して、小さな変更を頻繁にするケースに適する
- ファイルを小さなパケットに分割して保存する(ブロックストレージ)ため、ファイルの極1箇所を変更した際は、その小さな変更分だけを更新されることになる。
- 一つのファイルに対して、小さな変更を頻繁にするケースに適する
- S3
- たくさんの場所から参照される場合(Webなど)に適する。
- 一つのファイルに対して、頻繁に変更しないケース(Write Once Read Many)に適する
- ファイルをオブジェクトとして保存する(オブジェクトストレージ)ため、ファイルの極1箇所に小さな変更を加えた場合でも、ファイル丸ごとアップロードし直さないといけない。
- ファイルが80GBで、そのうちの1GB分のデータに変更を加えた場合でも、80GB分を再アップロードする必要がある
- ウェブが有効(オブジェクトにはurlが付与されており、アクセス権によって操作する)
- 耐久性が強い -> 9 * 11の耐久性
- コスト削減 -> EBSを使うよりやすい。
- サーバーレスである。
Amazon Elastic File System(Amazon EFS)
- ファイルストレージ
- 複数のインスタンスがEFSのデータに同時に読み込み・書き込みができる
- スケーリング・複製などをAWSに任せることができる
- リージョン単位でEFSが作成されるため、同じリージョン内のインスタンスであればEFSのデータにアクセスすることができる。 ⇦ 複数リージョンに作成され、スケーリングなどがされる。
- Linuxファイルサーバーとなるため、アクセスする際には、ファイルパスを操作する
RDS (Amazon Relational Database Service)
以下の管理をAWSがしてくれる。
- 自動パッチ適用
- バックアップ
- 冗長性
- フェイルオーバー
- 災害対策
- セットアップ
- バックアップ
以下のRDBMSがサポートされている
- PostgreSQL
- MySQL
- MariaDB
- Oracle DB
- Microsoft SQL Server
- Amazon Aurora
- MySQLとPostgreSQLの二つと互換性がある。
- MySQLの5倍, PostgreSQLの3倍高速
- 高可用性が求められるケースに適する
- コストは商用DBの1/10
- データレプリケーション
- 常に6つのコピーが複製されている ⇦ 3つのAZに2つずつ。
- 最大15個まで複製を増やせる ⇦ 増やすことで読み取り負荷を分散してパフォーマンスを拡張させることができる
- S3への継続バックアップされている
- 特定の期間のデータを復旧できる(ポイントインタイムリカバリ)
- エンタープライズ規模のリレーショナルデータベース
AmazonDynamoDB
- サーバーレスデータベース。
- パッチ適用・管理・外ウェアのインストールなどを自動で実行してくれる
- 高いスケーラビリティ
- 自動的にスケーリングされる
- 非リレーショナルDB
- NoSQL(SQLは使わない。)
- 応答時間がめっちゃ短い。(数ミリ秒)
非リレーショナルDBの特徴
- キーバリューペアがある。
- キー: 一つのデータを示す
- バリュー: 一つのデータが持つ情報。それぞれのデータが同じバリュー属性を持たくて良い。
- バリューをいつでも追加・削除できる
キー | バリュー |
---|---|
1 | 名前: Kohei, 住所 123, 性別: 男 |
2 | 名前: Takeshi, 誕生日: 1180年7月7日, 年齢: 17 |
Amazon RDS と Amazon DynamoDBの比較
Amazon RDS
- 各データの複雑な結びつきがある場合に適する
Amazon DynamoDB
- 各データで複雑な結びつきがなく、大量なデータを高速に処理する場合に適する
Amazon Redshift
現在のデータではなく、過去のデータをさかのぼって処理するのに適する。
データウェアハウシングを提供するサービス
- ビックデータ分析
- データの傾向を理解するのに役立つ。
Amazon DMS(Amazon Database Migration Service)
オンプレミス環境や移行元EC2・RDSなどからクラウドへデータ移行をする際に役立つサービス。
RDS,非RDS(NoSQL)でも移行は可能。
-
開発環境・テスト環境でのデータベース移行にも使える。
- 開発環境 or テスト環境に本番環境のデータをコピーするなど。
-
データベースの統合にも使える。
- 複数のDBを一つのDBにまとめる
-
継続的なデータベースレプリケーションにも使える。
- 地理的に離れている場所に複製ができるため、優れたバックアップとして使える。
-
移行中も、移行元のDBを通常通り運用しながらできる
- アプリケーションのダウンタイムが最小限となる。
-
移行元と移行先のDBの種類が異なっていても問題なく移行できる
- ex: 移行元のMySQL を 移行先のPostgreSQLにデータを移せる
- スキーマ構造・データ型・データベースコード を 移行先へ変換
1. 実際にデータを移行する
その他のデータベースサービス
- Amazon DocumentDB
- MongoDBをサポートするドキュメントDBサービス。
- Amazon Neptune
- グラフDBサービス -> 高度に接続されたデータセットを使うアプリケーション構築に適する
- レコメンデーションエンジン・不正検出・ナレッジグラフなど
- Amazon QLDB(Amazon Quantum Ledger Database)
- 台帳DBサービス
- データに対して行われた全ての変更履歴を確認できる
- Amazon Managed Blockchain
- ブロックチェーンネットワークを作成・管理するために使用できる
- ブロックチェーンは複数の当事者がトランザクションを実行し、データを共有できるようにする分散台帳システム
- Amazon ElastiCache
- DB上にキャッシュレイヤーを追加することで、リクエスト読み込みを短縮できるサービス
- Amazon DynamoDB Accelerator
- DynamoDBのインメモリキャッシュ。応答時間をマイクロ秒に向上する。(DynamoDBはミリ秒)