Skip to content

Sunshine Architecture & Configuration

Beau Cronin edited this page Jul 8, 2016 · 2 revisions

The process by which sunshine configures an EC2 instance to execute a CESM model run is, unfortunately, a bit complex.

In brief, sunshine starts an EC2 instance and uses cloud-init to configure it. This process installs docker, builds a docker image, and runs a docker container whose command process executes a CESM modeling run that writes its output to S3.

The key control scripts (in addition to the standard CESM model-running infrastructure) are as follows:

  • launch: This script is executed by the user to start a new run. It starts a new EC2 instance with appropriate user-data for cloud-init (including the CESM config variables), and also creates an entry in the CESM_Instances DynamoDB table
  • user-data.sh: This script is run on the newly-launched EC2 instance. It installs and starts docker, places the CESM config variables in a known location, clones and builds the sunshine docker image, and creates an upstart config that runs the sunshine docker container. It is generated by the launch script.
  • boot.sh: This is the entry point for the sunshine docker container. It creates, configures, build, and runs a CESM case that matches the instance type and config variables specified by the user.