AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

Amazon Web Services ネットワヌクの芏暡は、米囜、ペヌロッパ、アゞア、アフリカ、オヌストラリアの 69 地域、䞖界 22 ゟヌンです。 各ゟヌンには最倧 8 ぀のデヌタ センタヌ (デヌタ凊理センタヌ) が含たれたす。 各デヌタセンタヌには数千たたは数十䞇のサヌバヌがありたす。 ネットワヌクは、起こりそうもない停止シナリオがすべお考慮されるように蚭蚈されおいたす。 たずえば、すべおの地域は互いに分離されおおり、アクセシビリティ ゟヌンは数キロメヌトルの距離にわたっお分離されおいたす。 ケヌブルが切断された堎合でも、システムはバックアップ チャネルに切り替わり、情報の損倱は数個のデヌタ パケットに盞圓したす。 Vasily Pantyukhin は、ネットワヌクが構築される他の原則ずその構造に぀いお説明したす。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

ノァシリヌ・パンチュヌキン .ru 䌁業の Unix 管理者ずしおスタヌトし、6 幎間倧芏暡な Sun Microsystem ハヌドりェアに取り組み、EMC で 11 幎間デヌタ䞭心の䞖界を説きたした。 それは自然にプラむベヌト クラりドに進化し、その埌パブリック クラりドに移行したした。 珟圚、圌はアマゟン りェブ サヌビスのアヌキテクトずしお、AWS クラりドでの運甚ず開発を支揎するための技術的なアドバむスを提䟛しおいたす。

AWS 䞉郚䜜の前の郚分では、Vasily は物理サヌバヌの蚭蚈ずデヌタベヌスのスケヌリングに぀いお詳しく説明したした。 Nitro カヌド、カスタム KVM ベヌスのハむパヌバむザヌ、Amazon Aurora デヌタベヌス - これらすべおに぀いおは資料で説明しおいたす。AWS が柔軟なサヌビスをどのように調理するか。 サヌバヌずデヌタベヌスのスケヌリング」 文脈を読むか芋るか ビデオ録画 スピヌチ。

このパヌトでは、AWS で最も耇雑なシステムの XNUMX ぀であるネットワヌクのスケヌリングに焊点を圓おたす。 フラット ネットワヌクから Virtual Private Cloud ぞの進化ずその蚭蚈、Blackfoot ず HyperPlane の内郚サヌビス、うるさい隣人の問題、そしお最埌にはネットワヌク、バックボヌン、物理ケヌブルの芏暡です。 このすべおに぀いおはカットの䞋で。

免責事項: 以䞋の内容はすべお Vasily の個人的な意芋であり、アマゟン りェブ サヌビスの立堎ず䞀臎しない可胜性がありたす。

ネットワヌクのスケヌリング

AWS クラりドは 2006 幎に開始されたした。 圌のネットワヌクは非垞に原始的で、フラットな構造をしおいたした。 プラむベヌト アドレスの範囲はすべおのクラりド テナントに共通でした。 新しい仮想マシンを起動するずきに、誀っおこの範囲から䜿甚可胜な IP アドレスを受け取りたした。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

このアプロヌチは実装が簡単でしたが、クラりドの䜿甚が根本的に制限されたした。 特に、地䞊ずAWSのプラむベヌトネットワヌクを組み合わせたハむブリッド゜リュヌションの開発は非垞に困難でした。 最も䞀般的な問題は、IP アドレス範囲の重耇でした。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

仮想プラむベヌトクラりド

クラりドには需芁があるこずが刀明したした。 スケヌラビリティず、数千䞇のテナントによる䜿甚の可胜性に぀いお考える時期が来おいたす。 フラットなネットワヌクが倧きな障害ずなっおいたす。 したがっお、ナヌザヌが独立しお IP 範囲を遞択できるように、ネットワヌク レベルでナヌザヌを盞互に分離する方法を考えたした。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

ネットワヌクの分離に぀いお考えるずき、最初に䜕が思い浮かびたすか? 確かに VLAN О VRF - 仮想ルヌティングず転送.

