Getting Started Concepts The Things Stack Cloud The Things Stack Enterprise Integrations API Hardware
Get The Things Stack

The Things Stack Enterprise

    Overview
  • AWS
    • AWS Marketplace AMI
      • Deployment Guide
      • Post Deployment Configuration
      • Updating AWS AMI Deployment
      • Best Practices
      • Application Server Telemetry
      • Troubleshooting AWS AMI Deployment
    • AWS ECS
  • Kubernetes
  • Docker
  • The Things Join Server
  • Manage The Things Stack

Updating AWS AMI Deployment

This section contains information to update The Things Stack AWS AMI deployment.

Updating the CloudFormation Stack

We recommend using Change Sets to update the CloudFormation Stack.

Warning:
Updating The Things Stack AWS AMI deployment sometimes involves replacing the EC2 instance. When this is necessary, this will be indicated in Change Set before applying the change. When the EC2 instance is replaced, the built-in ACME feature requests new Let’s Encrypt certificates. Let’s Encrypt has a weekly certificate limit of 5 per domain. In order not to hit the rate-limit, make sure that you are not making changes that replace the EC2 machine more often than the rate-limit i.e, 5 per week. If you are using custom certificates via the provided parameters, this is not applicable.

On the AWS Console, open the CloudFormation service, navigate to the Change sets tab and select Create change set. There are two choices that can be made here:

  • Use current template: Choose this option to update input parameters on an existing template.
  • Replace current template: Choose this option to use a new template on the existing deployment. This option should be used to apply new versions of The Things Stack that are delivered as new version of the CloudFormation template.

Once the necessary options are updated, select the Create Change Set option. This will create a change set that describes the resources that will be updated by this change and if any of these resources need to be replaced.

After confirming the changes, select Execute. Depending on the resources, this will take some time to complete and can be tracked using the Events tab on the AWS Console.

Note:
We recommend to only update the AWS resource configuration via the CloudFormation template. Updating resources outside CloudFormation causes unpredicted behavior during updates or EC2 instance restart, and limits the possible support we can provide.

New CloudFormation template

New CloudFormation template version can be downloaded from AWS Marketplace. Click View CloudFormation Template and then Download CloudFormation Template to download the most recent template.

Manual Upgrade of Databases (Amazon RDS and ElastiCache) using snapshots

The update of certain fields of the CloudFormation stack necessitates the recreation of the database. AWS does not automatically migrate the data and hence, this must be done manually. This section applies only when CloudFormation plans to recreate the database.

In order to migrate the database without the loss of data, first create a snapshot of your database before running a change set on these fields.

  • For RDS, navigate to RDS > Snapshots on the AWS Console and select Take Snapshot.
  • For Redis (ElastiCache), navigate to ElastiCache on the AWS Console and select your Redis Replication Group and select Backup option.

Now run a change set on CloudFormation.

  • For RDS, enter the ARN (Amazon Resource Name) of the snapshot into the Amazon RDS Snapshot field and run the change set.
  • For Redis (ElastiCache), enter the Name of the backup into the Amazon ElastiCache Redis Snapshot and run the change set.

Database Schema Migrations

When updating minor version of the stack, you might be required to perform database migrations. Please refer to the changelog for information which migrations are needed when updating to given version. Remember that you need to perform migrations mentioned not only in the latest version, but also those mentioned in versions between your current and target version. Database migrations are run by logging into the EC2 machine that the stack runs on, and executing relevant commands. Required command you need to run is also mentioned in the changelog, for example:

This requires a database schema migration (ttn-lw-stack is-db migrate) because of the added columns.

The tti-lw-stack executable is located in /tti/lorawan-stack/. When running it, in the environment you need to have the TTN_LW_CONFIG=/tti/lorawan-stack/config.yml variable exported. Example use:

export TTN_LW_CONFIG=/tti/lorawan-stack/config.yml

/tti/lorawan-stack/tti-lw-stack is-db migrate

If you encounter any issues, please refer to Troubleshooting.

← Post Deployment Configuration Best Practices →

On this page

  • Updating the CloudFormation Stack
  • New CloudFormation template
  • Manual Upgrade of Databases (Amazon RDS and ElastiCache) using snapshots
  • Database Schema Migrations

Sections

Getting Started

Concepts

The Things Stack Cloud

The Things Stack Enterprise

Integrations

API

Hardware

Sitemap

View our Sitemap

Contributing

GitHub

About Us

The Things Industries