5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AWSでWindowsアーキテクチャを利用する場合のTips、注意点について

Last updated at Posted at 2025-12-17

Japan AWS Top Engineers アドカレ17日目の記事です!

はじめに

本記事ではAWS環境においてWindowsOSやMicrosoft系のサービスを利用する際のTipsや気をつけるべきポイントなどを記載します。
実体験、ドキュメントベースでの記載を行っておりますが、アップデートにより変更になった、Microsoftの規約変更またはライセンス形態の変更により仕様や提供形態が変更になっている可能性がございますのでAWS公式ドキュメント、Microsoft公式ドキュメントを正とさせていただきます。

Microsoft系のライセンスについて

AWSからのライセンス提供(インクルード)

  • Amazon EC2のWindows Server、Amazon RDSのSQL ServerなどはAWSからライセンス提供をうけてAWS支払いが可能
  • AMIにライセンスが紐づいておりユーザ側で難しい契約や操作などは不要
  • License Managerなどで提供されているライセンス数の管理なども可能(リモートデスクトップライセンスなど)
    • RDS CALやOfficeライセンスもLicense Managerから利用が可能
  • Windows Server CALライセンスは不要、リモートデスクトップRDS CALは2接続まで付与

Bring-Your-Own-License(BYOL)

  • Dedicated Hosts(占有ホスト)などを利用して自前のライセンスを持ち込んで利用が可能。
    • ただし持ち込みには条件が多く慎重に確認する必要がある。(購入日、SA付きなど)
  • AWSのBYOL問い合わせ窓口もあり[microsoft@amazon.com]
  • Amazon WorkSpacesでWindows10のネイティブOSを利用するにはBYOLが必須などBYOLが必要なケースもある。
    • ※通常はWindows Serverのデスクトップエクスペリエンス機能を使ってWindows10ライクな疑似OSを提供

EC2で利用しているライセンス種別の確認

  • [EC2]→[インスタンス]→該当インスタンスをチェック→[詳細]を選択して[使用オペレーション]を確認してどのライセンスが適用されているか確認が可能
  • 利用AMIでもどのOSかわかりますが、AMIが利用不可になると見えなくなるためSQL Server AMIかどうかの判断は使用オペレーションから確認するのが確実です

スクリーンショット 2025-12-14 13.18.03.png

■AMI請求情報フィールド
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/billing-info-fields.html

RDS CAL、offcieをEC2で使うには

  • 2025年9月30日でBYOLでのSPLAライセンス持ち込みでの利用が禁止になっている
  • License Managerを利用してRDS CALとofficeライセンスの管理が必須となっている
  • officeを使う場合はMicrosftADが必須、RDS CALはセルフホストADも利用可能
  • RDS CALやofficeのライセンスサーバは名前解決が必須となるため、AWS外でセルフホストADのドメインコントローラーを稼働している場合は、Route53アウトバウンドリゾルバーの構成を行い、フォワードが推奨される
    • ライセンスサーバのIPアドレス使用も可能だが非推奨。ライセンスサーバの再デプロイ時にIPアドレスが変更となる。
    • ライセンスサーバは2IPの払い出しが行われる。
  • officeを使う場合、既存のADユーザでは利用できないため、専用のADを立ち上げでMicrosoftADで管理する必要がある。
  • RDS CALやofficeライセンスのサブスクリプションを解除しても2-3ヶ月はライセンス利用料の請求が発生するため注意が必要。(認証トークンが切れるまで課金が発生)
    スクリーンショット 2025-12-13 21.35.38.png

SA付きライセンスの場合持ち込みができるケースがある

  • 利用資格要件を満たす場合、SA付きのライセンスであれば持ち込みが可能になるケースがある。
  • 詳細は下記URLをご確認ください。ライセンスモビリティ検証フォームなどへの入力が必要となります。

■ライセンスモビリティ
https://aws.amazon.com/jp/windows/resources/licensemobility/

