Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Vyattaでやってます! Multi Region VPN on Amazon Web Services #jvum2014s

Vyattaでやってます! Multi Region VPN on Amazon Web Services #jvum2014s

YAGASAKI Akihiro

April 14, 2014
Tweet

More Decks by YAGASAKI Akihiro

Other Decks in Technology

Transcript

  1. 某インフラ  ターゲット顧客が各国にいる  CDNを利用  各国に動的コンテンツを配信したり、POSTを受ける  Multi Regionにサーバたちを配置

     1つのサービス・プロジェクト専用ではなくプラットフォームと して構築  できるだけ汎用的な構成に  運用者はサーバが各国にあることをあまり意識したくない  VPNでつないでフラット風に  各ネットワークには役割を持たせ、ネットワーク間の通信制御を したい  VPCをいろいろ分ける
  2.  各ネットワーク内でもセグメントを分けてセキュアにしたい  AWSだとNACL(塩と呼んでます)かな?  オンプレシステムやイントラネットともつないで社内からシーム レスに使いたい  既存システムとつなぐにはいろいろな通信制御が必要 

    外部のデベロッパーやオペレータにもシームレスにつながせて効 率的にDevOpsしたい  VPNでつなぐけども設定をいちいちするのはいや ※AWSでいうVPC間をどうつなぐかが重要ポイン ト!
  3. VGW with VPN VPC Peering Hairpin DX (DirectConnect) Vyatta同士 ふつーのEC2

    (xxxLinux) 手軽さ ◦ Config半自動作成 ◦ Consoleから 設定するだけ × ラック借りたり 線ひいたり ◦ × つまり自分で作る 拡張性 × Max10Connections × Peeringだけに △ オンプレがからみま す ◦ 機能が足せます ◦ 自分で作るから 通信制御 × 完全不可能 △ NACL/SecurityGro up ◦ 実際の機器で ◦ 当然いろいろできま す ◦ 自分で作るから 他機種接続性 △ トラブルシューティ ングが難しい × Peeringだけに ◦ 802.1Q+BGP(md5) でOK △ あまり試して ないので・・・ △ 使うものによる Multi Region ◦ × × 専用線だけに ◦ ◦ 自分で作るから 料金 △ VPNConnection ごとに課金 ◦ 据え置き? △ ランニング通信費は 安くなりますが △ 最低でも インスタンスの 台数分は △ インスタンスの 台数分は
  4. Operators AZ-a TokyoRegion AZ-a Other Regions x 5 AZ-a AZ-a

    Public subnet Private subnet Secure subnet Public subnet Private subnet Secure subnet Intranet(Enterprise systems) Developers Production VPC Production VPC Staging VPC(Same as production) Staging VPC(Same as production) virtual private gateway Hub VPC V Vyatta V Vyatta V Vyatta Vyattaなら通信 制御や帯域制御 なども可能! VGWの両端からう まくAdvertiseすれ ば、VPCをまたい での通信も可能! Regionを意識せず 全VPCと シームレスに 通信可能! Config半自動生成 で楽ちん
  5.  VGW(Virtual Private Gateway)  さっきのあるあるとか  VGWの中に設定を書くことは不可能  ACLどころか、Routingも書けません

     外からBGPなどで教えてあげるのみ!  書けないから、VGWをまたいでさらにVGWへは不可能 ※RouteTable(AWSのL3Switchみたいなもの)へすら行きません  逆にVGWにつながっている同士はフルで通信可能になっちゃう  拠点がルータで自分の身を守るのみ  BGPとStaticが選べるが、混在すると微妙な感じに オンプレとつなぐときは既存システムとの都合でStaticしか 選択できない場合があるが、Staticにしちゃうと 冗長接続Route切り替えが使えない ⇒ VyattaにJuniperのVPN Monitorみたいなものを実装して回避! ありがとう!Vyattaの拡張性!
  6. Elastic IP Elastic IP Linux V Vyatta Route Table V

    Vyatta V Vyatta 兄貴を呼ぶ
  7. Elastic IP Elastic IP Linux V Vyatta Route Table V

    Vyatta V Vyatta Routing書き換え
  8. Elastic IP Elastic IP Linux V Vyatta Route Table V

    Vyatta V Vyatta EIP付け替え
  9. Elastic IP Elastic IP Linux V Vyatta Route Table V

    Vyatta V Vyatta 無事切り替え
  10. ・自分の負荷をWatch ⇒ 今回は、5分のLoadAverageが2以上になったらScaleup! ・"VyattaBase"というTagのついたAMI(MachineImage)を検索 ⇒ 前もって作っておく ・検索したAMIを素に、今より大きいInstanceTypeの Instance(VirtualMachine)を起動 ⇒ 今回はいろいろな都合で、

    t1.microからc3.largeへの固定Scaleup ・AWSのRouteTableのVPN用Route変更 ⇒ 新しいInstanceへRouteを向けます ・起動したInstanceのPrivateIPAddressを取得 ⇒ AWSではサーバ増減が基本なのでふつーDHCPです (私的もちょっと入ってます)
  11. ・起動したInstanceのSource/DestCheckをはずす ⇒ Vyatta on AWSではまるポイント ・元のInstanceのEIP(GlobalIPAddress)を起動した Instanceへ付け替える ⇒ これをAWSコマンド系の最後にやらないと、 これ以降のAWSコマンドが発行できなくなっちゃうので注意

    なぜなら、インターネットにアクセスできなくなるから! ・その他、起動したインスタンスで実行したいコマンドなどをSSHで流す ⇒ 今回は、なんとなく restart vpn ・自分はシャットダウン ⇒ Terminateは怖いので、弱気にシャットダウンまで 時間単位で課金(汎用コンピュータ時代の人にはおなじみ) されるので使わないときは落としましょう ちょっと断時間はあるけども、無事AutoScaleUpできました! DemoMovie http://www.momiage.com/vyatta/AutoScaleupRouter.mp4 冗長化VPNと組み合わせるともっといい感じかも? ※まだScaleDownは作ってません・・・