Slide 1

Slide 1 text

Windows on AWS の “基礎” 2019.11.01 Takuya Shibata

Slide 2

Slide 2 text

スライドは後で入手することが出来ますので 発表中の内容をメモする必要はありません。 写真撮影をする場合は フラッシュ・シャッター音が出ないようにご配慮ください Attention

Slide 3

Slide 3 text

本日のハッシュタグ #cmdevio #cmdevio4

Slide 4

Slide 4 text

4 自己紹介 Takuya Shibata - AWS事業本部 コンサルティング部 - ソリューションアーキテクト - Microsoft MVP for Cloud and Datacenter Management - PowerShell おじさん - 好きなAWSサービス

Slide 5

Slide 5 text

5 はじめに 先月、Developers.IO 2019 Sapporo で 「Windows on AWS 入門」という発表をしました https://dev.classmethod.jp/cloud/aws/developers-io-2019-sapporo-windows-on-asw/

Slide 6

Slide 6 text

6 はじめに 本セッションは「Windows on AWS の “基礎”」 「入門」≠「基礎」 今日は若干込み入った話をしますが 何卒ご了承ください

Slide 7

Slide 7 text

7 アジェンダ 1. AWSにおけるWindowsワークロード 2. Windows on AWS の “基礎” • サポートOSとライセンス 3. Windows EC2 の “基礎” • 通常のWindows と EC2 Windows の違い • EC2Config と EC2Launch • EC2におけるSysprep 4. まとめ

Slide 8

Slide 8 text

8 AWSにおけるWindowsワークロード

Slide 9

Slide 9 text

9 AWSにおけるWindowsワークロード 2019年、エンタープライズに本気を出してきたAWS AWS Summit Tokyo 2019の資料から一部抜粋 https://aws.amazon.com/jp/summits/tokyo-osaka-2019-report/

Slide 10

Slide 10 text

https://pages.awscloud.com/rs/112-TZM-766/images/D3-03.pdf より引用

Slide 11

Slide 11 text

https://pages.awscloud.com/rs/112-TZM-766/images/E2-01.pdf より引用

Slide 12

Slide 12 text

https://pages.awscloud.com/rs/112-TZM-766/images/B2-02.pdf より引用

Slide 13

Slide 13 text

https://pages.awscloud.com/rs/112-TZM-766/images/B2-02.pdf より引用

Slide 14

Slide 14 text

14 EC2、だけじゃないWindows関連サービス https://aws.amazon.com/jp/windows/

Slide 15

Slide 15 text

AWSではWindows Containerも利用可能 • ECSでは • Windows Server 2016 Container • Windows Server 2019 Container の実行がサポートされている • Fargateは未サポート • EKS (Kubernetes 1.14)でWindows Container サポートが追加 15 コンテナサービス周辺

Slide 16

Slide 16 text

16 Amazon RDS ( for SQL Server ) マネージドなSQL Server 実体としてはWindows Server上で稼働

Slide 17

Slide 17 text

17 Amazon FSx for Windows マネージドなWindowsファイルサーバー 正確にはマネージドなDFSサーバー https://www.slideshare.net/AmazonWebServices/new-launch-deep-dive-on-amazon-fsx-for-windows-file-server-stg322r1-aws-reinvent-2018

Slide 18

Slide 18 text

18 AWS Managed Microsoft AD (AWS Directory Service) マネージドなドメインコントローラー 裏でWindows Server 2012 R2が動いている

Slide 19

Slide 19 text

19 Amazon WorkSpaces マネージドなVDIサービス Windows Server の Desktop Experience で実現 https://www.slideshare.net/AmazonWebServicesJapan/20190226-aws-black-belt-online-seminar-amazon-workspaces

Slide 20

Slide 20 text

20 Amazon AppStream 2.0 アプリケーションストリーミングサービス Windows Server上のアプリケーションを公開 https://www.slideshare.net/AmazonWebServices/bap205build-an-amazon-appstream-20-environment-to-stream-desktop-applications-to-your-users

Slide 21

Slide 21 text

21 Windows on AWS の “基礎”

Slide 22

Slide 22 text

22 サポートOSの基礎

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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)

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

27 Microsoftライセンスの基礎

Slide 28

Slide 28 text

28 Microsoftライセンスの基礎 Microsoft社の正式なアナウンスでは ない点はご了承ください Attention

Slide 29

Slide 29 text

29 Microsoftライセンスの基礎 WindowsをはじめとするMicrosoft製品のライセンスは 特定の組織がその組織内で利用する 前提にあり 組織が所有するハードウェアに適用し、 組織内からのアクセスにのみ限定される 傾向がある ※この傾向から外れる場合は特別な体系が提供される

Slide 30

Slide 30 text