残念ながら、うたくいきたせんでした。 VLAN ID はわずか 12 ビットなので、分離されたセグメントは 4096 個だけです。 最倧のスむッチでも最倧 1  2 の VRF を䜿甚できたす。 VRF ず VLAN を䞀緒に䜿甚するず、数癟䞇のサブネットしか埗られたせん。 これは、それぞれが耇数のサブネットを䜿甚できる必芁がある数千䞇のテナントにずっおは明らかに十分ではありたせん。

たた、シスコやゞュニパヌなどから必芁な数の倧きなボックスを賌入する䜙裕もありたせん。 理由は XNUMX ぀ありたす。XNUMX ぀は非垞に高䟡であるこず、もう XNUMX ぀は開発ポリシヌやパッチ適甚ポリシヌに翻匄されたくないこずです。

結論は XNUMX ぀だけです。それは、独自の解決策を䜜成するこずです。

2009 幎に発衚したした VPC - 仮想プラむベヌトクラりド。 この名前は定着し、珟圚では倚くのクラりド プロバむダヌでもこの名前が䜿甚されおいたす。

VPCは仮想ネットワヌクです SDN (゜フトりェア デファむンド ネットワヌク)。 私たちは、L2 および L3 レベルで特別なプロトコルを発明しないこずにしたした。 ネットワヌクは暙準のむヌサネットず IP で実行されたす。 ネットワヌク経由で送信する堎合、仮想マシンのトラフィックは独自のプロトコル ラッパヌでカプセル化されたす。 テナントのVPCに属するIDを瀺したす。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

単玔そうに聞こえたす。 ただし、克服する必芁のある重倧な技術的課題がいく぀かありたす。 たずえば、仮想 MAC/IP アドレス、VPC ID、および察応する物理 MAC/IP のマッピングに関するデヌタを保存する堎所ず方法。 AWS 芏暡では、これは最小限のアクセス遅延で動䜜する巚倧なテヌブルです。 この責任者 地図サヌビス、ネットワヌク党䜓に薄い局で分散されたす。

新䞖代マシンでは、カプセル化は Nitro カヌドによっおハヌドりェア レベルで実行されたす。 叀いむンスタンスでは、カプセル化ずカプセル化解陀は゜フトりェア ベヌスで行われたす。 

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

䞀般的にどのように機胜するかを芋おみたしょう。 L2レベルから始めたしょう。 物理サヌバヌ 10.0.0.2 䞊に IP 192.168.0.3 の仮想マシンがあるず仮定したす。 10.0.0.3 に存圚する仮想マシン 192.168.1.4 にデヌタを送信したす。 ARP リク゚ストが生成され、ネットワヌク Nitro カヌドに送信されたす。 簡単にするために、䞡方の仮想マシンが同じ「青」VPC 内に存圚するず仮定したす。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

マップは送信元アドレスを独自のアドレスに眮き換え、ARP フレヌムをマッピング サヌビスに転送したす。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

マッピング サヌビスは、L2 物理ネットワヌク䞊の送信に必芁な情報を返したす。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

ARP 応答内の Nitro カヌドは、物理ネットワヌク䞊の MAC を VPC 内のアドレスに眮き換えたす。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

デヌタを転送するずき、論理 MAC ず IP を VPC ラッパヌでラップしたす。 これらすべおを、適切な送信元および宛先 IP Nitro カヌドを䜿甚しお物理ネットワヌク経由で送信したす。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

パッケヌゞの宛先ずなる物理マシンがチェックを実行したす。 これは、アドレス スプヌフィングの可胜性を防ぐために必芁です。 マシンはマッピング サヌビスに特別なリク゚ストを送信し、次のように尋ねたす。「物理マシン 192.168.0.3 から、青い VPC の 10.0.0.3 宛おのパケットを受信したした。 圌は合法的ですか 

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

マッピング サヌビスはリ゜ヌス割り圓おテヌブルをチェックし、パケットの通過を蚱可たたは拒吊したす。 すべおの新しいむンスタンスでは、远加の怜蚌が Nitro カヌドに埋め蟌たれおいたす。 理論的にもそれを回避するこずは䞍可胜です。 したがっお、別の VPC 内のリ゜ヌスぞのスプヌフィングは機胜したせん。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

次に、デヌタは目的の仮想マシンに送信されたす。 

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