EC2で起動するWindows Serverのエディションについて

  • AMIからWindowsライセンス付きのEC2を起動するとDataCenterエディションで起動される
  • Standardを使いたい場合はVeeamやAWS MGNなどで他環境から移行する必要がある
  • DataCenterエディションの場合、Stanadrdの上位互換のため問題はありませんがアプリケーションベンダー様がStandardエディションしか動作検証をしていないなどのケースもあるため事前にエディションの調整が必要なケースもある。
    スクリーンショット 2025-12-14 11.55.23.png

EC2で日本語化済みWindows Serverインスタンスを使うには

  • 標準のWindowsAMIを選択すると英語イメージで起動される

  • Japanese-Full-Baseと記載されたイメージが日本語済みイメージ

  • Windows_Server-2022-Japanese-Full-BaseなどOSバージョンを変更したキーワードで検索すると表示がされます。

    • 末尾の2025.10.15などの日付はWindowsUpdate後のイメージ作成日となりますので近々の日付を選択するとWindowsUpdateの手間が少なくなります。
      スクリーンショット 2025-12-14 15.39.56.png
  • 標準のWindowsAMIを選択すると英語イメージで起動される

  • 英語版のOSに日本語化アドオンを入れると日本語化できますが中途半端に言語設定が混在してトラブルが発生するケースもありますので最初から日本語イメージを使ったほうがいいです

Windows AMIは設定値が最適化されている

  • 公式のAMIからWindowsを立ち上げると電源オプションやWindowsUpdateの自動適用無効化など最適化されている。
  • ドキュメントには以下の記載があり、複数の項目で最適化されている。(原文は公式ページに記載されております)
カテゴリ 説明 対象
クリーンアップと準備 保留中のファイル名変更や再起動を確認し、必要に応じて再起動する すべてのAMI
.dmp ファイルを削除する すべてのAMI
ログを削除する(イベントログ、Systems Manager、EC2Config) すべてのAMI
Sysprep用の一時フォルダとファイルを削除する すべてのAMI
ウイルススキャンを実行する すべてのAMI
キューに入っている.NETアセンブリをプリコンパイルする(Sysprep前) すべてのAMI
Microsoftブラウザをデフォルト値に復元する すべてのAMI
Windowsの壁紙をリセットする すべてのAMI
Sysprepを実行する すべてのAMI
次回起動時にEC2Launch v1を実行するよう設定する Windows Server 2016および2019
Windowsメンテナンスツールを実行する Windows Server 2012 R2以降
最近の履歴をクリアする(スタートメニュー、エクスプローラーなど) Windows Server 2012 R2以前
EC2Configをデフォルト値に復元する Windows Server 2012 R2以前
インストールと設定 Secure Time Seedingを無効にする すべてのAMI
Amazon EC2 Windowsガイドへのリンクを追加する すべてのAMI
インスタンスストレージボリュームを拡張マウントポイントにアタッチする すべてのAMI
最新のAWS Tools for Windows PowerShellをインストールする すべてのAMI
最新のCloudFormationブートストラップスクリプトをインストールする すべてのAMI
Internet ExplorerのRunOnceを無効にする すべてのAMI
リモートPowerShellを有効にする すべてのAMI
休止状態を無効にし、休止状態ファイルを削除する すべてのAMI
接続ユーザーエクスペリエンスとテレメトリサービスを無効にする すべてのAMI
パフォーマンスオプションを最高のパフォーマンスに設定する すべてのAMI
電源設定を高パフォーマンスに設定する すべてのAMI
スクリーンセーバーのパスワードを無効にする すべてのAMI
RealTimeIsUniversalレジストリキーを設定する すべてのAMI
タイムゾーンをUTCに設定する すべてのAMI
Windows Updateと通知を無効にする すべてのAMI
保留中の更新がなくなるまでWindows Updateを実行し再起動する すべてのAMI
すべての電源プランでディスプレイをオフにしないよう設定する すべてのAMI
PowerShell実行ポリシーを「Unrestricted」に設定する すべてのAMI
Microsoft SQL Serverがインストールされている場合:サービスパックをインストール、自動起動を設定、BUILTIN\AdministratorsをSysAdminロールに追加、TCPポート1433とUDPポート1434を開放する すべてのAMI
システムボリュームにページングファイルを設定する(Windows Server 2016以降:システム管理、2012 R2:8GB、2012以前:512MB〜8GB) すべてのAMI
最新のEC2Launch v2とSSM Agentをインストールする Windows Server 2022以降
最新のEC2Launch v1とSSM Agentをインストールする Windows Server 2016および2019
最新のSRIOVドライバをインストールする Windows Server 2012 R2以降
最新のEC2WinUtilドライバをインストールする Windows Server 2008 R2以降
最新のEC2ConfigとSSM Agentをインストールする Windows Server 2012 R2以前
最新のAWS PV、ENA、NVMeドライバをインストールする Windows Server 2008 R2以降
ファイアウォールでICMPトラフィックを許可する Windows Server 2012 R2以前
Z:ドライブが利用可能な場合、追加のシステム管理ページングファイルを設定する Windows Server 2012 R2以前
ファイルとプリンタの共有を有効にする Windows Server 2012 R2以前
最新のCitrix PVドライバをインストールする Windows Server 2008 SP2以前
PowerShell 2.0および3.0をインストールする Windows Server 2008 SP2およびR2
以下の修正プログラムを適用する:MS15-011、KB2582281、KB2634328、KB2394911、KB2780879 Windows Server 2008 SP2およびR2

