AWS OpsWorks
User Guide (API Version 2013-02-18)

Microsoft Windows Server

The following notes describe AWS OpsWorks Stacks support for Windows instances. Windows instances are available only for Chef 12.2 stacks. The exact version of Chef in a Windows stack is 12.22.

Currently, the AWS OpsWorks Stacks agent cannot be installed on—and AWS OpsWorks Stacks cannot manage—Windows-based instances that use a system UI language other than English - United States (en-US).


AWS OpsWorks Stacks supports the following 64-bit versions of Microsoft Windows Server 2012 R2:

  • Microsoft Windows Server 2012 R2 Standard

  • Microsoft Windows Server 2012 R2 with SQL Server Express

  • Microsoft Windows Server 2012 R2 with SQL Server Standard

  • Microsoft Windows Server 2012 R2 with SQL Server Web

Amazon Elastic Compute Cloud (Amazon EC2) refers to Microsoft Windows Server 2012 R2 Standard as Microsoft Windows Server 2012 R2 Base, which is what you will see reported as the operating system on Windows instances. You can also use a custom AMI based on these operating systems. For pricing information, go to the Amazon EC2 Pricing page and visit the Windows tabs under On-Demand Instances.

Creating Instances

You create Windows instances with the AWS OpsWorks Stacks console, API, or CLI. Windows instances are Amazon EBS-backed, but you cannot mount extra Amazon EBS volumes.

Windows stacks can use 24/7 instances, which you start and stop manually. They can also use time-based automatic scaling, which automatically starts and stops instances based on a user-specified schedule. Windows-based stacks cannot use load-based automatic scaling.

You cannot register Windows instances that were created outside of AWS OpsWorks Stacks with a stack.


AWS updates Windows AMIs for each set of patches, so when you create an instance, it will have the latest updates. However, AWS OpsWorks Stacks does not provide a way to apply updates to online Windows instances. The simplest way to ensure that Windows is up to date is to replace your instances regularly, so that they are always running the latest AMI.


To handle tasks such as installing and configuring software or deploying apps, you will need to implement one or more custom layers with custom recipes.


Windows instances use Chef 12.22, and run chef-client in local mode, which launches a local in-memory Chef server called chef-zero. The presence of this server enables custom recipes to use Chef search and data bags.

Remote Login

AWS OpsWorks Stacks provides authorized AWS Identity and Access Management (IAM) users with a password that they can use to log in to Windows instances. This password expires after a specified time. Administrators can use an SSH key pair to retrieve an instance's Administrator password, which provides unlimited RDP access. For more information, see Logging In with RDP.


AWS OpsWorks Stacks automatically installs the AWS SDK for .NET on each instance. This package includes the AWS .NET libraries and AWS Tools for Windows, including the AWS Tools for PowerShell. To use the Ruby SDK, you can have a custom recipe install the appropriate gem.

Monitoring and Metrics

Windows instances support the standard Amazon CloudWatch (CloudWatch) metrics, which you can view in the CloudWatch console.


The Chef 12.22 client that AWS OpsWorks Stacks installs on Windows instances comes with Ruby 2.3.6. However, AWS OpsWorks Stacks does not add the executable's directory to the PATH environment variable. To have your applications use this Ruby version, you can typically find it in C:\opscode\chef\embedded\bin\.

AWS OpsWorks Stacks Agent CLI

The AWS OpsWorks Stacks agent on Windows instances does not expose a command-line interface.

Proxy Support

Do the following to set up proxy support for Windows instances:

  1. Modify machine.config to add the following, which adds proxy support to Windows PowerShell (initial bootstrap) and .NET (AWS OpsWorks Stacks agent) applications:

    <> <defaultProxy> <proxy autoDetect="false" bypassonlocal="true" proxyaddress="" usesystemdefault="false" /> <bypasslist> <add address="localhost" /> <add address="" /> </bypasslist> </defaultProxy> </>
  2. Run the following commands to set environment variables for later use by Chef and Git:

    setx /m no_proxy "localhost," setx /m http_proxy "" setx /m https_proxy ""


For more control over how AWS OpsWorks Stacks updates your instances, create a custom AMI based on Microsoft Windows Server 2012 R2 Base. For example, with custom AMIs you can specify which software is installed on an instance, such as Web Server (IIS). For more information, see Using Custom AMIs.