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

AWS DirectConnectを使ったハイブリットクラウドの構築と活用 / hybrid cloud with aws directconnect

AWS DirectConnectを使ったハイブリットクラウドの構築と活用 / hybrid cloud with aws directconnect

※Cloud Operator Days Tokyo 2020 https://cloudopsdays.com/ で発表した資料です。

なぜハイブリットクラウドにするのか?

プライベートクラウドはコストメリットが高いですが、ロックインされ利用者がパブリッククラウドを利用できなくなる問題があります。

AWSの機能は便利ですが、プライベートクラウドから移設するとクラウド破産します。

ハイブリットクラウドにすることでこれらの問題を解決します。

AWS DirectConnectを使いハイブリットクラウドを構築した事例の紹介、本番環境での活用方法をお伝えできればと思います。

3f6af00e6779114f20bda021a28313c9?s=128

buty4649

July 30, 2020
Tweet

Transcript

  1. AWS DirectConnect を 使ったハイブリッド クラウドの構築と活⽤ ⾼⾕雄貴 / GMO Pepabo, inc

    CODT2020 2020/07/30 1
  2. ⾃⼰紹介 コウヤユウキ ⾼⾕雄貴 GMO ペパボ株式会社 技術部 技術基盤チーム プリンシパルエンジニア Twitter: @buty4649

    GitHub: buty4649
  3. None
  4. 今⽇話すこと ハイブリットクラウド導⼊のきっかけ 導⼊のために検討したこと AWS DirectConnect の説明と設定 弊社の事例の紹介 4

  5. 弊社環境と問題点 5

  6. プライベートクラウド OpenStack を使ったプライベートクラウド環境 コードネームは「Nyah( にゃー) 」 運⽤開始から4 年経った Havana とNewton

    環境がある 弊社の全サービスで利⽤している 6
  7. 問題点1: VPN 接続つらい問題 Nyah からAWS へ接続する場合はVPN を使う しかし以下のような問題がある サービス規模に対してスループットが⾜りない VyOS

    を使いVPN 接続をしているが管理者不在 7
  8. 問題点2: ロックイン問題 Nyah を前提としたアーキテクチャ Nyah の機能不⾜で開発速度が低下 パブリッククラウドへの興味が薄れる 新しい機能や潮流のキャッチアップができない 結果としてエンジニアの競争⼒が低下 8

  9. 問題点3: 無限にスケールできない問題 Nyah のリソース増加は計画的に⾏われる 突発的なアクセス増や成⻑予想を超えたアクセスに脆弱 オンプレのためハードウェア調達には時間がかかる 9

  10. どうにかしなければな らない! 10

  11. 解決案1: Nyah の機能を増やす Nyah の機能を増やすことで解決する → パブリッククラウド相当の機能があれば解決 → 機能を作り込むのが⼤変 →

    結局Nyah のロックイン問題を解決できない 11
  12. 解決案2: すべてパブリッククラウドへ Nyah を捨ててすべてパブリッククラウドに移す → 移⾏を⾏うエンジニアの負担が⼤きい → 移⾏後のコストが⾒合わない → ランニングコストはNyah

    のほうが圧倒的に低い 12
  13. 解決案3: ハイブリットクラウド構成 Nyah の資産を活かしつつパブリッククラウドを活⽤ → コスト問題を解決しつつパブリッククラウドの恩恵を受ける → 既存環境からの移⾏が⽐較的簡単 すでに利⽤していることもありAWS を選択

    AWS DirectConnect を使うことにした 13
  14. AWS DirectConnect とは オンプレミス環境とAWS を専⽤線で直接接続できる AWS DX と省略されている AWS の中の⼈も使っていた

    "X" ってなんだ??? 14
  15. AWS DX の仕様 15

  16. AWS DX の仕様 専⽤線をAWS の相互接続ポイントにつなぎこむ必要がある ⾃分たちで⽤意する⽅法 AWS DX パートナーに依頼する⽅法 接続には2

    種類がある 専⽤接続 ホスト接続 16
  17. 接続と仮想インターフェイス AWS DX には接続と仮想インターフェイスという概念がある 接続(Connection) 物理的な接続を表す 仮想インターフェイス(Virtual Interface) VLAN で区切られた仮想的な接続

    Connection の中に仮想インターフェイスがある 17
  18. 接続と仮想インターフェイス 18

  19. 専⽤接続とホスト接続 専⽤接続は物理回線を占有 1Gbps / 10 Gpbs しか選べない ホスト接続は物理回線を他のユーザと共有 上記以外の速度も選べる ※

    回線業者によって変わる 19
  20. 仮想インターフェイスの種類 仮想インターフェイス(VIF) には3 種類がある プライベートVIF パブリックVIF トランジットVIF 20

  21. プライベートVIF プライベートIP アドレスを使ってAWS と接続 仮想プライベートゲートウェイを経由してVPC にアクセス S3 などのパブリックサービスには直接アクセスできない 21

  22. パブリックVIF パブリックIP アドレスを使⽤してAWS に接続 AWS のパブリックサービスにアクセス可能 プライベートVIF との混在が可能 22

  23. トランジットVIF トランジットゲートウェイ(TGW) を使うことができる TGW とは複数のVPC やオンプレ環境をつなぐ https://dev.classmethod.jp/articles/transit-gateway-vpc/ https://developer.hatenastaff.com/entry/2020/connect-dx- to-tgw トランジットVIF

    は1 つの接続に1 つしか設定できない 23
  24. 構成検討と回線⼿配 24

  25. Nyah の構成 DX をNyah につなぎこむにあたって構成を考える Nyah のネットワークは各サービスごとにVLAN で区切られている また、各サービスごとにAWS アカウントが存在する

    25
  26. Nyah の構成 26

  27. 新しい構成 DX 向けの新しいルーターを追加する → 既存のネットワークとトラフィックを分けたかった DX に通信する場合はVM に静的ルーティングを追加する DX のコストを按分する関係でDX

    ⽤のアカウントを作成する → 去年からDX ゲートウェイのマルチアカウントがサポートされた https://aws.amazon.com/jp/about-aws/whats- new/2019/03/announcing-multi-account-support-for-direct-connect- gateway/ 27
  28. 新しい構成 28

  29. 回線業者選定 構成検討と並⾏して回線業者の選定を⾏った DX パートナーにある数社に⾒積もりした 回線が速くなるほどコストが⾼くなることがわかった( 当たり前 → ルーターも追加で購⼊する必要があったのも⼤きい 10G 回線にしたいけど予算もあるので適切な選定が必要

    29
  30. 回線速度の検討 サービスのDX 利⽤想定はRDS やS3 の接続 → DB のみAWS において可⽤性を⾼める →

    S3 への通信をDX 経由にすることで回線コストを下げる 30
  31. 実測値 実際の利⽤状況を測定し回線速度を決定することにした しかし正確にDB やS3 へのアクセス量を測定するのは厳しい → S3 への通信は⼀旦考えないことにしDB だけの利⽤想定にした →

    スモールスタートにしてイニシャルコストを下げる⽬的 → DB へのアクセスはだいたい4Gbps 程度だった 上記より回線速度は5Gbps とした DX の利⽤状況により回線速度を上げる検討をする 31
  32. 最終的な選択 " 幸運" なことにデータセンタにDX 接続サービスがあった 10Gbps でも予算に収まる価格だったのでこちらを使うことにした いままでの検討とか⾒積もりの時間はなんだったのか 32

  33. 接続情報(LOA) の取得 回線の⼿配ができたので接続情報(LOA) を発⾏する LOA はAWS 構内のラックやポート番号の情報 発⾏はAWS コンソールから⾏う ロケーションやポート速度の設定は回線業者から指定される

    LOA を取得してから実際につなぎこむまでは数営業⽇かかる 33
  34. 接続の作成画⾯ 34

  35. LOA 情報 35

  36. ここまでのまとめ Nyah のロックインを回避したかった オンプレに収まらないアクセスのリスク回避 AWS DX を活⽤しハイブリットクラウド構成を取った 実際の利⽤想定から回線の太さや接続⽅法を決定した データセンターの回線サービスを利⽤することになった 36

  37. AWS DX の利⽤開始 37

  38. DX の構成要素 物理接続ができたのでVPC などの設定をする 設定する項⽬は以下の通り DirectConnect ゲートウェイ VIF 仮想プライベートゲートウェイ 38

  39. DirectConnect ゲートウェイの作成 まずはDirectConnect ゲートウェイ(DXGW) を作成する ASN はプライベートVIF の場合以下の範囲で任意に設定できる 64512 〜65534

    4200000000 〜4294967294 ❯ aws directconnect create-direct-connect-gateway \ --direct-connect-gateway-name < 名前> \ --amazon-side-asn <ASN> 39
  40. VIF の作成 VIF の種類によってサブコマンドが変わる 今回はプライベートVIF なので create-private-virtual- interface を指定する VIF

    情報に指定する内容は次ページを参照のこと ❯ aws directconnect create-private-virtual-interface \ --connection-id < 接続のID> \ --new-private-virtual-interface <VIF 情報> 40
  41. アイテム名 必須 設定例 説明 virtualInterfaceName ✓ test-vif VIF の名前( 任意)

    vlan ✓ 1000 VLAN 番号 asn ✓ 65514 回線業者により指定されたASN directConnectGatewayId ✓ VIF を紐付けるDXGW のID authKey BGP の認証キー amazonAddress Amazon 側のピアIP アドレス customerAddress オンプレ側のピアIP アドレス addressFamily ipv4 IP アドレスバージョン(ipv4 or ipv6) mtu 9000 MTU 41
  42. テンプレートによる指定 パラメータが多くて⼤変なのでYAML やJSON で指定したほうが楽 テンプレートは --generate-cli-skelton で⽣成できる テンプレートから読み込む場合は --cli-input-(json|yaml) 42

  43. 仮想プライベートゲートウェイの作成 仮想プライベートゲートウェイ(VGW) を作る 作成したVGW はVPC にアタッチする ❯ aws ec2 create-vpn-gateway

    --type ipsec.1 --amazon-side-asn <ASN> ❯ aws ec2 attach-vpn-gateway --vpn-gateway-id <VPG のID> --vpc-id <VPC のID> 43
  44. DX ゲートウェイへの関連付け DX ゲートウェイ(DXGW) の関連付けを提案する VPC とDX ゲートウェイのアカウントが同じである場合不要 ❯ aws

    directconnect create-direct-connect-gateway-association-proposal \ --direct-connect-gateway-id <DXGW のID> \ --direct-connect-gateway-owner-account <DXGW の所有アカウントID> \ --gateway-id <VGW のID> 44
  45. DX ゲートウェイの関連付けの承認 Direct Connect をつなぎこんだアカウントで関連付けの提案を承認 する 承認すると数分で通信できるようになる ❯ aws directconnect

    accept-direct-connect-gateway-association-proposal \ --direct-connect-gateway-id <DXGW のID> \ --proposal-id < プロポーザルID> \ --associated-gateway-owner-account <VGW の所有アカウントID> 45
  46. その他設定 VPC のルートテーブルやセキュリティグループの設定を⾏う ルート伝達を使うことで⾃動でルートテーブルが追加される 私が試したところ正しく反映されなかった ⼿動で⼊れた 46

  47. トラブルシューティング DX を経由しての通信が⾏えない場合の確認ポイント BGP のpeer がリンクされているか? ASN が間違っていないか? ルートテーブルやセキュリティグループに間違いはないか? 47

  48. 動作検証 冗⻑性が担保されているか検証 DXGW のBGP を停⽌してフェイルオーバーするか確認した 今だとフェイルオーバーテストがAWS 上でできるらしい https://aws.amazon.com/jp/about-aws/whats- new/2020/06/aws-direct-connect-enables-failover-testing/ 48

  49. 活⽤事例紹介 49

  50. 活⽤事例紹介 弊社のDX を使った事例紹介 しかし、DX を使い始めてから⽉⽇が経っていないので検証中の事 例もあるのでご容赦ください 50

  51. AWS DX の活⽤事例(1) VPN を使ってNyah とAWS をつなげていた( 問題点1 の環境) Nyah

    にあるサーバからVPN を経由してRDS やElastiCache に接続 → VPN からDX に変えたところレスポンスタイムが改善した 51
  52. ⾮ピーク時のレスポンスタイム 52

  53. ピーク時のレスポンスタイム 53

  54. AWS DX の活⽤事例(2) Nyah のSNAT ルーターで障害があり全サービスに影響があった 対策としてAWS からの経路も⽤意することで耐障害性を⾼める 具体的にはDNS ラウンドロビンを使いNyah

    とAWS へアクセスを分 散する 54
  55. 構成図 55

  56. まとめ 56

  57. まとめ プライベートクラウドのロックインを避けたかった コンピュートリソースのスケールをしたかった AWS DX を使うとハイブリットクラウド構成が取れる 構成によっては速度の改善が⾏える 57

  58. 今後の展望 DX を活⽤しているサービスは⼀部なので広げていきたい Nyah 、AWS それぞれのメリットを活かしていきたい Nyah はコストメリットに優れる AWS は機能やスケールメリットに優れる

    58
  59. 参考資料 AWS 初⼼者向けWebinar AWS とのネットワーク接続⼊⾨ https://www.slideshare.net/AmazonWebServicesJapan/aw swebinar-aws-58643433 AWS DirectConnect ユーザーガイド

    https://docs.aws.amazon.com/ja_jp/directconnect/latest/Us erGuide/Welcome.html Direct Connect Gateway を作ってみた https://dev.classmethod.jp/articles/make-direct-connect- gateway/ 59