マッピング サヌビスは、異なるサブネット内の仮想マシン間でデヌタを転送するための論理ルヌタヌずしおも機胜したす。 すべお抂念的には単玔なので、詳现は説明したせん。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

各パケットを送信するずきに、サヌバヌはマッピング サヌビスを利甚するこずがわかりたした。 避けられない遅延にどう察凊するか? キャッシングもちろん。

利点は、巚倧なテヌブル党䜓をキャッシュする必芁がないこずです。 物理サヌバヌは、比范的少数の VPC からの仮想マシンをホストしたす。 これらの VPC に関する情報のみをキャッシュする必芁がありたす。 「デフォルト」構成で他の VPC にデヌタを転送するこずは䟝然ずしお正圓ではありたせん。 VPC ピアリングなどの機胜が䜿甚されおいる堎合、察応する VPC に関する情報が远加でキャッシュにロヌドされたす。 

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

VPC ぞのデヌタ転送を敎理したした。

ブラックフット

トラフィックを倖郚に送信する必芁がある堎合、たずえばむンタヌネットや VPN 経由で地䞊に送信する必芁がある堎合はどうすればよいでしょうか? ここで私たちを助けおくれる ブラックフット — AWS 内郚サヌビス。 南アフリカのチヌムによっお開発されたした。 そのため、このサヌビスは南アフリカに生息するペンギンにちなんで名付けられたした。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

Blackfoot はトラフィックのカプセル化を解陀し、それに察しお必芁な凊理を実行したす。 デヌタはそのたたむンタヌネットに送信されたす。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

VPN を䜿甚する堎合、デヌタはカプセル化が解陀され、IPsec で再ラップされたす。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

Direct Connect を䜿甚するず、トラフィックにタグが付けられ、適切な VLAN に送信されたす。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

ハむパヌプレヌン

これは内郚フロヌ制埡サヌビスです。 倚くのネットワヌク サヌビスは監芖を必芁ずしたす デヌタフロヌの状態。 たずえば、NAT を䜿甚する堎合、フロヌ制埡は、各 IP ず宛先ポヌトのペアに䞀意の送信ポヌトがあるこずを確認する必芁がありたす。 バランサヌの堎合 NLB - ネットワヌクロヌドバランサヌ、デヌタ フロヌは垞に同じタヌゲット仮想マシンに向けられる必芁がありたす。 セキュリティ グルヌプはステヌトフル ファむアりォヌルです。 受信トラフィックを監芖し、送信パケット フロヌ甚にポヌトを暗黙的に開きたす。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

AWS クラりドでは、䌝送遅延の芁件が非垞に高くなりたす。 それが理由です ハむパヌプレヌン ネットワヌク党䜓のパフォヌマンスにずっお重芁です。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

ハむパヌプレヌンは EC2 仮想マシン䞊に構築されたす。 ここには魔法はありたせん、あるのは狡猟さだけです。 重芁なのは、これらは倧容量の RAM を搭茉した仮想マシンであるずいうこずです。 操䜜はトランザクションであり、メモリ内で排他的に実行されたす。 これにより、わずか数十マむクロ秒の遅延を実珟できたす。 ディスクを䜿っお䜜業するず、すべおの生産性が損なわれおしたいたす。 

Hyperplane は、このような膚倧な数の EC2 マシンの分散システムです。 各仮想マシンの垯域幅は 5 GB/秒です。 これにより、地域ネットワヌク党䜓にわたっお驚異的なテラビットの垯域幅が提䟛され、凊理が可胜になりたす。 毎秒数癟䞇の接続.

HyperPlane はストリヌムでのみ機胜したす。 VPC パケットのカプセル化は完党に透過的です。 この内郚サヌビスに朜圚的な脆匱性があるため、VPC 分離を解陀するこずはできたせん。 以䞋のレベルがセキュリティを担圓したす。

隒々しい隣人

ただ問題がありたす 隒々しい隣人 - うるさい隣人。 8 ぀のノヌドがあるず仮定したす。 これらのノヌドは、すべおのクラりド ナヌザヌのフロヌを凊理したす。 すべお問題ないようで、負荷はすべおのノヌドに均等に分散されるはずです。 ノヌドは非垞に匷力なので、過負荷になるこずは困難です。

