Skip to content

AWS Backend Deployment

AWS Management Console

  • Log in to the AWS Management Console
    • If deploying to C4C infrastructure, select IAM User and enter account alias c4cneu and your personal username / password
  • Select region US East (Ohio) (also called us-east-2)

RDS Setup

  • Navigate to RDS from the Services dropdown and click DB Instances
  • If creating a new RDS instance:
    • Click Create database, then select Standard create, and PostgreSQL
    • For Templates, select Free tier
    • Name the RDS instance under DB instance identifier
    • Set the Master username to postgres and enter a unique password
    • Adjust Maximum storage threshold to a reasonable value (e.g. 100 GiB)
    • Under Connectivity, set Virtual private cloud (VPC) to VPC-Public
    • For Subnet group, select db-sbg-public
    • For Public access, select Yes
    • For Existing VPC security groups select SG-RDS
    • Under Database authentication options, select Password authentication
    • Adjust any other default settings on this page, as necessary
    • Click Create database
  • Connect to the RDS instance, and create a new database for the project

Elastic Beanstalk Setup

  • Navigate to Elastic Beanstalk from the Services dropdown
  • Click Applications from the left sidebar
  • Click c4c-internal from the list of applications
  • Click Create a new environment and select Web server environment
  • Name the environment under Environment name
  • Under Platform, set Platform to Docker
  • Under Application code select Sample application
  • Click Configure more options
  • Under Presets, select Custom configuration
  • Under Network, click Edit
    • Under Virtual private cloud (VPC) set VPC to VPC-Public
    • Under Load balancer settings, set Visibility to Public
    • Under Load balancer subnets, select SN-Public-1 and SN-Public-2
    • Under Instance settings, check Public IP address
    • Under Instance subnets select SN-Public-1 and SN-Public-2
    • Click Save
  • Under Load Balancer click Edit
    • Under Load balancer type select Application Load Balancer
    • Click + Add listener
    • Add a new listener on port 443 for HTTPS using the appropriate certificate
  • Under Instances click Edit
    • Under EC2 security groups select SG-EB-EC2
    • Click Save
  • Under Capacity click Edit
    • Set Environment type to Load balanced
    • Set Min to 1 and Max to 1
    • Click Save
  • Under Security click Edit
    • Under EC2 key pair select an SSH key
  • Click Create environment

Load Balancer Setup

  • Navigate to EC2 from the Services dropdown
  • Click the newly created Load Balancer
  • Click the Listeners tab
  • Edit the rule for HTTP on port 80
  • Delete the default action
  • Create a new action to redirect from HTTP:80 to HTTPS:443

Route 53 Setup

  • Navigate to Route 53 from the Services dropdown
  • Click Hosted zones in the left navigation bar
  • Click c4cneu.com
  • Create a new A record pointing to the Elastic Beanstalk instance

Update Travis CI

  • Update the .travis.yml to point to the Elastic Beanstalk instance