■Updates applied for AWS Windows AMIs
https://docs.aws.amazon.com/ec2/latest/windows-ami-reference/windows-ami-configuration.html

SSMでのWindows OSの管理

  • Fllet Manager機能を利用してOSの操作が可能
    ■Fleet Manager を使用して Windows インスタンスに接続する
    https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/connect-rdp-fleet-manager.html
  • SSMインベントリ機能を使ってインストールされているソフトウェアやレジストリ、WindowsUodateの適用情報などの閲覧が可能
  • スクリーンショット 2025-12-14 15.48.49.png
  • 取得されるメタデータの全文は以下のとおりです。
{
    "typeName": "AWS:InstanceInformation",
    "version": "1.0",
    "attributes":[
      { "name": "AgentType",                              "dataType" : "STRING"},
      { "name": "AgentVersion",                           "dataType" : "STRING"},
      { "name": "ComputerName",                           "dataType" : "STRING"},
      { "name": "InstanceId",                             "dataType" : "STRING"},
      { "name": "IpAddress",                              "dataType" : "STRING"},
      { "name": "PlatformName",                           "dataType" : "STRING"},
      { "name": "PlatformType",                           "dataType" : "STRING"},
      { "name": "PlatformVersion",                        "dataType" : "STRING"},
      { "name": "ResourceType",                           "dataType" : "STRING"},
      { "name": "AgentStatus",                            "dataType" : "STRING"},
      { "name": "InstanceStatus",                         "dataType" : "STRING"}    
    ]
  },
  {
    "typeName" : "AWS:Application",
    "version": "1.1",
    "attributes":[
      { "name": "Name",               "dataType": "STRING"},
      { "name": "ApplicationType",    "dataType": "STRING"},
      { "name": "Publisher",          "dataType": "STRING"},
      { "name": "Version",            "dataType": "STRING"},
      { "name": "Release",            "dataType": "STRING"},
      { "name": "Epoch",              "dataType": "STRING"},
      { "name": "InstalledTime",      "dataType": "STRING"},
      { "name": "Architecture",       "dataType": "STRING"},
      { "name": "URL",                "dataType": "STRING"},
      { "name": "Summary",            "dataType": "STRING"},
      { "name": "PackageId",          "dataType": "STRING"}
    ]
  },
  {
    "typeName" : "AWS:File",
    "version": "1.0",
    "attributes":[
      { "name": "Name",               "dataType": "STRING"},
      { "name": "Size",    	      "dataType": "STRING"},
      { "name": "Description",        "dataType": "STRING"},
      { "name": "FileVersion",        "dataType": "STRING"},
      { "name": "InstalledDate",      "dataType": "STRING"},
      { "name": "ModificationTime",   "dataType": "STRING"},
      { "name": "LastAccessTime",     "dataType": "STRING"},
      { "name": "ProductName",        "dataType": "STRING"},
      { "name": "InstalledDir",       "dataType": "STRING"},
      { "name": "ProductLanguage",    "dataType": "STRING"},
      { "name": "CompanyName",        "dataType": "STRING"},
      { "name": "ProductVersion",       "dataType": "STRING"}
    ]
  },
  {
    "typeName": "AWS:AWSComponent",
    "version": "1.0",
    "attributes":[
      { "name": "Name",               "dataType": "STRING"},
      { "name": "ApplicationType",    "dataType": "STRING"},
      { "name": "Publisher",          "dataType": "STRING"},
      { "name": "Version",            "dataType": "STRING"},
      { "name": "InstalledTime",      "dataType": "STRING"},
      { "name": "Architecture",       "dataType": "STRING"},
      { "name": "URL",                "dataType": "STRING"}
    ]
  },
  {
    "typeName": "AWS:WindowsUpdate",
    "version":"1.0",
    "attributes":[
      { "name": "HotFixId",           "dataType": "STRING"},
      { "name": "Description",        "dataType": "STRING"},
      { "name": "InstalledTime",      "dataType": "STRING"},
      { "name": "InstalledBy",        "dataType": "STRING"}
    ]
  },
  {
    "typeName": "AWS:Network",
    "version":"1.0",
    "attributes":[
      { "name": "Name",               "dataType": "STRING"},
      { "name": "SubnetMask",         "dataType": "STRING"},
      { "name": "Gateway",            "dataType": "STRING"},
      { "name": "DHCPServer",         "dataType": "STRING"},
      { "name": "DNSServer",          "dataType": "STRING"},
      { "name": "MacAddress",         "dataType": "STRING"},
      { "name": "IPV4",               "dataType": "STRING"},
      { "name": "IPV6",               "dataType": "STRING"}
    ]
  },
  {
    "typeName": "AWS:PatchSummary",
    "version":"1.0",
    "attributes":[
      { "name": "PatchGroup",                       "dataType": "STRING"},
      { "name": "BaselineId",                       "dataType": "STRING"},
      { "name": "SnapshotId",                       "dataType": "STRING"},
      { "name": "OwnerInformation",                 "dataType": "STRING"},
      { "name": "InstalledCount",                   "dataType": "NUMBER"},
      { "name": "InstalledPendingRebootCount",      "dataType": "NUMBER"},
      { "name": "InstalledOtherCount",              "dataType": "NUMBER"},
      { "name": "InstalledRejectedCount",           "dataType": "NUMBER"},
      { "name": "NotApplicableCount",               "dataType": "NUMBER"},
      { "name": "UnreportedNotApplicableCount",     "dataType": "NUMBER"},
      { "name": "MissingCount",                     "dataType": "NUMBER"},
      { "name": "FailedCount",                      "dataType": "NUMBER"},
      { "name": "OperationType",                    "dataType": "STRING"},
      { "name": "OperationStartTime",               "dataType": "STRING"},
      { "name": "OperationEndTime",                 "dataType": "STRING"},
      { "name": "InstallOverrideList",              "dataType": "STRING"},
      { "name": "RebootOption",                     "dataType": "STRING"},
      { "name": "LastNoRebootInstallOperationTime", "dataType": "STRING"},
      { "name": "ExecutionId",                      "dataType": "STRING",                 "isOptional": "true"},
      { "name": "NonCompliantSeverity",             "dataType": "STRING",                 "isOptional": "true"},
      { "name": "SecurityNonCompliantCount",        "dataType": "NUMBER",                 "isOptional": "true"},
      { "name": "CriticalNonCompliantCount",        "dataType": "NUMBER",                 "isOptional": "true"},
      { "name": "OtherNonCompliantCount",           "dataType": "NUMBER",                 "isOptional": "true"}
    ]
  },
  {
    "typeName": "AWS:PatchCompliance",
    "version":"1.0",
    "attributes":[
      { "name": "Title",                        "dataType": "STRING"},
      { "name": "KBId",                         "dataType": "STRING"},
      { "name": "Classification",               "dataType": "STRING"},
      { "name": "Severity",                     "dataType": "STRING"},
      { "name": "State",                        "dataType": "STRING"},
      { "name": "InstalledTime",                "dataType": "STRING"}
    ]
  },
  {
    "typeName": "AWS:ComplianceItem",
    "version":"1.0",
    "attributes":[
      { "name": "ComplianceType",               "dataType": "STRING",                 "isContext": "true"},
      { "name": "ExecutionId",                  "dataType": "STRING",                 "isContext": "true"},
      { "name": "ExecutionType",                "dataType": "STRING",                 "isContext": "true"},
      { "name": "ExecutionTime",                "dataType": "STRING",                 "isContext": "true"},
      { "name": "Id",                           "dataType": "STRING"},
      { "name": "Title",                        "dataType": "STRING"},
      { "name": "Status",                       "dataType": "STRING"},
      { "name": "Severity",                     "dataType": "STRING"},
      { "name": "DocumentName",                 "dataType": "STRING"},
      { "name": "DocumentVersion",              "dataType": "STRING"},
      { "name": "Classification",               "dataType": "STRING"},
      { "name": "PatchBaselineId",              "dataType": "STRING"},
      { "name": "PatchSeverity",                "dataType": "STRING"},
      { "name": "PatchState",                   "dataType": "STRING"},
      { "name": "PatchGroup",                   "dataType": "STRING"},
      { "name": "InstalledTime",                "dataType": "STRING"},
      { "name": "InstallOverrideList",          "dataType": "STRING",                 "isOptional": "true"},
      { "name": "DetailedText",                 "dataType": "STRING",                 "isOptional": "true"},
      { "name": "DetailedLink",                 "dataType": "STRING",                 "isOptional": "true"},
      { "name": "CVEIds",                       "dataType": "STRING",                 "isOptional": "true"}
    ]
  },
  {
    "typeName": "AWS:ComplianceSummary",
    "version":"1.0",
    "attributes":[
      { "name": "ComplianceType",                 "dataType": "STRING"},
      { "name": "PatchGroup",                     "dataType": "STRING"},
      { "name": "PatchBaselineId",                "dataType": "STRING"},
      { "name": "Status",                         "dataType": "STRING"},
      { "name": "OverallSeverity",                "dataType": "STRING"},
      { "name": "ExecutionId",                    "dataType": "STRING"},
      { "name": "ExecutionType",                  "dataType": "STRING"},
      { "name": "ExecutionTime",                  "dataType": "STRING"},
      { "name": "CompliantCriticalCount",         "dataType": "NUMBER"},
      { "name": "CompliantHighCount",             "dataType": "NUMBER"},
      { "name": "CompliantMediumCount",           "dataType": "NUMBER"},
      { "name": "CompliantLowCount",              "dataType": "NUMBER"},
      { "name": "CompliantInformationalCount",    "dataType": "NUMBER"},
      { "name": "CompliantUnspecifiedCount",      "dataType": "NUMBER"},
      { "name": "NonCompliantCriticalCount",      "dataType": "NUMBER"},
      { "name": "NonCompliantHighCount",          "dataType": "NUMBER"},
      { "name": "NonCompliantMediumCount",        "dataType": "NUMBER"},
      { "name": "NonCompliantLowCount",           "dataType": "NUMBER"},
      { "name": "NonCompliantInformationalCount", "dataType": "NUMBER"},
      { "name": "NonCompliantUnspecifiedCount",   "dataType": "NUMBER"}
    ]
  },
  {
    "typeName": "AWS:InstanceDetailedInformation",
    "version":"1.0",
    "attributes":[
      { "name": "CPUModel",                     "dataType": "STRING"},
      { "name": "CPUCores",                     "dataType": "NUMBER"},
      { "name": "CPUs",                         "dataType": "NUMBER"},
      { "name": "CPUSpeedMHz",                  "dataType": "NUMBER"},
      { "name": "CPUSockets",                   "dataType": "NUMBER"},
      { "name": "CPUHyperThreadEnabled",        "dataType": "STRING"},
      { "name": "OSServicePack",                "dataType": "STRING"}
    ]
   },
   {
     "typeName": "AWS:Service",
     "version":"1.0",
     "attributes":[
       { "name": "Name",                         "dataType": "STRING"},
       { "name": "DisplayName",                  "dataType": "STRING"},
       { "name": "ServiceType",                  "dataType": "STRING"},
       { "name": "Status",                       "dataType": "STRING"},
       { "name": "DependentServices",            "dataType": "STRING"},
       { "name": "ServicesDependedOn",           "dataType": "STRING"},
       { "name": "StartType",                    "dataType": "STRING"}
     ]
    },
    {
      "typeName": "AWS:WindowsRegistry",
      "version":"1.0",
      "attributes":[
        { "name": "KeyPath",                         "dataType": "STRING"},
        { "name": "ValueName",                       "dataType": "STRING"},
        { "name": "ValueType",                       "dataType": "STRING"},
        { "name": "Value",                           "dataType": "STRING"}
      ]
    },
    {
      "typeName": "AWS:WindowsRole",
      "version":"1.0",
      "attributes":[
        { "name": "Name",                         "dataType": "STRING"},
        { "name": "DisplayName",                  "dataType": "STRING"},
        { "name": "Path",                         "dataType": "STRING"},
        { "name": "FeatureType",                  "dataType": "STRING"},
        { "name": "DependsOn",                    "dataType": "STRING"},
        { "name": "Description",                  "dataType": "STRING"},
        { "name": "Installed",                    "dataType": "STRING"},
        { "name": "InstalledState",               "dataType": "STRING"},
        { "name": "SubFeatures",                  "dataType": "STRING"},
        { "name": "ServerComponentDescriptor",    "dataType": "STRING"},
        { "name": "Parent",                       "dataType": "STRING"}
      ]
    },
    {
      "typeName": "AWS:Tag",
      "version":"1.0",
      "attributes":[
        { "name": "Key",                     "dataType": "STRING"},
        { "name": "Value",                   "dataType": "STRING"}
      ]
    },
    {
      "typeName": "AWS:ResourceGroup",
      "version":"1.0",
      "attributes":[
        { "name": "Name",                   "dataType": "STRING"},
        { "name": "Arn",                    "dataType": "STRING"}
      ]
    },
    {
      "typeName": "AWS:BillingInfo",
      "version": "1.0",
      "attributes": [
        { "name": "BillingProductId",       "dataType": "STRING"}
      ]
    }
  • 翻訳した内容が以下のとおりです。
