koji/メガネ男の日誌

日々の学び、活動状況を記録します。仕事のことは少なめ。

ABL 「シャッフルシャーディングを使ったワークロードの分離」を読んだ

f:id:kj_man666:20200418083017j:plain

 輪読会の発表に向けて、Amazon Builder's Library(以下、ABL) を読んだので、簡単にまとめてみました。

 テーマは「シャッフルシャーディングを使ったワークロードの分離」です。

aws.amazon.com

 記事は、Amazon Web Service のシニアプリンシパルエンジニアの方が書いておりまして、項目は、以下の6つでした。

はじめに

DNS ホスティングの対応開始

DDoS 攻撃への対処

シャッフルシャーディングとは?

Amazon Route 53 とシャッフルシャーディング

まとめ

  それでは内容について触れていきたいと思います。

 

はじめに

 Amazon Route 53 立ち上がり時期の話。

Amazon Route 53 は、可用性と拡張性に優れたクラウドのドメインネームシステム (DNS) ウェブサービスです。
Amazon Route 53 は、www.example.com のような名前を、コンピュータが互いに接続するための数字の IP アドレス (192.0.2.1 など) に変換するサービスで、開発者や企業がエンドユーザーをインターネットアプリケーションにルーティングする、きわめて信頼性が高く、コスト効率の良い方法となるよう設計されています。

aws.amazon.com

DNS ホスティングの対応開始

 ドメイン名を自由に変えるためには、利用者のドメインを、実際にホスティングする必要がある。

ホスティングの定義
 ホスティングとは、一言で表すと「サーバを借りること」です。
レンタルサーバと呼ばれることもあります。
 もう少し詳しく表すと、インターネットサービスプロバイダなどが顧客にサーバを貸し付けて、そこにメールサービスやウェブサービスを預けておくことを言います。

boxil.jp

 DNS に問題が発生すれば、サービス全体がオフラインになる可能性がある。
 DNSホスティングを行えるようにするのは難しい取り組みであったが、Amazonはドメイン名を変えたいという顧客の需要に応えようとした。

 

DDoS 攻撃への対処

 いちばん難しい課題は、DDoS(distributed denial of service)攻撃への対応である。

 DoS攻撃(Denial of Service attack)とは、サイバーの攻撃の1つであり、攻撃目標であるサイトやサーバに対して大量のデータを送り付けることで行われる攻撃です。
 受信側はトラフィックが異常に増大するので、負荷に耐えられなくなったサーバやサイトがダウンしてしまいます。

cybersecurity-jp.com

 

 DNS は UDP プロトコルを使っているためリクエストが偽装されやすい。

UDP(User Datagram Protocol)
 再送制御などを行わず「送りっぱなし」にする仕組みなので、TCPほど信頼性が高くはないですが、そのぶん速いので、高速性やリアルタイム性を求める通信に使用されるプロトコルです。
 TCPがコネクション型と言われるのに対して、UDPはコネクションレス型プロトコルと言われます。

kansiho.hatenablog.com

 DNSがUDPを使うのはなぜですか?

 DNSにおける名前解決では、やりとりされるデータが小さいことから原則として問い合わせ・応答ともに1パケットのUDPで行えるように設計されています。
 これはTCPに比べてUDPはプロトコルオーバヘッド※1が小さいという利点があるからです。

kansiho.hatenablog.com

www.atmarkit.co.jp

 にも関わらずDNSは重要なインフラであるため、ハッカーの攻撃の対象になりやすい。

 ドメインに対しては毎日数千のDDoS攻撃が仕掛けられている。

  対抗策として、サーバーの容量を増やすことが考えられるが、攻撃側に比べてコストがかかりすぎるため、現実的には難しい。

 そこでAmazon Route 53 が生み出したのが、シャッフルシャーディングである。

シャッフルシャーディングとは?

シャード時間
 シャードとは、Amazon Kinesis データストリームの基本的なスループットの単位です。

aws.amazon.com

 仮想のシャードを使って負荷を分散させる、シャッフルシャーディングを使うことで、被害の範囲を抑えることができる。

 シャッフルシャーディング – シャッフルシャーディングは、データの水平パーティションを別々のデータベースサーバーに分散して負荷を分散し、冗長性を提供するデータベースシャーディングの概念に似ています。
 同様に、Amazon Route 53はシャッフルシャーディングを使用して多数のPoP上でDNS要求を分散し、アプリケーションに複数のパスとルートを提供します。

stay-ko.be

Amazon Route 53 とシャッフルシャーディング

 そして、攻撃されたユーザーを特定し、攻撃対応用のスペースに隔離する。
 DDoS攻撃に対応するためのサービス、AWS Shield もある。

 AWS Shield はマネージド型の分散サービス妨害 (DDoS) に対する保護サービスで、AWS で実行しているアプリケーションを保護します。

aws.amazon.com

 

まとめ

 改良により、複数のレイヤーでアイテムをシャードすることで、最終ユーザー(B(AWS) to B(AWS契約者) to C の C のこと?)も隔離できるようになった。
  シャッフルシャーディングは通常追加コスト無しで導入できる。

 

参考

 

 以上になります、最後までお読みいただきありがとうございました。