AMPS
  • What is AMPS?
  • Getting Started
    • Installation
      • Docker
      • Kubernetes
        • Local
        • Openshift
        • AWS
    • Setup
  • Fundamentals
    • Admin
      • Monitoring
        • Message Events
        • Sessions
        • Service Monitoring
        • System Logs
        • Audit Log
        • Consumers
      • Onboarding
        • Groups
        • Users
      • Message Configuration
        • Topics
        • Actions
        • Services
        • Scripts
        • Templates
        • Routing Rules
        • API Endpoints
        • Metadata Fields
        • Keys
        • Jobs
      • Data Configuration
        • Providers
        • Environments
        • Packages
      • Tools
      • System Configuration
    • End User
      • Mailboxes
      • Universe File Agent
      • Auth Tokens
    • Python
  • Use Cases
    • For Engineers
      • GitHub Integration
    • For Support
      • Intercom Integration
  • Guides
    • Creating your first project
    • Creating your first task
    • Advanced permissions
Powered by GitBook
On this page
  • Setup
  • Deployment
  • DNS and SSL Configuration
  1. Getting Started
  2. Installation
  3. Kubernetes

AWS

Deploy AMPS on AWS using Elastic Kubernetes Service (EKS)

PreviousOpenshiftNextSetup

Last updated 2 years ago

Ensure you have completed the setup steps on the main page.

Setup

In order to deploy AMPS on EKS, you need to set up an EKS cluster.

This provides clear instructions on installing the eksctl tool which takes care of all the logistics of setting up the cluster. We recommend using managed nodes as opposed to Fargate for this tutorial as it will also to access our AMPS UIs from the internet. As the link specifies, ensure you have an IAM account with adequate permissions and pick a region where you are not as your limits for VPCs, CloudFormation Stacks, etc.

Deployment

Confirm that you have successfully created your cluster and that your kubectl is configured to use it by running the following command which should display the two nodes created by default.

kubectl get node

Additionally, confirm that the default gp2 storage class is available by running the following command.

kubectl get storageclass

With that confirmed, we can run the following command to install AMPS on our cluster. The command uses the set flag to specify that AMPS should use the gp2 storage class as its default.

helm install amps mftlabs/amps --set defaulStorageClass=gp2

After successful installation, we need to upgrade the deployment to tell AMPS to listen on the URL generated by EKS. Run the following command to show the amps-svc-ui service. Note the lengthy URL in the External IP column. We will use this in the next section when configuring our DNS.

kubectl get svc amps-svc-ui

DNS and SSL Configuration

Navigate to the DNS configuration for the domain on which you want to deploy AMPS. Create CNAME records for the subdomains you which to use for main Admin and User Portals as well as any other environment portals you wish to use. Your configuration might look like the following.

In this image, the admin portal and user portal are being deployed at the admin and user subdomains, respectively, and additional subdomains are set up for test and mftlabs environments.

With the DNS set up, we now need to upgrade our deployment to use our new configured domains. We will also configure AMPS to use SSL and automatically generate SSL credentials using Let's Encrypt. Copy the following configuration into a local YAML file.

ui:
  admin_host: <ADMIN SUBDOMAIN>
  user_host: <USER SUBDOMAIN>
  http_port: 80
  ssl:
    enabled: true
    port: 443
    force: true
    gen_certs: true
    domains: <COMMA SEPARATED LIST OF ADDITIONAL DOMAINS>
    emails: <COMMA SEPARATED LIST OF EMAILS TO USE FOR CERTIFICATE GENERATION>
    certmode: production

Update all the values in <> to the values corresponding to your domain and contact info and run the following to upgrade the deployment, replacing "<myvalues>" with your file name. We additionally specify the gp2 storage class which was taken by default

helm upgrade amps mftlabs/amps --values <myvalues>.yaml

After successfully upgrading, run the following command to see the container logs. After the initial dependency installation, you will most likely see output from Let's Encrypt outlining the result of your SSL certification. If you see a success message, you are all set. If you see a validation error message, continue to the next step.

kubectl logs amps-0

Navigate to your domain on HTTP or HTTPS and perform the Startup actions to create a root account. Sign in with the root account. From the left navigation pane, scroll down to System Configuration and navigate to that page. Select the Administration tab which should contain an enabled button for performing SSL certification. Click the button and wait for the certification to complete. After certification completes, scroll up on the navigation pane to System Logs and check the logs for a success message. If you see the success message you are all set and navigating to your domains via HTTPS should display the secure icon. If you see an error message, adjust your domain and configure accordingly, re-upgrade the deployment and reperform the certification.

Kubernetes
Amazon EKS Getting Started Guide