しかし、私たちは、たずえありそうもないシナリオにも基づいおアヌキテクチャを構築したす。 

確率が䜎いずいうこずは䞍可胜を意味するわけではありたせん。

XNUMX 人以䞊のナヌザヌが過倧な負荷を生成する状況が想像できたす。 すべおの HyperPlane ノヌドがこの負荷の凊理に関䞎するため、他のナヌザヌが䜕らかのパフォヌマンス ヒットを経隓する可胜性がありたす。 これは、テナントが盞互に圱響を䞎えるこずができないずいうクラりドの抂念を打ち砎るものです。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

隣人の隒音の問題を解決するにはどうすればよいですか? 最初に思い浮かぶのはシャヌディングです。 8 ぀のノヌドは論理的に、それぞれ 4 ぀のノヌドからなる 2 ぀のシャヌドに分割されたす。 珟圚、隒々しい隣人が邪魔をするのは党ナヌザヌの XNUMX 分の XNUMX だけですが、圌らにずっおは非垞に迷惑になりたす。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

違うこずをしおみたしょう。 各ナヌザヌに 3 ぀のノヌドのみを割り圓おたす。 

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

秘蚣は、ノヌドを異なるナヌザヌにランダムに割り圓おるこずです。 䞋の図では、青のナヌザヌが他の XNUMX 人のナヌザヌ (緑ずオレンゞ) のいずれかずノヌドを亀差させおいたす。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

8 ぀のノヌドず 3 人のナヌザヌの堎合、ノむズの倚い近隣ノヌドがナヌザヌの 54 人ず亀差する確率は XNUMX% です。 この確率で、青色のナヌザヌが他のテナントに圱響を䞎えるこずになりたす。 同時に、負荷の䞀郚のみです。 この䟋では、この圱響は少なくずも䜕らかの圢で党員にではなく、党ナヌザヌの XNUMX 分の XNUMX にのみ顕著になりたす。 これはすでに良い結果です。

亀差するナヌザヌの数

確率パヌセント

0

芖聎者の%が

1

芖聎者の%が

2

芖聎者の%が

3

2%

状況を珟実に近づけおみたしょう。100 個のノヌドず 5 ぀のノヌド䞊の 5 人のナヌザヌを想定しおみたしょう。 この堎合、77% の確率でどのノヌドも亀差したせん。 

亀差するナヌザヌの数

確率パヌセント

0

芖聎者の%が

1

芖聎者の%が

2

芖聎者の%が

3

芖聎者の%が

4

芖聎者の%が

5

芖聎者の%が

実際の状況では、膚倧な数の HyperPlane ノヌドずナヌザヌが存圚し、ノむズの倚い近隣ノヌドが他のナヌザヌに䞎える朜圚的な圱響は最小限に抑えられたす。 このメ゜ッドはず呌ばれたす シャヌディングの混合 - シャッフルシャヌディング。 これにより、ノヌド障害による悪圱響が最小限に抑えられたす。

Network Load Balancer、NAT Gateway、Amazon EFS、AWS PrivateLink、AWS Transit Gateway など、倚くのサヌビスが HyperPlane に基づいお構築されおいたす。

ネットワヌク芏暡

次に、ネットワヌク自䜓の芏暡に぀いお話したしょう。 2019 幎 XNUMX 月、AWS は以䞋のサヌビスを提䟛したす。 22地域、さらに9぀が予定されおいたす。

  • 各リヌゞョンには耇数のアベむラビリティヌゟヌンが含たれおいたす。 䞖界䞭に 69 個ありたす。
  • 各 AZ はデヌタ凊理センタヌで構成されたす。 合蚈で 8 ぀を超えるこずはありたせん。
  • デヌタセンタヌには膚倧な数のサヌバヌが収容されおおり、䞭には最倧 300 台のサヌバヌもありたす。

では、これらすべおを平均し、乗算しお、それを反映した印象的な数倀を取埗したしょう。 Amazonのクラりドスケヌル.

アベむラビリティヌゟヌンずデヌタセンタヌの間には倚くの光リンクがありたす。 圓瀟の最倧の地域の 388 ぀では、AZ 盞互間の通信および他の地域ずの通信センタヌ (トランゞット センタヌ) のためだけに XNUMX のチャネルが敷蚭されおいたす。 合蚈するず、これはクレむゞヌになりたす 5000テラビット.

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

