Update the solution - Instance Scheduler on AWS

Update the solution

Important

Instance Scheduler v1.5.0 has a known compatibility issue with AppRegistry that prevents it from being able to directly upgrade to newer versions of the solution.

If you are planning to update from v1.5.0 to any future AppRegistry enabled version, you must first update to the 1.5.0-u intermediary stack using the following templates:

Hub Stack: https://solutions-reference.s3.amazonaws.com/aws-instance-scheduler/v1.5.0/aws-instance-scheduler-1.5.0-u.template

Remote Stack: https://solutions-reference.s3.amazonaws.com/aws-instance-scheduler/v1.5.0/aws-instance-scheduler-remote-1.5.0-u.template

Installation of these stacks will disable AppRegistry integration on your deployment, allowing newer versions of the solution to recreate the association.

Example upgrade path: 1.5.0 -> 1.5.0-u -> 3.0.4

Instance Scheduler is designed to be safe to update in-place using AWS CloudFormation. The general procedure to do this is as follows:

  1. Sign in to the AWS CloudFormation console, on the account/region where your Hub stack is installed,select instance-scheduler-on-aws, and select Update.

  2. Select Replace current template.

  3. Under Specify template:

    • Select Amazon S3 URL.

    • Copy the link of the latest template.

    • Paste the link in the Amazon S3 URL box.

    • Verify that the correct template URL shows in the Amazon S3 URL text box, and choose Next. Choose Next again.

  4. Under Parameters, review the parameters for the template and modify them as necessary (see list of breaking changes below for any required parameter updates).For details about each of the parameters For details about the parameters, see Step 1. Launch the instance scheduler stack.

  5. Choose Next.

  6. On the Configure stack options page, choose Next.

  7. On the Review page, review and confirm the settings. Check the box acknowledging that the template will create AWS Identity and Access Management (IAM) resources.

  8. Choose View change set and verify the changes.

  9. Choose Update stack to deploy the stack.

You can view the status of the stack in the AWS CloudFormation console in the Status column. You should receive an UPDATE_COMPLETE status in a few minutes.

Repeat the above steps for the aws-instance-scheduler-remote stacks in each of your spoke accounts.

Breaking Changes in Specific Versions

When updating the solution, you can upgrade directly from any older version to any newer version without loss of data or interruption to scheduling operations except where explicitly called out below. When updating past certain versions, you may need to take certain actions for versions you are passing. For example, when updating from v1.4.1 to v3.0.2, follow the instructions for breaking changes in v1.5.0 and v3.0.0.

v1.5.0

Version 1.5.0 replaces the need to provide a list of cross-account scheduling role ARNs with the ability to automatically manage them through your AWS Organization. If you don't want to use AWS Organizations, you can instead provide a list of Spoke Account IDs and Instance Scheduler will manage the scheduling roles for you.

When updating to v1.5.0 or newer, you must:

  1. Update the hub template using the normal update instructions while updating the following parameters:

    1. Choose a unique namespace for the solution.

    2. Select whether you would like to Use AWS Organizations to manage spoke registration going forward.

      1. If you selected Yes replace Organization ID/Remote Account IDs with the ID of your AWS Organization.

      2. If you selected No replaceOrganizationID/RemoteAccountIDs with a comma-separated list of the Account IDs of your Spoke accounts.

  2. Update all remote stacks using the normal update instructions while updating the following parameters :

    1. Namespace – same as you chose for the hub account.

    2. Use AWS Organizations – same as hub account.

    3. Hub Account ID – Account ID of the hub account (should be unchanged from before).

v3.0.0

v3.0.0 contains the following breaking changes compared to previous versions:

  • "CloudWatch Metrics" feature in 1.5.x has been replaced with the Operational Insights Dashboard.

  • Per-schedule metrics in CloudWatch have been moved from Schedule/Service/MetricName → Schedule/Service/SchedulingInterval/MetricName.

  • All existing metrics will remain, but new metrics will now be gathered under the new namespace and will be made available in the solution dashboard.

  • KMS key ARNs for use with encrypted EBS volumes on EC2 DB instances must now be provided to the hub/spoke CloudFormation stack in their respective accounts. (For more information, refer to Encrypted EC2 EBS Volumes.)

    • If you are scheduling EC2s with Encrypted EBS Volumes, you will need to copy the KMS key arns being used to your hub/spoke stack parameters.

  • The CloudFormation parameter for scheduled services has been broken up into individual parameters for each supported service.

    • All services will be enabled by default and can be disabled individually.

  • Instance Scheduler 3.0 is not backwards compatible with older versions of the Instance Scheduler CLI.

    • You will need to update to the latest version of the Instance Scheduler CLI to continue using CLI commands.

In addition to the above, the schema of the Maintenance Window table has been updated and will be replaced as part of the update. This will reset tracking for EC2 maintenance windows for the first few minutes after updating to v3.x and in rare cases may cause instances currently within a maintenance window to be stopped prematurely immediately following the update. After this data has been regenerated scheduling operations will continue as normal.