Skip to content

Amazon Appliance Workflow

Mike Dye edited this page Jan 4, 2017 · 1 revision

Developer

This is described for a Ruby on Rails environment, but other website frameworks could be used.

  • The website application (e.g. Ruby project) is hosted on GitHub.
  • Amazon OpsWorks is used for server configuration and deployment. Amazon has a good video on the following OpsWorks process.
  • Create a new stack. The default Linux O/S with Ruby and MySQL will work. (S3 could also be used for testing).
  • Add a layer for a Rail App Server.
  • Add an App. (Specify the GitHub path to fetch the application code). The application contains an empty
  • Create a "golden" instance of the stack. This instance will appear in your instances list on the EC2 dashboard.
  • Create an AMI (image) of the running instance. Give this image a name that includes a version number, e.g. "CHORDS Server v0.9.1".
  • (Later) The golden instance can be updated with new application code, using the "update" button in the OpsWorks Apps page.

User Setup

  • The user creates an instance of the AMI (e.g. CHORDS Server v0.9.1).
  • The instance is given an application specific name, such as "CHORDS UMich HydroNet".
  • The IP address of the CHORDS server is available in the instance details.
  • (Probably should select a more permanent storage choice than the default ESD).
  • The user browses to the CHORDS server, and logs in via the home page.
  • Forms are available to configure the CHORDS server for data organization and ingest.
  • Other pages are used to monitor and control the system.
  • (Desirable) There is some way for the user to easily create a more memorable IP alias. Perhaps this can be done when the instance is created.

Data Access

  • HTTP queries to the same IP are used to submit data to the CHORDS server.
  • HTTP queries to the same IP are used to fetch data from the CHORDS server.
  • The CHORDS server can provide simple tabular listings of selected data. File downloads can be specified and dynamically created.
  • (Desirable) How can we incorporate push delivery?
Clone this wiki locally