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

オンプレインフラエンジニアのための AWS移行の始め方

Avatar for hmatsu47 hmatsu47
February 21, 2019

オンプレインフラエンジニアのための AWS移行の始め方

インフラ勉強会 2019.2.21 資料

Avatar for hmatsu47

hmatsu47

February 21, 2019
Tweet

More Decks by hmatsu47

Other Decks in Technology

Transcript

  1. 主なAWS用語(1/4) • リージョン:地理的に離れた領域 • 東京(ap-northeast-1)、バージニア北部(us-east-1)など • それぞれが独立運用されている • アベイラビリティゾーン:リージョン内のデータセンター(群) •

    リージョン内に複数ある(大阪ローカルを除く) • リージョンほどではないが地理的に離れている(数キロ~数十キロ程 度) • https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/using-regions-availability-zones.html 12
  2. 主なAWS用語(2/4) • VPC(Virtual Private Network):ユーザがAWS上に構築する仮想LAN • 複数のサブネットに分割できる • VPC間を接続するには何らかのサービスを使う必要がある •

    EC2(Elastic Computer Cloud):IaaSのサービス • 仮想マシン • インスタンス:個々のEC2(またはその上で提供されるマネージドサービス) • 複数のインスタンスタイプがある(仮想コア数/メモリ等の組み合わせ) • オンデマンド/スポット/リザーブドインスタンス 13
  3. 主なAWS用語(4/4) • IAM(Identity and Access Management):AWSリソース(サービス等) に対する認証とアクセス制御を提供するサービス • マネジメントコンソール(GUI)、コマンドラインインターフェース(CLI)、 SDK経由の認証とAWSリソースへのアクセス制御

    • ポリシー・ロールによるアクセス権の設定 • MFA(多要素認証)など • その他 • サーバレス(Lambda)、オートスケール、… • クラウドデザインパターン、ベストプラクティス、Well-Architected、… 15
  4. おさえておきたいAWSの特徴(NWその1) • アベイラビリティゾーン(AZ)間は数キロ以上離れている • AZ内ネットワークの遅延はオンプレと大差ないが(EC2間のRTTが100μs台)、AZ間はや や大きい(同・1ms台) • SLAの提供条件:複数AZでの構成が原則 • 通信制御にはネットワークACL(NACL)とセキュリティグループがある

    • NACL:サブネットに適用(ステートレス) • セキュリティグループ:インスタンスに適用(ステートフル) • VPCからインターネットアクセスするときの概念が独特 • サブネット(Private、Public)とInternet Gateway、NATインスタンス/NAT Gateway • https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/what-is-amazon-vpc.html 16
  5. おさえておきたいAWSの特徴(NWその2) • IPアドレスは固定的に運用しないのが基本 • 固定アドレスを割り振ることは可能だがImmutableな運用の妨げになるので注 意 • マルチキャストは使えない • 疑似的に実現することは可能だが、非推奨

    • DNSによる名前解決で対象ホスト等を識別するのが基本 • HA構成:仮想IPアドレス等ではなくDNSの正引きIPアドレス入れ替えで実現 • Route 53にはヘルスチェックとの連動や、Aレコードのエイリアス機能がある • キャッシュ用DNSへのアクセスにはI/Fあたりのレートリミットがある • https://docs.aws.amazon.com/ja_jp/vpc/latest/userguide/vpc-dns.html 17
  6. 企画立案 • オンプレのシステムをどのようにAWSに移行するのか? • 移行対象(案) • 移行後の構成・設計(案) • 工程(案) •

    スケジュール(案) • 予算(案) • ここで詳細を決めるというよりは、検証/PoCに進む上で必要 な事項を仮決めする 22
  7. 【注意】 • 最初から欲張りすぎない • サーバレス、オートスケール、… • オンプレの構成を完全に踏襲しようとしない • オンプレと同じ構成ができない・難しい機能もある •

    仮に可能だったとしても運用コストが上がる・不安定になることも • 密結合な部分をできるだけ疎結合化できるよう準備しておく • スケジュール・予算はあくまでも概算 • 詳細に決めない • 最初からリザーブドインスタンスをアテにしない • AWSの見積もりはややこしいので専門家の支援を受ける 23
  8. 【登壇者のケース】(1/2) • 複数あるうちの、メインのサービスから移行(という案) • 規模感や利用する技術から判断 • 当初はコンテナやサーバレスへの移行はせず、オートスケール もしない(同上。以降も同じ) • アクセスのスパイクが少ない

    • オートスケール等でのコスト減<構成を変えるリスク • RDBMSをAurora(またはRDS/MySQL)に移行 • メンバーのスキルレベルを考えるとマネージドサービスへの移行が得 策 • データ保全は最優先(なのでAuroraが第一選択) 24
  9. 【登壇者のケース】(2/2) • データは暗号化して保存 • 自社のコントロール下で物理層の作業(ドライブ廃棄等)を行うこと ができないため • 性能面で問題が出ないか? • ファイアーウォール/UTMの移行に頭を悩ませる→オンプレ踏

    襲はしない • オンプレ構成を維持しようとすると将来のスケールの足かせに… • AWS環境では「侵入防止」だけに力を入れるより「侵入検知」「早期発 見」とのバランスを考えて構成するほうが得策と判断 25
  10. 検証/PoC • AWS上で移行後のシステムを仮構築 • 実際に動作させて確認し、検証結果をまとめる • 意図したとおりの構成で正しく動作するか? • 性能は十分か? •

    負荷を掛けたときの性能は?(負荷テスト) • 動作の安定性は? • フェイルオーバーさせても大丈夫か? • 加えて、構築手順もまとめる or テンプレート化する • 直ちに問題にならないが後々問題になりそうな点があればメモ 26
  11. 【注意】 • 検証時点で運用監視ツールを導入しておく  • 未導入だとそもそも可否判定が困難 • 検証費用の高額化に気を付ける • 個人アカウントを取って検証/PoCするのはやめましょう… •

    ためらわずに専門家(AWSの中の人、AWSパートナー)の支援を 受ける • 検証/PoC内容の妥当性についてレビューを受ける • 前述の通り、費用負担のメリットがあることも… 27
  12. 【登壇者のケース】 • テストデータを使った小規模な検証では問題なく移行できた • データ暗号化のオーバーヘッドも許容範囲 • しかし、本番データ規模では様々な不具合が発生 • 目標通りの性能が出ない •

    フェイルオーバーでRDBアクセスの処理が詰まる • いくつかの調整を施して、最低限移行はできる状態に • WebアプリケーションサーバのGC目標時間設定値の調整 • コネクションプーリングのライブラリ変更 • 処理が詰まったときの自動再起動 • 一部は移行後に後追いで実施 28
  13. 【注意】 • スケジュール・予算など十分に余裕を見る  • リザーブドインスタンス導入は運用が軌道に乗ってから考える • リハーサル、撤退ポイントの設定、切り戻し手順を省略しない • AWS移行が初めての場合、オンプレ→オンプレ移行よりもリスクはあるので •

    切り戻し判断のための撤退ポイントも決めておくと良い • ためらわずに専門家(AWSの中の人、AWSパートナー)の支援を受け る • 計画に無理なスケジュールや工程がないか指摘してもらう 30
  14. データ移行(準備) • 移行データ容量が大きい場合、サービス停止時間を短くするた め事前にデータ移行の準備をしておく • ファイルのバッチ転送、S3へのコピー • RDBMSのレプリケーション • AWSにもDMS(Database

    Migration Service)という移行/複製 (レプリケーション)サービスがあるので適宜活用する • 必要に応じて切り戻し用のデータ複製経路/手順を用意してお く 34
  15. リハーサル • 必ず実施しましょう • 前述の通り、AWSではスポット的にリソースを確保できるため、 構築した新しいプロダクト環境をコピーしてリハーサルに使う ことも簡単 • テンプレートからの復旧確認を兼ねる •

    問題点が発覚したら移行作業の工程、スケジュール等を見直す • すぐに解決できそうになければ移行を延期する • 問題解決に向けて専門家(AWSの中の人、AWSパートナー)の支援を受 ける 36
  16. 【登壇者のケース】 • リハーサルで使う手順書がなかなか仕上がらず苦戦 • あまり得意でない人が担当せざるを得なかった、という事情が… • リハーサル自体は最低限のラインで実施 • 細かい部分で課題が残った •

    リハーサル後、移行当日ぎりぎりまで調整が続く • オンプレ環境の機器は相変わらず壊れて週末が修理立ち会いで潰れる など、移行日を延期しようにもできない事情が… 37
  17. まとめ(1/2) • 範囲を絞り込むことが重要 • 移行に必要なAWSの知識・対象サービス • 最初に移行するシステム • 絞り込んだらまずは触ってみるところから始める •

    とはいえ、現実はなかなか計画通りには進まないもの • 移行を察知してか(?)壊れまくるオンプレ機器たち… • 決められない〇〇(自粛) • というわけで… 44
  18. まとめ(2/2) • ためらわずに専門家の支援を受ける • 結果的にコストもリスクも下げる • 早めのコンタクトが大事 • 専門家を知り、仲良くなるために、JAWS-UGに参加しましょう •

    「AWS移行の始め方」、答えは↑です!まずはここから! • AWSパートナー所属の人も、それ以外の強い人もいます • AWSの中の人との接点も多いです • 但し、タダで働かせようとするのはやめてね! • 専門家以外との交流も!仲間は大事! 45