インベントリタイプ 説明 主な取得項目
AWS:InstanceInformation インスタンスの基本情報 エージェントタイプ/バージョン、コンピュータ名、インスタンスID、IPアドレス、プラットフォーム名/タイプ/バージョン、エージェント/インスタンスのステータス
AWS:InstanceDetailedInformation インスタンスの詳細ハードウェア情報 CPUモデル、コア数、CPU数、クロック速度(MHz)、ソケット数、ハイパースレッディング有無、OSサービスパック
AWS:Application インストール済みアプリケーション 名前、種類、発行元、バージョン、リリース、インストール日時、アーキテクチャ、URL、概要、パッケージID
AWS:AWSComponent AWSコンポーネント 名前、種類、発行元、バージョン、インストール日時、アーキテクチャ、URL
AWS:File ファイル情報 ファイル名、サイズ、説明、バージョン、インストール日、更新日時、最終アクセス日時、製品名、インストールディレクトリ、会社名
AWS:Network ネットワーク設定 インターフェース名、サブネットマスク、ゲートウェイ、DHCPサーバー、DNSサーバー、MACアドレス、IPv4/IPv6アドレス
AWS:WindowsUpdate Windows更新プログラム HotFix ID、説明、インストール日時、インストール実行者
AWS:PatchSummary パッチ適用サマリー パッチグループ、ベースラインID、インストール済み/保留中/失敗/不足パッチ数、操作開始・終了時刻、再起動オプション
AWS:PatchCompliance パッチコンプライアンス詳細 タイトル、KB ID、分類、重要度、状態、インストール日時
AWS:ComplianceItem コンプライアンス項目 コンプライアンスタイプ、実行ID/タイプ/時刻、タイトル、ステータス、重要度、ドキュメント名、CVE ID
AWS:ComplianceSummary コンプライアンスサマリー コンプライアンスタイプ、ステータス、全体の重要度、準拠/非準拠の件数(重要度別)
AWS:Service Windowsサービス サービス名、表示名、種類、ステータス、依存サービス、スタートアップの種類
AWS:WindowsRegistry Windowsレジストリ キーパス、値の名前、値の種類、値
AWS:WindowsRole Windows役割と機能 名前、表示名、パス、機能タイプ、依存関係、説明、インストール状態、サブ機能、親機能
AWS:Tag リソースタグ キー、値
AWS:ResourceGroup リソースグループ 名前、ARN
AWS:BillingInfo 課金情報 課金プロダクトID

