LogoLogo
CloudDiscordGitHub
  • 👉Getting Started
    • Introduction
    • Quick start
    • Learn by example
    • Case studies
    • How to contribute?
  • ⭐Memphis Broker
    • Architecture
    • Key concepts
      • Message broker
      • Station
      • Producer API
      • Consumer API
      • Consumer Group
      • Storage and Redundancy
      • Security/Authentication
      • Scaling
      • Ordering
      • Dead-letter Station (DLS)
      • Delayed messages
      • Data exchange
      • Idempotency (Duplicate processing)
      • Failover Scenarios
      • Troubleshooting process
      • Connectors
    • Best practices
      • Producer optimization
      • Compression
    • Memphis configuration
    • Comparisons
      • NATS Jetstream vs Memphis
      • RabbitMQ vs Memphis
      • AWS SQS vs Memphis
      • Apache Kafka vs Memphis
      • Apache Pulsar vs Memphis
      • ZeroMQ vs Memphis
      • Apache NiFi vs Memphis
    • Privacy Policy
  • ⭐Memphis Schemaverse
    • Overview
    • Getting started
      • Management
      • Produce/Consume
        • Protobuf
        • JSON Schema
        • GraphQL
        • Avro
    • Comparison
    • KB
  • 📦Open-Source Installation
    • Kubernetes
      • 1 - Installation
      • 2 - Access
      • 3 - Upgrade
      • Terraform
        • Deploy on AWS
        • Deploy on GCP
        • Deploy on DigitalOcean
      • Guides
        • Deploy/Upgrade Memphis utilizing predefined secrets
        • Monitoring/Alerts Recommendations
        • Production Best Practices
        • NGINX Ingress Controller and Cloud-Agnostic Memphis Deployments
        • Migrate Memphis storage between storageClass's
        • Expanding Memphis Disk Storage
        • Scale-out Memphis cluster
        • TLS - Deploy Memphis with TLS Connection to Metadata Frontend
        • TLS - Memphis TLS websocket configuration
        • TLS - Securing Memphis Client with TLS
        • Installing Memphis with an External Metadata Database
    • Docker
      • 1 - Installation
      • 2 - Access
      • 3 - Upgrade
    • Open-source Support
  • Client Libraries
    • REST (Webhook)
    • Node.js / TypeScript / NestJS
    • Go
    • Python
    • Kotlin (Community)
    • .NET
    • Java
    • Rust (Community)
    • NATS
    • Scala
  • 🔌Integrations Center
    • Index
    • Processing
      • Zapier
    • Change data Capture (CDC)
      • Debezium
    • Monitoring
      • Datadog
      • Grafana
    • Notifications
      • Slack
    • Storage tiering
      • S3-Compatible Object Storage
    • Source code
      • GitHub
    • Other platforms
      • Argo
  • 🗒️Release notes
    • KB
    • Releases
      • v1.4.3 - latest/stable
      • v1.4.2
      • v1.4.1
      • v1.4.0
      • v1.3.1
      • v1.3.0
      • v1.2.0
      • v1.1.1
      • v1.1.0
      • v1.0.3
      • v1.0.2
      • v1.0.1
      • V1.0.0 - GA
      • v0.4.5 - beta
      • v0.4.4 - beta
      • v0.4.3 - beta
      • v0.4.2 - beta
      • v0.4.1 - beta
      • v0.4.0 - beta
      • v0.3.6 - beta
      • v0.3.5 - beta
      • v0.3.0 - beta
      • v0.2.2 - beta
      • v0.2.1 - beta
      • v0.2.0 - beta
      • v0.1.0 - beta
Powered by GitBook
LogoLogo

Legal

  • Terms of Service
  • Privacy Policy

All rights reserved to Memphis.dev 2023

On this page
  • Introduction
  • Prerequisites
  • Terraform Installation Flow
  • Step 0: Clone Memphis-Terraform repo
  • Step 1: Deploy EKS Cluster using Terraform
  • Step 2: Deploy Memphis
  • Step 3: Login to Memphis
  • Appendix A: Clean (Remove) Memphis Terraform deployment

Was this helpful?

  1. Open-Source Installation
  2. Kubernetes
  3. Terraform

Deploy on AWS

Using Terraform

Last updated 2 years ago

Was this helpful?

Introduction

, one of the world's three most popular cloud providers, offers reliable and scalable cloud computing services. Free to join. Pay only for what you use.

At the moment, memphis utilizing to automate the entire deployment process from VPC creation, to K8S, to memphis deployment.

Terraform codifies cloud APIs into declarative configuration files.

Prerequisites

  • AWS CLI and

  • Make sure your local station is connected with using an AWS IAM user which has access to create resources (EKS, VPC, EC2)

IAM Policy to use -

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "iam:*",
                "kms:*",
                "logs:*",
                "ec2:*",
                "eks:*"
            ],
            "Resource": "*"
        }
    ]
}

How to configure AWS CLI -

$ aws configure
  AWS Access Key ID [****************EF66]: 
  AWS Secret Access Key [****************Fzna]: 
  Default region name [eu-central-1]:
  Default output format [json]:
  • "make" is installed

Terraform Installation Flow

Step 0: Clone Memphis-Terraform repo

Using git ssh

git clone git@github.com:memphisdev/memphis-terraform.git && \
cd memphis-terraform/AWS/EKS

Using git http

git clone https://github.com/memphisdev/memphis-terraform.git && \
cd memphis-terraform/AWS/EKS

Step 1: Deploy EKS Cluster using Terraform

make infra

Instead of running three terraform commands

Step 2: Deploy Memphis

make cluster

Once deployment is complete, the Application Load Balancer URL will be revealed.

Step 3: Login to Memphis

Display memphis load balancer public IP by running the following -

kubectl get svc -n memphis

The UI will be available through https://<Public IP>:9000

Appendix A: Clean (Remove) Memphis Terraform deployment

Destroy Memphis App -

make destroymemphis

It might take a few minutes for the ELB to be deleted.

Destroy Memphis EKS Cluster -

make destroyinfra

Terraform is

Kubectl is

helm is

Amazon Web Services
Terraform
AWS account
installed
configured
AWS Account
installed
installed
installed
📦
Page cover image