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

buty4649

July 30, 2020
Tweet

More Decks by buty4649

Other Decks in Technology

Transcript

  1. AWS DirectConnect

    使ったハイブリッド
    クラウドの構築と活⽤
    ⾼⾕雄貴 / GMO Pepabo, inc
    CODT2020 2020/07/30
    1

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  4. 弊社環境と問題点
    5

    View full-size slide

  5. プライベートクラウド
    OpenStack
    を使ったプライベートクラウド環境
    コードネームは「Nyah(
    にゃー)

    運⽤開始から4
    年経った
    Havana
    とNewton
    環境がある
    弊社の全サービスで利⽤している
    6

    View full-size slide

  6. 問題点1: VPN
    接続つらい問題
    Nyah
    からAWS
    へ接続する場合はVPN
    を使う
    しかし以下のような問題がある
    サービス規模に対してスループットが⾜りない
    VyOS
    を使いVPN
    接続をしているが管理者不在
    7

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  10. 解決案1: Nyah
    の機能を増やす
    Nyah
    の機能を増やすことで解決する

    パブリッククラウド相当の機能があれば解決

    機能を作り込むのが⼤変

    結局Nyah
    のロックイン問題を解決できない
    11

    View full-size slide

  11. 解決案2:
    すべてパブリッククラウドへ
    Nyah
    を捨ててすべてパブリッククラウドに移す

    移⾏を⾏うエンジニアの負担が⼤きい

    移⾏後のコストが⾒合わない

    ランニングコストはNyah
    のほうが圧倒的に低い
    12

    View full-size slide

  12. 解決案3:
    ハイブリットクラウド構成
    Nyah
    の資産を活かしつつパブリッククラウドを活⽤

    コスト問題を解決しつつパブリッククラウドの恩恵を受ける

    既存環境からの移⾏が⽐較的簡単
    すでに利⽤していることもありAWS
    を選択
    AWS DirectConnect
    を使うことにした
    13

    View full-size slide

  13. AWS DirectConnect
    とは
    オンプレミス環境とAWS
    を専⽤線で直接接続できる
    AWS DX
    と省略されている
    AWS
    の中の⼈も使っていた
    "X"
    ってなんだ???
    14

    View full-size slide

  14. AWS DX
    の仕様
    15

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  17. 接続と仮想インターフェイス
    18

    View full-size slide

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

    View full-size slide

  19. 仮想インターフェイスの種類
    仮想インターフェイス(VIF)
    には3
    種類がある
    プライベートVIF
    パブリックVIF
    トランジットVIF
    20

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  22. トランジット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

    View full-size slide

  23. 構成検討と回線⼿配
    24

    View full-size slide

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

    View full-size slide

  25. Nyah
    の構成
    26

    View full-size slide

  26. 新しい構成
    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

    View full-size slide

  27. 新しい構成
    28

    View full-size slide

  28. 回線業者選定
    構成検討と並⾏して回線業者の選定を⾏った
    DX
    パートナーにある数社に⾒積もりした
    回線が速くなるほどコストが⾼くなることがわかった(
    当たり前

    ルーターも追加で購⼊する必要があったのも⼤きい
    10G
    回線にしたいけど予算もあるので適切な選定が必要
    29

    View full-size slide

  29. 回線速度の検討
    サービスのDX
    利⽤想定はRDS
    やS3
    の接続
    → DB
    のみAWS
    において可⽤性を⾼める
    → S3
    への通信をDX
    経由にすることで回線コストを下げる
    30

    View full-size slide

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

    スモールスタートにしてイニシャルコストを下げる⽬的
    → DB
    へのアクセスはだいたい4Gbps
    程度だった
    上記より回線速度は5Gbps
    とした
    DX
    の利⽤状況により回線速度を上げる検討をする
    31

    View full-size slide

  31. 最終的な選択
    "
    幸運"
    なことにデータセンタにDX
    接続サービスがあった
    10Gbps
    でも予算に収まる価格だったのでこちらを使うことにした
    いままでの検討とか⾒積もりの時間はなんだったのか
    32

    View full-size slide

  32. 接続情報(LOA)
    の取得
    回線の⼿配ができたので接続情報(LOA)
    を発⾏する
    LOA
    はAWS
    構内のラックやポート番号の情報
    発⾏はAWS
    コンソールから⾏う
    ロケーションやポート速度の設定は回線業者から指定される
    LOA
    を取得してから実際につなぎこむまでは数営業⽇かかる
    33

    View full-size slide

  33. 接続の作成画⾯
    34

    View full-size slide

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

    View full-size slide

  35. AWS DX
    の利⽤開始
    37

    View full-size slide

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

    View full-size slide

  37. DirectConnect
    ゲートウェイの作成
    まずはDirectConnect
    ゲートウェイ(DXGW)
    を作成する
    ASN
    はプライベートVIF
    の場合以下の範囲で任意に設定できる
    64512
    〜65534
    4200000000
    〜4294967294
    ❯ aws directconnect create-direct-connect-gateway \
    --direct-connect-gateway-name <
    名前> \
    --amazon-side-asn
    39

    View full-size slide

  38. VIF
    の作成
    VIF
    の種類によってサブコマンドが変わる
    今回はプライベートVIF
    なので create-private-virtual-
    interface
    を指定する
    VIF
    情報に指定する内容は次ページを参照のこと
    ❯ aws directconnect create-private-virtual-interface \
    --connection-id <
    接続のID> \
    --new-private-virtual-interface 情報>
    40

    View full-size slide

  39. アイテム名 必須 設定例 説明
    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

    View full-size slide

  40. テンプレートによる指定
    パラメータが多くて⼤変なのでYAML
    やJSON
    で指定したほうが楽
    テンプレートは --generate-cli-skelton
    で⽣成できる
    テンプレートから読み込む場合は --cli-input-(json|yaml)
    42

    View full-size slide

  41. 仮想プライベートゲートウェイの作成
    仮想プライベートゲートウェイ(VGW)
    を作る
    作成したVGW
    はVPC
    にアタッチする
    ❯ aws ec2 create-vpn-gateway --type ipsec.1 --amazon-side-asn
    ❯ aws ec2 attach-vpn-gateway --vpn-gateway-id のID> --vpc-id のID>
    43

    View full-size slide

  42. DX
    ゲートウェイへの関連付け
    DX
    ゲートウェイ(DXGW)
    の関連付けを提案する
    VPC
    とDX
    ゲートウェイのアカウントが同じである場合不要
    ❯ aws directconnect create-direct-connect-gateway-association-proposal \
    --direct-connect-gateway-id のID> \
    --direct-connect-gateway-owner-account の所有アカウントID> \
    --gateway-id のID>
    44

    View full-size slide

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

    View full-size slide

  44. その他設定
    VPC
    のルートテーブルやセキュリティグループの設定を⾏う
    ルート伝達を使うことで⾃動でルートテーブルが追加される
    私が試したところ正しく反映されなかった
    ⼿動で⼊れた
    46

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  47. 活⽤事例紹介
    49

    View full-size slide

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

    View full-size slide

  49. AWS DX
    の活⽤事例(1)
    VPN
    を使ってNyah
    とAWS
    をつなげていた(
    問題点1
    の環境)
    Nyah
    にあるサーバからVPN
    を経由してRDS
    やElastiCache
    に接続
    → VPN
    からDX
    に変えたところレスポンスタイムが改善した
    51

    View full-size slide

  50. ⾮ピーク時のレスポンスタイム
    52

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

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

    View full-size slide

  55. 参考資料
    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

    View full-size slide