■インベントリによって収集されたメタデータ
https://docs.aws.amazon.com/ja_jp/systems-manager/latest/userguide/inventory-schema.html

EC2でのドメインコントローラー構築

  • オンプレミス同様にEC2(Windows Server)でドメインコントローラーの構築は可能。
  • EC2で稼働する場合、AWS内リソースの名前解決も可能。
    • フォワーダーにRoute53のIPアドレスなどの設定が必要。
  • EC2でドメインコントローラを稼働する場合は以下の事項など注意が必要
    • IPアドレスの固定化:クライアントはEC2のIPをDNSアドレスに設定するため、EC2のIPが変わるとクライアントの設定を全台変更しないといけない。そのため、EC2をリストアする場合はENIの引き継ぎなどを行う。
    • DNSアドレスの変更:ネットワーク設定から優先DNSサーバを127.0.0.1に変更が必要。
    • DNSフォワーダーの設定:フォワーダーのIPアドレスにAmazonProvidedDNSのIPアドレスを設定
    • DNSサフィックスの追加:Route53のゾーンなど追加している場合はDNSサフィックスも追加する
    • 時刻同期設定:時刻同期をAmazon Time Sync Service(169.254.169.123)から行うように設定する。
    • 複数EC2でドメインコントローラを構成する場合はADのデータベースを正確に復旧するためにAWS BackupでVSS対応のスナップショットを取得する。

