|Table of Contents|
Leading edge features
Configures an IIS (Internet Information Services) web application server.
Application code can only be retrieved and deployed using an MSDeploy package from a supported ROS service.
Note: If you want to retrieve your application code from one of the following locations, please see the Microsoft IIS App Server (v13.5 LTS) LTS version instead.
The IIS Download and sync Web Deploy package boot script downloads your application code from the specified ROS location, unpacks it (if necessary), and places it into the following directory by default: C:\Inetpub\wwwroot\<WEB_SITE_NAME>\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 (v14 Infinity) 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 "primary" database server using the DB_CONNECTION_STRING input, which is a comma-separated string (e.g. Server=22.214.171.124;Database=mydb;User ID=myuser;Password=MyPassword123;) that consists of the following information:
The application will access the database using the credentials found in the database connection string. You might want to create a credential for the string if you prefer to hide the value from your end users.
The database connection string, as defined by the DB_CONNECTION_STRING input is used by the IIS application to connect to the SQL database. The IIS Download and sync Web Deploy package 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 (v14 Infinity) - 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 Infinity) - 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.