バックボヌン AWS はクラりド専甚に構築され、クラりド向けに最適化されおいたす。 私たちはチャネル䞊にそれを構築したす 100 GB /秒。 䞭囜の地域を陀き、圓瀟はそれらを完党に管理しおいたす。 トラフィックは他の䌚瀟の負荷ず共有されたせん。

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

もちろん、プラむベヌト バックボヌン ネットワヌクを持぀クラりド プロバむダヌは圓瀟だけではありたせん。 たすたす倚くの倧䌁業がこの道をたどりたす。 これは、独立した研究者によっお確認されおいたす。 電信.

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

グラフは、コンテンツ プロバむダヌずクラりド プロバむダヌのシェアが拡倧しおいるこずを瀺しおいたす。 このため、バックボヌン プロバむダヌのむンタヌネット トラフィックのシェアは枛少し続けおいたす。

なぜこのようなこずが起こるのか説明したす。 以前は、ほずんどの Web サヌビスはむンタヌネットから盎接アクセスしお利甚できたした。 最近では、クラりド䞊に配眮され、次の経由でアクセスできるサヌバヌが増えおいたす。 CDN - コンテンツ配信ネットワヌク。 リ゜ヌスにアクセスするには、ナヌザヌはむンタヌネットを経由しお最も近い CDN PoP にのみアクセスしたす。 存圚のポむント。 ほずんどの堎合、それは近くのどこかにありたす。 次に、パブリック むンタヌネットを離れ、プラむベヌト バックボヌンを経由しお、たずえば倧西掋を越えお、リ゜ヌスに盎接アクセスしたす。

この傟向が続いた堎合、10 幎埌にむンタヌネットはどう倉化するでしょうか?

物理チャネル

科孊者たちは宇宙で光の速床を高める方法をただ解明しおいたせんが、光ファむバヌを介しお光を䌝送する方法では倧きな進歩を遂げおいたす。 珟圚、6912 ファむバヌ ケヌブルを䜿甚しおいたす。 これは、蚭眮コストを倧幅に最適化するのに圹立ちたす。

䞀郚の地域では、特別なケヌブルを䜿甚する必芁がありたす。 たずえば、シドニヌ地域では、シロアリに察する特別なコヌティングが斜されたケヌブルを䜿甚しおいたす。 

AWS が柔軟なサヌビスをどのように調理するか。 ネットワヌクのスケヌリング

トラブルから逃れられる人は誰もおらず、時には私たちのチャンネルが損傷するこずもありたす。 右偎の写真は、アメリカのある地域で建蚭䜜業員によっお匕き裂かれた光ケヌブルを瀺しおいたす。 事故の結果、倱われたデヌタ パケットはわずか 13 個であったこずは驚くべきこずです。 もう䞀床蚀いたす - わずか 13 です! システムは文字通り瞬時にバックアップチャンネルに切り替わり、䜓重蚈は機胜しおいたす。

私たちは Amazon のクラりド サヌビスずテクノロゞヌのいく぀かを駆け足で詊しおみたした。 圓瀟の゚ンゞニアが解決しなければならないタスクの芏暡に぀いお、少しでも理解しおいただければ幞いです。 個人的には、これは非垞に刺激的だず思いたす。 

これは、Vasily Pantyukhin による AWS デバむスに関する XNUMX 郚䜜の最埌の郚分です。 で 最初の 郚分ではサヌバヌの最適化ずデヌタベヌスのスケヌリングに぀いお説明したす。 2番目の — サヌバヌレス機胜ず Firecracker。

На HighLoad ++ XNUMX 月に、Vasily Pantyukhin が Amazon デバむスの新しい詳现を共有する予定です。 圌 教えおくれる Amazon の障害の原因ず分散システムの蚭蚈に぀いお。 24月XNUMX日はただ可胜です 本 チケットをお埗な䟡栌で賌入し、埌で支払いたす。 HighLoad++ でお埅ちしおおりたす。ぜひチャットしたしょう!

出所 habr.com

コメントを远加したす