■AWS Backup で VSS バックアップを設定する方法を教えてください。
https://repost.aws/ja/knowledge-center/backup-setup-vss-backup

Windows OSのインプレースアップグレード

  • Windows OSのバージョンアップを既存インスタンスで可能
  • パブリックスナップショットからアップグレード先WindowsOSのイメージを選択し、EBSを作成、アップグレードするEC2にマウントし、Windows OSイメージからアップグレードが可能
  • SSMを利用した自動アップグレードも可能

アップグレードに失敗するとインスタンスに接続できなくなるため実施前には必ずバックアップを取得してください。
アップグレージにエディションを変更するとプロファイルが変更されるため、操作ができなくなります。
日本語OSに英語OSイメージでアップグレードなどもプロファイル変更の対象となりますのでご注意ください。

スクリーンショット 2025-12-14 16.56.02.png

WindowsOS稼働のEC2をコピーする際の注意点

  • Windowsインスタンス固有の情報もコピーされてしまうためコピー前にはsysprepを実行してインスタンス固有の情報を削除する必要がある。
  • EC2ConfigまたはEC2Launchからsysprepが可能。
  • sysprepせずにコピーすると動作保証外となる。
  • ドメイン参加などしている場合はおなじマシンが複数稼働しているような認識がされてしまう。