30 Microsoftライセンスの基礎 繰り返しますが Microsoft社の正式なアナウンスでは ない点はご了承ください Attention

Slide 31

Slide 31 text

31 Microsoftライセンスの基礎 (AWSをはじめとした)クラウドサービスは サービス事業者の所有するハードウェア を ユーザーが利用する

Slide 32

Slide 32 text

32 Microsoft Services Provider License Agreement (SPLA) SPLAライセンスガイドブックより引用 (http://download.microsoft.com/download/7/0/3/703FF38D-10AC-46A9-BF58-92473C8D936D/Services_Provider_License_Agreement_Program_Guide_JPN_201610.pdf)

Slide 33

Slide 33 text

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の利用料金はココ

Slide 34

Slide 34 text

34 AWS での Microsoft ライセンシング まずはこれから読みましょう! • https://aws.amazon.com/jp/windows/resources/licensing/

Slide 35

Slide 35 text

35 ライセンスモビリティ Microsoftによる、オンプレ環境向け特定ソフトウェア のライセンスをクラウド環境に移動できる権利 • ソフトウェアアシュアランス(SA)に付帯する特典 として提供 • このため基本的にはボリュームライセンスが対象 ※ただし、SAはリテール/OEMライセンスにも適用可能な場合(購入90日以内)があるので要注意 • 移動可能なクラウド環境は認定制 • AWSおよび主要クラウドベンダーは対象 (https://download.microsoft.com/download/7/9/b/79bd917e-760b-48b6-a266-796b3e47c47a/authorized_mobility_partners.pdf) • 利用時はMicrosoftによる認証プロセスが必要

Slide 36

Slide 36 text

36 AWSでのライセンスモビリティ 本日時点での対象製品 https://aws.amazon.com/jp/windows/resources/licensemobility/ より引用

Slide 37

Slide 37 text

37 EC2 Dedicated Hostsにおけるライセンス改定 2019年10月1日より主要クラウドベンダーの “専用ホスト” (AWSだとEC2 Dedicated Hosts) におけるMicrosoft製品のライセンスが改定 https://www.microsoft.com/ja-jp/licensing/news/updated-licensing-rights-for-dedicated-cloud

Slide 38

Slide 38 text

38 EC2 Dedicated Hostsにおけるライセンス改定 これまで主要クラウドベンダーは “専用ホスト” を ユーザー環境と見做して扱っていた

Slide 39

Slide 39 text

39 EC2 Dedicated Hostsにおけるライセンス改定 これまで主要クラウドベンダーは “専用ホスト” を ユーザー環境と見做して扱っていた

Slide 40

Slide 40 text

40 EC2 Dedicated Hostsにおけるライセンス改定 2019年10月1日より “専用ホスト” はユーザー環境 ではないと明言された

Slide 41

Slide 41 text

41 EC2 Dedicated Hostsにおけるライセンス改定 2019年10月1日より “専用ホスト” はユーザー環境 ではないと明言された

Slide 42

Slide 42 text

42 EC2 Dedicated Hostsにおけるライセンス改定 ※ 注意事項 ※ 1. 対象となるベンダーは以下の “Listed Provider” のみ • Microsoft • Alibaba • Amazon (VMware Cloud on AWS を含む) • Google 2. 2019年10月1日以前に購入しているライセンスは適用外 3. 2019年10月1日以降にラインセス追加・ アップグレードなど行う場合は適用対象になる

Slide 43

Slide 43 text

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-の正式解禁!/

Slide 44

Slide 44 text

44 クラウドにおけるクライアントOSライセンス AWS は QMTH ではない =AWSの共有ハードウェア上で Windowsクライアント は一切利用不可 だから、WorkSpaces は Windows Server の Desktop Experience で実現する必要があったんですね ( ※Microsoft製品のクライアントVDIはさらに別のライセンス体系があるのも理由の一つなのですが…今回そこには触れません )

Slide 45

Slide 45 text

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 より引用

Slide 46

Slide 46 text

46 免責事項 ライセンスに関する正式な判断が必要に なる場合は必ず Microsoft および AWS に 確認してください • 極力間違いの無い様に記述していますが、 本セッションの内容はライセンスに対する記述の 正確さを保証しません

Slide 47

Slide 47 text

47 Windows EC2の ”基礎”

Slide 48

Slide 48 text

48 通常のWindows と EC2 Windows の違い

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

50 通常のWindows と EC2 Windows の違い EC2Config、EC2Launch 2つの初期設定ツールが存在

Slide 51

Slide 51 text

51 通常のWindows と EC2 Windows の違い 各種ツールやドライバーのインストール

Slide 52

Slide 52 text

52 通常のWindows と EC2 Windows の違い その他細やかなOS設定

Slide 53

Slide 53 text

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サポート用 ドキュメント無し

Slide 54

Slide 54 text

54 AWS Tools for PowerShell on EC2 Windows EC2インスタンスにはその時点で最新の AWS Tools for PowerShell (AWSPowerShell) がインストール済み • 利用の際はIAMロールをアタッチしましょう • ちなみにAWS CLIは未インストール

Slide 55

Slide 55 text

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/

Slide 56

Slide 56 text

56 EC2Config と EC2Launch

Slide 57

Slide 57 text

57 EC2Config と EC2Launch Windows EC2の作成時、および起動時に 各種初期化処理を行うためのツール EC2Config • Windows Server 2012 R2まで • Windowsサービス EC2Launch • Windows Server 2016以降 • PowerShellモジュール

Slide 58

Slide 58 text

58 EC2Config と EC2Launch 両者は基本的に機能互換だが 微妙に挙動が異なる…

Slide 59

Slide 59 text

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

Slide 60

Slide 60 text

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

Slide 61

Slide 61 text

61 EC2Config と EC2Launch ユーザーログイン時の処理 • ログイン時の処理は一応同等 タスク EC2Config EC2Launch 特記事項 壁紙の更新 〇 △ EC2Launchではスタートアップスクリプト 経由で壁紙設定 EC2Launchの壁紙設定コマンド(Set-Wallpaper) を呼び出すスタートアップスクリプト

Slide 62

Slide 62 text

62 EC2Config と EC2Launch • サービス設定のGUIを使用 • 大体の設定がここにある • 一部設定については XMLファイルを直接編集 EC2Config : Service Properties

Slide 63

Slide 63 text

63 EC2Config と EC2Launch • 基本はJSONファイルを直接編集 • 一部設定ついてはGUIで編集 EC2Launch : Launch Settings

Slide 64

Slide 64 text

64 EC2Config と EC2Launch 全ての違いを把握する必要は無いが、 挙動の違いによる問題が無いわけではないので注意 https://dev.classmethod.jp/cloud/aws/about-windows-ec2-instance-static-route/

Slide 65

Slide 65 text

65 EC2 Windows 起動ログ EC2Config および EC2Launch の起動ログを 「システムログの取得」で参照することもできる

Slide 66

Slide 66 text

66 EC2 における Sysprep

Slide 67

Slide 67 text

67 Sysprep を実行? EC2 AMIはSysprep実施済み

Slide 68

Slide 68 text

68 System Preparation Tool (Sysprep) Windows を複製し展開するための準備ツール • EC2に限らず、カスタマイズしたOSイメージ作成に使用 https://docs.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/sysprep--system-preparation--overview

Slide 69

Slide 69 text

69 何故 Sysprep が必要なのか? 初期設定が終わったWindowsには マシン固有の一意な識別子が存在 • マシンSID • コンピューター名 Sysprepはこれら識別子の初期化 (一般化)やドライバーキャッシュの クリアなどの処理をよしなに行って くれる

Slide 70

Slide 70 text

70 Sysprep の実行フロー 「Windowsの構成パス」より • https://docs.microsoft.com/ja-jp/windows-hardware/manufacture/desktop/how-configuration-passes-work ・OOBE (Out-of-Box Experience) モード の実行パス ・Windows初回起動時のアレ ・監査モード の実行パス ※EC2では使わない ・”一般化”の仕込みを事前に指定 ・次の起動(=セットアップ)時に 特殊化 処理が差し込まれ実行される

Slide 71

Slide 71 text

71 EC2 での Sysprep の実行 • 両方の設定ツールに Sysprepを呼び出す ボタンがある EC2では EC2Config / EC2Launch から Sysprep を呼び出す (直接 sysprep.exe を起動しない)

Slide 72

Slide 72 text

72 EC2 における Sysprep への介入 EC2では以下の方法でSysprepへの介入が可能 1. 自動応答ファイル (Unattend.xml) • Windows標準機能 • 通常の対話セットアップを自動化するためのもの • EC2Configでは sysprep2008.xml という名前で存在 2. BeforeSysprep.cmd • EC2Config / EC2Launchの機能を通じてSysprepを 実行する際に実行されるカスタムスクリプト (sysprep.exe を実行する直前)

Slide 73

Slide 73 text

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) から 呼び出される

Slide 74

Slide 74 text

74 EC2 における Sysprep への介入 BeforeSysprep.cmd SysprepSpecialize.cmd (SysprepSpecializePhase.cmd) PostSysprep.cmd Unattend.xml

Slide 75

Slide 75 text

75 まとめ

Slide 76

Slide 76 text

76 まとめ 1. EC2だけじゃないWindowsワークロード 2. AWSにおけるライセンスの基本はSPLA ライセンスモビリティやクライアントOS に対する理解も必要 3. 通常のWindowsとEC2 Windowsの 違いを理解する

Slide 77

Slide 77 text

77