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

Windows on AWS の “基礎”

Windows on AWS の “基礎”

Developers.IO 2019 Tokyoで発表した際のスライドです。

Takuya Shibata

November 02, 2019
Tweet

More Decks by Takuya Shibata

Other Decks in Technology

Transcript

  1. 4 自己紹介 Takuya Shibata - AWS事業本部 コンサルティング部 - ソリューションアーキテクト -

    Microsoft MVP for Cloud and Datacenter Management - PowerShell おじさん - 好きなAWSサービス
  2. 5 はじめに 先月、Developers.IO 2019 Sapporo で 「Windows on AWS 入門」という発表をしました

    https://dev.classmethod.jp/cloud/aws/developers-io-2019-sapporo-windows-on-asw/
  3. 7 アジェンダ 1. AWSにおけるWindowsワークロード 2. Windows on AWS の “基礎”

    • サポートOSとライセンス 3. Windows EC2 の “基礎” • 通常のWindows と EC2 Windows の違い • EC2Config と EC2Launch • EC2におけるSysprep 4. まとめ
  4. AWSではWindows Containerも利用可能 • ECSでは • Windows Server 2016 Container •

    Windows Server 2019 Container の実行がサポートされている • Fargateは未サポート • EKS (Kubernetes 1.14)でWindows Container サポートが追加 15 コンテナサービス周辺
  5. 16 Amazon RDS ( for SQL Server ) マネージドなSQL Server

    実体としてはWindows Server上で稼働
  6. 19 Amazon WorkSpaces マネージドなVDIサービス Windows Server の Desktop Experience で実現

    https://www.slideshare.net/AmazonWebServicesJapan/20190226-aws-black-belt-online-seminar-amazon-workspaces
  7. 23 (現在新規に)利用可能なバージョン EC2 • Windows Server 2008 R2 ~ Windows

    Server 2019 (各国語版) • Windows Server 1809 ~ 1903 (英語のみ) SQL Server on EC2 • SQL Server 2012 ~ 2017 ※バージョンごとに利用可能なOSに制約あり
  8. 24 (現在新規に)利用可能なバージョン RDS for SQL Server • SQL Server 2012

    ~ 2017 ※バージョン、エディションでインスタンスタイプに制約あり WorkSpaces • Windows 7 experience (Windows Server 2008 R2) • Windows 10 experience (Windows Server 2016) AppStream 2.0 • Windows Server 2012 R2 ~ Windows Server 2019
  9. 25 サポート切れOS・ソフトウェアに対する扱い Microsoftのサポートが切れたOSやソフトウェアが 含まれるAMIイメージは順次入手不可になる • Windows Server 2003/2003 R2の時は延長利用の 特例措置があったが、常に措置があるとは限らない

    • 稼働しているEC2インスタンスは自己責任で継続利用可 • カスタムAMIも自己責任で継続利用可 サーバー移行は計画的に! • FAQ : Microsoft 製品のサポート終了 (EOS) (https://aws.amazon.com/jp/windows/faq/#eos-microsoft-products)
  10. 26 利用可能なエディション 基本的に各OSの最上位エディションが利用可能 • ただし、Windows Server 2012系だけはStandard (全機能利用可) OS エディション

    備考 Windows Server 2019 Datacenter Edition Windows Server 2016 Datacenter Edition Windows Server 2012 R2 Standard Edition Datacenter Editionとの 機能差無し Windows Server 2012 Standard Edition Datacenter Editionとの 機能差無し Windows Server 2008 R2 Datacenter Edition
  11. 33 Microsoft Services Provider License Agreement (SPLA) 雑に言うとMicrosoft製品の再販向けライセンス 大事な点は •

    コアライセンスベース、CALは不要 • ただし、Remote Desktop Service 等では SAL(Subscriber Access License) が必要 • エクスターナルコネクタライセンスは不要 • AWSとして明記されたドキュメントは無いがSPLAの要件として不要 • 一応過去のBlack Beltでは明言されている (https://aws.typepad.com/sajp/2016/04/aws-black-belt-online-seminar-amazon-ec2.html) • 月別の従量課金契約 • License Included なEC2の利用料金はココ
  12. 42 EC2 Dedicated Hostsにおけるライセンス改定 ※ 注意事項 ※ 1. 対象となるベンダーは以下の “Listed

    Provider” のみ • Microsoft • Alibaba • Amazon (VMware Cloud on AWS を含む) • Google 2. 2019年10月1日以前に購入しているライセンスは適用外 3. 2019年10月1日以降にラインセス追加・ アップグレードなど行う場合は適用対象になる
  13. 43 クラウドにおけるクライアントOSライセンス 1. 以前はMicrosoftの原則としてクラウド上で Windows 10 等のクライアントOSは利用できなかった • Azureですら利用不可だった 2.

    2017年にこの制約が一部解除される • Microsoft と Qualified Multitenant Hoster (QMTH) に 認定されたベンダーのみWindows 10を利用可能 https://blogs.technet.microsoft.com/mskk-cloudos/2017/08/07/windows-10-on-azure-の正式解禁!/
  14. 44 クラウドにおけるクライアントOSライセンス AWS は QMTH ではない =AWSの共有ハードウェア上で Windowsクライアント は一切利用不可 だから、WorkSpaces

    は Windows Server の Desktop Experience で実現する必要があったんですね ( ※Microsoft製品のクライアントVDIはさらに別のライセンス体系があるのも理由の一つなのですが…今回そこには触れません )
  15. 45 参考 : 本日時点の ”日本”の QMTH 一覧 • DOCOMO Systems,

    Inc. • Internet Initiative Japan Inc. • KDDI Corporation • NEC Corporation • Nomura Research Institute, Ltd. • NTT Communications Corporation • NTT COMWARE CORPORATION • NTT DATA CORPORATION • SoftBank Corp http://download.microsoft.com/download/3/D/4/3D445779-2870-4E3D-AFCB-D35D2E1BC095/QMTH%20Authorized%20Partner%20List.pdf より引用
  16. 46 免責事項 ライセンスに関する正式な判断が必要に なる場合は必ず Microsoft および AWS に 確認してください •

    極力間違いの無い様に記述していますが、 本セッションの内容はライセンスに対する記述の 正確さを保証しません
  17. 49 通常のWindows と EC2 Windows の違い AWSから提供されるWindows AMIは AWS向けにいくつかの初期設定が施されている •

    https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/windows- ami-version-history.html#windows-ami-configuration
  18. 53 EC2 Windowsのドライバー EC2 Windowsにインストールされるドライバー一覧 • 基本的にAMI作成時点の最新バージョンがインストール済みなのであまり気にしなくて良い • 古いインスタンスのアップグレードを行う場合はPVドライバーの種類に気を付ける ドライバー

    用途 特記事項 準仮想化ドライバー (PVドライバー) EC2インスタンスの性能向上やストレージアクセスなど に使用 歴史的経緯により 複数種類存在 AWS NVMeドライバー Nitro世代のWindowsインスタンスがストレージに アクセスするのに使用 AWS ENAドライバー Elastic Network Adapter (ENA)を利用してネットワーク 通信するためのドライバー AWS SR-IOVドライバー SR-IOVを使用した高性能なネットワーク通信を行うため のドライバー EC2WinUtil ドライバー 不明。おそらくAWSサポート用 ドキュメント無し
  19. 54 AWS Tools for PowerShell on EC2 Windows EC2インスタンスにはその時点で最新の AWS

    Tools for PowerShell (AWSPowerShell) がインストール済み • 利用の際はIAMロールをアタッチしましょう • ちなみにAWS CLIは未インストール
  20. 55 CloudFormation Helper Scripts CloudFormationスタックの一部として介入可能な ヘルパースクリプト • cfn-init: リソースメタデータの取得と解釈、パッケージのインストール、ファイルの作成、および サービスの開始で使用します。

    • cfn-signal: CreationPolicy または WaitCondition でシグナルを送信するために使用し、前提と なるリソースやアプリケーションの準備ができたときに、スタックの他のリソースを 同期できるようにします。 • cfn-get-metadata: 特定のキーへのリソースまたはパスのメタデータを取得するために使用します。 • cfn-hup: メタデータへの更新を確認し、変更が検出されたときにカスタムフックを実行するために 使用します。 詳細は弊社ブログで • AWS CloudFormation テンプレートリファレンス シリーズ https://dev.classmethod.jp/series/aws-cloudformation-templete/
  21. 57 EC2Config と EC2Launch Windows EC2の作成時、および起動時に 各種初期化処理を行うためのツール EC2Config • Windows

    Server 2012 R2まで • Windowsサービス EC2Launch • Windows Server 2016以降 • PowerShellモジュール
  22. 59 EC2Config と EC2Launch 初回起動時の処理 • 初回起動時の処理はほぼ同等 タスク EC2Config EC2Launch

    特記事項 Administratorユーザーのパスワード生成 〇 〇 ルートボリューム(Cドライブ)の拡張 〇 〇 追加EBSボリュームの自動フォーマット 〇 ー EC2Launchでは自動実行されない (必要な場合に手動実行する形へ) Windowsのアクティベーション 〇 〇 インスタンスメタデータのルート追加 〇 〇 設定内容が若干異なる(詳細は後述) DNSサフィックスの追加 〇 〇 ユーザーデータの実行 〇 〇
  23. 60 EC2Config と EC2Launch 2回目以降の起動時の処理 • EC2Launchは設定で明示しない限り2回目以降 の起動処理では何もしない タスク EC2Config

    EC2Launch 特記事項 コンピューター名の変更 △ ー 設定を明示した場合のみ実行 EBSボリューム、 インスタンスストアボリュームのマウント 〇 ー Drive Letter Mappingは両者に存在 ボリュームマウントについてはEC2Launchでは 廃止されているっぽい Windowsのアクティベーション 〇 ー EC2Launchは初期構築時のみ実行 (OSの定期チェック機能に任せる形に) インスタンスメタデータのルート追加 〇 ー EC2Launchは初期構築時のみ実行 ・EC2Configは動的ルートを追加 ・EC2Launchは固定ルートを追加
  24. 61 EC2Config と EC2Launch ユーザーログイン時の処理 • ログイン時の処理は一応同等 タスク EC2Config EC2Launch

    特記事項 壁紙の更新 〇 △ EC2Launchではスタートアップスクリプト 経由で壁紙設定 EC2Launchの壁紙設定コマンド(Set-Wallpaper) を呼び出すスタートアップスクリプト
  25. 69 何故 Sysprep が必要なのか? 初期設定が終わったWindowsには マシン固有の一意な識別子が存在 • マシンSID • コンピューター名

    Sysprepはこれら識別子の初期化 (一般化)やドライバーキャッシュの クリアなどの処理をよしなに行って くれる
  26. 70 Sysprep の実行フロー 「Windowsの構成パス」より • https://docs.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/how-configuration-passes-work ・OOBE (Out-of-Box Experience) モード

    の実行パス ・Windows初回起動時のアレ ・監査モード の実行パス ※EC2では使わない ・”一般化”の仕込みを事前に指定 ・次の起動(=セットアップ)時に 特殊化 処理が差し込まれ実行される
  27. 71 EC2 での Sysprep の実行 • 両方の設定ツールに Sysprepを呼び出す ボタンがある EC2では

    EC2Config / EC2Launch から Sysprep を呼び出す (直接 sysprep.exe を起動しない)
  28. 72 EC2 における Sysprep への介入 EC2では以下の方法でSysprepへの介入が可能 1. 自動応答ファイル (Unattend.xml) •

    Windows標準機能 • 通常の対話セットアップを自動化するためのもの • EC2Configでは sysprep2008.xml という名前で存在 2. BeforeSysprep.cmd • EC2Config / EC2Launchの機能を通じてSysprepを 実行する際に実行されるカスタムスクリプト (sysprep.exe を実行する直前)
  29. 73 EC2 における Sysprep への介入 EC2では以下の方法でSysprepへの介入が可能 3. SysprepSpecialize.cmd • 特殊化(Specialize)処理中に実行されるカスタムスクリプト

    • Unattend.xmlで実行が定義されている • EC2Configでは SysprepSpecializePhase.cmd という名前 4. PostSysprep.cmd • EC2Config (Windows Server 2012 R2以前) にのみ存在 • Sysprepの終了スクリプト (SetupComplete.cmd) から 呼び出される
  30. 77