■Sysprep を使用して再利用可能なカスタム Windows AMI を作成およびインストールする方法を教えてください。
https://repost.aws/ja/knowledge-center/sysprep-create-install-ec2-windows-amis

仮想メモリサイズに注意する

  • 大容量メモリ搭載のインスタンスタイプを使うと完全メモリダンプの取得の際にEBS容量が枯渇してしまう。
  • メモリサイズと同等の空き容量をあらかじめサイジングしておく。
  • 大容量インスタンスの場合、インスタンスストアボリュームがついてくるのでインスタンスストアボリュームにメモリダンプを吐き出す設定も可能

SQLServer on EC2のSQLServerインストール先変更

  • デフォルトでインストールはCドライブに行われる。
  • データベースはあとからDドライブなどに変更が可能だが、プログラムをCドライブからDドライブに変更する場合は再インストールが必要となる。
  • インストール媒体の格納先は「C:¥SQLServerSetup」にあるため、Setupファイルを実行して再インストールが可能

再起動時に一部のドライブが見えなくなる事象が発生する

  • 複数のEBSボリュームが稼働しており、稼働していたEBSを削除すると削除したドライブが使っていたNVMeがオフラインとなり、オフラインとなっているNMVeのデバイスが再起動時に再利用されてしまいドライブが非表示となってしまう。
  • 対策はドライブを削除した場合はオフラインになっているNVMeデバイスをアンインストールする必要がある。

