本記事は、株式会社ギックスの運営していた分析情報サイト graffe/グラーフ より移設されました(2019/7/1)
目次
「キューサービス」をクラウドから利用する
以前より、クラウドサービスサービスについて説明させていますが、今回は「クラウドキューサービス」です。まず、「キュー」そして「キューサービス」に関しての詳しい説明はこちらをご覧ください。
概要としては、
- 「キュー(Queue)」とは「処理の待ち行列」である
- コンピュータにおいてはキューの機能を提供する「キューサービス(キューシステム)」が存在する
- キューサービスには「データ投入」と「データ取出」の処理が求められる
- キューサービスの内部には「データ排他機能による処理の一貫性の担保」や「エラー発生時の柔軟な対応」が匠の技として動いている
という説明をさせていただきました。
クラウドキューサービスはこれらキューに求められる処理や機能を、クラウド上でのサービスとして提供します。ちなみにこのサービスを人間が直接キーボードやマウスを使って利用することはほとんどありません。クラウドキューサービスは「サービス利用者が作成したプログラム」から利用される事がほとんどです。これはキューという機能がプログラムの内部処理と密接に結びついていることが理由です。
クラウドキューサービスは「高い応答速度」「高い耐久性」を実現する
キューサービスはそのシンプルな機能に反して自前での開発に多くのコストがかかります。理由は以下の二つです。
理由1:処理が高負荷になる
キューサービスは「データの投入・取出」をひたすら行うサービスです。このため外部のシステムやサービスからひっきりなしに入力と出力の処理要求が発生します。また要求された処理を行う際の応答速度に関しても非常に高い性能が求められます。この為自然と高負荷になりやすく過去においてはシステム応答速度のボトルネックになることもしばしばでした。
理由2:障害発生時にデータを喪失しやすい
「データの投入・取出」を頻繁に行う性格上、キューに格納されるデータは「一時的なデータ」という位置づけがなされる場合が多いのですが、この「一時的なデータ」はシステム障害を起こした場合にバックアップを取りにくいデータであるとされています。この為これまでキューサービス開発においての対障害性や耐久性は多くの開発者の頭を悩ませてきました。
クラウドキューサービスは救世主
上記の理由によってこれまで開発に多くのコストを必要としてきたキューサービスですが、クラウドキューサービスはこれらをもののみごとに解決しています。クラウドキューサービスは高負荷時のサービス応答速度も非常に高速です。加えて耐久性も非常に高く少なくとも筆者の経験ではこれまでに障害経験はありません。上記2点の解決においてこのサービスはまさに救世主とでもいえるものでした。なぜこのような高度なサービス提供が可能になったのでしょうか?キーワードは並列分散処理です。クラウドサービスはサービスの実現に高い仮想化技術を駆使していることから仮想化技術と密接な関係にある並列分散処理に対しても大きな強みを持っています。この並列分散の技術によって高負荷時の全体応答速度の向上と内部の小規模な障害発生時における処理代替機能および自動復旧機能を実現していると考えられます。
利用料金はキューへのアクセス数とデータ容量できまる
利用料金はデータの投入や取出などの「キューサービスへのアクセス数」と「キューに格納したデータの容量」で決定されます。クラウドキューサービスの利用料金は非常に安価です。
具体的なサービス名は?
Amazon Web Services社(通称AWS)が提供する「Amazon SQS」、Microsoft社が提供する「Azure Queueストレージ」といったサービスが有名です。弊社でもこれらのサービスを実際に使用しています。