Open7

AWS 単語帳

MonoMono

Amazon Aurora

AWSが提供するRDSで、MySQLとPostrageSQLに互換性がある。
99.99%の可用性[1]を実現している(一年換算で52分しか停止しない)。

マルチAZ展開

高可用性と耐障害性を提供する機能で、データを複数のアベイラビリティーゾーン[2]に同期レプリケーション[3]し、障害時には自動フェイルオーバー[4]する。
データ損失を防ぎつつ、短時間でのサービス復旧を可能にしているが、書き込み遅延が増える可能性がある...?

脚注
  1. システムを障害(機器やパーツの故障・災害・アクシデントなど)で停止させることなく稼働し続けること、またはその指標のこと ↩︎

  2. AWSリーション内にある独立したデータセンター郡で、物理的に離れて配置されている。 ↩︎

  3. データを複数のアベイラビリティーゾーンに同時に保存する仕組み。どれかが使えなくなっても、余っている方で作業などを続けられる。 ↩︎

  4. システム障害時にバックアップリソースへ自動的に切り替える仕組み。プライマリDBが使用できなくなるとスタンバイDBへ自動的に切り替わり、サービスを復旧する。 ↩︎

MonoMono

Amazon EBS

EC2インスタンスに接続して使用する高性能ブロックストレージサービス[1]で、データベース、ファイルシステム、ビックデータ解析などワークロード[2]へ最適化され、スナップショット[3]を使ったバックアップやデータ移行もできる。

99.999%の高い耐久性を持つボリューム[4]も提供される。

脚注
  1. データを細かく分けて保存する仕組みで、必要なときに保存することで1つのまとまりとして保存する方法よりも効率的。 ↩︎

  2. ウェブサイトやアプリ、データ管理システムなどのこと。 ↩︎

  3. AWSにおけるデータバックアップ方法の1つで、特定の時点におけるデータのコピー。最初のスナップショットはすべてのデータをバックアップするが、その後のスナップショットは前回から変更されたデータだけを保存する「増分スナップショット」になる。これにより、ストレージコストを抑えることができる。 ↩︎

  4. AWSで使用されるストレージデバイスで、ハードディスクのようなもの。SSDとHDDがある? ↩︎

MonoMono

Amazon Elastic Mapreduce(EMR)

Hadoop[1]やSpark[2]などの大規模データ処理フレームワークを簡単に実行できるAWSの完全管理型サービス[3]で、大規模データの処理、データ分析、機械学習などに利用されている。
AWSの他のサービスと統合して、効率的なデータ管理を提供する。

🤔インフラ管理

AWSなどのクラウドサービスの利用によって、物理的なサーバーやネットワークの管理から開放されること。インフラの設計やメンテナンス[4]をAWSが担ってくれる。

例えば、AWSが提供するEC2インスタンスを利用すると、物理サーバーの購入や保守、ハードウェアのアップグレードなどをAWS側が担ってくれる。また、スケーリングや故障の対応なども行ってもらえる。[4:1]

🤔スケーラブル

必要に応じて効率的にリソースを増減できることで、AWSでは自動で調整できる機能がある。トラフィックが急増した際にストレージやネットワーク容量などを自動的に増加させる。

パフォーマンスが維持されるだけでなく、減少した場合は同様に調整されるので、コストも最適化される。過剰なリソースを提供する必要がない。

脚注
  1. 主にバッチ処理で使用される。データの保存から直列で処理するため、時間がかかることがある。 ↩︎

  2. リアルタイム処理に特化していて、メモリ上に保持して高速に処理できる。 ↩︎

  3. ユーザーがインフラやソフトウェアの運用を意識せずに利用できるサービス。代表的なものはAmazon AuroraやAmazon DynamoDBで、インフラ管理から開放され、スケーラブルで高可用性を備えている。 ↩︎

  4. サーバーの設定やネットワークの構成、バックアップやリカバリ作業などストレージの管理など。 ↩︎ ↩︎

MonoMono

プレイスメントグループ

EC2におけるインスタンスを特定の方法で配置して、ネットワークのパフォーマンスや可用性を最適化するための機能で、ワークロードに応じた配置戦略ができる。

大きく分けて3つの配置がある。

  1. クラスター配置 [1]
  2. パーテーション配置[2]
  3. スプレッド配置[3]
脚注
  1. 同じアベイラビリティーゾーンで密接に配置する。高速な通信が必要な場合に最適であり、障害時に影響を受けやすい。 ↩︎

  2. 大規模で分散したワークロードに適していて、論理的に分けてインスタンスを配置する。異なるパーテーション内のインスタンスは異なるハードウェアを使うことで障害などの影響を最小限に抑える。高可用性と耐障害性を重視するワークロードで、大規模な分散システムに有効。 ↩︎

  3. 少数のインスタンスを異なるハードウェアに配置し、複数のインスタンスが同時に障害を受けるリスクを減らす。可用性重視なシステムに有効。 ↩︎

MonoMono

Amazon SQS

分散システムやマイクロサービス間でメッセージを送受信するための完全管理型サービスで、システム間の通信シンプルでスケーラブルになる。
主な特徴として、メッセージの高い耐久性と可用性を確保し、メッセージがキューに格納されることでシステムを疎結合にすることができる[1]

標準キュー

スケーラブルで、メッセージの順番は保証されない。

FIFO

メッセージの順番を厳格に守る。

ショートポーリング

メッセージの受信方法の一つ。キューからメッセージを確認するリクエストが発生するたびに、結果を即時返す。メッセージが存在しない場合、空のレスポンスを返す。

短い間隔で定期的にキューをチェックする小規模なアプリケーションやテスト環境で使用される。

メリット

  • 実装がシンプルで、応答を即座に受けられる。
  • リクエストが直ちに終了するため、システム負荷が短期間で済む。

デメリット

  • メッセージの受信タイミングに依存するため、メッセージがない場合に無駄なリクエストを行う。
  • 高トラフィックの状態で、リクエストが頻繁に行われるとコストが増加する恐れがある。

ロングポーリング

メッセージの受診方法の一つ。キューからメッセージを確認するリクエストが行われた際に、メッセージが届くまで待機し、メッセージが到着すると即座に応答を返す。最大で20秒間待機可能。

メリット

  • 無駄なリクエストが発生しないため、コスト削減できる。
  • リアルタイムでメッセージを受け取れる。

デメリット

  • 応答時間が長くなる場合があり、短時間で結果を得たいアプリケーションには向かない。
  • リクエストが長時間開かれるため、リソースの使用料が増える。

独り言

昔、携帯のメール機能で「新着メール受信 」という機能があって、あれはロングポーリングだったのかな。

脚注
  1. ECサイトで注文情報をバックエンドにわたす際に、注文をキューに入れてバックエンドがそれを受け取り、順次処理するなどの使い方。 ↩︎

MonoMono

EC2

オンデマンド

通常のインスタンス購入方式で、コンピューティング性能に対して秒単位でお金を払う。ライフサイクルを制御できるため、起動/停止/休止/再開/再起動/終了を決定できる

リザーブド

1年または3年の期間利用を予約して、オンデマンドと比較すると最大75%の割引が適用されるインスタンスの購入方法。

スポット

オンデマンドより安価で利用できるインスタンスで、静止状態割引でリクエストできる。

スケジュールド

2021年に利用停止になったので割愛。