■ステップ 3: (Windows インスタンスのみ) オフラインデバイスのロケーションをアンインストールする
https://docs.aws.amazon.com/ja_jp/ebs/latest/userguide/ebs-detaching-volume.html#uninstall

スナップショットからAMIを作成してリストアするとライセンス認証ができなくなる

  • Windowsの場合はEBSスナップショットからAMIを作成、AMIからEC2を立ち上げすると認識されているOSがLinux機になってしまう事象が発生するケースがある。
  • Linux機として認識するとAWSのKMSサーバと接続ができなくなり、Windowsライセンス認証ができない。
  • Windowsライセンスの課金もできなくなるためライセンス違反となり動作保証外になる。

ほとんどの場合、Windows、RedHat、SUSE、SQL Server の AMI には、正しいライセンス情報が存在する必要があります。詳細については、「AMI の請求情報について」を参照してください。スナップショットから AMI を作成する場合、RegisterImage オペレーションはスナップショットのメタデータから正しい請求情報を取得しますが、これには適切なメタデータが必要です。正しい請求情報が適用されたかどうかを確認するには、新しい AMI の [プラットフォームの詳細] フィールドを確認します。フィールドが空であるか、所定のオペレーティングシステムコード (Windows、RedHat、SUSE、SQL など) と一致しない場合、AMI の作成は失敗しているため、この AMI を破棄して「インスタンスから AMI を作成する」の手順に従う必要があります。

Amazon EBS-backed AMI を作成する
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/creating-an-ami-ebs.html##

AWSでのWindowsサポートについて

  • WindowsOSがサポート期間内、AWSサポートを契約している場合、ベストエフォートでサポートはしてくれます。
  • ミッションクリティカルなシステムであれば別途Microsoftとの有償サポート契約も考慮にいれてください。

ビジネスティアまたはエンタープライズティアで AWS Supportをご購入いただいたお客様が AWS で実行している Microsoft Windows Server、SQL Server、Windows デスクトップ (Amazon Workspaces 経由) に関して問題が発生した場合、AWS Supportは Microsoft サポートエンジニアと直接連携し、問題解決に努めます。この拡張サポート契約により、AWS は Microsoft と直接連携して可能な限り最良のサポートエクスペリエンスをお届けします。必要に応じて、AWS Supportは問題を Microsoft にエスカレーションし、専門の Microsoft サポートエンジニアと共に問題に対処し、解決することができます。

■AWS と Microsoft に関するよくある質問
https://aws.amazon.com/jp/windows/faq/

5
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?