|Table of Contents|
Long Term Support
Stable, tested ServerTemplate assets
Configures an IIS (Internet Information Services) web application server.
Application code can be retrieved from one of the following locations:
The IIS Download application code boot script retrieves your application code from one of the supported locations above, unpacks it (if necessary), and places it into the following directory by default: C:\inetpub\wwwroot\release\<GMT-timestamp>
The ServerTemplate contains a boot script (SYS Configure IIS logs rotation policy), which sets up a Windows scheduled task to upload an archive of any log entries older that one day to a specified container in one of the supported ROS services.
The archives are taken once per day at a randomly generated time that is set at boot time. Currently, there is no way to preconfigure the time prior to launching the server. Archives are not auto-deleted after a certain amount of time. You must manually delete archive files that you no longer want to keep.
The archives are saved as .zip files using the following naming convention: <COMPUTER_NAME>-IISLOGS-YYYYMMDDHHMMSS.zip
The methods you will use to secure access to your IIS server depend on the cloud provider.
Note: All images > v13.5 have Windows Firewall enabled, but allow ports 80 and 443 by default.
Load Balancer to Application Server
By default, the application server is configured to listen for requests from a load balancer server/service on TCP port 8000, as defined by the APPLICATION_LISTENER_PORT input. If you are using RightScale's Load Balancer with HAProxy (v13.5_LTS) ServerTemplate with the IIS application servers, it will send requests to the application server based on its server tag, which is based upon the APPLICATION_LISTENER_PORT input. However, if you are using a cloud load balancing service like ELB or CLB, you must configure them to send requests to the appropriate port. Therefore, if you change the application listener port to something other than 8000, you must make sure that the load balancer server(s) are also configured appropriately.
Application Server to Database Server
Before an application (e.g., IIS) can perform an action on a database (e.g. create a new record), the application server(s) must first be granted access at the network-level before it can successfully make an application-level request. IIS communicates with the SQL database over TCP port 1433.
Once the database server has updated its permissions to allow access between the application and database tiers, the application will be able to connect to the database using the required information. For example, the application will locate the "principal" database server using the OPT_CONNECTION_STRING_DB_SERVER_NAME input (e.g., db-principal.example.com). The application will access the database, which is defined by the 'OPT_CONNECTION_STRING_DB_NAME input by using database connection string credentials, which are specified by the OPT_CONNECTION_STRING_DB_USER_ID and OPT_CONNECTION_STRING_DB_USER_PASSWORD inputs. If you are using a mirrored database server with automatic failover you can use the OPT_CONNECTION_STRING_FAILOVER_PARTNER_NAME input to specify the “mirror” database server. On an automatic failover of the database (using a Witness server) the application server will switch its database connection and connect to the previous “mirror” server, which will be promoted to be new “principal” server.
A connection string is used by the IIS application to connect to a SQL database. The IIS Add connection string boot script generates a database connection string in your IIS configuration settings (web.config file) with the values that your web application can use to connect to a remote SQL Server database.
If the database does not have a SQL Server user that can be used by the application to access the database, you should use the DB SQLS Create login operational script on the running database server to create the SQL user before you launch the application server.
Note: It's recommended that you use credentials to hide the username and password for the OPT_CONNECTION_STRING_DB_USER_ID and OPT_CONNECTION_STRING_DB_USER_PASSWORD inputs.
The ServerTemplate contains scripts and inputs that support the following load balancing solutions.
By default, the ServerTemplate is designed to connect to an HAProxy load balancer launched with RightScale's Load Balancer with HAProxy ServerTemplate via the IIS Register with HAProxy (Chef-based) (v13.x) boot script, which uses machine tags to establish the appropriate connections between the HAProxy load balancer and application servers.
If you want to use an ELB or CLB instead of HAProxy, you should clone the template and customize the boot and decommission scripts by replacing the HAProxy connect/disconnect scripts with the appropriate ELB/CLB connect/disconnect scripts. See the Microsoft IIS App Server (v13.5_LTS) - Tutorial for detailed instructions on how to modify the ServerTemplate.
A server certificate and private key in X.509/PEM format is required to support HTTPS (HTTP with SSL/TLS) protocol with the ELB and HAProxy load balancers. IIS server certificates are typically exported in .pfx (PKCS#12) format. However, you can generate PEM-formatted certificate and private key files for the load balancers using the SYS Convert PFX operational script. For more information, see the Microsoft IIS App Server (v13.5_LTS) - Runbook.
The SYS IIS monitoring install boot script configures the server for custom monitoring graphs that are specific to IIS applications. View graphs for the following metrics under the Monitoring tab and create custom alerts based on these metrics. Several alerts are preconfigured for the ServerTemplate including a few that are specific to IIS applications. However, you can also create your additional alerts based on any of the other monitored metrics. See Create a Custom Alert Specification.
Below is a list of the monitored metrics that are unique to the IIS ServerTemplate.
© 2006-2014 RightScale, Inc. All rights reserved.
RightScale is a registered trademark of RightScale, Inc. All other products and services may be trademarks or servicemarks of their respective owners.