- 1. 概要
- 2. Windows Serverのインスタンス起動
— 2.1. AMIを選択してインスタンス起動
— 2.2. Cドライブのサイジング - 3. Windows ServerのOS初期設定
— 3.1. Administratorのパスワード変更
— 3.2. Administrator以外のユーザー作成
— 3.3. Timezone設定、Language設定、Region設定
— 3.4. File name extensions設定
— 3.5. NTP設定(Amazon Time Sync Service)
— 3.6. Computer Name変更(*)
— 3.7. Windows Update - 4. EC2 管理ツールのインストール/セットアップ
— 4.1. AWS CLI のダウンロード & インストール
— 4.2. AWS CLI のセットアップ
— 4.3. E2CConfigのダウンロード & インストール
— 4.4. CloudWatch Agent のインストール
— 4.5. CloudWatch Agent のセットアップ(*) - 5. OSのネットワーク/セキュリティ関連の設定
— 5.1. リモートデスクトップ接続設定(セキュリティポリシーによる)
— 5.2. ネットワークレベル認証設定(セキュリティポリシーによる)
— 5.3. 暗号化レベルをHigh設定(セキュリティポリシーによる)
— 5.4. 暗号化TLS1.0/1.1 を無効化(セキュリティポリシーによる) - 6. ADに登録(*)
- 7. ミドルウェアのインストール(*)
— 7.1. ミドルウェアのインストール
— 7.2. ミドルウェアのログローテーション - 8. AMI を使った横展開
概要
- インフラエンジニアの基本はIaaS構築から! 本記事は、EC2上に起動したWindows Server OSの構築でやるべきことをまとめた記事となります。対象はOSのベースのみであり、WebサーバーやDBなどミドルウェアの手順については含みません。
- なお、本記事に完成はなく、Windows Server OSの構築で新しい発見があれば都度更新の予定です。
Windows Serverのインスタンス起動
AMIを選択してインスタンス起動
- AMI を選択します。「コミュニティ AMI」を選択し、「Windows」をチェックします。
- 日本語OS を使用する場合、「Japanese」で検索します。
- 特に理由がなければ、AWSが配布するAMI(provided by Amazon)を選択します。バージョンやミドルウェアを含むなどいくつかの種類がありますので、目的に応じて選択。
- 以降のインスタンスの設定については、本記事では省略します。
Cドライブのサイジング
- Windows Server のCドライブにはある程度の未使用領域が必要です。Cドライブをサイジングする方法は、下記ドキュメントを参照。
EC2(Windows) Cドライブのサイジングと拡張 | Oji-Cloud
概要はじめに今回は、EC2 のディスク拡張についてご紹介します。対象のサーバーOSは、Windows Server 2012 R2 となります(2016以降も手順は同じです)。マイクロソフトのドキュメントを例に、IaaSの設計時に悩ましいCドライブの容量をサイジングする方法についてもご紹介します。CドライブのサイジングEC2(Windows)のディスクサイズあるあるオンプレの場合、物理的なサーバーのラインナップからディスク容量を選択します。しか
Windows ServerのOS初期設定
- 次に、Windows Server が起動した後のOS初期設定を記載します。
Administratorのパスワード変更
- Administratorのパスワード変更
- 確認のためサインアウト/サインイン
Administrator以外のユーザー作成
- Administrator以外のユーザー作成
- Administratorsグループ割り当て
- 確認のためサインアウト/作成したユーザーにてサインイン
Timezone設定、Language設定、Region設定
- タイムゾーン(Timezone)の設定
- コントロール パネルの時計、言語、および地域(Control Panel\Clock, Language, and Region)
- 例:UTC
- 言語(Language)の設定
- 例:English(US)
- Regionの設定
- 例:United States
File name extensions設定
- ファイル名拡張子(File name extensions)の表示は有効にする。
NTP設定(Amazon Time Sync Service)
- Amazon Time Sync Service(Server:169.254.169.123)を設定。
C:\Users\Administrator>w32tm /query /status Leap Indicator: 3(last minute has 61 seconds) Stratum: 0 (unspecified) Precision: -6 (15.625ms per tick) Root Delay: 0.0000000s Root Dispersion: 0.0000000s ReferenceId: 0x00000000 (unspecified) Last Successful Sync Time: unspecified Source: Local CMOS Clock Poll Interval: 9 (512s) C:\Users\Administrator>net stop w32time The Windows Time service is stopping. The Windows Time service was stopped successfully. C:\Users\Administrator>w32tm /config /syncfromflags:manual /manualpeerlist:"169.254.169.123" The command completed successfully. C:\Users\Administrator>w32tm /config /reliable:yes The command completed successfully. C:\Users\Administrator>net start w32time The Windows Time service is starting. The Windows Time service was started successfully. C:\Users\Administrator>w32tm /query /status Leap Indicator: 0(no warning) Stratum: 4 (secondary reference - syncd by (S)NTP) Precision: -6 (15.625ms per tick) Root Delay: 0.0341949s Root Dispersion: 7.7766624s ReferenceId: 0xA9FEA97B (source IP: 169.254.169.123) Last Successful Sync Time: 2/22/2019 10:53:21 AM Source: 169.254.169.123 Poll Interval: 9 (512s)
Computer Name変更(*)
- Computer Name(コンピューター名)を変更する。
- OSの再起動を伴うため、OS初期設定の最後に実施とする。
Windows Update
SSM(Systems Manager)からWindows Update
- SSM(Systems Manager)のRun Commandより、下記コマンドを使用して、SSMのUpdateを実施。
- AWS-UpdateSSMAgent
- SSMが古いと、次のWindows Updateが失敗するため。
- SSM(Systems Manager)のRun Commandより、下記コマンドを使用して、Windows Updateを実施。
- AWS-InstallWindowsUpdates
- Action: Install
- Allow Reboot: True
- AWS-InstallWindowsUpdates
- 事前に、EC2のロールにAmazonSSMFullAccessがアタッチされていることを確認する。
EC2 管理ツールのインストール/セットアップ
AWS CLI のダウンロード & インストール
- 以下より、AWS CLI のインストールモジュールをダウンロード。
https://s3.amazonaws.com/aws-cli/AWSCLISetup.exe - AWS CLI をインストールする。
C:\Users\niikawa>aws --version aws-cli/1.16.103 Python/3.6.0 Windows/2012ServerR2 botocore/1.12.93
AWS CLI のセットアップ
- 以下記事を参考に、AWS CLI をセットアップする。
やさしいaws cli のインストール方法 | Oji-Cloud
Linux + aws cli のはじめ方準備今回は、Linux にaws cli をインストールして初期設定する方法をまとめます。Linux環境は、Windows 10にインストールしたWindows Subsystem for Linuxを使用します。Windows Subsystem for Linuxのインストール方法は、下記の記事を参照ください。aws cli のインストールにpipコマンドを使用します。Ubuntuにpipをインストールする方法は
E2CConfigのダウンロード & インストール
- 以下より、AWS CLI のインストールモジュールをダウンロード、インストールする。
- あるいは、SSM(Systems Manager)のRun Commandを使用して、インストールする。
- AWS-UpdateEC2Config
CloudWatch Agent のインストール
- 以下より、AWS CLI のインストールモジュールをダウンロード、インストールする。
- https://s3.amazonaws.com/amazoncloudwatch-agent/windows/amd64/latest/amazon-cloudwatch-agent.msi
- msiexec /i amazon-cloudwatch-agent.msi
- 次のディレクトリが作成されたことを確認する。
- C:\Program Files\Amazon\AmazonCloudWatchAgent
- あるいは、SSM(Systems Manager)のRun Commandを使用して、インストールする。
- AWS-ConfigureAWSPackage
- Action: Install
- Name: AmazonCloudWatchAgent
- 事前に、EC2のロールにAmazonSSMFullAccessがアタッチされていることを確認する。
- 次のディレクトリが作成されたことを確認する。
- C:\Program Files\Amazon\AmazonCloudWatchAgent
- AWS-ConfigureAWSPackage
CloudWatch Agent のセットアップ(*)
- 以下記事を参考に、CloudWatch Agent をセットアップする。
【最新】Windows + CloudWatch Agentによるメトリクス/ログ管理 | Oji-Cloud
Windowsインスタンスの統合CloudWatch エージェント設定方法はじめに目的EC2インスタンス上のWindowsサーバーが個々に持つログを収集して、CloudWatch Logsに集約すること。CloudWatchを使って、各EC2インスタンスのカスタムメトリクスを監視すること。何が【新】かと言えば、2017年12月に発表された新機能である統合 CloudWatch エージェントを使用した設定を表します。ハマったこと!これまで、Wi
OSのネットワーク/セキュリティ関連の設定
リモートデスクトップ接続設定(セキュリティポリシーによる)
- リモートデスクトップ(RDP)接続を 2セッションまで許可する設定に変更する。
- ローカルグループポリシー(gpedit.msc)を起動し、コンピューターの構成を開く。
- 下記の項目を展開する。
- 管理用テンプレート → Windows コンポーネント → リモート デスクトップ サービス → リモート デスクトップ セッション ホスト → 接続
- (English)Administrative Templates -> Windows Components -> Remote Desktop Services -> Remote Desktop Session Host -> Connections
- 下記のパラメータを無効(Disabled)に変更する。
- リモート デスクトップ サービス ユーザーに対してリモート デスクトップ サービス セッションを 1 つに制限する
- (English)Restrict Remote Desktop Services users to a single Remote Desktop Services Session
ネットワークレベル認証設定(セキュリティポリシーによる)
- 以下記事を参考に、設定する。
Windows Serverのネットワークレベル認証設定 | Oji-Cloud
Windows Server セキュリティ強化: ネットワークレベル認証前提条件Windows Server のセキュリティ強化の設定を紹介します。RDP(リモートデスクトップ)を行う際の認証方法をネットワークレベル認証(NLA)に変更します。ネットワークレベル認証とは、接続元のクライアントと接続先のサーバのセッションが確立する前に資格情報の確認をする認証方式です。暗号化レベルをFIPS準拠に変更する手順は、下記の記事を参照ください。Windows Ser
暗号化レベルをHigh設定(セキュリティポリシーによる)
- 以下記事を参考に、設定する。
Windows Serverの暗号化レベルをHigh設定 | Oji-Cloud
Windows Server セキュリティ強化: 暗号化レベルのHigh設定前提条件Windows Server のセキュリティ強化の設定を紹介します。RDP(リモートデスクトップ)による接続を行う際、サーバーとクライアント間で通信されるデータは暗号化されています。しかし、盗聴時に解読されるリスクを減らすため、暗号化の強度(暗号鍵のビット数)を高めることが有効です。Windows Server 2012 R2 のスクリーンショットを使用した例となります。
暗号化TLS1.0/1.1 を無効化(セキュリティポリシーによる)
- 以下記事を参考に、設定する。
Windows Serverの暗号化TLS1.0/1.1 を無効化 | Oji-Cloud
Windows Server セキュリティ強化: TLS1.0/1.1を無効化する前提条件Windows Server のセキュリティ強化の設定を紹介します。TLS(Transport Layer Security)の旧バージョンであるTLS 1.0/ TLS 1.1を無効化し、旧バージョンの脆弱性から回避します。(例:TLS 1.0 において脅威となった CBC モードの脆弱性を利用した攻撃 (BEAST 攻撃等) は、TLS 1.1以降ではあらかじめ対策を
ADに登録(*)
- システムでADサービスを利用する場合は、Windows Server をADに登録する。
- 以下記事を参考に、ADに登録する。
やさしいWindows Server をADに登録する方法 | Oji-Cloud
Windows Server のAD登録方法前提条件AWSでは手軽にADサービスを利用することができます。本投稿では、マネージド型の Microsoft Active DirectoryにWindows Serverを登録する手順を記載します。OSのバージョンは、Windows Server 2012 R2 となります。Microsoft ADサービスを立ち上げる方法は、下記の記事を参照ください。やさしいAWS Managed Microsoft ADサ
ミドルウェアのインストール(*)
ミドルウェアのインストール
- システムの要件に応じて、各種ミドルウェアやツールをインストールする。
- 例) Microsoft .NET Framework, IIS, DB, Javaなど
ミドルウェアのログローテーション
- システムの要件に応じて、ミドルウェアののログローテーションや定期削除を組み込む。
Windowsのforfilesを使ったログのリネーム/削除 | Oji-Cloud
概要Windows Server において、Linux のlogrotate コマンドの役割を作ります。Windowsのforfiles は、Linux のfind コマンドに近い動作をします。forfiles を使ったbatファイルを作成し、スケジューラーで定期実行させます。forfilesの使用方法構文forfiles [/c "<Comma
AMI を使った横展開
- これまでの構築後にAMIを取得し、別のサーバーに横展開 or スケールアウトする場合、AMIを取得する前にWindows Server をsysprep(初期化)する。
- 以下記事を参考に、Windows Serverをsysprepする。なお、sysprepは、EC2Config サービス、あるいはSSM(Systems Manager)のRunCommandのいずれかを使用する。
- なお、横展開後にサーバーごとに変更が必要と思われる箇所を(*)にて、マークする。
SSMからEC2 Windowsをsysprepする方法 | Oji-Cloud
Windowsにログインせず、SSM(CLI)からsysprepを投げる概要はじめに今回は、SSM(Systems Manager)を使用して、EC2上のWindows Server に対してsysprepを行う方法をご紹介します。Sysprepはsysprepコマンドを直接実行するのではなく、AWSのEC2Config サービスを利用して、Sysprepを投げたいと思います!今回記載するオペレーションは、ターゲットにWindows Server 201