[トップページ] [FAQ 一覧]

対象:Windows

EC2インスタンス(Windows)で必要なサービス、停止してよいサービス





AWS インスタンスと Windows サービス


EC2 Windowsインスタンスを起動し、どのようなAWS固有のサービスが動作しているか、および必要なWindowsサービスを検証してみました。

AWSWindowsインスタンス固有のサービス


以下のサービスは AWS 固有のサービスのようなので停止させない方がよいでしょう。

Amazon SSM Agent(AmazonSSMAgent)




AWS上のSystems Managerから指示を受け設定を行う。


C:\>sc queryex AmazonSSMAgent

SERVICE_NAME: AmazonSSMAgent
TYPE : 10 WIN32_OWN_PROCESS
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
PID : 1728
FLAGS :




Amazon CloudWatch Agent


EC2インスタンスの性能データやログを収集し、AWS の CloudWatch に送信する。


C:\>sc queryex AmazonCloudWatchAgent

SERVICE_NAME: AmazonCloudWatchAgent
TYPE : 10 WIN32_OWN_PROCESS
STATE : 2 START_PENDING
(NOT_STOPPABLE, NOT_PAUSABLE, IGNORES_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x7d0
PID : 0
FLAGS :



以下から追加でダウロードしてインストールします。再起動後に有効になります。

https://s3.amazonaws.com/amazoncloudwatch-agent/windows/amd64/latest/amazon-cloudwatch-agent.msi


AWS Lite Guest Agent(AWSLiteAgent)


インスタンスの停止処理など。マネージメントコンソール(AWS 管理コンソール)やAWS の CLI (aws ec2 stop-instances)でインスタンスを停止する場合に処理を行う。
Windows側の処理(更新プログラムの構成やシャットダウンスクリプト)を待たずして停止させる可能性があるので注意。

参考:
インスタンスのシャットダウンはOSコマンドを使用すべき理由

もしこのサービスが停止している場合、マネージメントコンソールやAWS APIからインスタンスを停止させるとシャットダウン処理なしでインスタンスがパワーオフされる可能性があるので注意。
OSのシャットダウンコマンド(shutdown.exe)やWindowsスタートメニューからのシャットダウンではこのサービスは無関係。



C:\>sc queryex AWSLiteAgent

SERVICE_NAME: AWSLiteAgent
TYPE : 10 WIN32_OWN_PROCESS
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
PID : 1736
FLAGS :



CloudFormation cfn-hup




"CloudFormation cfn-hup for Windows"。サービス名は"cfn-hup"


C:\>sc queryex cfn-hup

SERVICE_NAME: cfn-hup
TYPE : 10 WIN32_OWN_PROCESS
STATE : 1 STOPPED
WIN32_EXIT_CODE : 1077 (0x435)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
PID : 0
FLAGS :




Ec2Config


インスタンス初回起動時に設定を実行。

(*)Windows Server 2012 R2 以前用。Windows Server 2016には含まれていない。
その代わりに EC2Launch(Powershellベース) を使用する。

E2 Launchはサービスではなく(EC2 Configと異なり)タスクスケジューラに登録されるタスク。よって毎回動作する訳ではない。
インスタンス初期化時のみ実行され2回目以後の起動時はこのタスクは無効化されている。
(ただし initializeinstance.ps1 -Scheduleを実行するとタスクが有効化される)

https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/WindowsGuide/ec2config-service.html
EC2Config サービスを使用した Windows インスタンスの設定

Windows Server 2012 R2 以前用の Windows AMI には、EC2Config サービス (EC2Config.exe) というオプションのサービスが含まれています。EC2Config は、インスタンスが起動し、起動時にタスクを実行したとき、およびインスタンスを停止または開始するたびに起動します。オンデマンドでタスクを実行させることもできます。タスクには自動的に有効化されるものもありますが、手動で有効化しなければならないものもあります。使用は任意ですが、このサービスは他の手段では利用できない高度な機能を提供します。このサービスは LocalSystem アカウントで実行されます。


AWS の EC2 Launch はWindows タスクスケジューラに設定に設定されています。Windows サービスからは除外されました。

EC2 Launch のタスクスケジューラ設定



プログラム:
C:\Windows\System32\cmd.exe

/C C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -NoProfile -NonInteractive -NoLogo -ExecutionPolicy Unrestricted -File "C:\ProgramData\Amazon\EC2-Windows\Launch\Scripts\InitializeInstance.ps1"


Windowsインスタンスで不要なサービス


セキュリティ、及び性能改善のため以下の Windows サービスを停止して稼働させてみました。(当然これらの機能を使用しない場合)
今のところ問題はありません。

・Server
・Print Spooler
・SSDP Discovery
・Theme
・Distributed Link Tracking Client
・Diagnostic Policy Service

【超重要】本ページは2020/01/09に記載されました。情報が古くなっている可能性があります。








[ 一覧に戻る]


【注意事項】本ページの内容は個人的に調査した結果がであり内容が正しいことは保証されません。
またAWSサービスは常に改良、アップデートされており本ページの内容が古く誤った内容になる可能性もあります。変更になっても本ページが正しく更新されるとは限りません。
あくまでも参考程度でご覧ください。内容により発生したいかなる時間的損害、金銭的損害、その他の損害に関しても何人も保証しません。