DyanamoDB
AWSが提供するマネージドNoSQLデータベースサービスのこと。
Firebaseと同じ。Key-Value型のデータベースを提供しており、拡張性に優れている。
- サーバーレス
フルマネージドなのでプロビジョニングやパッチ、管理用のサーバーだけでなく、インストール、メンテナンス、または運用するソフトウェアも不要です。DynamoDBではテーブルを自動的にスケーリングして容量を調整し、パフォーマンスの維持ができます。
ちなみにプロビジョニングとは「必要に応じてネットワークやコンピュータの設備などのリソースを提供できるよう予測し、準備しておく」という意味合い。供給や設備等の意味を表すプロビジョン(provision)という単語がもととなって派生した言葉。
-
高可用性設計
可用性とは「壊れにくい、復旧が早いなど耐障害性に強い、信頼性の高いシステム」といった意味合い。
単一障害点を持たない構成となっているので、サービス面の障害対応やメンテ時の運用を考える必要がない。 -
キャパシティユニット
簡単に言うと読み込み/書き込み容量のこと。従量課金性とは違い、設定したキャパシティ(DynamoDBに1s あたりどれくらい書き込めるか)に応じた「常時課金」システム。高機能なバケツを用意したら、その分常に高めの費用を払い続ける必要がある。
Lambda関数
サーバーをプロビジョニングしなくてもプログラムを実行できるコンピューティングサービスのこと。
アプリ作成において必要なソースコードを書き上げたとする。外部に公開する際に、EC2を使ったとしても、インスタンスを作成し各種ソフトウェアを自分でインストールしてあげる必要があった。Lambdaを使うとその辺りの手間隙いらずとなる。ソースコードを用意するだけであとは勝手にデプロイできるような環境が整備される。FirebaseのCloud Functionと同等サービス。
APIゲートウェイ
APIの管理や実行を簡単にしてくれる仕組み。
オートスケール機能もあり可用性に優れている。
例えば、1つのWebサービスに「決済サービス」「ショッピングカート」「メール機能」「レコメンド機能」といった複数のAPIが使われている場合、クライアントはそれぞれのAPIと個別に通信することになりこの例でいえば計4回の通信が発生します。
APIゲートウェイを使うと、クライアントはAPIゲートウェイと通信を行い、APIゲートウェイがそれぞれのマイクロサービスと通信するためクライアントはマイクロサービスを知る必要がありません。
ちなみにマイクロサービスとは、小さなサービスを集合させて組み合わせることで作り上げられたサービスのこと。例えば商品データベースやデータ分析機能をそれぞれ別で作成して、それを組み合わせて作り上げられたサービスとかは該当する。
上の図の右側の例のように、4つマイクロサービスが存在する場合、クライアントがそれぞれ4か所と通信を行う必要がある。それでは非効率だということでAPIを管理するゲートウェイの出番が発生する。
参考