Only this pageAll pages
Powered by GitBook
Couldn't generate the PDF for 539 pages, generation stopped at 100.
Extend with 50 more pages.
1 of 100

Overview

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

DuploCloud Prerequisites

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Loading...

Overview

An overview and demo of DuploCloud's comprehensive DevSecOps platform

DuploCloud is a cloud infrastructure automation platform that enables developer self-service with built-in security and compliance for organizations hosting public cloud infrastructure.

You provide high-level application specifications, including cloud services, application containers, packages and configurations, interconnectivity, requirements for multiple environments, and scoped compliance standards. DuploCloud uses these specifications to auto-generate required lower-level configurations, provisioning them securely and compliantly while maintaining ongoing operations.

In addition, DuploCloud facilitates logging, monitoring, alerting, and reporting. The following figure shows the platform's various functions.

The customer interfaces with DuploCloud via the browser UI, the DuploCloud Terraform provider, and API calls while the data and configuration stay within the customer's cloud account. All configurations created and applied by DuploCloud can be reviewed and edited in the customer's cloud account.

Demo

Check out a 5-minute video overview of a DuploCloud deployment.

Further protection is supplied by the DuploCloud , an isolated workspace that acts as an additional isolation layer, ideal for segregating production workloads or creating extensible developer sandboxes. A Tenant’s architecture is abstracted from its underlying , and you can create as many Tenants as you need with no degradation in performance.

Tenant
Infrastructure

Workshops

Cloud-specific workshops designed for ramping up on related DuploCloud features and functionality

Workshops allow you to gain hands-on experience with DuploCloud in an interactive environment with instructor-led training. You'll learn about:

  • The DuploCloud engagement and onboarding process

  • How DuploCloud deploys a cloud infrastructure

  • How an application is deployed in DuploCloud

  • DuploCloud's simplified approach to DevOps, security, and compliance

  • Logging and monitoring features in DuploCloud, including the Advanced Observability Suite (AOS)

DuploCloud 101 for AWS

DuploCloud Workshop for AWS

Summary

To better support our customers and their approach to infrastructure, automation, security, and compliance, this workshop enables AWS teams to familiarize themselves with DuploCloud

In this workshop, we:

  • Review what DuploCloud is and how we engage with customers.

  • Deploy infrastructure.

  • Deploy an application.

  • Review how DuploCloud simplifies DevOps, security, and compliance.

  • Introduce DuploCloud’s logging and monitoring features.

Customer setup

In preparation for the workshop, the DuploCloud team will do the following for you:

  • Install DuploCloud in an AWS account.

  • Grant Administrator access to the DuploCloud Portal.

  • Define users and associated role-based access to the DuploCloud Portal.

Optional pre-event reading list

1. Log in to the DuploCloud Portal

Accessing the DuploCloud Portal using Microsoft or Google SSO

Using the user ID and URL provided by the workshop instructor, log in to the DuploCloud Portal using SSO with Microsoft or Google.

(5 minutes)

Quick Start Guide
Platform Demo
DuploCloud AWS Platform documentation
Just-In-Time (JIT) Access

Create Your Infrastructure and Application

Creating an Infrastructure and deploy your application in the DuploCloud Portal

Follow the steps in this section to create a cloud Infrastructure and deploy and expose your application to the web using the DuploCloud Portal.

2. Create a DuploCloud Infrastructure

Creating your infrastructure in the DuploCloud Portal

In the DuploCloud Portal, navigate to Administrator -> Infrastructure. Click Add, and enter the following details:

  • Name: non-prod

  • Region: us-west-2

  • VPC CIDR: 10.221.0.0/16

  • Subnet CIDR Mask: 24

  • Availability Zones: 2

  • Select the Enable EKS option

Click Create.

This takes about twenty (20) minutes. Once it’s ready, check that a DuploCloud Plan (Administrator -> Plans) has been created with the same name (non-prod).

Product Updates

New features and enhancements in DuploCloud

2025 New User Interface

We’re excited to inform you that we’re rolling out a new user interface (UI) for the DuploCloud Portal! Since this update is being deployed gradually, you may notice differences between the UI in the documentation and what you see in your portal. Some key changes include:

  • User Profile Access:

    • Old UI: The User tab was listed in the left-hand navigation bar.

    • New UI: User options are now accessible through your user profile. Click on the person icon at the top-right corner of the portal, and select Profile to access user options.

  • Left Navigation Bar:

    • Old UI: You could click on navigation tabs to reveal sub-options.

    • New UI: The left navigation bar has been updated to a dark blue color, and now you can hover over a tab to display its sub-options, offering a more streamlined and intuitive navigation experience.

  • Search Bar:

    • Old UI: The search bar was a visible input field.

    • New UI: The search is now represented by a magnifying glass icon at top of the portal next to the Tenant list box. Hover over it to type your query.

  • New Help and Faults Icons:

    • New UI: Two new icons are located at the top-right, next to your user profile icon (person icon).

      • Help Icon: Click on this icon to access help options.

      • Faults Icon: Click on this icon to view and manage faults related to your services.

Q1 2025

  • AWS

  • Azure

  • GCP

    • Support for GCP Virtual Private Cloud (VPC) Peering.

  • Kubernetes

  • General

    • DuploCloud UI redesign: updates to navigation, breadcrumbs, menus, and general appearance.

Q4 2024

  • General

Q3 2024

  • Azure

  • GCP

  • Kubernetes

Q2 2024

  • AWS

  • Azure

  • GCP

  • Kubernetes

  • General

Q1 2024

  • AWS

  • GCP

  • CI/CD

  • Kubernetes

  • General

Q4 2023

  • AWS

  • Azure

  • Kubernetes

  • General updates

    • The DuploCloud UI contains numerous design, navigation, and usability improvements, including new menus for managing an RDS, Containers, and Hosts. These improvements are cross-platform and apply to AWS, Azure, and GCP.

    • Quickly search the DuploCloud Portal for any navigation menus or tab labels, such as Kubernetes Secrets and Spend by Month, using the Search box at the top center of the DuploCloud Portal.

    • DuploCloud no longer supports launch configurations. Instead, launch templates are created. If you use launch configurations, DuploCloud automatically converts them to launch templates with no interruption in uptime.

August 2023 and September 2023

  • AWS

June 2023 and July 2023

  • AWS

  • GCP

  • General updates

May 2023

  • AWS

    • The CloudFront feature and associated UI tab have been relocated in the DuploCloud Portal from the Cloud Services -> App Integration menu item to the Cloud Services -> Networking menu item.

  • Azure

  • GCP

April 2023

  • AWS

  • Azure

  • General Updates

March 2023

  • AWS

  • GCP

    • Updated documentation for supported databases.

  • CI/CD

  • Terraform

February 2023

  • AWS

    • Enable Elastic Kubernetes Service (EKS) for your existing infrastructure. EKS versions 1.22 and 1.23 are supported.

  • General updates

December 2022 and January 2023

  • AWS

  • Azure

  • GCP

  • Kubernetes (K8s)

November 2022

October 2022

September 2022

August 2022

July 2022

3. Create a DuploCloud Tenant

Create a guardrail-enabled workspace called a Tenant

To create a Tenant, navigate to Administrator -> Tenants, and click Add. The Create a Tenant pane displays. Add the following details:

  • Name: dev[YOUR_INITIALS]01 (For example, devab01)

  • Plan: non-prod (Specifying the Plan associates the new Tenant with the Infrastructure you created earlier)

Click Create.

This takes around two (2) minutes. You may see a generated fault in Administrator -> Faults or the exclamation (!) icon displayed in the top right during provisioning.

Once it’s ready, select your new Tenant using the Tenant list box at the top of the screen.

7. Deploy an S3 Bucket

Deploy an S3 Bucket for easily accessible storage in the DuploCloud Portal

Navigate to Cloud Services -> Storage -> S3, and click Add. The Create an S3 Bucket pane displays.

Enter a Name for your S3 Bucket, and click Create.

To open the AWS S3 console using Just-In-Time (JIT) credentials, allowing you to work with the bucket in AWS, select the S3 Bucket to open the Details page. From this page, click the Console button.

5. Deploy an Application

Use the DuploCloud Portal to deploy your application

Navigate to Kubernetes -> Services, and click Add. The Add Service page displays. Enter the following details:

  • Name: nginx

  • Docker image: nginx:latest (this is a sample public image)

Click Next, and then click Create.

6. Create a Load Balancer

Create a Load Balancer to expose your application to the web

Navigate to Kubernetes -> Services and select the nginx Service from the list.

Click Load Balancers -> Configure Load Balancer. The Add Load Balancer Listener pane displays. Complete the following fields:

  • Type: Application LB

  • Container port: 80

  • External port: 443

  • Visibility: Public

  • Application mode: Docker Mode

  • Health check: /

  • Backend protocol: HTTP

  • Certificates: WILDCARD.test04-apps.duplocloud.net

Click Add. When the Load Balancer is complete, the Service displays a status of Running and the Load Balancer displays a status of Ready.

Enable HTTP to HTTPs Redirect

Navigate to Kubernetes -> Services and select the nginx Service.

Click the Load Balancers tab. On the Other Settings card, click Edit. Enable the HTTP to HTTPS redirect option.

You can find the created DNS Name displayed on this page, CNAME'd to your Load Balancer name. Copy the URL in the DNS Name card and paste into your browser. You should see the NGINX welcome page "Welcome to nginx!" or similar. It may take a few minutes for the application to start.

4. Create an EKS Worker Node

Create an EKS Worker Node by adding an EC2 Host in DuploCloud

To create an EKS Worker Node, navigate to Cloud Services -> Hosts, and click Add. The Add Host page displays. Enter the following details:

Friendly Name: host01

If you select Advanced Options, you will see that this new node defaults to being added to EKS Linux (Agent Platform) as a Worker Node.

Click Add. It may take a few minutes for the Worker Node to be complete. Wait until the Status displays Running and Fleet displays Connected.

8. Deploy a Database

Deploy a database in the DuploCloud Portal

Navigate to Cloud Services -> Database -> RDS, and click Add. The Create a RDS page displays. Complete the fields with the following details:

  • Name: [add -demo to the name DuploCloud pre-populates]

  • RDS Engine Version: MySQL 8.0.39

  • RDS instance size: db.t3.small

  • User name: demo

  • User password: W5i6Uv6LQtyApVyJDrAq

Click Create.

For assistance with the new UI, contact your .

Create and manage .

Support for .

Set Retry and Expiration Limits for Asynchronous Invocations.

Configure .

Support for Modifying .

.

Customize CloudWatch metrics for .

Support for

Create scheduled snapshot windows for automated backups in .

Support for .

(for StateRAMP compliance).

Support for .

Support for aurora-iopt1 storage type in .

Force delete and update settings options added for .

Select and update .

Specify an initial database during .

Support for for AWS users.

.

Support for configuring .

Update .

Update .

Support for adding TLS Hosts and TLS Secrets fields when configuring an.

Automatically redirect incoming HTTP requests to HTTPS for .

Support for .

Add new secret versions in .

Support for .

Support for .

Support for .

Support for .

Enable autoscaling in the .

Automatically redirect incoming HTTP requests to HTTPS for .

Enable automation to .

Support for .

Support for Running Jobs and CronJobs on and .

Add custom Kubernetes labels to nodes in AWS at the or (ASG) level.

Support for with K8s Services.

Support for for DuploCloud Services.

Force sync changes to immediately apply updates.

DuploCloud's is available as an add-on service.

for Azure Agent Pools.

Support for within Azure Storage Accounts.

Specify OS disk size when .

from the DuploCloud UI.

Support for (Elastic Block Store).

Configure .

Support for when using DynamoDB databases.

in Systems Settings.

.

Set up .

when creating a Lambda function.

Support for when creating an EKS Ingress.

Support for .

Specify the cluster type, node VM size, and outbound connectivity source when .

Support for .

Configure private endpoints for .

Support for with availability zones.

Configure with public network access.

Support for databases.

Support for for ALB Load Balancers.

Support for with Azure Storage Account.

when enabling the AKS cluster.

Specify the when configuring an AKS cluster.

when creating a Host.

Select for GCP Storage buckets.

Configure the .

Integrate DuploCloud-managed K8s clusters with .

Support for for FluxCD users.

Configure .

Create and manually run a from a Kubernetes CronJob.

Configure faults for failed and at the Tenant level.

Support for with GCP or AWS.

Enhanced access to from the DuploCloud Platform.

with one step.

as a user source for the DuploCloud Portal.

for custom banners.

Configure .

for automatic log delivery.

Configure using an IAM role.

for a Plan.

using a container port name.

for OpenSearch domains.

Support for (add-ons).

when creating or updating a Plan.

.

.

Create an domain.

.

.

Create .

Support for .

, using increments of seconds.

Configure for DuploCloud Tenants.

Support for .

documentation section added.

Cluster IP and Worker Node target types are supported when creating .

Additional supported actions for (GCP Console, Edit, Delete, Stop, Restart, or Reset Password)

is supported when creating DuploCloud Infrastructures.

Support for databases.

Support for and .

Create with support for accelerators and taints.

Support for

.

Restrict open access to public Load Balancers for ,, and .

Support for .

at specified dates and times.

Configure settings for all new Tenants under a Plan using .

SIEM -

Enable for EKS Autoscaling Groups (ASG).

Implement while Adding a DuploCloud EKS/Native Service.

Enable to allow K8s Pods in a Tenant to run on Hosts in another Tenant.

Set a for RDS databases.

Enable bucket versioning when .

Create an .

Use to launch Amazon EC2 instances and provide additional visibility and control over how instances are placed on a physical server.

upon Status Check faults or Host disconnection.

Support for , enabling notifications and alerts across different AWS services and external endpoints.

when creating an Infrastructure.

Restore an .

Dynamically .

Fields for Sort Key and Key Type are now available when .

Create a r managed database service.

Add an .

for K8s containers in real-time.

Influence Pod scheduling by specifying K8s YAML for .

Create in AWS and GCP to manage short-lived, batch workloads in a Kubernetes cluster.

Create in AWS and GCP to schedule long-term K8s Jobs to run at preset intervals.

Refer to the page for a list of out-of-the-box functionalities DuploCloud supports.

host instance.

Display .

Manage .

Set a database.

database.

Add and URLs.

Enable to prevent objects from being deleted or overwritten.

Configure a .

Update .

to prevent overrides of specific configurations.

Access directly from the DuploCloud Portal.

Ability to designate in Task definitions for ECS Services.

on EC2 Hosts that fail a status check.

Enhanced support for .

Support for .

Support for .

Change .

Last Login card available for determining the last user sign-in when .

to non-administrators.

in a DuploCloud Infrastructure, in a more cost-effective and secure manner. Enabling endpoints in DuploCloud allows your network communication to remain internal to the network, without using NAT gateways.

are now supported in the ECS Task Definitions tab.

up to twenty (20) services at one time.

to a DuploCloud Infrastructure to create a private connection to supported AWS services and VPC endpoint services powered by AWS PrivateLink.

.

Define .

Support for has been added.

rules and targets are supported.

Support for is available.

is supported, to monitor your cloud infrastructures and deployed applications against cyber-attacks.

Define for NLB Load Balancers.

Manage multiple Load Balancer settings using the Load Balancer tab's . Settings include specifying a Web Application Firewall (WAF) Access Control List (ACL), enabling HTTP to HTTPS redirects, enabling Access Logs, setting an Idle Timeout, and an option to drop invalid headers.

Specify for your DuploCloud Infrastructure during or after creating an Infrastructure.

Gain .

with several usability enhancements.

.

Enable .

Support for and ability to modify Serverless replica instance size.

Improved documentation for .

from the DuploCloud Host page.

for DuploCloud users.

is supported to facilitate data transfer between VPCs.

is supported to run open-source big data analytics frameworks without configuring, managing, and scaling clusters or servers.

DuploCloud users can obtain to the AWS Console.

are now supported.

Use the DuploCloud Portal to work with AWS .

Support for Redis database versions when .

Enable r containers using a simplified workflow.

Reduce storage cost and increase performance by .

Enable .

at once.

Documentation for is available, which allows developers to automatically build, test, and deploy their code every time they push changes to an Atlassian Bitbucket repository.

Added IdleTimeout to .

are now supported.

for users.

, a managed caching service for Redis and Memcached, is now supported.

Monitor Tenant usage in with weekly or monthly views. After clicking the Spend by Tenant tab, select the shared card to display tax and support costs.

Maintain cluster stability with .

Use the .

.

Support for .

Monitor Tenant usage in the feature with weekly or monthly views.

Edit , used to run Azure Kubernetes (AKS) workloads.

Monitor Tenant usage in the feature with weekly or monthly views.

Support for .

Maintain cluster stability with for AWS.

.

Use the K8s Admin dashboard to .

Edit , used to run Azure Kubernetes (AKS) workloads.

: Configure path-based routing rules for application load balancers.

: User can create and manage Aurora Serverless V2 RDS.

: Overview of DuploCloud License Usage according to current service usage.

: Support to configure logging setup other than default tenant.

: The user can configure multiple docker registry credentials from the plan.

: Ability to configure AWS Managed Airflow

: Ability to configure a prefix for S3 bucket names.

: Create Storage Accounts, File Shares, and generate Shared Access Signature (SAS).

Multiple were made.

: Support for adding EFS has been added to DuploCloud. You can create and mount a shared filesystem for an Infrastructure in the DuploCloud Portal.

Support for Kubernetes Storage Class and Persistent Volumes is now available.

: This provides the ability to integrate AWS parameters and secrets to be available as Kubernetes secrets.

: Users can now configure an AWS Lambda using Container images.

: Administrators can configure RDS Automatic Backup Retention in days at the system level

: Ability to export DuploCloud terraform provider code for an existing DuploCloud Tenant

: Users can now configure automated alarm creation in AWS, to ensure new resources are included in monitoring.

: Administrators would often like to restrict the type of resources that should or should not be provisioned in their environments. This feature allows them to configure those rules via a DuploCloud Plan.

: Support for the K8s Ingress controller has been added, this is a key piece of functionality for traffic routing to a K8s cluster.

: Support for RDS database snapshots was added to the DuploCloud Portal, accessible through the RDS page.

: Expanded support for more resources in the DuploCloud terraform provider, specifically for Microsoft Azure.

DuploCloud Support team
Target Groups for EC2 Instances, IPs, and ALB Load Balancers (AWS)
Lambda
SQS dead letter queues and redrive policies in AWS
ASG Launch Templates
Instance Refresh action for AWS Auto Scaling Groups (ASG)
AWS Redis
taints with EKS Hosts or Agent Pools
Download inventory reports of all AWS resources
S3 bucket replication rules
ECR repository settings
Ingress for EKS
EKS Ingress
Azure Key Vault
Azure Databricks
Azure Container Registry
Azure Availability Sets
Azure Data Factory
AKS default node pool
AKS Ingress
Manage read-only access to Kubernetes Secrets and ConfigMaps.
host
Auto Scaling Group
initContainers and additionalContainers (Sidecar Containers)
Support for granular access control with new Permission Sets.
rolling back container images
Okta
Advanced Observability Suite (AOS)
Set max number of Pods
Add Helm repositories and install Helm releases
Set a maximum RDS instance size
Support for editing in Apache Airflow
Billing Alerts
Azure VM Disk Controller
private DNS zones
PostgreSQL Flexible Server
Azure Application Gateway SSL policies with AKS Ingress
Specify the AKS version and Network plugin
node resource group
FluxCD
read-only access to K8s Secrets
K8s Job
DaemonSet
Configure user access to multiple Tenants
Configure Okta
Enable UltraWarm Data nodes
Upgrade the EKS Cluster
OpenSearch
Scale to or from zero (0) using Auto-Scaling Groups
Vanta compliance controls
OpenSearch storage options
Security Configurations Settings
EKS Ingress
GKE Standard mode
Firestore
Node Pools
GKE Ingress.
Update a service with a stream-lined, read-to-use GitHub Actions script
NIST-800-171 compliance
Customize the DuploCloud login screen banner.
Set Tenants to expire
Tenant Config tab
Spot Instances
Kubernetes Lifecycle Hooks
shared hosts
Amazon Machine Image (AMI)
dedicated hosts
Automatically reboot a host
SNS Topic Alerts
creating a DynamoDB
MySQL Flexible Serve
Azure Service Bus
Pod Toleration
Kubernetes Jobs (K8s Jobs)
Kubernetes CronJobs
Supported Third-Party Tools
Hibernate an EC2
Taints in ECS hosts on unreachable Nodes
Tenant expiration and Tenant session durations
monitoring interval for an RDS
Enable or disable logging for an RDS
custom Lambda image configurations
Automate fault healing
Startup Probes
Redis database instances
SQL databases
Grant access to specific databases
Enable EKS endpoints
Add VPC Endpoints
Enable logging for ECS containers
Lambda Layers
CloudWatch EventBridge
Redis databases
Cloud Armour
custom public and private EKS endpoints
Enable Control Plane logging for EKS clusters
Aurora RDS Serverless and MySQL read replicas
upgrading an EKS cluster version
Add a direct link to the Azure Console
Set read-only access to specific Tenants
Virtual Private Cloud (VPC) peering
EMR Serverless
Just-In-Time (JIT) access
AWS SQS Standard and FIFO queues
Internet of Things (IoT)
creating Elastic Cache (Ecache)
shell access for ECS, Kubernetes, and Native docke
setting GP3 as your default storage class
NAT Gateways for High Availability (HA)
Bitbucket Pipelines
duplocloud_aws_load_balancer resource
Timestream databases
Delete VPN connections
AWS ElastiCache
Cost Management for billing
K8s Admin dashboard to monitor StatefulSets
Kubernetes Ingress
Cost Management for billing
Cost Management for billing
Kubernetes Ingress in Azure
monitor StatefulSets in AWS
Billing License Usage
Support for Amazon Managed Apache Airflow
Azure Support to add Storage account
Azure User Enhancements
Support for Elastic File System (EFS)
Support for adding Kubernetes Storage Class:
Support for Kubernetes Secret Provider Class
Ability to add Lambda using Container Images
Export Terraform from an existing Tenant
Ability to Automatically generate Alert
Ability to set resource allocation quotas by an Admin
Support for Kubernetes Ingress Controller
RDS Snapshot Management
Terraform Provider updates

Daily Operations using DuploCloud

An overview of the seamless day-to-day DevOps functionality that DuploCloud provides

The steps in this section provide an overview of DuploCloud features and tools to ensure the stability, performance, and scalability of your cloud infrastructure.

Post-workshop Reference Guide

Resources and links to aid you in exploring DuploCloud's many self-serve DevSecOps offerings

Browse the pages in this section for more information about DuploCloud's comprehensive DevSecOps suite of tools and services.

9. Create an Alarm

Create an alarm in the DuploCloud Portal

Creating the Alert

Navigate to Observability -> Alerts, and click Add. The Create Alert pane displays. Complete the fields with the following values:

  • Resource Type: EC2

In the example below, the Friendly Name in the Resource field is host02.

Click Next to proceed with defining metrics data.

Defining Metrics Data

After clicking Next, continue defining the metrics data:

  • Metric Name: CPUUtilization

  • Statistic: Average

  • Operator: >=

  • Threshold: 75

  • Period: 5 Minutes

  • Severity: Critical

Click Create.

Set the Alarm with a Third-Party Integration

Navigate to Observability -> Faults -> Update Notifications Config. The Set Alert Notifications Config pane displays.

If instructed, enter additional data and click Update to set the alarm.

1. Host, Container, and Kubectl Shell

Access shells conveniently within the DuploCloud Portal

Navigate to Kubernetes -> Services, and select the nginx Service.

Additionally, you can access a kubectl shell scoped to this Tenant's Kubernetes Namespace by clicking the Kubectl button.

3. Metrics

Enabling and viewing metrics in the DuploCloud Portal

Enable Metric Collection for Tenants

Navigate to Administrator -> Observability -> Basic -> Settings, and select the Monitoring tab.

Select the Tenant for which you want to enable metrics, and click Update.

Viewing Metrics

Navigate to Observability -> Basic -> Metrics.

4. Billing and Cost Management

Proactively managing your cloud costs with the DuploCloud Portal

Navigate to Administrator -> Billing to view billing across your AWS account.

Navigate to Cloud Services -> Billing to view the cost per Tenant.

Tenant billing reports populate within 24 hours of Tenant creation.

2. Logging

Accessing and using logging in the DuploCloud Portal

View Container Logs

Navigate to Kubernetes -> Services, and select the nginx Service.

Enable Log Collection for Tenant

Navigate to Administrator -> Observability -> Standard -> Settings, and select the Logging tab. Select the Tenant for which you want to enable logging and click Update.

View Logging with OpenSearch

Navigate to Observability -> Standard -> Logging.

Logs are segregated by Tenant and then by Service.

6 - Tenant and Admin Just-In-Time (JIT) AWS Access

Using JIT to access the AWS Portal from DuploCloud

JIT Access from the DuploCloud Portal

Navigate to User -> Profile to view options for obtaining JIT credentials with the JIT AWS Console button.

This method uses Tenant-level AWS permissions.

CLI

DuploCloud uses duplo-jit to access the CLI. You can use duplo-jit to retrieve Tenant-scoped temporary credentials.

Accessing the AWS CLI for Admin and Tenant Scopes

Accessing Kubectl

Administrators can obtain a cluster-wide kubeconfig file by navigating to Administrator -> Infrastructure.

Select the Infrastructure, and in the EKS tab, click the Download Kube Config button.

5. Audit Logs

Accessing Auditing and related events in the DuploCloud Portal

Navigate to Observability -> Audit. The Audit page displays.

Here is an example of the details of an audit event.

Post-Workshop Testing and Documentation Links

Explore the DuploCloud product through the documentation set

Your DuploCloud deployment will remain active for three (3 days) after the workshop to allow you to continue exploring the DuploCloud capabilities.

9. Terraform Mode of Operations

Using the DuploCloud Terraform Provider

7. CI/CD

Resources to use DuploCloud CI/CD and GitHub Actions

Click the tiles below to access the DuploCloud CI/CD documentation and the GitHub Actions repository.

8. Security Hub and Dashboard

Access the Security Incident and Event Management (SIEM) dashboard from the DuploCloud Portal

SIEM

Navigate to Security -> SIEM.

Security Dashboard

Navigate to Security -> Standards.

CronJobs

Resource: [select a previously created ]

In the Containers tab, click the icon ( ) next to the nginx container and select Container Shell or Host Shell.

In the Containers tab, click the menu icon ( ) next to the nginx container, and select Logs.

Documentation for installation and setup can be found .

As you explore the DuploCloud Portal, browse the to learn more about product features and capabilities.

Here is a that uses the DuploCloud Terraform Provider.

from existing DuploCloud Tenants.

EC2 instance
[profile duplo-prod]
region=us-west-2
credential_process=duplo-jit aws --admin --host https://prod.duplocloud.net --interactive
[profile test-04]
region=us-west-2
credential_process=duplo-jit aws -tenant devab01 --host https://test04.duplocloud.net --interactive
LogoCI/CD Overview | DuploCloud Documentation

DuploCloud AWS Demo Video

To recap what you've learned in the workshop, watch a quick demo of DuploCloud AWS

DuploCloud AWS Overview Demo Video

Thanks for attending our AWS Workshop!

Connect With Us

Reach out with questions, demo requests, or for more information

If you have questions or need assistance, feel free to contact us:

  • Connect the DuploCloud support team via Slack, or Teams

  • Email support@duplocloud.net

DuploCloud Onboarding

What you can expect during the DuploCloud onboarding process

Phase 1. Kickoff and Delivery

During Kickoff and Delivery, your team learns about the DuploCloud onboarding flow and what to expect in each phase. Our team works closely with yours to review your project scope and objectives, technical specifications and information, and important dates and deadlines.

By the end of this phase, DuploCloud engineers will configure a DuploCloud Platform in your company's cloud account. We will ask your team for any feedback about the onboarding approach to improve the process in the future.

Your Team Provides:

  • Project details, including objectives, technical specifications, and dates/deadlines.

  • A list of project members and roles.

  • A new cloud account with access for DuploCloud engineers.

  • Read-only access to your existing accounts, documents, repositories, and artifacts.

DuploCloud Provides:

  • Introduction to the onboarding process.

  • A DuploCloud Platform in your new cloud account.

Phase 2. Assessment and Project Planning

In the Assessment and Project Planning phase, DuploCloud engineers create and review a high-level block diagram of your project architecture, verify your containerization needs, and confirm your service configurations, interdependencies, and data migration requirements. We also complete a compliance assessment to ensure your project meets all required compliance guidelines. Together, teams choose a working-session cadence that aligns with your project needs and timeline.

By the conclusion of this phase, we will provide you with a DuploCloud Portal your team can access and detailed information about the project plan.

Your Team Provides:

  • Verification of your project's containerization needs, service configurations, interdependencies, and data migration requirements.

  • Project plan questions or feedback.

  • Input for the creation of a working session plan.

DuploCloud Provides:

  • List of in-scope services and their statuses.

  • Project plan for the initial workload deployment.

  • Confirmation of Tenant structure.

  • A DuploCloud Portal with access for your team.

  • Recurring working session schedule.

Phase 3. Initial Workload Deployment

In this phase, DuploCloud engineers deploy your Dev environment, which includes all in-scope services and applications. During deployment working sessions, we provide your team with comprehensive DuploCloud Platform training. Teams discuss and complete any necessary application-level changes and move on to app containerization, secret management, and Kubernetes configuration (where required). Finally, we review the Dev deployment and your team's test plan.

Your Team Provides:

  • Necessary application changes.

  • Dev deployment testing and signoff.

DuploCloud Provides:

  • A complete Dev environment deployment for testing.

  • Training on the DuploCloud Platform during deployment work sessions.

  • Terraform code that can be used as a template for new environments, if needed.

Phase 4. CI/CD & Release Management

The CI/CD & Release Management phase involves identifying Services and Tenants to implement pipelines, selecting and agreeing on a pipeline implementation logic, and building the pipelines. DuploCloud builds an operational CI/CD pipeline for each Service and trains your team to add and modify CI/CD pipelines in the future.

Your Team Provides:

  • Input for CI/CD pipeline development.

  • Participation in information/knowledge sharing, training, and demo.

DuploCloud Provides:

  • An operational CI/CD pipeline for each of the project’s Services.

  • Training so your team can add and modify pipelines.

Phase 5. Production Deployment

The fifth phase, Production Development, focuses on the Production environment. During this phase, the DuploCloud team works with your team to confirm your high-availability requirements and apply any needed adjustments. We also review and update infrastructure component scale parameters (e.g., CPU and memory utilization) and monitoring and alerting configurations. Lastly, we review data migration requirements and formulate a production cutover plan.

Shared Responsibilities

  • Deploy the Production environment

  • Test the Production environment

  • Stabilize production applications

Phase 6. Onboarding Signoff

Onboarding Signoff ensures that your team is prepared for the following stages of support and operations, where you’ll receive ongoing maintenance assistance. We review your ongoing support needs, discuss your plans for the next 3 to 6 months, and establish the next steps with the Operations team to ensure a smooth handover and continuity of service. On top of that, the DuploCloud team delivers an updated architecture diagram, providing a clear and current overview of the system's structure. Lastly, we ask you for feedback about the onboarding experience, which is crucial for assessing the process and identifying areas for improvement.

Your Team Provides:

  • Feedback about the onboarding experience.

DuploCloud Provides:

  • An outline of your next steps with the Operations team.

  • An updated architecture diagram.

here
DuploCloud documentation
sample Reference Architecture
DuploCloud Terraform can be generated

Getting Started with DuploCloud

An outline of the DuploCloud approach compared to existing DevOps

Existing Approach

Technology organizations today typically have people with two distinct skill sets: Software Engineers and DevOps Engineers. Compliance functions may be managed by these engineers or by a separate team. In startups and smaller companies, engineers may wear all three hats.

Software Engineers design high-level application architectures that typically include multiple environments (Dev, Stage, QA, Production, etc.), CI/CD pipelines, and diagnostics like central logging, monitoring, and alerting. The business dictates specific compliance standards like PCI, HIPAA, SOC 2, etc. All this information is passed to the DevOps team, who translates it into cloud infrastructure configurations.

DevOps Engineers must manually convert requirements into hundreds or thousands of lower-level configurations, best practices, and compliance controls such as IAM Roles, Instance profiles, KMS Keys, PEM keys, vulnerability scanning systems, virus scanners, VPC, Security Groups, Intrusion detection, etc. This translation is usually done based on human knowledge and subject matter expertise and often requires thousands of lines of code using languages like Terraform, Python, and Bash.

A common misconception is that tools like Terraform fully automate DevOps workflows. Terraform is only a programming language. One needs substantial infrastructure know-how to build automation using Terraform. DevOps engineers often lack awareness of compliance nuances beyond best practices and must revisit and redo their work frequently to ensure compliance.

DevOps essentially requires one to be a programmer, an operator, and a compliance expert: three distinct skill sets that have never traditionally co-existed in the IT industry. This is the primary challenge in the DevOps space.

DuploCloud Approach

DuploCloud simplifies and automates cloud infrastructure management by enabling users to deploy and operate applications without knowledge of lower-level DevOps nuances. The platform requires only three high-level inputs:

1. Application architecture

2. Compliance standards (SOC 2, PCI, HIPAA, etc.)

3. Public cloud provider

With these inputs, DuploCloud generates all the lower-level configurations to adhere to DevOps best practices and required compliance standards.

Users interact with their applications through the No-Code DuploCloud UI or our Low-Code Terraform provider, operating directly on cloud constructs like S3 buckets, DynamoDB, Lambda functions, and more, without sacrificing flexibility or scalability. The DuploCloud Terraform provider enables users to achieve the same automation with a tenth of the code and significantly fewer DevOps skills than native Terraform.

A common misconception is that DuploCloud generates Terraform behind the scenes to provision the cloud infrastructure. The DuploCloud UI and Terraform (with the DuploCloud Provider) are layered on top of DuploCloud. Behind the scenes, DuploCloud uses the cloud provider Application Programming Interfaces (APIs) as shown in the picture below.

DuploCloud uses APIs to handle tasks in the background (e.g., processing user requests, generating configurations synchronously, and calling the cloud provider). Other operations with asynchronous processing require a state machine with retries that continuously identifies and corrects configuration drift and continuously monitors faults and compliance controls.

DuploCloud eliminates the need for extensive manual coding and drastically reduces the need for specialized DevOps expertise. At the same time, the platform ensures efficient, scalable, and compliant cloud infrastructure deployment and management, making it a superior alternative to traditional methods.

What DuploCloud Does

How DuploCloud is able to provide comprehensive DevSecOps support in a single intuitive tool

DuploCloud is a comprehensive solution for DevOps and SecOps, bringing cloud infrastructure management to businesses, regardless of expertise level.

DuploCloud uses templates to create cloud infrastructures comprising hundreds of scaled, managed components. Microservices can be created in minutes, accelerating time to market. Advanced DevOps users can leverage Kubernetes and Terraform to create custom solutions.

For a flat rate per year, personalized onboarding, cloud migration, SecOps questionnaire completion, and auditing support are included.

If there is a way to do something in the cloud, it can be done faster and more efficiently with DuploCloud.

1. Turbo-Charging Infrastructure and Workspace Creation

This acceleration is critical to many of the business value propositions DuploCloud offers. It is why we can perform cloud migrations at such an advanced pace, minimizing downtime and simultaneously ensuring security and compliance (and peace of mind).

2. Built-In Scaling and Managed Services

Virtually all of the services DuploCloud supports are designed to auto-scale as your cloud environment grows exponentially. These Managed Services include automated "set and forget" configurations that dovetail neatly into developer self-service.

As with creating Infrastructures and Tenants, DuploCloud Services are designed for the most common use cases. They enable users to supply a minimum number of inputs to get their service up and running quickly. At the same time, DuploCloud retains the ability to customize, using native Kubernetes YAML coding and custom scripting if needed.

Turnkey access to scalable Kubernetes constructs and managed services ensures minimal implementation detail, making DuploCloud the DevSecOps platform for the rapidly expanding AI/ML cloud space. In this arena, the power of an automated platform becomes readily apparent, not only in setting up your cloud infrastructure but also in maintaining it.

DuploCloud’s ready-made templatized approach to K8s makes adjustments to Kubernetes parameters, such as Horizontal Pod Autoscalers (HPA) for CPU and RAM requirements, easy to access and adjust.

DuploCloud is an efficient, user-friendly means of helping developers automate their environment, reducing the need for constant monitoring or "babysitting." More information on fewer screens and improved ease of navigation enhance monitoring performance.

3. Intuitive Self-Service DevOps for Developers

DuploCloud's simplified UI guides developers and less savvy DevOps users in creating and managing DevOps components and constructs. Even advanced features such as AWS Batch, CloudFront, or setting up a Lambda function are simplified through procedural documentation, step-by-step UI panels, and even sample code blocks that can be accessed through info-tips in the UI.

Using a templatized approach, potentially complex Kubernetes constructs such as Ingress and Terraform scripting can be managed by developers with minimal exposure to such functionality. Experts who have invested time and money in creating custom solutions using such tools do not need to discard their work. DuploCloud can help integrate existing solutions and workflows, often automating them during onboarding at no additional cost.

4. Ease of Use and Expedited Navigation with JIT Access

Complex navigation and workflows can be a huge headache for DevOps and cloud engineers. Using DuploCloud, you can minimize the time you spend logging in and out of AWS, Azure, and GCP consoles. Every DevOps and SecOps task can be completed from within the DuploCloud portal, often with significantly reduced clicks.

Compare the keystrokes and navigation between DuploCloud and using a native cloud portal. Often, DevOps engineers "get used to the pain" inherent in many daily DevOps tasks, unaware they can gain back minutes, hours, and days by using DuploCloud.

Some commonly used tools that can be accessed directly within DuploCloud include kubectl, shell access, and JIT access to cloud consoles.

5. Turn-Key Compliance and Security

When you let DuploCloud manage your DevOps environment, a scalable and robust SecOps framework and implementation strategy are included. Aligned with industry best practices, our staff of SecOps experts analyzes how your data is stored and transmitted, helps identify the standards you must meet, and then constructs a detailed implementation strategy to meet and exceed those requirements. In addition, we create a scalable model that adapts as your customer base and workloads grow.

Using easy-to-access "Single Pane of Glass" dashboards, DuploCloud provides a granular view of all security issues and compliance controls. Completing questionnaires and passing audits is simple, especially with our 24/7 support.

6. Seamless CI/CD Pipeline Integrations

Some of the tools we support, such as GitHub Actions, include ready-to-run scripts for quickly creating Docker images, updating Services or Lambdas, uploading data to an S3 Bucket, or executing Terraform scripts.

Whatever your tool of choice, our DevOps experts can help you find the best workflow that requires the least effort to build and maintain.

7. Optimizing DevOps Spending

One of the biggest reasons to consider an automated DevSecOps solution comes down to dollars and cents. It's too easy to spend a lot on a public cloud solution without knowing precisely where your money goes. Sometimes, the components and services you've created (and even ones you've forgotten about) cost you more than they're earning you.

DuploCloud provides several billing dashboards that break down your spending by workspace and component. These dashboards are navigable with just a few clicks. Our support team can help you identify redundancies in services and tools and possibly cut costs by suggesting solutions leveraging the many third-party tools built into DuploCloud.

8. Scalable, Simplified, Faster Terraform Scripting

As with most platforms, the work required to set up and configure a Terraform environment can adversely impact accuracy, productivity gains, and effectiveness. Crafting scalable Terraform requires more skills than simply programming. In addition, as with any code base, it requires constant updating, refactoring, and other maintenance tasks.

Using DuploCloud’s proprietary Terraform provider removes the need to write specifically for one public cloud. You can effectively use the same DuploCloud Terraform code — as it maps to DuploCloud’s constructs, not one specific cloud — with several public clouds. You don’t need to worry about differentiating platform-specific specifications. DuploCloud handles all of this for you in a transparent, replicable manner. You use utilities such as DuploCloud’s Terraform Exporter to quickly clone Tenants and modify configuration details when needed for specific Infrastructures and Tenants.

9. Single Pane of Glass for Enhanced Observability

Attempting to monitor your cloud infrastructure from the numerous UIs offered by public providers often obscures problems or causes confusion. DuploCloud's monitoring interfaces combine multiple functionalities on one screen; our SIEM dashboard is a primary example of such flexibility and comprehensiveness. Leveraging Wazuh, DuploCloud offers unprecedented insights from a single interface.

Using OpenSearch, Grafana, and Prometheus, you can get single snapshots of logging, auditing, compliance and security vulnerabilities, custom alerting, and fault lists with one click.

10. Cost-reduction leveraging DuploCloud Third-Party tools

DuploCloud Terraform Provider

Explore the capabilities and advantages of DuploCloud's exclusive Terraform Provider

DuploCloud Whitepapers

Whitepapers for in-depth looks at DuploCloud features

Read DuploCloud whitepapers for comprehensive information about:

Application Focused Interface: DuploCloud Architecture

A high-level overview of the building blocks of DuploCloud's infrastructure-based architecture

The DuploCloud Platform is an application-infrastructure-centric abstraction created atop the user's cloud provider account. Users can deploy and operate their applications using DuploCloud's simple, user-friendly UI, or use the Low-Code Terraform provider to consume cloud services like S3, DynamoDB, Lambda functions, GCP Redis, Azure SQL, etc., from their cloud provider.

The following diagram shows the high-level abstractions within which applications are deployed, and users operate.

DuploCloud Tenancy Models

An outline of the tenancy deployment models supported by DuploCloud

DuploCloud supports a variety of deployment models, from basic multi-Tenant applications to complex single-Tenant deployments within customer environments. These models cater to different security needs, allowing customers to achieve their desired isolation level while maintaining operational efficiency.

DuploCloud-supported tenancy models, outlined below, include:

Tenancy Deployment Models

Application-Managed Multi-Tenancy

  • Description: The application manages Tenant isolation with DuploCloud structured pooled tenancy.

  • Use Case: The most common scenario is where the application logic isolates customer data. DuploCloud Tenants are then used to isolate development environments (i.e., Nonprod and Prod).

  • Infrastructure:

    • Shared DuploCloud Infrastructure (VPC, Tenant, VM/instances, S3 bucket, RDS). Cluster/namespace can also be shared.

    • Scaling: Increase compute instances for Kubernetes worker nodes as needed.

DuploCloud Tenant-per-Customer

  • Description: Each customer gets a separate DuploCloud Tenant.

  • Use Case: Suitable for older applications not designed for multi-tenancy, or security and compliance needs.

  • Infrastructure:

    • Shared network layer (VPC).

    • Separate Tenants per customer with security boundaries (security group, KMS key, SSH key, Kubernetes namespace).

    • Kubernetes cluster is shared and boundaries are through the namespace.

DuploCloud Infrastructure-per-Customer

  • Description: Each customer gets a separate DuploCloud Infrastructure.

  • Use Case: Provides a higher security boundary at the network layer where customer access and data are separated.

  • Infrastructure:

    • Separate VPC and network resources for each customer.

    • Clusters are inherently separate through Tenants isolated in different Infrastructures.

    • Higher cost due to duplicated resources and operational overhead.

Cloud Account-per-Customer

  • Description: Each customer gets a separate cloud account.

  • Use Case: The least common model, used for customers requiring complete isolation.

  • Infrastructure:

    • Separate accounts with a DuploCloud Platform installed in each.

    • Each account then has its own DuploCloud Infrastructure and Tenant.

Hybrid Model

  • Description: Combination of the above models as needed to meet specific requirements.

  • Use Case: Diverse customer needs.

  • Infrastructure:

    • A combination of previous models.

    • Organization-specific depending on requirements: some organizations may be in a pooled application environment whereas others may be more isolated through Tenant boundaries.

Special Hybrid Case: Single-Tenant Deployment in an External Kubernetes Cluster

  • Description: DuploCloud imports existing Kubernetes clusters from external environments.

  • Use Case: A cluster and resources already exist, or customers require the application or services solution running inside their client's cloud account. Customers are comfortable creating their own Kubernetes environments.

  • Infrastructure:

    • Customer's cloud account or On-premises cluster (EKS, AKS, GKE, Oracle, DOKS, etc.) in conjunction with a DuploCloud Infrastructure. This could be any Kubernetes cluster not created by DuploCloud.

    • Manages both multi-Tenant and single-Tenant environments from the DuploCloud UI.

Documentation and Support

DuploCloud Common Components

DuploCloud components common to AWS, GCP, and Azure DuploCloud deployments

Several DuploCloud components are used with AWS, GCP, Azure, and hybrid/On-premises Services. These include Infrastructures, Plans, Tenants, Hosts, and Load Balancers. This section provides a conceptual explanation of the following common DuploCloud components:

For instructions to implement these common components in your DuploCloud account, see the documentation for your cloud provider:

DuploCloud's core approach to security and compliance is out-of-box compliance so users don't have to learn and apply compliance controls. DuploCloud supports PCI, HIPAA, SOC 2, HITRUST, NIST, ISO, GDPR, and more. See the to learn more about how DuploCloud provides unparalleled security and compliance.

Unlike a PAAS such as Heroku, the DuploCloud platform does not prevent users from consuming cloud services directly from the cloud provider. DuploCloud is a self-hosted platform running in the customer's cloud account and can therefore work in tandem with direct cloud account changes. Complex security details (IAM roles, KMS keys, Azure Managed Identities, GCP service accounts, etc.) are hidden, but remain configurable if needed. See this for more information and examples.

Did you know that DuploCloud can create a complete cloud infrastructure comprising virtually hundreds of components and sub-components in ten to fifteen minutes? This usually takes hours to develop in a native cloud portal and even longer when using native Kubernetes (K8s). Individual workspaces () can be created in less than a minute.

Our website also features a comprehensive Chatbot () that can provide thorough answers, coding assistance, and troubleshooting. Every DuploCloud customer receives their own Slack channel for personalized support from our responsive team of DevOps specialists.

DuploCloud walks you through each process step during , then ensures each implementation phase results in smooth and secure operations, laying the foundation for a reliable and compliant system.

DuploCloud supports all the primary for creating automated, streamlined CI/CD pipelines, ensuring consistent processes and repeatable workflows.

But here again, the power of ready-made templates in DuploCloud works to your advantage. DuploCloud contains its own Terraform provider, which can access DuploCloud constructs such as and . This simplifies the creation of many cloud resources by assuming defaults for compliance and security. When you run DuploCloud, you’re already speeding up the creation of DevOps components, so adding another accelerator based on Terraform is a win-win proposition: less code, less maintenance, faster deployments, and faster time-to-market.

DuploCloud utilizes numerous , which are included in the cost of a DuploCloud subscription. Depending on what tools you already use and the capacity in which you use them, a DuploCloud subscription can sometimes make the need for additional licenses obsolete. Our team of Solutions Architects can verify functional overlaps and suggest an optimal strategy to deliver the required functionality at the most efficient cost.

(Collaboration between DuploCloud and the team)

Since DuploCloud is a self-hosted platform running in the customer's cloud account, it can work in tandem with direct changes on the cloud account. This means, that while some security functions (IAM roles, KMS keys, Azure Managed Identities, GCP service accounts, etc.) are hidden from the end user, they are still configurable. See examples in this .

Documentation: is available to support the development of your DuploCloud tenancy model.

Support: can assist you in designing your deployment model or creating and managing Kubernetes clusters.

DuploCloud documentation
DuploCloud white paper
DuploCloud Tenants
Ask DuploCloud
onboarding
CI/CD tools
Infrastructure
Tenant
third-party tools
DuploCloud Terraform Provider Documentation
DuploCloud Terraform Provider Source Code
Example Terraform Project
AWS SaaS Factory
SOC 2 Compliance
PCI, HIPAA, and HITRUST Compliance
Dissecting Cloud Migrations and the Role of Automation
Deploy Applications 10x Faster with No-Code/Low-Code DevOps
DuploCloud Whitepaper
DuploCloud documentation
DuploCloud customer support
Infrastructure
Plan
Tenant
Services
Diagnostics
AWS Use Cases
Azure Use Cases
GCP Use Cases
Application-Managed Multi-Tenancy
DuploCloud Tenant-per-Customer
DuploCloud Infrastructure-per-Customer
Cloud Account-per-Customer
Hybrid Model
On-Premises

Tenant

A conceptual overview of DuploCloud Tenants

Tenant as a Logical Concept

A Tenant is a project or a workspace and is a child of the Infrastructure. It is the most fundamental construct in DuploCloud. While Infrastructure is a VPC level isolation, Tenant is the next level of isolation implemented by segregating Tenants using concepts like Security Groups, IAM roles, Instance Profiles, K8S Namespaces, KMS Keys, etc.

For instructions to create a Tenant in the DuploCloud Portal, see:

At the logical level, a Tenant is fundamentally four things:

  • Container of Resources: All resources (except those corresponding to Infrastructure) are created within the Tenant. If we delete the Tenant, all resources within it are terminated.

  • Security Boundary: All resources within the Tenant can talk to each other. For example, a Docker container deployed in an EC2 instance within a Tenant will have access to S3 buckets and RDS instances in the same Tenant. By default, RDS instances in other Tenants cannot be reached. Tenants can expose endpoints to each other via ELBs or explicit inter-Tenant SG and IAM policies.

  • User Access Control: Self-service is the bedrock of the DuploCloud Platform. To that end, users can be granted Tenant-level access. For example, an administrator may be able to access all Tenants while developers can only access the Dev Tenant and a data scientist the data-science Tenant.

  • Billing Unit: Since a Tenant is a container of resources, all resources in a Tenant are tagged with the Tenant's name in the cloud provider, making it easy to segregate usage by Tenant.

  • Mechanism for Alerting: Alerts generate faults for all of the resource within a Tenant.

  • Mechanism for Logging: Each Tenant has a unique set of logs.

  • Mechanism for metrics: Each Tenant has a unique set of metrics.

Tenants and Kubernetes

Each Tenant is mapped to a Namespace in Kubernetes.

When you create a Tenant in an Infrastructure, a Namespace called duploservices-TENANT_NAME is created in the Kubernetes cluster. For example, if a Tenant is called Analytics in DuploCloud, the Kubernetes Namespace is called duploservices-analytics.

All application components in the Analytics Tenant are placed in the duploservices-analytics Namespace. Since nodes cannot be part of a Kubernetes Namespace, DuploCloud creates a tenantname label for all the nodes launched within the Tenant. For example, a node launched in the Analytics Tenant is labeled tenantname: duploservices-analytics.

Any Pods launched using the DuploCloud UI have an appropriate Kubernetes nodeSelector that ties the Pod to the nodes within the Tenant. Ensure kubectl deployments use the proper nodeSelector.

Tenant Use Cases

DuploCloud customers often create at least two Tenants for their Prod and Nonprod cloud environments (Infrastructures).

You can map Tenants in each (or all) of your production environments.

For example:

  • Production Infrastructure

    • Pre-production Tenant: for preparing or reviewing production code

    • Production Tenant: for deploying tested code

  • Nonproduction Infrastructure

    • Development Tenant: For writing and reviewing code

    • Quality Assurance Tenant: For automated testing

Some customers in larger organizations create Tenants based on application environments: one Tenant for data science applications, another for web applications, etc.

Tenants can also isolate a single customer workload allowing more granular performance monitoring, flexibility scaling, or tighter security. This is referred to as a single-Tenant setup. In this case, a DuploCloud Tenant maps to an environment used exclusively by the end client.

With large sets of applications accessed by different teams, it is helpful to map Tenants to team workloads (Dev-analytics, Stage-analytics, etc.).

Tenant Naming Conventions

Ensure Tenant names in DuploCloud are unique and not substrings of one another. For example, if you have a Tenant named dev, you cannot create another named dev2. This limitation arises because IAM policies and other security controls rely on pattern matching to enforce Tenant security boundaries. If Tenant names overlap, the patterns may not work correctly.

To avoid issues, we recommend using distinct numerical suffixes like dev01 and dev02.

Plan

A conceptual overview of DuploCloud Plans

DuploCloud Plans

  • Certificates available to be attached to Load Balancers in the Plan's Tenants

  • Machine images

  • WAF web ACLs

  • Common IAM policies and SG rules to be applied to all resources in the Plan's Tenants

  • Unique or shared DNS domain names where applications provisioned in the Plan's Tenants can have a unique DNS name in the domain

  • Resource Quota that is enforced in each of the Plan's Tenants

  • DB Parameter Groups

  • Policies and feature flags applied at the Infrastructure level on the Plan's Tenants

The figure below shows a screenshot of the plan constructs:

DuploCloud Plans and DNS Considerations

When creating DuploCloud Plans and DNS names, consider the following to prevent DNS issues:

  • Plans in different portals will delete each other's DNS records, so each portal must use a distinct subdomain for its Plans.

  • DuploCloud Plans in the same portal can share a DNS domain without deleting each other's records. Duplo-created DNS names will always include the Tenant name, which prevents collisions.

  • The recommended practice for most portals is to set all Plans to the same DNS name, including the default Plan.

  • Ideally, custom subdomains will be set in the Plans before turning on shell, monitoring, or logging. If the DNS is changed later, those services may need to be updated.

GRC Tools and DuploCloud

An explanation of how DuploCloud and GRC tools work together

When pursuing specific compliance certifications such as SOC2, HIPAA, or PCI, specific controls must be implemented across an organization, from data management to infrastructure. Governance, Risk, and Compliance (GRC) tools such as Drata, Vanta, Thoropass, Secureframe, A-LIGN (A-SCEND), Sprinto, Scytale, ControlMap, and TrustCloud.ai help define and maintain these controls, ensuring they are kept up to date. Understanding how these tools complement DuploCloud is essential for meeting compliance requirements.

Implementing Compliance Controls vs Assessing Compliance

DuploCloud automates cloud infrastructure provisioning, configuration, and monitoring to meet compliance standards like SOC 2, HIPAA, and PCI DSS. By using Infrastructure as Code (IaC), prebuilt templates, and compliance checks, DuploCloud creates cloud environments that meet the these frameworks' requirements. While DuploCloud has built-in dashboards which provide compliance scores against well known Compliance standards, auditors prefer using dedicated compliance monitoring systems that are independent from the process of infrastructure provisioning.

This is where GRC tools come in. GRC tools automate compliance monitoring, reporting, and evidence collection organization-wide. Acting as independent observers, they assess compliance without implementing controls themselves, ensuring impartiality. Beyond cloud infrastructure, GRC tools cover areas like HR policies, IT systems, and company processes. They streamline audits by automating evidence collection and providing a centralized platform for auditors to verify compliance.

Overall, DuploCloud and GRC tools serve different functions, but complement each other to support overall compliance efforts. For organizations seeking the most streamlined compliance strategy, combining DuploCloud with a GRC tool offers the best of both worlds.

How Does DuploCloud Complement GRC Tools?

GRC tools monitor compliance but do not implement the controls needed to maintain it. DuploCloud complements these tools by ensuring cloud infrastructure controls are implemented and ready for assessment. Together, they streamline and maintain compliance, each focusing on distinct aspects of the process: GRC tools oversee compliance across broader organizational domains, and DuploCloud ensures cloud infrastructure controls are in place and audit-ready.

DuploCloud adds value through:

Infrastructure Orchestration: DuploCloud provisions and manages cloud resources in line with compliance frameworks such as SOC 2, ISO 27001, and HIPAA, automating the technical implementation of controls.

Continuous Compliance: By enforcing policies and automatically remediating misconfigurations, DuploCloud ensures that cloud infrastructure remains compliant over time, delivering a consistent "green" status for infrastructure controls.

Evidence for Auditors: DuploCloud generates detailed, audit-ready evidence for cloud infrastructure compliance. This evidence can be used directly by auditors or integrated with GRC tools to simplify compliance reporting.

Do I Need a GRC Tool if I Use DuploCloud?

It depends on your compliance needs.

For external-facing compliance activities, such as preparing for audits and certifications like SOC 2, a GRC tool may be essential. These tools systematically and continuously monitor controls across organizational areas, including IT and HR, that are critical for certifications and beyond DuploCloud’s scope. They provide real-time pass/fail insights, offering immediate visibility into compliance status as changes are made to organization, practices, or infrastructure. This makes evidence collection and audit coordination much more efficient than manual tracking.

Most customers use DuploCloud in conjunction with GRC tools, but some choose to manage their cloud infrastructure controls with DuploCloud while handling audits manually. This approach requires significant effort, including manually collecting evidence via spreadsheets and coordinating directly with the auditor.

Infrastructure

A conceptual overview of DuploCloud Infrastructures

For instructions to create an Infrastructure in the DuploCloud Portal, see:

Each Infrastructure represents a network connection to a unique VPC/VNET, in a region with a Kubernetes cluster. For AWS, it can also include an ECS. An Infrastructure can be created with four basic inputs: Name, VPC CIDR, Number of AZs, Region, and a choice to enable or disable a K8S/ECS cluster.

When you create an Infrastructure, DuploCloud automatically creates the following components:

  • VPC with two subnets (private, public) in each availability zone

  • Required security groups

  • NAT Gateway

  • Internet Gateway

  • Route tables

Additional requirements like custom Private/Public Subnet CIDRs can be configured in the Advanced Options area.

A common use case is two Infrastructures: one for Prod and one for Nonprod. Another is having an Infrastructure in a different region for disaster recovery or localized client deployments.

Plans and Infrastructures

Public Cloud Tutorials

Links to the Quick Start Guide for each cloud provider

These tutorials are specific to various public cloud environments and demonstrate some of DuploCloud's most common use cases:

Getting Help with DuploCloud

Support features included with the product and how to contact DuploCloud Support

DuploCloud offers hands-on 24/7 support for all customers via Slack or email. Automation and developer self-service are at the heart of the DuploCloud Platform. We are dedicated to helping you achieve hands-off automation as fast as possible via rapid deployment of managed services or customized Terraform scripts using our exclusive Terraform provider. Additionally, you can access various help options, including product documentation and customer support, directly from the DuploCloud Portal. For real-time answers tailored specifically to your organization's needs, ask customer support about Ask DuploCloud, our AI-powered assistant.

How to Contact DuploCloud for Support

  • Use the customer Slack or Microsoft Teams channel created during onboarding.

  • Email us at support@duplocloud.net.

DuploCloud Support Features

Some of the support features we offer include:

  • Configuring changes in your public cloud infrastructures and associated Kubernetes (K8s) constructs managed by DuploCloud.

  • Setting up CI/CD pipelines.

  • Cloud Migration from any existing platform.

  • Proactive, tailored EKS cluster upgrades designed for minimum downtime impact.

  • Accelerated onboarding of existing Services.

  • Troubleshooting and debugging for:

    • Apps and Services crashing.

    • Slow of crashing OpenSearch or database instances.

    • Proof-of-Concepts (PoCs) for third-party integrations, including roll-out to the development environment.

    • Downtime during rolling Upgrades.

    • Investigation and clarification of public cloud provider billing increases. Many times DuploCloud can suggest a more cost-effective alternative

    • Consolidation of third-party tools for which you currently subscribe that are included with your DuploCloud subscription.

    • Adding a CI/CD pipeline for a new Service.

What DuploCloud Does Not Support or Supports Conditionally

We cover most of your DevOps needs, but there are some limitations. Examples of needs we do not or only partially support include:

  • Patching an application inside a Docker image

  • Monitoring alerts in a Network Operations Center (NOC)

  • Troubleshooting application code

  • Database configuration

How to get help from within the DuploCloud Portal

  • What's New: Stay informed about the latest features and updates in the DuploCloud platform.

  • FAQs: Access frequently asked questions to quickly find answers to common inquiries.

  • Documentation: Browse through our comprehensive product documentation to help you navigate the platform and optimize your usage.

Services

A conceptual overview of DuploCloud Services

A Service could be a Kubernetes Deployment, StatefulSet, or DaemonSet. It can also be a Lambda function or an ECS task or service, capturing a microservice. Each Service (except Lambda) is given a Load Balancer to expose itself and is assigned a DNS name.

DuploCloud Services should not be confused with Kubernetes or ECS services. By Service, we mean application components that can be either Docker-based or serverless.

DuploCloud Supported Services

For information on cloud-specific Services supported by DuploCloud, see:

DuploCloud supports a simple, application-specific interface to configure dozens of cloud services, such as S3, SNS, SQS, Kafka, Elasticsearch, Data Pipeline, EMR, SageMaker, Azure Redis, Azure SQL, Google Redis, etc. Almost all commonly used services are supported, and new ones are constantly added. DuploCloud Engineers fulfill most requests for new Services within days, depending on their complexity.

Below is an image of some properties of a Service:

Diagnostics

An overview of DuploCloud diagnostics

DuploCloud Diagnostics Functions

The DuploCloud platform automatically orchestrates the following main diagnostic functions:

Central Logging

A shared Elasticsearch cluster is deployed and Filebeat is installed in all worker nodes to fetch logs from various applications across Tenants. The logs are injected with metadata corresponding to the Tenant, Service, container ID, Host, etc. Further, each Tenant has a central logging dashboard which includes the Kibana view of logs from applications within the Service. See the screenshot below:

Metrics

Metrics are fetched from Hosts, containers, and Services and displayed in Grafana. Service metrics are collected behind the scenes by calling cloud provider APIs like CloudWatch and Azure Monitor. For nodes and containers, metrics are collected using Prometheus, Node Exporter, and cAdvisor. The Metrics dashboards are Tenant-centric and segregated per application and Service as shown in the image below:

Alarms and Faults

The platform creates faults for many failures automatically. For example, health check failures, container crashes, node crashes, deployment failures, etc. Further, users can easily set alarms like CPU and memory for EC2 instances or free disk space for RDS databases. Failures are displayed as faults under their respective Tenants. Sentry and Pager Duty projects can be linked to Tenants, and DuploCloud will send faults there so the user can set notification configurations.

Audit Trail

All system changes are logged in an audit trail in Elasticsearch where they can be sorted and viewed by Tenant, Service, change type, user, and dozens of other filters.

Terminologies in Container Orchestration

Key terms and concepts in DuploCloud container orchestration

Container Orchestration Terms

Hosts

These are virtual machines (EC2 Instances, GCP Node pools, or Azure Agent Pools). By default, apps within a Tenant are pinned to VMs in the same Tenant. One can also deploy Hosts in one Tenant that can be leveraged by apps in other Tenants. This is called the shared-host model. The shared-host model does not apply to ECS Fargate.

Services

Service is a DuploCloud term and is not the same as a Kubernetes Service. In DuploCloud, a Service is a micro-service defined by a name, Docker Image, number of replicas, and other optional parameters. Behind the scenes, a DuploCloud Service maps 1:1 to a Deployment or StatefulSet, based on whether it has stateful volumes. There are many optional Service configurations for Docker containers. Among these are:

  • Environment variables

  • Host Network Mode

  • Volume mounts

  • Entrypoint or command overrides

  • Resource caps

  • Kubernetes health checks

Allocation Tags

A Service can be configured to run only a specific set of Hosts by setting allocation tags on the Hosts and Service. Allocation tags are case-insensitive substrings. On a Service, allocation tags should be a substring of the Host tag. For example, if a Host is tagged HighCpu;HighMem, a Service tagged highcpu can be placed on it. Services without allocation tags can be placed on any Host.

If a Host has a specific tag and there are Services with the same tag, the Host can also be used by any Service that doesn’t have a tag. To ensure a Host is only used by a specific set of Services, ensure all Services in the Tenant are tagged.

For Kubernetes Deployments, allocation tags are implemented using labels on nodes and then applying node selectors in your Deployment or StatefulSet configurations.

Host Networking

By default, Docker containers have network addresses. Sometimes, containers share the VM network interface. This reuse is called host networking mode.

Load Balancer

A DuploCloud Service that communicates with other Services, must be exposed by a Load Balancer. DuploCloud supports the following Load Balancers (LBs).

Application Elastic Load Balancer (ELB)

Classic ELB (Only applicable to Built-in container orchestration)

Cluster IP (Kubernetes only)

Container Orchestrators

An overview of the container orchestration technologies DuploCloud supports

Most application workloads deployed on DuploCloud are in Docker containers. The rest consist of serverless functions, and big data workloads like Amazon EMR jobs, Airflow, and Sagemaker. DuploCloud abstracts the complexity of container orchestration technologies, allowing you to focus on deploying, updating, and debugging your containerized application.

Among the technologies DuploCloud supports are:

  • Kubernetes: On AWS, DuploCloud supports orchestration using Elastic Kubernetes Service (EKS). On GCP we support GKE auto pilot and node-pool based. On Azure we support AKS and Azure web apps.

  • Built-in (DuploCloud): DuploCloud platform's Built-in container management has the same interface as the docker run command, but it can be scaled to manage hundreds of containers across many hosts, providing capabilities such as associated load balancers, DNS, and more.

  • AWS ECS Fargate: Fargate is a technology you can use with Elastic Container Service (ECS) to run containers without having to manage servers or clusters of EC2 instances.

Container Orchestration Feature Matrix

You can use the feature matrix below to compare the features of the orchestration technologies that DuploCloud supports. DuploCloud can help you implement whatever option you choose through the DuploCloud Portal or the Terraform API.

One dot indicates a low rating, two dots a medium rating, and three dots a high rating. For example, Kubernetes has a low ease-of-use rating but a high rating for stateful applications.

Feature Definitions

See the sections below for a detailed explanation of the cloud orchestrator's feature matrix ratings.

Ease of Use

Kubernetes is extensible and customizable, but not without a cost in ease of use. The DuploCloud Platform reduces the complexities of Kubernetes, making it comparable with other container orchestration technologies in ease of use/adoption.

ECS Fargate contains proprietary constructs (such as task definitions, tasks, or services) that can be hard to learn. As Fargate is serverless, you can't control the host Docker, so commands such as docker ps and docker restart are unavailable. This makes debugging a container crash very difficult and time-consuming. DuploCloud simplifies Fargate with an out-of-the-box setup for logging, shell access, and abstraction of proprietary constructs and behavior.

Features and Ecosystem Tools

Kubernetes is rich in additional built-in features and ecosystem tools like Secrets and ConfigMaps. Built-in and ECS rely on native AWS services such as AWS Secrets Manager, SSM, S3, and others. While Kubernetes features have AWS equivalents, third parties like Influx DB, Time Series DB, Prefect, etc. tend to publish their software as Kubernetes packages (Helm charts).

Suitability for Stateful Apps

Stability and Maintenance

Although Kubernetes is highly stable, it is an open-source product. Kubernetes' native customizability and extensibility can lead to points of failure. For example, when a mandatory cluster upgrade is needed. This complexity often leads to support costs from third-party vendors. Maintenance can be especially costly with EKS, as versions are frequently deprecated, requiring you to upgrade the control plane and data nodes. DuploCloud automates this upgrade process but still requires careful planning and execution.

AWS Cost

EKS control plane is fairly inexpensive, but operating an EKS environment without business support (at an additional premium) is not recommended. Small businesses may reduce costs by adding the support tier only when needed.

Multi-Cloud

For many enterprises and independent software vendors, multi-cloud capabilities are, or will soon be a requirement. While Kubernetes provides this benefit, DuploCloud's implementation is much easier to maintain and implement.

DNS Configuration

Managing custom DNS records in DuploCloud

DuploCloud automatically creates and manages DNS records for many resources you deploy, such as Kubernetes Services or VM hosts with public IPs, by integrating with your cloud provider’s DNS service. These DNS records are essential for routing traffic to your workloads and Services.

In most cases, DNS names are created automatically and can be customized within the DuploCloud Platform. However, you may sometimes need to manually configure or troubleshoot DNS entries, such as when using custom domain names, ensuring DuploCloud doesn’t overwrite DNS records you manage outside of the platform, or resolving DNS failures.

Prerequisites

  • Configure your DNS zones: Make sure your DNS zones are properly configured in both DuploCloud and your cloud provider. This often involves setting up subdomain zones (like apps.mycompany.com) and connecting them to DuploCloud. See DNS setup instructions for your cloud provider:

Adding Custom DNS Names

You can configure a custom DNS name for resource directly in the DuploCloud Platform, or manually in your cloud provider’s platform.

Creating Custom DNS Names in DuploCloud

For resources that DuploCloud manages (like services behind Load Balancers), you can customize the automatically generated DNS name:

  1. In the Tenant list box, select the Tenant.

  2. Navigate to the Services page (Kubernetes -> Services, or Docker -> Services). The Services page displays.

  3. Select your Service from the NAME column.

  4. Click the Load Balancers tab.

  5. In the DNS Name card, click Edit.

  6. The prefix in the DNS Name is editable. Select a meaningful DNS Name prefix.

  7. Click Save. A success message briefly displays at the top center of the DuploCloud Portal. Your new DNS name is now registered.

Creating Custom DNS Names in Your Cloud Provider

For resources that don’t have DNS configuration in DuploCloud (e.g., non-Kubernetes services), you will need to manually add DNS entries in your cloud provider’s DNS service.

Configuring DuploCloud to Ignore DNS Entries

If you create a DNS entry directly in your cloud provider’s platform (AWS, Google Cloud, or Azure), DuploCloud may delete it during updates, as it automatically deletes any DNS entries it did not create. To prevent this from happening, configure Systems Settings to ignore specific DNS entries.

  1. From the DuploCloud Portal, navigate to Administrator -> System Settings -> System Config.

  2. Click Add. The Add Config pane displays.

  3. Fill the fields:

  1. Click Submit. DuploCloud will ignore the specified DNS prefixes.

Resolving DNS Failures

Occasionally, DNS resolution can fail on local machines, especially for private resources behind VPNs. This is often caused by incorrect DNS server settings or local DNS caching.

To fix this:

  • Use public DNS servers like 8.8.8.8 (Google) or 1.1.1.1 (Cloudflare).

  • Flush your DNS cache.

  • Verify VPN connection if accessing private resources.

When you create an in DuploCloud, a Plan is automatically generated. A Plan is a placeholder or a template for configurations. These configurations are consistently applied to all Tenants within the Plan (or Infrastructure). Examples of such configurations are:

For more information about how DuploCloud supports compliance, see the .

If your main goal is ensuring your cloud infrastructure meets compliance standards, DuploCloud can streamline the process by automating the implementation of the necessary controls. DuploCloud provides a variety of built-in to manage internal-facing tasks like assessing your cloud environment, generating a compliance score, or performing self-assessments.

Infrastructures are abstractions that allow you to create a Virtual Private Cloud (VPC) instance in the DuploCloud Portal. When you create an Infrastructure, a (with the same Infrastructure name) is automatically created and populated with the Infrastructure configuration.

with the master VPC, which is initially configured in DuploCloud

Once an Infrastructure is created, DuploCloud automatically creates a (with the same Infrastructure name) with the Infrastructure configuration. The Plan is used to create .

Click the chat icon () in the DuploCloud Portal to post your question. If we are unable to respond immediately, we will automatically create a ticket for you and someone from the Duplocloud engineering team will reach out to you ASAP

From any page in the DuploCloud Portal, click the Help menu icon () in the upper right (next to your name and the person icon) to access a variety of tools and links for your self-service DevOps needs.

All Services and cloud features are created within a . While users specify application-level constructs for provisioning cloud resources, DuploCloud implicitly adds all the underlying DevOps and compliance controls.

The following concepts do not apply to ECS. ECS uses a proprietary policy model, which is explained in a .

Familiarize yourself with these DuploCloud concepts and terms before deploying containerized applications in DuploCloud. See the section for a description of DuploCloud Infrastructures, Tenants, Hosts, and Services.

A DuploCloud Service exposed by an ELB is reachable from anywhere unless marked Internal, then, is only reachable from within the VPC (or DuploCloud Infrastructure). Application ELBs allow you to use a certificate to terminate SSL on the LB and avoid providing application SSLs and certificates (e.g., certificates).

In Kubernetes, the platform creates a pointing to the Deployment and adds the Worker Nodes' Host IPs to the ELB. Traffic flows from the client to the external port defined in the ELB (for example, 443), to the ELB's NodePort (for example, 30004 on the Worker Node), and the Kubernetes Proxy running on each Worker Node. The Worker Node forwards the NodePort to the container.

Classic ELBs can be used when an application exposes non-HTTP ports that operate on any TCP port. Unless marked as Internal, Services exposed by an ELB are reachable from anywhere. Internal Services are reachable only from within the VPC (or DuploCloud infrastructure). Classic ELBs let you use a certificate to terminate SSL on the LB. This allows you to avoid providing application SSLs and certificates, such as certificates.

Load Balancers can be used if you are required to expose the application only within the Kubernetes Cluster.

Feature
Kubernetes
Built-In
ECS Fargate

DuploCloud's Built-in orchestration mirrors docker run. You can Secure Shell (SSH) into a virtual machine (VM) and run docker commands to debug and diagnose. If you have an application with a few stateless microservices or configurations that use environment variables or AWS services like SSM, S3, or, consider using DuploCloud's Built-in container orchestration.

Stateful applications should be avoided in AWS. Instead, managed cloud storage solutions should be leveraged for the best availability and Service Level Agreement (SLA) compliance. If this is undesirable due to cost, Kubernetes offers the best solution. Kubernetes uses and to implicitly manage Elastic Block Storage (EBS) volumes. With Built-in and ECS, you must use a shared Amazon Elastic File System (EFS) drive, which may not have feature parity with Kubernetes volume management.

AWS:

GCP:

Azure:

For AWS:

For GCP:

For Azure:

DuploCloud automatically deletes DNS records that it does not manage. If you create custom DNS names directly in your cloud provider, you must so they aren’t automatically removed.

AWS Tenant
Azure Tenant
GCP Tenant
Infrastructure
Security and Compliance Workflow
compliance tools
Plan
AWS Infrastructure
Azure Infrastructure
GCP Infrastructure
VPC peering
Plan
Tenants
Amazon Web Services (AWS) with DuploCloud tutorial
Azure with DuploCloud tutorial
Google Cloud Platform (GCP) with DuploCloud tutorial
DuploCloud help options

Ease of use

Features and ecosystem tools

Suitability for stateful apps

Stability and maintenance

AWS cost

Multi-cloud (w/o DuploCloud)

Config Type

AppConfig

Key

CNAME Prefixes to Ignore

Value

Enter the DNS prefixes to ignore. For example, entering test will prevent DuploCloud from deleting DNS entries like test.apps.duplocloud.net.

AWS Services
Azure Services
GCP Services
Tenant
later section
DuploCloud Common Concepts
AWS Amazon Certificate Manager (ACM)
NodePort
AWS Amazon Certificate Manager (ACM)
Kubernetes ClusterIP
StatefulSets
Volumes
Configure Route 53 DNS Zones
Configure Cloud DNS Zones
Program DNS Entries
Add custom DNS records in AWS Route 53
Add custom DNS records in Google Cloud DNS
Add custom DNS records in Azure DNS
configure DuploCloud to ignore unmanaged entries
Enable automatic AWS ACM (SSL) Certificates
ECS container task shells

Connect to the VPN

Obtain VPN credentials and connect to the VPN

DuploCloud integrates natively with OpenVPN by provisioning VPN users in the Duplocloud Portal. As a DuploCloud user, you can access resources in the private network by connecting to the VPN with the OpenVPN client.

The OpenVPN Access Server only forwards traffic destined for resources in the DuploCloud-managed private networks. Traffic accessing other resources on the internet does not pass through the tunnel.

Obtaining VPN Credentials

VPN credentials are listed on your user profile page in the DuploCloud Portal. It can be accessed by clicking the person icon and selecting Profile.

Setting up the OpenVPN User Profile and Client App

  1. Click on the VPN URL link in the VPN Details section of your user profile. Modern browsers will call the link unsafe since it uses a self-signed certificate. Make the necessary selections to proceed.

  2. Log into the OpenVPN Access Server user portal using the username and password from the VPN Details section of your DuploCloud user profile page.

  1. Click on the OpenVPN Connect Recommended for your device icon to install the OpenVPN Connect app for your local machine.

  1. Navigate to your downloads folder, open the OpenVPN Connect file you downloaded in the previous step, and follow the prompts to finish the installation.

  2. In the OpenVPN access server dialog box, click on the blue Yourself (user-locked profile) link to download your OpenVPN user profile.

  3. Navigate to your Downloads folder and click on the .ovpn file downloaded in the previous step. The Onboarding Tour dialog box displays.

  4. In the Onboarding Tour dialog box, click the > button twice. Click Agree and OK as needed to proceed to the Import .ovpn profile dialog box, and click OK.

  1. Click OK, and select Connect after import. Click Add in the upper right. If prompted to enter a password, use the password in the VPN Profile area of your user profile page in the DuploCloud Portal. You are now connected to the VPN.

ACM Certificate

Create an AWS Certificate Manager certificate

For example, if the Route 53 Hosted Zone created is apps.acme.com, the ACM certificate specifies *.apps.acme.com. You can add additional domains to this certificate (for example, *.acme.com).

Once the certificate is issued, add the Amazon Resource Name (ARN) of the certificate to the DuploCloud Plan (starting with the DEFAULT Plan) so that it is available to subsequent configurations

Adding an ACM Certificate with ARN to a DuploCloud Plan

  1. In the DuploCloud Platform, navigate to Administrator -> Plans. The Plans page displays.

  2. Select the default Plan from the NAME column.

  3. Click the Certificates tab.

  4. Click Add.

  5. In the Name field, enter a certificate name.

  6. In the Certificate ARN field, enter the ARN.

  7. Click Create. The ACM Certificate with ARN is created.

Note that the ARN Certificate must be set for every new Plan created in a DuploCloud Infrastructure.

Enabling Automatic AWS ACM Certificate Creation

Configure DuploCloud to automatically generate Amazon Certificate Manager (ACM) certificates for your Plan's DNS.

  1. From the DuploCloud portal, navigate to Administrator -> Systems Settings.

  2. Select the System Config tab, and click Add. The Add Config pane displays.

  3. From the Config Type list box, select Flags.

  4. From the Key list box, select Other.

  5. In the Key field that displays, enter enabledefaultdomaincert.

  6. In the Value list box, select True.

  7. Click Submit. DuploCloud automatically generates Amazon Certificate Manager (ACM) certificates for your Plan's DNS.

VPN Setup

Accept OpenVPN, provision the VPN, and add VPN users

DuploCloud integrates with OpenVPN by provisioning VPN users that you add to the DuploCloud Portal. OpenVPN setup is a comprehensive process that includes accepting OpenVPN, provisioning the VPN, adding users, and managing connection limits to accommodate a growing team.

Accepting OpenVPN

Accept OpenVPN Free Tier (Bring Your Own License) in the AWS Marketplace:

  1. Accept the agreement. Other than the regular EC2 instance cost, no additional license costs are added.

Provisioning the VPN

  1. In the DuploCloud Portal, navigate to Administrator -> System Settings.

  2. Select the VPN tab.

  3. Click Provision VPN.

After the OpenVPN is provisioned, it is ready to use. DuploCloud automates the setup by launching a CloudFormation script to provision the OpenVPN.

The OpenVPN admin password can be found in the CloudFormation stack in your AWS console.

Managing VPN Connection Limits

To support a growing team, you may need to increase the number of VPN connections. This can be achieved by purchasing a larger license from your VPN provider. Once acquired, update the license key in the VPN's web user interface through the DuploCloud team's assistance. Ensure the user count settings in the VPN reflect the new limit and verify team access to manage these changes efficiently.

Adding or Deleting a VPN User

Opening a VPN Port

To enable users connected to the VPN to access various services, including databases and ElastiCache, specific ports must be opened:

  1. In the DuploCloud Portal, navigate to Administrator -> Tenants.

  2. Select the Tenant from the NAME column.

  3. Click the Security tab.

  4. Click Add. The Add Tenant Security pane displays.

  5. From the Source Type list box, select IP Address.

  6. From the IP CIDR list box, select your IP CIDR.

  7. Click Add.

This comprehensive guide ensures your VPN setup is not only up and running but also scalable to meet the needs of your growing team.

Route 53 Hosted Zone

Create a Route 53 Hosted Zone to program DNS entries

The DuploCloud Platform needs a unique Route 53 hosted zone to create DNS entries for Services that you deploy. The domain must be created out-of-band and set in DuploCloud. The zone is a subdomain such as apps.[MY-COMPANY].com.

Never use this subdomain for anything else, as DuploCloud owns all CNAME entries in this domain and removes all entries it has no record of.

Creating a Route 53 Hosted Zone Using AWS Console

  1. Navigate to Route 53 and Hosted Zones.

  2. Create a new Route53 Hosted Zone with the desired domain name, for example, apps.acme.com.

  3. Go to your root domain provider's site (e.g., acme.com), and create an NS record that references the domain name of the Hosted Zone you created (apps.acme.com). Add the zone name to the name servers that you noted above.

Once this is complete, provision the Route53 domain in every DuploCloud Plan, starting with the DEFAULT Plan. Add the Route53 Hosted Zone ID and domain name, preceded with a dot (.).

Do not forget the dot (.) at the beginning of the DNS suffix, in the form as shown below.

Note that this domain must be set in each new Plan you create in your DuploCloud Infrastructure.

Prerequisites

Tasks to perform before you use AWS with DuploCloud

Shell Access for Containers

Access the shell for your Native Docker, EKS, and ECS containers

Enable and access shells for your DuploCloud Docker, EKS, and ECS containers directly through the DuploCloud Portal. This provides quick and easy access for managing and troubleshooting your containerized environments.

Native Docker Shell Access

Enabling the Shell for Docker

  1. In the DuploCloud Portal, navigate to Docker -> Services.

  2. From the Docker list box, select Enable Docker Shell. The Start Shell Service pane displays.

  1. In the Platform list box, select Docker Native.

  2. From the Certificate list box, select your certificate.

  3. From the Visibility list box, select Public or Internal.

  4. Click Update. DuploCloud provisions the dockerservices-shell Service, enabling you to access your Docker container shell.

Accessing the Shell for Docker

  1. From the DuploCloud portal, navigate to Docker -> Containers.

  2. Select Container Shell. A shell session launches directly into the running container.

EKS Shell Access

Enabling the Shell for Kubernetes

  1. In the Tenant list box, select the Default Tenant.

  2. In the DuploCloud Portal, navigate to Docker -> Services.

  3. Click the Docker button, and select Enable Docker Shell. The Start Shell Service pane displays.

  1. In the Platform list box, select Kubernetes.

  2. In the Certificate list box, select your certificate.

  3. In the Visibility list box, select Public or Internal.

  4. Click Update. DuploCloud provisions the dockerservices-shell Service, enabling you to access your Kubernetes container shell.

Accessing the Shell for Kubernetes

  1. From the DuploCloud Portal, navigate to Kubernetes -> Services.

  2. Click the KubeCtl Shell button. The Kubernetes shell launches in your browser.

ECS Shell Access

Accessing the Shell for ECS

  1. From the DuploCloud Portal, navigate to Cloud Services -> ECS. The ECS Task Definition page displays.

  2. Select the name from the TASK DEFINITION FAMILY NAME column.

  3. Select the Tasks tab.

  4. In the row of the task you want to access, click the actions icon (>_).

  5. Select the Task Shell option. The ECS task shell launches in your browser.

AWS Quick Start

Get up and running with DuploCloud inside an AWS cloud environment; harness the power of generating application infrastructures.

This Quick Start tutorial shows you how to set up an end-to-end cloud deployment. You will create DuploCloud Infrastructure and Tenants and, by the end of this tutorial, you can view a deployed sample web application.

Estimated time to complete tutorial: 75-95 minutes.

AWS Tutorial Roadmap

When you complete the AWS Quick Start Tutorial, you have three options or paths, as shown in the table below.

EKS (Elastic Kubernetes Service): Create a Service in DuploCloud using AWS Elastic Kubernetes Service and expose it using a Load Balancer within DuploCloud.

ECS (AWS Elastic Container Service): Create an app and Service in DuploCloud using AWS Elastic Container Service.

Native Docker: Create a Service in Docker and expose it using a Load Balancer within DuploCloud.

Optional steps in each tutorial path are marked with an asterisk in the table below. While these steps are not required to complete the tutorials, you may want to perform or read through them, as they are normally completed when you create production-ready services.

Step
EKS
ECS
Native Docker Services

1

Create Infrastructure and Plan

Create Infrastructure and Plan

Create Infrastructure and Plan

2

Create Tenant

Create Tenant

Create Tenant

3

Create RDS *

Create RDS *

Create RDS *

4

Create Host

Create a Task Definition for an application

Create Host

5

Create Service

Create the ECS Service and Load Balancer

Create app

6

Create Load Balancer

Test the app

Create Load Balancer

7

Enable Load Balancer Options *

Test the App

8

Create Custom DNS Name *

9

Test the App

* Optional

AWS Video Demo

Click the card below to watch DuploCloud video demos.

Step 3: Create an RDS Database (Optional)

Creating an RDS database to integrate with your DuploCloud Service

Creating an RDS database is not essential to running a DuploCloud Service. However, as most services also incorporate an RDS, this step is included to demonstrate the ease of creating a database in DuploCloud. To skip this step, proceed to creating an EKS or ECS Service.

Estimated time to complete Step 3: 5 minutes.

Prerequisites

Before creating an RDS, verify that you accomplished the tasks in the previous tutorial steps. Using the DuploCloud Portal, confirm that:

Creating an RDS Database

  1. In the Tenant list box, select the dev01 Tenant that you created.

  2. Navigate to Cloud Services -> Database.

  3. Select the RDS tab, and click Add. The Create a RDS page displays.

  4. From the table below, enter the values that correspond to the fields on the Create a RDS page. Accept default values for fields not specified.

  5. Click Create. The database displays with a status of Submitted in the RDS tab. Database creation takes approximately ten (10) minutes.

DuploCloud prepends DUPLO to the name of your RDS database instance.

Validating RDS Database Creation

You can monitor the status of database creation using the RDS tab and the Status column.

Troubleshooting Database Creation Failures

  • Invalid passwords - Passwords cannot have special characters like quotes, @, commas, etc. Use a combination of uppercase and lowercase letters and numbers.

  • Invalid encryption - Encryption is not supported for small database instances (micro, small, or medium).

Verifying Database Endpoints

  1. In the RDS tab, select the DUPLODOCS database you created.

  2. Note the database endpoint, the name, and credentials. For security, the database is automatically placed in a private subnet to prevent access from the internet. Access to the database is automatically set up for all resources (EC2 instances, containers, Lambdas, etc.) in the DuploCloud dev01 Tenant. You need the endpoint to connect to the database from an application running in the EC2 instance.

Checking your work

Not sure what kind of DuploCloud Service you want to create? Consider the following:

Step 4: Create a Host

Creating a Host that acts as an EKS Worker node

Kubernetes uses worker nodes to distribute workloads within a cluster. The cluster automatically distributes the workload among its nodes, enabling seamless scaling as required system resources expand to support your applications.

Estimated time to complete Step 4: 5 minutes.

Prerequisites

Select the Tenant You Created

In the Tenant list box, select the dev01 Tenant that you created.

Creating a Host

  1. In the DuploCloud Portal, navigate to Cloud Services -> Hosts. The Hosts page displays.

  2. In the EC2 tab, click Add. The Add Host page displays.

  3. In the Friendly Name field, enter host01.

  4. In the Instance Type list box, select 2 CPU 4 GB - t3a.medium.

  5. Select the Advanced Options checkbox to display advanced configuration fields.

  6. From the Agent Platform list box, select EKS Linux.

  7. From the Image ID list box, select any Image ID with an EKS prefix (for example, EKS-Oregon-1.23).

  8. Click Add. The Host is created, initialized, and started. In a few minutes, when the Status displays Running, the Host is available for use.

The EKS Image ID is the image published by AWS specifically for an EKS worker in the version of Kubernetes deployed at Infrastructure creation time. For this tutorial, the region is us-west-2, where the NONPROD Infrastructure was created.

Checking Your Work

  1. In the DuploCloud Portal, navigate to Cloud Services -> Hosts.

  2. Select the EC2 tab.

  3. Verify that the Host status is Running.

Step 5: Create a Service

Creating a Service to run a Docker-containerized application

DuploCloud supports three container orchestration technologies to deploy Docker-container applications in AWS:

  • Native EKS

  • Native ECS Fargate

  • Built-in container orchestration in DuploCloud using EKS/ECS

This tutorial will guide you through deploying a simple Hello World NodeJS web app using DuploCloud's built-in container orchestration with EKS. We’ll use a pre-built Docker container and access Docker images from a preconfigured Docker Hub.

Estimated time to complete Step 5: 10 minutes.

Prerequisites

Before creating a Service, verify that you completed the tasks in the previous tutorial steps. Using the DuploCloud Portal, confirm that:

Adding a Service

  1. In the Tenant list box, select the dev01 Tenant.

  2. In the DuploCloud Portal, navigate to Kubernetes -> Services.

  3. Click Add. The Add Service page displays.

  4. From the table below, enter the values that correspond to the fields on the Add Service page. Accept all other default values for fields not specified.

  5. Click Next. The Advanced Options page is displayed.

  6. At the bottom of the Advanced Options page, click Create. In about five (5) minutes, the Service will be created and initialized, displaying a status of Running in the Containers tab.

Use the Containers tab to monitor the Service creation status, between Desired (Running) and Current.

Using Spot Instances (optional)

Checking your work

Verify that your DuploCloud Service, demo-service, has a status of Running.

  1. In the Tenant list box, select the dev01 Tenant.

  2. In the DuploCloud Portal, navigate to Kubernetes -> Services.

  3. Click on the Service name (demo-service).

  4. On the Containers tab, verify that the current status is Running.

Step 2: Create a Tenant

Creating a DuploCloud Tenant that segregates your workloads

In AWS, cloud features such as IAM Roles, security groups, and KMS keys are exposed in Tenants, which reference these feature configurations.

Estimated time to complete Step 2: 10 minutes.

Tenant Use Cases

DuploCloud customers often create at least two Tenants for their production and non-production cloud environments (Infrastructures).

For example:

  • Production Infrastructure

    • Pre-production Tenant - for preparing or reviewing production code

    • Production Tenant - for deploying tested code

  • Non-production Infrastructure

    • Development Tenant - for writing and reviewing code

    • Quality Assurance Tenant - for automated testing

In larger organizations, some customers create Tenants based on application environments, such as one Tenant for Data Science applications, another for web applications, and so on.

Tenants are sometimes created to isolate a single customer workload, allowing more granular performance monitoring, scaling flexibility, or tighter security. This is referred to as a single-Tenant setup.

Prerequisites

Before creating a Tenant, verify that you accomplished the tasks in the previous tutorial steps. Using the DuploCloud Portal, confirm that:

Creating a Tenant

Create a Tenant for your Infrastructure and Plan:

  1. In the DuploCloud Portal, navigate to Administrator -> Tenants.

  2. Click Add. The Create a Tenant pane displays.

  3. Enter dev01 in the Name field.

  4. Select the Plan that you created in the previous step (NONPROD).

  5. Click Create.

Checking Your Work

  1. Navigate to Administrator -> Tenants and verify that the dev01 Tenant displays in the list.

Step 1: Create Infrastructure and Plan

Create a DuploCloud Infrastructure and Plan

Each DuploCloud Infrastructure is a connection to a unique Virtual Private Cloud (VPC) network that resides in a region that can host Kubernetes clusters, EKS or ECS clusters, or a combination of these, depending on your public cloud provider.

With the Infrastructure as your foundation, you can customize an extensible, versatile platform engineering development environment by adding Tenants, Hosts, Services, and more.

Estimated time to complete Step 1: 40 minutes. Much of this time is consumed by DuploCloud's creation of the Infrastructure and enabling your EKS cluster with Kubernetes.

Prerequisites

Before starting this tutorial:

Creating a DuploCloud Infrastructure

  1. In the DuploCloud Portal, navigate to Administrator -> Infrastructure.

  2. Click Add. The Add Infrastructure page displays.

  3. Enter the values from the table below in the corresponding fields on the Add Infrastructure page. Accept default values for fields not specified.

  4. Click Create to create the Infrastructure. It may take up to half an hour to create the Infrastructure. While the Infrastructure is being created, a Pending status is displayed in the Infrastructure page Status column, often with additional information about what part of the Infrastructure DuploCloud is currently creating. When creation completes, a status of Complete displays.

DuploCloud begins creating and configuring your Infrastructure and EKS/ECS clusters using Kubernetes.

It may take up to forty-five (45) minutes for your Infrastructure to be created and Kubernetes (EKS/ECS) enablement to be complete. Use the Kubernetes card in the Infrastructure screen to monitor the status, which should display Enabled when complete. You can also monitor progress using the Kubernetes tab, as DuploCloud generates your Cluster Name, Default VM Size, Server Endpoint, and Token.

Verifying That a Plan Exists for Your Infrastructure

Before proceeding, confirm that a Plan exists that corresponds to your newly created Infrastructure.

  1. In the DuploCloud Portal, navigate to Administrator -> Plans. The Plans page displays.

  2. Verify that a Plan exists with the name NONPROD: the name of the Infrastructure you created.

Checking Your Work

You previously verified that your Infrastructure and Plan were created. Now verify that Kubernetes is enabled before proceeding to create a Tenant.

  1. In the DuploCloud Portal, navigate to Administrator -> Infrastructure. The Infrastructure page displays.

  2. From the Name column, select the NONPROD Infrastructure.

  3. Select the EKS or ECS tab. When Kubernetes has been Enabled for EKS or ECS, details are listed in the respective tab. For EKS, Enabled is displayed on the Kubernetes card. For ECS, the cluster name is listed in the ECS tab.

The DuploCloud Platform needs a wild character AWS Certificate Manager (ACM) certificate corresponding to the domain for the .

The ACM certificate is used with AWS Elastic Load Balancers (ELBs) created during DuploCloud application deployment. Follow this .

Log into your AWS account. In the console, navigate to: .

For instructions to add or delete a VPN user, refer to the DuploCloud .

For more info about DNS setup and custom DNS names, see the .

Log in to .

Access the Hosted Zone and note the names.

For Kubernetes prerequisites, see the .

In the row of the container you want to access, click the options menu icon ( ).

For information about the differences between these methods and to help you choose which method best suits your needs, skills, and environments, see this and documentation.

An is a managed Relational Database Service that is easy to set up and maintain in DuploCloud for AWS public cloud environments. RDSs support many databases including MySQL, PostgreSQL, MariaDB, Oracle BYOL, or SQL Server.

See the for more information.

An exist, both with the name NONPROD.

The NONPROD infrastructure has .

A Tenant with the name .

Create a RDS page field
Value

When the database status reads Available on the RDS tab on the Database page, the database's endpoint is ready for connection to a DuploCloud Service, which you create and start in the .

Faults can be viewed in the DuploCloud Portal by clicking the Fault/Alert ( ) Icon. Common database faults that may cause database creation to fail include:

When you place a DuploCloud Service in a live production environment, consider passing the database endpoint, name, and credentials to a DuploCloud Service using , or .

When your and you have , choose one of these three paths to create a DuploCloud Service and continue this tutorial.

in DuploCloud running Docker containers

in DuploCloud running Docker containers

AWS EKS is a managed service. AWS ECS is a fully managed container orchestration service using AWS technology. For a full discussion of the benefits of EKS vs. ECS, consult this .

are ideal for lightweight deployments and run on any platform, using GitHub and other open-source tools.

Creating an Service uses technologies from AWS and the open-source container orchestration system.

Before creating a Host (essentially a ), verify that you completed the previous tutorial steps. Using the DuploCloud Portal, confirm that:

An exist, both named NONPROD.

The NONPROD infrastructure has .

A named dev01 has been created.

If there is no Image ID with an EKS prefix, copy the AMI ID for the desired EKS version following this . Select Other from the Image ID list box and paste the AMI ID in the Other Image ID field. Contact the DuploCloud Support team via your Slack channel if you have questions or issues.

You don't need experience with Kubernetes to deploy an application in the DuploCloud Portal. However, it is helpful to be familiar with the platform. Docker runs on any platform and provides an easy-to-use UI for creating, running, and managing containers.

To deploy your own applications with DuploCloud, you’ll choose a public image or provide credentials for your private repository and configure your in DuploCloud.

An exist, both named NONPROD.

The NONPROD infrastructure has .

A Tenant named .

A host named .

Add a Service page field
Value

Follow the steps in . In the Add Service page, Basic Options, Select Tolerate spot instances.

Now that the exist and a Kubernetes EKS or ECS cluster has been enabled, create one or more Tenants that use the configuration DuploCloud created.

in DuploCloud are similar to projects or workspaces and have a subordinate relationship to the Infrastructure. Think of the Infrastructure as a virtual "house" (cloud), with Tenants conceptually "residing" in the Infrastructure performing specific workloads that you define. As Infrastructure is an abstraction of a Virtual Private Cloud, Tenants abstract the segregation created by a , although Kubernetes Namespaces are only one component that Tenants can contain.

An exist, both with the name NONPROD.

The NONPROD infrastructure has .

After you supply a few basic inputs, DuploCloud creates an Infrastructure within AWS and DuploCloud. Behind the scenes, DuploCloud does a lot with what little you supply, generating the VPC, subnets, NAT Gateway, routes, and or clusters.

Learn more about DuploCloud , , and .

Reference the documentation to create User IDs with the Administrator role. To perform the tasks in this tutorial, you must have Administrator privileges.

Select either the Enable EKS or Enable ECS Cluster option. You will follow different paths in the tutorial for creating Services with , , or .

Add Infrastructure field
Value

Every DuploCloud Infrastructure generates a Plan. Plans are sets of templates that are used to configure the or workspaces, in your Infrastructure. You will set up Tenants in the next tutorial step.

Route 53 Hosted Zone
AWS guide to issue an ACM certificate
https://aws.amazon.com/marketplace/pp?sku=f2ew2wrz425a1jagnifd02u5t
User Administration documentation
DNS Configuration documentation
AWS Console
name server
Route 53 Hosted Zone
ACM Certificate
Shell access for Docker or ECS
VPN setup
Connect to the VPN
DuploCloud Kubernetes User Guide
AWS blog
Docker

RDS Name

docs

User Name

YOUR_DUPLOCLOUD_ADMIN_USER_NAME

User password

YOUR_DUPLOCLOUD_ADMIN_PASSWORD

RDS Engine

MySQL

RDS Engine Version

LATEST_AVAILABLE_VERSION

RDS Instance Size

db.t3.medium

Storage size in GB

30

Service Name

demo-service

Docker Image

duplocloud/nodejs-hello:latest

Name

nonprod

Region

YOUR_GEOGRAPHIC_REGION

VPC CIDR

10.221.0.0/16

Subnet CIDR Bits

24

LogoOnline digital videos - DuploCloudDuploCloud
Link to DuploCloud video demos
AWS RDS
DuploCloud AWS Database documentation
Infrastructure and Plan
dev01 has been created
AWS Secrets Manager
Kubernetes Configs and Secrets
Creating an AWS EKS Service
Creating an AWS ECS Service
Creating a DuploCloud native Docker Service
Kubernetes
AWS blog
Docker Containers
AWS EKS
Kubernetes
Virtual Machine
Infrastructure and Plan
Tenant
AWS documentation
Docker
Docker Registry credentials
Infrastructure and Plan
dev01 has been created
host01 has been created
Infrastructure and Plan
Tenants
Kubernetes Namespace
Infrastructure and Plan
EKS
ECS
Infrastructures
Plans
Tenants
Access Control
EKS
ECS
DuploCloud Docker
Tenants
Kubernetes (EKS or ECS) Enabled
EKS Enabled
EKS Enabled
Kubernetes (EKS or ECS) Enabled
next step
database is available
verified the endpoint

Creating an EKS Service

Finish the Quick Start Tutorial by creating an EKS Service

Alternatively, you can finish this tutorial by:

Estimated time to complete remaining tutorial steps: 30-40 minutes

Deploying an AWS EKS Service in DuploCloud

For the remaining steps in this tutorial, you will:

  1. Create a Service and application using the premade Docker image: duplocloud/nodejs-hello:latest.

  2. Expose the Service by creating and sharing a Load Balancer and DNS name.

  3. Test the application.

  4. Obtain access to the container shell and kubectl for debugging.

Network Architecture and Configurations

The topology that DuploCloud creates behind the scenes resembles this low-level configuration in AWS.

Step 7: Enable Additional Load Balancer Options (Optional)

Add a security layer and enable other Load Balancer options

This step is optional and unneeded for the example application in this tutorial; however, production cloud apps require an elevated level of protection.

Estimated time to complete Step 7: 5 minutes.

Prerequisites

Before securing a Load Balancer, verify that you accomplished the tasks in the previous tutorial steps. Using the DuploCloud Portal, confirm that:

Securing the Load Balancer

  1. In the Tenant list box, select the dev01 Tenant.

  2. In the DuploCloud Portal, navigate to Kubernetes -> Services.

  3. From the NAME column, select the Service (demo-service).

  4. Select the Load Balancers tab.

  5. In the Other Settings card, click Edit. The Other Load Balancer Settings pane displays.

  6. Select the Enable Access Logs and Drop Invalid Headers options.

  7. Accept the remaining default settings and click Save. The settings are updated.

Checking Your Work

  1. In the Tenant list box, select the dev01 Tenant.

  2. In the DuploCloud Portal, navigate to Kubernetes -> Services.

  3. From the NAME column, select the Service (demo-service).

  4. Select the Load Balancers tab.

  5. Verify that the Other Settings card contains the selections you made above for:

  • Web ACL - None

  • HTTP to HTTPS Redirect - False

  • Enable Access Logs - True

  • Drop Invalid Headers - True

Enabling access logs enhances the security and monitoring capabilities of your Load Balancer and provides insights into the traffic accessing your application, for a more robust security posture.

Step 8: Create a Custom DNS Name (Optional)

Changing the DNS Name for ease of use

After you create a Load Balancer Listener you can modify the DNS Name for ease of use and reference by your applications. It isn't necessary to run your application or complete this tutorial.

Estimated time to complete Step 8: 5 minutes.

Prerequisites

Before securing a Load Balancer, verify that you completed the tasks in the previous tutorial steps. Using the DuploCloud Portal, confirm that:

Creating a Custom DNS Name

  1. In the Tenant list box, select the dev01 Tenant.

  2. Navigate to Kubernetes -> Services. The Services page displays.

  3. From the Name column, select demo-service.

  4. Click the Load Balancers tab. The ALB Load Balancer configuration is displayed.

  5. In the DNS Name card, click Edit. The prefix in the DNS Name is editable.

  6. Edit the DNS Name and select a meaningful DNS Name prefix.

  7. Click Save. A success message briefly displays at the top center of the DuploCloud Portal.

An entry for your new DNS name is now registered with demo-service.

Checking Your Work

  1. Navigate to Kubernetes -> Services.

  2. From the Name column, select demo-service.

  3. Select the Load Balancers tab and verify that the DNS Name card displays your modified DNS Name.

Step 6: Create a Load Balancer

Creating a Load Balancer to configure network ports to access the application

Now that your DuploCloud Service is running, you have a mechanism to expose the containers and images in which your application resides. However, since your containers are inside a private network, you need a Load Balancer listening on the correct ports to access the application.

In this step, we add a Load Balancer Listener to complete the network configuration.

Estimated time to complete Step 6: 10 minutes.

Prerequisites

Before creating a Load Balancer, verify that you completed the tasks in the previous tutorial steps. Using the DuploCloud Portal, confirm that:

Creating a Load Balancer

  1. In the Tenant list box, select the dev01 Tenant.

  2. In the DuploCloud Portal, navigate to Kubernetes -> Services.

  3. From the NAME column, select demo-service.

  4. Click the Load Balancers tab.

  5. Click the Configure Load Balancer link. The Add Load Balancer Listener pane displays.

  1. From the Type list box, select Application LB.

  2. In the Container Port field, enter 3000. This is the configured port on which the application inside the Docker Container Image duplocloud/nodejs-hello:latest is running.

  3. In the External Port field, enter 80. This is the port through which users will access the web application.

  4. From the Visibility list box, select Public.

  5. From the Application Mode list box, select Docker Mode.

  6. Type / (forward-slash) in the Health Check field to indicate that the cluster we want Kubernetes to perform Health Checks on is located at the root level.

  7. In the Backend Protocol list box, select HTTP.

  8. Click Add. The Load Balancer is created and initialized. Monitor the LB Status card on the Services page. The LB Status card displays Ready when the Load Balancer is ready for use.

Checking your work

  1. In the Tenant list box, select the dev01 Tenant.

  2. In the DuploCloud Portal, navigate to Kubernetes -> Services.

  3. From the NAME column, select demo-service.

  4. Verify that the LB Status card displays a status of Ready.

  5. Note the DNS Name of the Load Balancer that you created.

  6. In the LB Listeners area of the Services page, note the configuration details of the Load Balancer's HTTP protocol, which you specified, when you added it above.

Step 9: Test the Application

Test the application to ensure you get the results you expect

You can test your application directly from the Services page using the DNS status card.

Estimated time to complete Step 9 and finish tutorial: 10 minutes.

Prerequisites

Before testing your application, verify that you accomplished the tasks in the previous tutorial steps. Using the DuploCloud Portal, confirm that:

Testing the Application

  1. In the Tenant list box, select the dev01 Tenant.

  2. In the DuploCloud Portal, navigate to Kubernetes -> Services. The Services page displays.

  3. From the Name column, select demo-service.

  4. Click the Load Balancers tab.

  5. Open a browser instance and Paste the DNS in the URL field of your browser.

  6. Press ENTER. A web page with the text Hello World! is displayed, from the JavaScript program residing in your Docker Container running in demo-service, which is exposed to the web by your Load Balancer.

It can take from five to fifteen (5-15) minutes for the DNS Name to become active once you launch your browser instance to test your application.

Congratulations! You have just launched your first web service on DuploCloud!

Reviewing What You Learned

In this tutorial, your objective was to create a cloud environment to deploy an application for testing purposes, and to understand how the various components of DuploCloud work together.

The application rendered a simple web page with text, coded in JavaScript, from software application code residing in a Docker container. You can use this same procedure to deploy much more complex cloud applications.

In the previous steps, you:

Cleaning Up Your Tutorial Environment

In this tutorial, you created many artifacts for testing purposes. Now that you are finished, clean them up so others can run this tutorial using the same names for Infrastructure and Tenant.

The NONPROD Infrastructure is deleted and you have completed the clean-up of your test environment.

Step 4: Create a Task Definition for an Application

Create a Task Definition for your application in AWS ECS

Once you create a Task Definition, you can run it as a Task or as a Service. In this tutorial, we run the Task Definition as a Service.

Estimated time to complete Step 4: 10 minutes.

Prerequisites

Before creating an RDS, verify that you completed the tasks in the previous tutorial steps. Using the DuploCloud Portal, confirm that:

Creating a Task Definition

  1. In the Tenant list box, select the dev01 Tenant.

  2. Navigate to Cloud Services -> ECS.

  3. In the Task Definition tab, click Add. The Add Task Definition-Basic Options area displays.

  4. In the Name field, enter sample-task-def.

  5. From the vCPU list box, select 0.5 vCPU.

  6. From the Memory list box, select 1 GB.

  7. Click Next. The Advanced Options area displays.

  8. In the Container - 1 section, enter Container Name sample-task-def-c1.

  9. In the Image field, enter duplocloud/nodejs-hello:latest.

  10. In the Port Mappings section, in the Port field, enter 3000. Port mappings allow containers to access ports for the host container instance to send or receive traffic.

  11. Click Create.

Creating a Native Docker Service

Finish the Quick Start Tutorial by running a native Docker Service

This section of the tutorial shows you how to deploy a web application with a DuploCloud Docker Service, by leveraging DuploCloud platform in-built container management capability.

Instead of creating a DuploCloud Docker Service, you can alternatively finish the tutorial by:

Deploying a DuploCloud Docker Service

Instead of creating a DuploCloud Service using EKS or ECS, you can deploy your application with native Docker containers and services.

To deploy your app with a DuploCloud Docker Service in this tutorial, you:

  1. Create an EC2 host instance in DuploCloud.

  2. Create a native Docker application and Service.

  3. Expose the app to the web with an Application Load Balancer in DuploCloud.

  4. Complete the tutorial by testing your application.

Estimated time to complete remaining tutorial steps: 30-40 minutes

Network Architecture and Configurations

Behind the scenes, the topology that DuploCloud creates resembles this low-level configuration in AWS.

Step 4: Create an EC2 Host

Create an EC2 Host in DuploCloud

Before you create your application and service using native Docker, create an EC2 Host for storage in DuploCloud.

Estimated time to complete Step 4: 5 minutes.

Prerequisites

Creating a Host

  1. In the Tenant list box, select dev01.

  2. In the DuploCloud Portal, navigate to Cloud Services -> Hosts. The Hosts page displays.

  3. In the EC2 tab, click Add. The Add Host page displays.

  4. In the Friendly Name field, enter host01.

  5. From the Instance Type list box, select 2 CPU 4 GB - t3a.medium.

  6. Select the Advanced Options checkbox to display advanced configuration fields.

  7. From the Agent Platform list box, select Linux/Docker Native.

  8. From the Image ID list box, select any Docker-Duplo or Ubuntu image.

  9. Click Add. The Host is created, initialized, and started. In a few minutes, when the Status displays Running, the Host is available for use.

Checking your work

Verify that host01 has a Status of Running.

Step 5: Create a Service

Create a native Docker Service in the DuploCloud Portal

You can use the DuploCloud Portal to create a native Docker service without leaving the DuploCloud interface.

Estimated time to complete Step 5: 10 minutes.

Prerequisites

Before creating a Service, verify that you completed the tasks in the previous tutorial steps. Using the DuploCloud Portal, confirm that:

Creating a Service with Native Docker

  1. In the Tenant list box, select dev01.

  2. Navigate to Docker -> Services.

  3. Click Add. The Add Service Basic Options page displays.

  4. In the Service Name field, enter demo-service-d01.

  5. From the Platform list box, select Linux/Docker Native.

  6. In the Docker Image field, enter duplocloud/nodejs-hello:latest.

  7. From the Docker Networks list box, select Docker Default.

  8. Click Next. The Advanced Options page displays.

  9. Click Create.

Checking Your Work

  1. In the Tenant list box, select dev01.

  2. Navigate to Docker -> Services.

  3. In the NAME column, select demo-service-d01.

  4. Check the Current column to verify that demo-service-d01 has a status of Running.

AWS Use Cases

Use Cases supported for DuploCloud AWS

This section details common use cases for DuploCloud AWS.

Organization of use cases

Topics in this section are covered in the order of typical usage. Use cases that are foundational to DuploCloud such as Infrastructure, Tenant, and Hosts are listed at the beginning of this section; while supporting use cases such as Cost management for billing, JIT Access, Resource Quotas, and Custom Resource tags appear near the end.

Supported use cases for DuploCloud AWS

Step 6: Create a Load Balancer

Create a Load Balancer to expose the native Docker Service

Now that your DuploCloud Service is running, you have a mechanism to expose the containers and images in which your application resides. Since your containers are in a private network, you need a Load Balancer to make the application accessible.

In this step, we add a Load Balancer Listener to complete this network configuration.

Estimated time to complete Step 6: 15 minutes.

Prerequisites

Before creating a Load Balancer, verify that you completed the tasks in the previous tutorial steps. Using the DuploCloud Portal, confirm that:

Creating a Load Balancer using Native Docker

  1. In the Tenant list box, select dev01.

  2. Navigate to Docker -> Services.

  3. Click the Load Balancers tab.

  4. Click the Configure Load Balancer link. The Add Load Balancer Listener pane displays.

  5. From the Select Type list box, select Application LB.

  6. In the Container Port field, enter 3000: the port on which the application running inside the container image (duplocloud/nodejs-hello:latest) is running.

  7. In the External Port field, enter 80.

  8. From the Visibility list box, select Public.

  9. From the Application list box, select Docker Mode.

  10. In the Health Check field, enter /, indicating that you want the Kubernetes Health Check logs written to the root directory.

  11. From the Backend Protocol list box, select HTTP.

  12. Click Add.

When the LB Status card displays Ready, your Load Balancer is running and ready for use.

Securing the Load Balancer

Creating a Custom DNS Name

Creating an Infrastructure and Plan for AWS

Use the DuploCloud Portal to create an AWS Infrastructure and associated Plan

Creating an Infrastructure

  1. From the DuploCloud Portal, navigate to Administrator -> Infrastructure.

  2. Click Add.

  3. Define the Infrastructure by completing the fields on the Add Infrastructure form.

  4. Select Enable EKS to enable EKS for the Infrastructure, or select Enable ECS Cluster to enable an ECS Cluster during Infrastructure creation.

Cloud providers limit the number of Infrastructures that can run in each region. Refer to your cloud provider for further guidelines on how many Infrastructures you can create.

Viewing Infrastructure settings

  1. In the DuploCloud Portal, navigate to Administrator -> Infrastructure. The Infrastructure page displays.

  2. From the Name column, select the Infrastructure containing settings that you want to view.

  3. Click the Settings tab. The Infrastructure settings display.

Up to one instance (0 or 1) of an EKS or ECS is supported for each DuploCloud Infrastructure.

Configuring EKS features (optional)

You can customize your EKS configuration:

Configuring ECS features (optional)

Enable EKS endpoints

Specify EKS endpoints for an Infrastructure

AWS SDKs and the AWS Command Line Interface (AWS CLI) automatically use the default public endpoint for each service in an AWS Region. However, when you create an Infrastructure in DuploCloud, you can specify a custom Private endpoint, a custom Public endpoint, or Both public and private custom endpoints. If you specify no endpoints, the default Public endpoint is used.

Specifying public and private endpoints

  1. From the EKS Endpoint Visibility list box, select Public, Private, or Both public and private. If you select private or Both public and private, the Allow VPN Access to the EKS Cluster option is enabled.

  2. Click Advanced Options.

  3. Using the Private Subnet CIDR and Public Subnet CIDR fields, specify CIDRs for alternate public and private endpoints.

  4. Click Create.

Changing VPN visibility from public to private (optional)

  1. In the DuploCloud Portal, navigate to Administrator -> Infrastructure. The Infrastructure page displays.

  2. From the NAME column, select the Infrastructure.

  3. Click the Settings tab.

  4. From the Setting Name list box, select Enable VPN Access to EKS Cluster.

  5. Select Enable to enable VPN.

Changing EKS endpoint visibility (optional)

Modifying endpoints can incur an outage of up to thirty (30) minutes in your EKS cluster. Plan your update accordingly to minimize disruption for your users.

To modify the visibility for EKS endpoints you have already created:

  1. In the DuploCloud Portal, navigate to Administrator -> Infrastructure. The Infrastructure page displays.

  2. From the Name column, select the Infrastructure for which you want to modify EKS endpoints.

  3. Click the Settings tab.

  4. From the Setting Value list box, select the desired type of visibility for endpoints (private, public, or both).

  5. Click Set.

EKS Setup

Enable Elastic Kubernetes Service (EKS) for AWS by creating a DuploCloud Infrastructure

In the DuploCloud platform, a Kubernetes Cluster maps to a DuploCloud Infrastructure.

Start by creating a new Infrastructure in DuploCloud. When prompted to provide details for the new Infrastructure, select Enable EKS. In the EKS Version field, select the desired release.

Up to one instance (0 or 1) of an EKS is supported for each DuploCloud Infrastructure.

When the Infrastructure is in the ready state, as indicated by a Complete status, navigate to Kubernetes -> Services and select the Infrastructure from the NAME column to view the Kubernetes configuration details, including the token and configuration for kubectl.

When you create Tenants in an Infrastructure, a namespace is created in the Kubernetes cluster with the name duploservices-TENANT_NAME

Step 7: Test the Application

Test the application to ensure you get the results you expect.

Estimated time to complete Step 7 and finish tutorial: 5 minutes.

Prerequisites

Before testing your application, verify that you completed the tasks in the previous tutorial steps. Using the DuploCloud Portal, confirm that:

Testing the Application

  1. In the Tenant list box, select dev01.

  2. Navigate to Docker -> Services. The Services page displays.

  3. From the Name column, select demo-service-d01.

  4. Click the Load Balancers tab. The Application Load Balancer configuration is displayed.

  1. Open a browser instance and paste the DNS in the URL field of your browser.

  2. Press ENTER. A web page with the text Hello World! is displayed, from the JavaScript program residing in your Docker Container running in demo-service-d01, which is exposed to the web by your Load Balancer.

It can take from five to fifteen (5-15) minutes for the DNS Name to become active once you launch your browser instance to test your application.

Congratulations! You have just launched your first web service on DuploCloud!

Reviewing What You Learned

In this tutorial, your objective was to create a cloud environment to deploy an application for testing purposes, and to understand how the various components of DuploCloud work together.

The application rendered a simple web page with text, coded in JavaScript, from software application code residing in a Docker container. You can use this same procedure to deploy much more complex cloud applications.

In the previous steps, you:

Cleaning Up Your Tutorial Environment

In this tutorial, you created many artifacts for testing purposes. Clean them up so others can run this tutorial using the same names for Infrastructure and Tenant.

The NONPROD Infrastructure is deleted and you have completed the clean-up of your test environment.

Enable EKS logs

Enable logging functionality for EKS

Enabling EKS logging while creating an Infrastructure

Enabling EKS logging for an existing Infrastructure

Enable EKS logging for an Infrastructure that you have already created.

  1. In the DuploCloud Portal, navigate to Administrator -> Infrastructure.

  2. From the NAME column, select the Infrastructure for which you want to enable EKS logging.

  3. Click the Settings tab.

  4. Click Add. The Infra - Set Custom Data pane displays.

  5. From the Setting Name list box, select EKS ControlPlane Logs.

  6. In the Setting Value field, enter: api;audit;authenticator;controllerManager;scheduler

  7. Click Set. The EKS ControlPlane Logs setting is displayed in the Settings tab.

Enable ECS logging

Enable ECS Elasticsearch logging for containers at the Tenant level

To generate logs for AWS ECS clusters, you must first create an Elasticsearch logging container. Once auditing is enabled, your container logging data can be captured for analysis.

Prerequisites

Enabling ECS ElasticSearch logging

  1. In the DuploCloud Portal, navigate to Administrator -> Tenant. The Tenant page displays.

  2. From the Name column, select the Tenant that is running the container for which you want to enable logging.

  3. Click the Settings tab.

  4. Click Add. The Add Tenant Feature pane displays.

  5. From the Select Feature list box, select Other. The Configuration field displays.

  6. In the Configuration field, enter Enable ECS ElasticSearch Logging.

  7. In the field below the Configuration field, enter True.

  8. Click Add. In the Settings tab, Enable ECS ElasticSearch Logging displays a Value of True.

Verifying ECS logging is enabled

You can verify that ECS logging is enabled for a specific container.

  1. In the DuploCloud Portal, navigate to Cloud Services -> ECS.

  2. In the Task Definitions tab, select the Task Definition Family Name in which your container is defined.

  3. Click the Task Definitions tab.

In the Container - 1 area, in the Container Other Config field, your LogConfiguration is displayed.

In the Container-2 area, another container is created by DuploCloud with the name log_router.

Enable Cluster Autoscaler

Enable Cluster Autoscaler for a Kubernetes cluster

Configuring Cluster Autoscaler for your Infrastructure

The Cluster AutoScaler automatically adjusts the number of nodes in your cluster when Pods fail or are rescheduled onto other nodes.

  1. In the DuploCloud Portal, navigate to Administrator -> Infrastructure. The Infrastructure page displays.

  2. From the NAME column, select the Infrastructure with which you want to use Cluster AutoScaler.

  3. Click the Settings tab.

  4. Click Add. The Add Infra - Set Custom Data pane displays.

  5. From the Setting Name list box, select Cluster Autoscaler.

  6. Select Enable to enable EKS.

  7. Click Set. Your configuration is displayed in the Settings tab.

Upgrading the EKS version

Upgrade the Elastic Kubernetes Service (EKS) version for AWS

AWS frequently updates the EKS version based on new features that are available in the Kubernetes platform. DuploCloud automates this upgrade in the DuploCloud Portal.

IMPORTANT: An EKS version upgrade can cause downtime to your application depending on the number of replicas you have configured for your services. Schedule this upgrade outside of your business hours to minimize disruption.

About the upgrade process

DuploCloud notifies users when an upgrade is planned. The upgrade process follows these steps:

  1. A new EKS version is released.

  2. DuploCloud adds support for the new EKS version.

  3. DuploCloud tests all changes and new features thoroughly.

  4. DuploCloud rolls out support for the new EKS version in a platform release.

  5. The user updates the EKS version.

Updating the EKS version:

  • Updates the EKS Control Plane to the latest version.

  • Updates all add-ons and components.

  • Relaunches all Hosts to deploy the latest version on all nodes.

After the upgrade process completes successfully, you can assign allocation tags to Hosts.

Starting the upgrade

Upgrading the EKS version

  1. Click Administrator -> Infrastructure.

  2. Select the Infrastructure that you want to upgrade to the latest EKS version.

  3. Select the EKS tab. If an upgrade is available for the Infrastructure, an Upgrade link appears in the Value column.

  4. Click the Upgrade link. The Upgrade EKS Cluster pane displays.

  1. From the Target Version list box, select the version to which you want to upgrade.

  2. From the Host Upgrade Action, select the method by which you want to upgrade hosts.

  3. Click Start. The upgrade process begins.

Updating EKS Components (Add-ons)

  1. Click Administrator -> Infrastructure.

  2. Select the Infrastructure with components you want to upgrade.

  3. Select the EKS tab. If an upgrade is available for the Infrastructure components, an Upgrade Components link appears in the Value column.

  4. Click the Upgrade link. The Upgrade EKS Cluster Components pane displays.

  1. From the Host Upgrade Action, select the method by which you want to upgrade hosts.

  2. Click Start. The upgrade process begins.

Monitoring upgrades

The EKS Upgrade Details page displays that the upgrade is In Progress.

Find more details about the upgrade by selecting your Infrastructure from the Infrastructure page. Click the EKS tab, and then click Show Details.

Upgrade completion

When you click Show Details, the EKS Upgrade Details page displays the progress of updates for all versions and Hosts. Green checkmarks indicate successful completion in the Status list. Red Xs indicate Actions you must take to complete the upgrade process.

Assign allocation tags

If any of your Hosts use allocation tags, you must assign allocation tags to the Hosts:

  1. After your Hosts are online and available, navigate to Cloud Services -> Hosts.

  2. Select the host group tab (EC2, ASG, etc.) on the Hosts screen.

  3. Click the Add button.

  4. Name the Host and provide other configuration details on the Add Host form.

  5. Select Advanced Options.

  6. Edit the Allocation Tag field.

  7. Click Create and define your allocation tags.

  8. Click Add to assign the allocation tags to the Host.

Setting Tenant expiration

Manage Tenant expiry settings in the DuploCloud Portal

Managing Tenant Expiration

In the DuploCloud Portal, configure an expiration time for a Tenant. At the set expiration time, the Tenant and associated resources are deleted.

  1. In the DuploCloud Portal, navigate to Administrator -> Tenants. The Tenants page displays.

  2. From the Name column, select the Tenant for which you want to configure an expiration time.

  3. From the Actions list box, select Set Tenant Expiration. The Tenant - Set Tenant Expiration pane displays.

  4. Select the date and time (using your local time zone) when you want the Tenant to expire.

  5. Click Set. At the configured day and time, the Tenant and associated resources will be deleted.

The Set Tenant Expiration option is not available for Default or Compliance Tenants.

Adding Hosts

Add a Host (virtual machine) in the DuploCloud Portal.

DuploCloud AWS supports EC2, ASG, and BYOH (Bring Your Own Host) types. Use BYOH for any VMs that are not EC2 or ASG.

Adding a Host (VM)

  1. Ensure you have selected the appropriate Tenant from the Tenant list box at the top of the DuploCloud Portal.

  2. In the DuploCloud Portal, navigate to Cloud Services -> Hosts.

  3. Select the tab corresponding to the type of Host you want to create (EC2, ASG, or BYOH).

  4. Click Add. The Add Host page displays.

  5. Complete the fields as required for your architecture.

  6. Click Add. The Host that you added is displayed in the appropriate tab (EC2, ASG, or BYOH).

The EKS Image ID is the image published by AWS specifically for an EKS worker in the version of Kubernetes deployed at Infrastructure creation time.

Creating Kubernetes StorageClass and PVC constructs in the DuploCloud Portal.

Supported Host Actions

  1. From the DuploCloud Portal, navigate to Cloud Services -> Hosts.

  2. Select the Host name from the list.

  3. From the Actions list box, you can select Connect, Host Settings, or Host State to perform the following supported actions:

Connect:

Host Settings:

Host State:

Adding custom code for EC2 or ASG Hosts

Creating a Tenant (Environment)

Using DuploCloud Tenants for AWS

In AWS, cloud features such as AWS resource groups, AWS IAM, AWS security groups, KMS keys, as well as Kubernetes Namespaces, are exposed in Tenants which reference their configurations.

Creating a Tenant

  1. Navigate to Administrator -> Tenant in the DuploCloud Portal and click Add. The Create a Tenant pane displays.

  2. In the Name field, enter a name for the Tenant. Choose unique names that are not substrings of one another, for example, if you have a Tenant named dev, you cannot create another named dev2. We recommend using distinct numerical suffixes like dev01 and dev02.

  3. In the Plan list box, select the Plan to associate the Tenant with.

  4. Click Create. The Tenant is created.

Adding Shared Hosts

Deploy Hosts in one Tenant that can be accessed by Kubernetes (K8s) Pods in a separate Tenant.

Shared Hosts allow workloads to run on the same set of virtual machines (VMs), making better use of resources across multiple Tenants. DuploCloud now supports Services, Jobs, and CronJobs on shared Hosts, providing more flexibility for running long-running services, batch jobs, and scheduled tasks.

DuploCloud supports shared Hosts for:

  • Services

  • Jobs

  • CronJobs

Configuring Tenants to allow Host sharing

To enable Host sharing, configure one Tenant to share its Hosts, and another Tenant to run K8s Pods on any Host.

Enabling a Tenant to share its Hosts

  1. In the DuploCloud Portal, navigate to Administrator -> Tenant.

  2. From the Tenant list box, select the Tenant that will share its Host.

  3. Click the Settings tab.

  4. Click Add. The Add Tenant Feature pane displays.

  5. From the Select Feature item list, select Allow hosts to run K8S pods from other tenants.

  6. Select Enable.

  7. Click Add. This Tenant's Hosts can now run Pods from other Tenants.

Enabling a Tenant to run Pods on shared Hosts

  1. In the DuploCloud Portal, navigate to Administrator -> Tenant.

  2. From the Tenant list, select the Tenant that will run Pods on the shared Host.

  3. Select the Settings tab.

  4. Click Add. The Add Tenant Feature pane displays.

  5. From the Select Feature item list, select Enable option to run K8S pods on any host.

  6. Select Enable.

  7. Click Add. This Tenant can now run Pods on other Tenant's Hosts.

Creating Services, Jobs, and CronJobs on Shared Hosts

After configuring Tenant settings to allow Host sharing, create the resources you want to run on the shared Hosts.

Creating a Service to run on a shared Host

  1. From the Tenant list box, select the Tenant that will run Pods on the shared Host.

  2. In the DuploCloud Portal, navigate to Kubernetes -> Services.

  3. In the Services tab, click Add. The Add Service page displays.

  4. Fill in the Service Name, Cloud, Platform, and Docker Image fields. Click Next.

  5. Enable Run on Any Host.

  6. Click Create. A Service running on the shared Host is created.

Creating a Job or CronJob to run on a Shared Host

DuploCloud supports running Jobs and CronJobs on shared Hosts for AWS.

  1. On the Add Kubernetes Job or Add Kubernetes CronJob page, enable Run on Any Host.

  2. Click Create to deploy the Job or CronJob on the shared Host.

Adding Dedicated Hosts

Control placement of EC2 instances on a physical server with a Dedicated Host

Adding Dedicated Hosts to launch EC2 instances

Use Dedicated Hosts to launch Amazon EC2 instances and provide additional visibility and control over how EC2 instances are placed on a physical server; enabling you to use the same physical server, if needed.

Prerequisites

Configure the DuploCloud Portal to allow for the creation of Dedicated Hosts.

  1. In the DuploCloud Portal, navigate to Administrator -> System Settings.

  2. Click the System Config tab.

  3. Click Add. The Add Config pane displays.

  4. In the Config Type field, select Flags.

  5. In the Key field, select Allow Dedicated Host Sharing.

  6. In the Value field, select true.

  7. Click Submit. The configuration is displayed in the System Config tab.

Creating Dedicated Hosts to launch EC2 instances

  1. In the DuploCloud Portal, navigate to Cloud Services -> Hosts.

  2. In the EC2 tab, click Add. The Add Host page displays.

  3. After completing the required fields to configure your Host, select Advanced Options. The advanced options display.

  4. In the Dedicated Host ID field, enter the ID of the Dedicated Host. The ID is used to launch a specific instance on a Dedicated Host. See the screenshot below for an example.

  5. Click Add. The Dedicated Host is displayed in the EC2 tab.

Viewing Dedicated Hosts to launch EC2 instances

After you create Dedicated Hosts, view them by doing the following:

  1. In the DuploCloud Portal, navigate to Cloud Services -> Hosts.

  2. In the EC2 tab, select the Host from the Name column. The Dedicated Host ID card on the Host page displays the ID of the Dedicated Host.

Hosts (VMs)

Adding EC2 hosts in DuploCloud AWS

Once you have the Infrastructure (Networking, Kubernetes cluster, and other standard configurations) and an environment (Tenant) set up, the next step is to launch EC2 virtual machines (VMs). You create VMs to be:

  • EKS Worker Nodes

  • Worker Nodes (Docker Host), if the built-in container orchestration is used.

DuploCloud AWS requires at least one Host (VM) to be defined per AWS account.

You also create VMs if Regular nodes are not part of any container orchestration. For example, a user manually connects and installs apps, as when using Microsoft SQL Server in a VM, Running an IIS application, or such custom use cases.

While all the lower-level details like IAM roles, Security groups, and others are abstracted away from the user (as they are derived from the Tenant), standard application-centric inputs must be provided. This includes a Name, Instance size, Availability Zone choice, Disk size, Image ID, etc. Most of these are optional, and some are published as a list of user-friendly choices by the admin in the plan (Image or AMI ID is one such example). Other than these AWS-centric parameters, there are two DuploCloud platform-specific values to be provided:

  • EKS Linux: If this is to be added to the EKS cluster. For example, EKS is the chosen approach for container orchestration

  • None: If the VM is going to be used for non-Container Orchestration purposes and contents inside the VM will be self-managed by the user

Allocation Tags (Optional): If the VM is being used for containers, you can set a label on it. This label can then be specified during docker app deployment to ensure the application containers are pinned to a specific set of nodes. Thus, you can further split a tenant into separate server pools and deploy applications.

If a VM is being used for container orchestration, ensure that the Image ID corresponds to an Image for that container orchestration. This is set up for you. The list box will have self-descriptive Image IDs. Examples are EKS Worker, Duplo-Docker, Windows Docker, and so on. Anything that starts with Duplo would be an image for the Built-in container orchestration.

Launch Templates

Managing Launch Template Versions for Autoscaling Groups (ASG) in DuploCloud

This feature is applicable to both Kubernetes Node ASGs and Docker Native ASGs.

Editing launch templates

  1. Select the appropriate Tenant from the Tenant list box.

  2. For Kubernetes-managed ASGs (Nodes), navigate to Kubernetes -> Nodes. For Docker Native ASGs (EC2 Instances Running Docker Directly), Navigate to Cloud Services -> Hosts.

  3. Select the ASG tab.

  4. In the NAME column, click on the ASG you wish to edit launch templates for.

  5. Select the Launch Templates tab.

  1. Configure the following launch template settings:

    • Template Version Description: Provide a description for the new version.

    • Instance Type: Select the type of EC2 instance to use for this version (e.g., t3.medium, m5.large, etc.).

    • Image ID: Specify the Amazon Machine Image (AMI) ID for the instances in this version. This defines the base image for launching new instances.

    • Set as Default: Optionally, set the newly created version as the default launch template for the ASG. The default version automatically applies to all newly launched instances in the ASG.

  2. Click Submit. The updated launch template version is created.

Changing the default launch template version

In DuploCloud, you can manage multiple versions of a launch template for your Auto Scaling Group (ASG). You may want to change the default version to ensure that new instances are launched with the desired configuration.

To change the default launch template version:

  1. Select the Tenant from the Tenant list box.

  2. For Kubernetes-managed ASGs (Nodes), navigate to Kubernetes -> Nodes. For Docker Native ASGs (EC2 Instances Running Docker Directly), Navigate to Cloud Services -> Hosts.

  3. Select the ASG tab and click the name of the appropriate ASG.

  4. Click on the Launch Templates tab.

  5. Select Set as Default.

Connect EC2 instance

Connect an EC2 instance with SSH by Session ID or by downloading a key

Once an EC2 Instance is created, you connect it with SSH either by using Session ID or by downloading a key.

Connecting to an EC2 Linux instance using SSH

In the DuploCloud Portal, navigate to Cloud Services -> Hosts and select the host to which you want to connect.

Connect using session ID

After you select the Host, on the Host's page click the Actions menu and select SSH. A new browser tab opens and you can connect your Host using SSH with by session ID. Connection to the host launches in a new browser tab.

Connect by downloading a key

  1. After you select the Host, on the Host's page click the Actions menu and select Connect -> Connection Details. The Connection Info for Host window opens. Follow the instructions to connect to the server.

  2. Click Download Key.

Disable the option to download the SSH key

If you don't want to display the Download Key button, disable the button's visibility.

  1. In the DuploCloud Portal, navigate to Administrator -> System Settings.

  2. Click the System Config tab.

  3. Click Add. The Add Config pane displays.

  4. From the Config Type list box, select Flags.

  5. From the Key list box, select Disable SSH Key Download.

  6. From the Value list box, select true.

  7. Click Submit.

Configuring admin-only access to the SSH key

Configuring the following system setting disables SSH access for read-only users. Once this setting is configured, only administrator-level users can access SSH.

  1. From the DuploCloud Portal, navigate to Administrator -> Systems Settings.

  2. Select the Settings tab, and click Add. The Update Config Flags pane displays.

  3. From the Config Type list box, select Flags.

  4. In the Key list box, select Admin Only SSH Key Download.

  5. In the Value field list box, select true.

  6. Click Submit. The setting is configured and SSH access is limited to administrators only.

So far in this DuploCloud AWS tutorial, you created a VPC network with configuration templates (), an isolated workspace (), and an (optionally).

Now you need to create a DuploCloud Service on top of your Infrastructure and configure it to run and deploy your application. In this tutorial path, we'll deploy an application using Docker containers and leveraging .

running Docker containers

For a deeper comparison of EKS and ECS, consult.

Create a Host (EC2 Instance) to serve as an .

To set up a Web Application Firewall (WAF) for a production application, follow the steps in the .

In this tutorial step, for the Application Load Balancer (ALB) you created in , you will:

Enable access logging to monitor details and record incoming traffic data. Access logs are crucial for analyzing traffic patterns and identifying potential threats, but they are not enabled by default. You must manually activate them in the Load Balancer settings.

Protect against requests that contain .

An exist, both named NONPROD.

The NONPROD infrastructure has EKS.

A Tenant named .

A Host named .

A Service named .

An has been created.

To skip this step, proceed to .

Once the Load Balancer is created, DuploCloud programs an autogenerated DNS Name registered to demo-service in the domain. Before you create production deployments, you must Hosted Zone domain (if DuploCloud has not already created one for you). For this tutorial, it is not necessary to create a domain.

An exist, both named NONPROD.

The NONPROD infrastructure has .

A Tenant named .

A Host named .

A Service named .

An has been created.

An exist, both named NONPROD.

The NONPROD infrastructure has .

A Tenant named .

A Host named .

A Service named .

An exist, both named NONPROD.

The NONPROD infrastructure has EKS.

A Tenant named .

A Host named .

A Service named .

An has been created.

Note that if you skipped and/or , the configuration in the Other Settings and DNS cards appears slightly different from the configuration depicted in the screenshot below. These changes do not impact you in testing your application, as these steps are optional. You can proceed to test your app with no visible change in the output of the deployable application.

In the DNS status card, click the Copy Icon ( ) to copy the DNS address displayed to your clipboard.

named NONPROD: a Virtual Private Cloud instance backed by an EKS-enabled Kubernetes cluster.

named dev01 in Infrastructure NONPROD. While generating the Infrastructure, DuploCloud created a set of templates () to configure multiple AWS and Kubernetes components needed for your environment.

named host01, providing the application with storage resources.

named demo-service to connect the Docker containers and associated images housing your application code to the DuploCloud Tenant environment.

to expose your application via ports and backend network configurations.

as expected by testing the DNS Name exposed by the Load Balancer Listener.

To delete the dev01 tenant , then return to this page. As you learned, the Tenant segregates all work in one isolated environment, so deleting the Tenant you created cleans up most of your artifacts.

Finish by deleting the NONPROD Infrastructure. In the DuploCloud Portal, navigate to Administrator -> Infrastructure. Click the Action menu icon () for the NONPROD row and select Delete.

Thanks for completing this tutorial and proceed to the next section to learn more about .

You enabled ECS cluster creation when you created the . In order to create a Service using ECS, you first need to create a that serves as a blueprint for your application.

An exist, both named NONPROD.

The NONPROD infrastructure has .

A Tenant named .

running Docker containers.

running Docker containers.

Before creating a Host (essentially a ), verify that you completed the tasks in the previous tutorial steps. Using the DuploCloud Portal, confirm that:

An exist, both named NONPROD.

A Tenant named .

An exist, both named NONPROD.

A Tenant named .

An EC2 Host named .

On the Add Service page, you can also specify optional Environment Variables (EVs) such as databases, Hosts, ports, etc. You can also pass using EVs for testing purposes.

Once the Service is Running, you can check the logs for additional information. On the Services page, select the Containers tab, click the menu icon ( ) next to the container name, and select Logs.

and

and

and

link

An exist, both named NONPROD.

A Tenant named .

An EC2 Host named .

A Service named .

Select the Service demo-service-d01 .

If you want to secure the load balancer created, you can follow the steps specified

You can modify the DNS name by clicking Edit in the DNS Name card in the Load Balancers tab. For more info about DNS setup and custom DNS names, see the .

Optionally, select Advanced Options to specify additional configurations (such as ).

Click Create. The Infrastructure is created and listed on the Infrastructure page. DuploCloud automatically creates a (with the same Infrastructure name) with the Infrastructure configuration.

.

Enable EKS endpoints, logs, Cluster Autoscaler, and more. For information about configuration options, see these topics.

You can customize your ECS configuration. See the topic for information about configuration options.

For more information about AWS Endpoints, see the .

Follow the steps in the section . Before clicking Create, specify EKS Endpoint Visibility.

To change VPN visibility from public to private after you have , follow these steps.

In the EKS Endpoint Visibility row, in the Actions column, click the ( ) icon and select Update Setting. The Infra - Set Custom Data pane displays.

Click Set. When you , the Allow VPN Access to the EKS Cluster option will be enabled.

In the EKS Endpoint Visibility row, in the Actions column, click the ( ) icon and select Update Setting. The Infra - Set Custom Data pane displays.

Optionally, and .

The worker nodes and remaining workload setup are described in the topic.

Creating an Infrastructure with EKS can take some time. See the section for details about other elements on the Add Infrastructure form.

An exist, both named NONPROD.

A Tenant named .

An EC2 Host named .

A Service named .

A Load Balancer .

In the DNS status card on the right side of the Portal, click the Copy Icon ( ) to copy the DNS address displayed to your clipboard.

named NONPROD, a Virtual Private Cloud instance, backed by an AKS-enabled Kubernetes cluster.

named dev01 in Infrastructure NONPROD. While generating the Infrastructure, DuploCloud created a set of templates () to configure multiple Azure and Kubernetes components needed for your environment.

named host01, so your application has storage resources.

named demo-service-d01 to connect the Docker containers and associated images, in which your application code resides, to the DuploCloud Tenant environment.

to expose your application via ports and backend network configurations.

as expected by testing the DNS Name exposed by the Load Balancer Listener.

To delete the dev01 tenant , then return to this page. As you learned, the Tenant segregates all work in one isolated environment, so deleting the Tenant that you created cleans up most of your artifacts.

Finish by deleting the NONPROD Infrastructure. In the DuploCloud Portal, navigate to Administrator -> Infrastructure. Click the Action menu icon () for the NONPROD row and select Delete.

Thanks for completing this tutorial and proceed to the next section to learn more about .

Follow the steps in the section . In the EKS Logging list box, select one or more ControlPlane Log types.

Define at least one .

Enable the feature.

Menu icon ( ) in the row of the task definition and select Edit Task Definition. The Edit Task Definition page displays your defined Containers.

For additional information about the EKS version upgrade process with DuploCloud, see the .

To connect to the Host using SSH, .

If no Image ID is available with a prefix of EKS, copy the AMI ID for the desired EKS version by referring to this . Select Other from the Image ID list box and paste the copied AMI ID in the Other Image ID field. Contact the DuploCloud Support team via your Slack channel if you have questions or issues.

See .

If you add custom code for EC2 or ASG Hosts using the Base64 Data field, your custom code overrides the code needed to start the EC2 or ASG Hosts and the Hosts cannot connect to EKS. Instead, to add custom code directly in EKS.

For more information about DuploCloud Tenants, see the topic in the DuploCloud Common Components documentation.

For information about granting Cross-Tenant access to resources, see .

Follow the steps in the DuploCloud documentation to create a or .

Agent Platform: This is applicable if the VM is going to be used as a host for by the platform. The choices are:

Linux Docker: If this is to be used for hosting Linux containers using the

Docker Windows: If this is to be used for hosting Windows containers using the

Launch templates define the configuration for instances in an Auto Scaling Group (ASG). They specify key settings such as the instance type, AMI, and other parameters that determine how new instances are launched. DuploCloud allows you to create multiple launch template versions, each with its own unique settings (e.g., instance type, AMI, etc.). You can easily switch between versions as your requirements evolve. One version can be set as the default, and updates to the launch template can be applied to both new and existing instances by using the.

In the row of the version you wish to update, click the menu icon (), and select Edit (Create a new version). The Edit Launch Template (Create a new version) pane displays.

Click the menu icon () on the version you want to set as the default.

The selected version will now be the default for any new instances launched in the ASG. Existing instances will remain unchanged. To update existing instances, use the feature.

Infrastructure and Plan
Tenant
RDS database instance
AWS Elastic Kubernetes Service (EKS)
Creating an AWS ECS Service in DuploCloud
Creating a DuploCloud native Docker Service
this AWS blog
AWS EKS worker node
Web Application Firewall procedure
Step 6
HTTP message
invalid headers
Infrastructure and Plan
dev01 has been created
host01 has been created
demo-service has been created
Load Balancer
test your application and complete this tutorial
Route 53
create the Route 53
Infrastructure and Plan
dev01 has been created
host01 has been created
demo-service has been created
HTTPS ALB Load Balancer
Infrastructure and Plan
dev01 has been created
host01 has been created
demo-service has been created
Infrastructure and Plan
dev01 has been created
host01 has been created
demo-service has been created
HTTPS Application Load Balancer
Step 7
Step 8
Created a DuploCloud Infrastructure
Created a Tenant
Plan
Created an EC2 host
Created a Service
Created an ALB Load Balancer Listener
follow these instructions
using DuploCloud with AWS
Infrastructure
Task Definition
Infrastructure and Plan
dev01 has been created
Creating an AWS EKS Service in DuploCloud
Creating an AWS ECS Service in DuploCloud
Virtual Machine
Infrastructure and Plan
dev01 has been created
Infrastructure and Plan
dev01 has been created
host01 has been created
Docker credentials
Enabled
EKS Enabled
EKS Enabled
Enabled
ECS Enabled
Verified that your web page rendered
Establish VPN connections for private endpoints
custom S3 Bucket for auditing
upgrading EKS components
#!/bin/bash
set -o xtrace
/etc/eks/bootstrap.sh duploinfra-MYINFRA --kubelet-extra-args '--node-labels=tenantname=duploservices-MYTENANT'

# Custom user code:
echo "hello world"
Shared Hosts in AWS
Shared VMs in Azure
admin-only access to the SSH key
Lambda JAR with S3
Specify a Lambda architecture
Lambdas with Ephemeral Storage
Lambda Dead Letter Queues
Infrastructure and Plan
EKS Initial setup
upgrade
ECS Initial setup
Tenant
Hosts
Snapshots
Auto Scaling host groups
Kubernetes Jobs
CronJobs
Auditing
Logging
Diagnostics and Metrics
Faults and alerts
AWS Console
JIT Access
Cost management for billing
Resource Quotas
Big Data and ETL
Custom Resource (CR) tags
Infrastructure and Plan
dev01 has been created
host01 has been created
demo-service-d01 has been created
that you created
here.
DNS Configuration documentation
Public and Private CIDR Endpoints
Plan
Add VPC endpoints
EKS Setup
ECS Setup
AWS documentation
Creating an Infrastructure
created an Infrastructure
create an Infrastructure
enable logging
custom EKS endpoints
Tenant
Infrastructure
Infrastructure and Plan
dev01 has been created
host01 has been created
demo-service-d01 has been created
has been created
Created a DuploCloud Infrastructure
Created a Tenant
Plan
Created an EC2 host
Created a Service
Created an ALB Load Balancer Listener
follow these instructions
using DuploCloud with AWS
Creating an Infrastructure
Service and container
follow this procedure
AWS documentation
Kubernetes StorageClass and PVC
Tenants
this section in the User Administration section
container orchestration
Built-in Container orchestration
Built-in Container orchestration
Instance Refresh feature
Instance Refresh
Verified that your web page rendered
use this procedure
ECR repositories
AWS Auto Scaling Groups (ASG)
Creating Services using Autoscaling Groups
SNS with FIFO (First-In-First-Out) topics.
ElastiCache Valkey
Automatic Failover for Redis
Synch AWS Redis with Amazon CloudWatch Logs
serverless Kafka clusters
change the configuration of a Kafka Cluster
retain backups when a Cloud SQL instance is deleted
SNS Pub/Sub topic subscriptions
Configure session timeout duration for user logins.
Manage automatic VPN access for new Okta users.
ECS with EC2 Capacity Provider

SSH

Connection Details

Host Details

View Host details in the Host Details YAML screen.

Create AMI

Create Snapshot

Update User Data

Update the Host user data.

Change Instance Size

Resize a Host instance to accommodate the workload.

Update Auto Reboot Status Check

Start

Start the Host.

Reboot

Reboot the Host.

Stop

Stop the Host.

Hibernate

Terminate Host

Terminate the Host.

Autoscaling Groups (ASG)

Create Autoscaling groups to scale EC2 instances to your workload

Configure Autoscaling Groups (ASG) to ensure the application load is scaled based on the number of EC2 instances configured. Autoscaling detects unhealthy instances and launches new EC2 instances. ASG is also cost-effective as EC2 Instances are dynamically created per the application requirement within minimum and maximum count limits.

Creating Autoscaling Groups (ASG)

  1. In the DuploCloud Portal, navigate to Cloud Services -> Hosts.

  2. In the ASG tab, click Add. The Add ASG page is displayed.

  3. In the Friendly Name field, enter the name of the ASG.

  4. Select Availability Zone and Instance Type.

  5. In the Instance Count field, enter the desired capacity for the Autoscaling group.

  6. In the Minimum Instances field, enter the minimum number of instances. The Autoscaling group ensures that the total number of instances is always greater than or equal to the minimum number of instances.

  7. In the Maximum Instances field, enter the maximum number of instances. The Autoscaling group ensures that the total number of instances is always less than or equal to the maximum number of instances.

  8. Optionally, select Use for Cluster Autoscaling.

  9. Select Advanced Options. The Advanced Options section displays.

  10. Fill in additional fields as needed for your ASG.

  11. Click Add. Your ASG is added and displayed in the ASG tab.

  1. In the Friendly Name field, enter the name of the ASG.

  2. Select Availability Zone and Instance Type.

  3. In the Instance Count field, enter the desired capacity for the Autoscaling group.

  4. In the Minimum Instances field, enter the minimum number of instances. The Autoscaling group ensures that the total number of instances is always greater than or equal to the minimum number of instances.

  5. In the Maximum Instances field, enter the maximum number of instances. The Autoscaling group ensures that the total number of instances is always less than or equal to the maximum number of instances.

  6. Optionally, select Use for Cluster Autoscaling.

  7. Optionally select Advanced Options, and complete additional fields as needed.

  8. Click Add. Your ASG is added and displayed in the ASG tab.

Viewing Hosts in Autoscaling Groups

To view the hosts in an Autoscaling group, follow these steps:

  1. In the DuploCloud Portal, navigate to Cloud Services -> Hosts.

  2. Select the ASG tab.

  3. In the NAME column, select the ASG for which you want to view Hosts.

  4. Select the Hosts tab. A list of individual Hosts displays.

Creating an Amazon EC2 Autoscaling Policy

Establish an to work directly in the AWS Console.

View connection details (connection type, address, user name, visibility) and .

Set the .

Create a of the Host at a specific point.

Enable or disable . Set the number of minutes after the AWS Instance Status Check fails before automatically rebooting.

(temporarily freeze) the Host.

For cluster autoscaling, in your Infrastructure before creating an ASG.

Refer to AWS for detailed steps on creating Scaling policies for the Autoscaling Group.

AMI
snapshot
Auto Reboot
Hibernate
enable the Cluster Autoscaler option
Documentation
SSH connection
download the key
Table, Queue, and Container storage types
private endpoints
creating a GCE VM
Configure a friendly image name under Plan.
minimum number of ports per VM instance
GCP Hosts
GCE VMs
Instance (Worker Nodes) or IP (Pod IPs) target types
Configure K8s Ingress redirect
Ingress Health Checks annotations
Ingress Health Checks annotations
creating an AKS cluster
Amazon OpenSearch Service domain without EBS
MSSQL Server databases
Azure agent pools
Azure agent pools
Azure agent pools
Specify a computer name
migration from Flux v1 to Flux v2
single, or multi-region data location types
Redis databases
Jobs
Add a Web App Firewall URL
Kubernetes Job
Update or skip a final RDS snapshot
default automated backup retention period
RDS to a particular point in time
Support to configure RDS Automatic Backup Retention
Billing option is available per Tenant
Disable faults for Target Groups without instances.
Set a delivery delay for SQS Queues
Skip faults for stopped Tenant instances.
Cloud SQL databases
Customize the text on the login button
Azure
Follow logs
Configure agents to install on specific Tenants.
creating an S3 bucket
Object Lock in S3 Buckets
S3 bucket policies
Configure custom prefix for S3
The DuploCloud Platform Features Diagram
The login screen for the DuploCloud Portal
The Search box in the DuploCloud Portal
The Create a Tenant pane
The Tenant list box
The Create an S3 Bucket pane
The Add Service page
The Add Load Balancer Listener pane
The DNS Name and Other Settings cards in the Load Balancers tab
The Add Host page
The Create a RDS page
The Create Alert pane
The Create Alert page for Metrics data
The Set Alert Notifications Config pane
The Services page with options for Container Shell and Host Shell displayed
The Metrics data for Nodes
The Containers tab for nginx Service with the Logs option highlighted
Logging for the nginx Service on the Observability page
The JIT AWS Console button on the Profile page
The kubeconfig file downloaded from DuploCloud
The Audit page
Audit event details
The DuploCloud Terraform Provider
GitHub Actions code
The SIEM Dashboard in DuploCloud
The Standards Dashboard in DuploCloud
A diagram of typical application engineering requirements
A visual representation of the work done by DuploCloud
A diagram of DuploCloud application deployment
DuploCloud pooled tenancy model
A visual representation of a DuploCloud shared cluster with separate namespace per tenant
A visual representation of a DuploCloud siloed cluster per Tenant with separate network infrastructure
A visual representation of a DuploCloud siloed account isolation and Tenant-per-customer
A visual representation of a hybrid of DuploCloud pooled tenancy model and shared cluster with a separate namespace-per-Tenant
The Capabilities tab for the NONPROD Plan in the DuploCloud Portal
The Add Infrastructure page in the DuploCloud Portal
The Plan Details pane in the DuploCloud Portal
The Help menu in the DuploCloud Portal
The Add Service page in the DuploCloud Platform
The Logging dashboard in the DuploCloud Portal
The Metrics dashboard in the DuploCloud Portal
The Audit dashboard in the DuploCloud Portal
The Add Config pane
The user menu accessible from the user icon in the upper right
OpenVPN Access Server login screen
The OpenVPN Access Server pane
The Import .ovpn profile dialog box
The VPN tab on the System Settings page in the DuploCloud Portal
The Add Tenant Security pane
The DNS tab for the DEFAULT Plan shows External and Internal Suffix values beginning with a dot (.)
The Services page with the Enable Docker Shell option highlighted
The Start Shell Service pane
The Start Shell Service pane
The ECS Service details page
The Create a RDS page
The RDS tab with the Fault/Alert Icon highlighted
RDS Database details page with the endpoint highlighted
The EC2 Add Host page
The EC2 tab with Host status Running
Add Service page
The Create a Tenant pane
Tenant page with Tenant dev01 using Plan NONPROD
Add Infrastructure page
DuploCloud Infrastructure NONPROD with the EKS card displaying Enabled
The NONPROD Infrastructure details page with Cluster Name displayed on the ECS tab
AWS architecture and configuration
The Load Balancers tab with the Other Settings Edit option highlighted
The Other Load Balancer Settings pane
The Other Settings card
The DNS Name card on the Load Balancers tab
The Add Load Balancer Listener pane
The Services details page with Ready LB Status highlighted
Web page with Hello World! displayed
The DuploCloud Tenant list box with dev01 selected
The Add Task Definition-Basic Options area
The Add Task Definition-Advanced Options page
A diagram of the DuploCloud Docker Service topology
EC2 Add Hosts page
The EC2 tab displays host01 with a status of Running
The Add Service page
The demo-service-d01 Service details page displaying a Running status
The details page for demo-service-d01-1
The Add Load Balancer Listener pane
The Services page with LB Status Ready
The DNS Name card in the Load Balancers tab
AWS Add Infrastructure page with highlighted Enable EKS and Enable ECS Cluster options
Settings tab on the Infrastructure page
Infrastructure page with EKS Endpoint Visibility field and Advanced Options for specifying custom subnet CIDRs
Infrastructure page with EKS Endpoint Visibility Private option preconfigured
Infra - Set Custom Data pane with Enable VPN Access to EKS Cluster option
Infra - Custom Data pane with Setting Value for EKS Endpoint Visibility
Add Infrastructure form with Enable EKS selected
Infrastructure page with Status Complete displayed
The Services Details page with the DNS status card highlighted.
A Browser instance displaying Hello World!
EKS Logging field with several ControlPLane Log types selected
Infra - Set Custom Data pane for setting EKS ControlPlane Logs
Settings tab with EKS ControlPlane Logs Value set
The Task Definition Family Name detail page with Task Definitions tab selected
Task Definitions tab menu with Edit Task Definition highlighted
Container - 1 area of the Task Definition editor with highlighted Container Other Config field for container1
Container - 2 area of the Task Definition editor displaying configuration for log_router container, created by DuploCloud
Infra - Set Custom Data pane for Cluster Autoscaler
Cluster Autoscaler configuraton enabled with Value true
The Upgrade EKS Cluster pane
EKS tab with component Upgrade available
Upgrade EKS Cluster Components pane
EKS Upgrade Details page displaying upgrade In Progress
Show Details button on the Infrastructure EKS tab with upgrade in progress
EKS Upgrade Details window with Status list and Actions to be performed
Allocation tags in the Add Host screen
The Tenants details page Action menu with Set Tenant Expiration selected.
The Tenant - Set Tenant Expiration pane
Add Host page
The Host Actions menu with Connect selected.
The Host Actions menu with Host Settings selected.
The Host Actions menu with Host State selected.
The Create a Tenant pane in the DuploCloud Portal
The Add Tenant Feature pane
Add Tenant Feature pane
The filled Add Service page, Basic Options.
The filled Add Service page, Advanced Options.
The Add Kubernetes Job page with the Run on Any Host option enabled
Add Config pane configured to Allow Dedicated Host Sharing
EC2 page with Advanced Options displayed including Dedciated Host ID
Dedicated Host ID card on the Host page displaying ID of the Dedicated Host
The Edit Launch Template (Create a new version) pane
Connection Info for Host window with Download Key button
Add Config pane with Disable SSH Key Download Key selected
The Update Config Flags pane
Add ASG page with Use for Cluster Autoscaling enabled
The Add ASG Advanced Options
The Add ASG page
ASG Advanced Options
The Hosts tab on the ASG Details page
Lifecycle Policies for EFS storage
Enable real-time alerts for autoscaling Kubernetes nodes.
Ability to add Logging Infra at Tenant Level
Cloud Armour Security Policies
Cross-Tenant access to restricted policy-based resources
AWS FAQs section on EKS version upgrades
Audit
On-premises Infrastructure
Secrets Manager
Kubernetes CronJob

AWS User Guide

Initial steps for AWS DuploCloud users

The DuploCloud platform installs in an EC2 instance within your AWS account. It can be accessed using a web interface, API, or Terraform provider.

You can log in to the DuploCloud portal, using single sign-on (SSO), with your GSuite or O365 login.

Before You Begin

Before getting started, complete the following steps:

  • Set up the DuploCloud Portal

  • Connect to the DuploCloud Slack channel for support from the DuploCloud team

Management Portal Scope

An overview of the scope of cloud provider resources (accounts) that a DuploCloud Portal can manage

Following is the scope of cloud provider resources (accounts) that a single DuploCloud Portal can manage:

Azure: A single DuploCloud Portal can manage multiple Azure subscriptions. Azure has native identity services like Azure Active Directory (Azure AD) and Entra ID, which provide managed identities that can be granted access across multiple subscriptions. DuploCloud inherits the permissions of these managed identities, allowing it to seamlessly access and manage resources across the Azure subscriptions it is connected to.

GCP: Similar to Azure, a single instance of DuploCloud can manage multiple GCP projects.

We implement the same experience, providing an account switcher on the login page and inside the Portal, as shown below.

Hosts

A conceptual overview of DuploCloud Hosts

Hosts (VMs) are a cornerstone of cloud infrastructure, essential for providing isolated, scalable, and flexible environments for running applications and services. Hosts can exist in various forms and configurations, depending on the environment and the technology stack.

For instructions to create a Host in DuploCloud, see the documentation for your specific cloud provider:

In DuploCloud, Hosts are virtualized computing resources provided by your cloud service provider (e.g., AWS EC2, Google Compute Engine, Azure VMs) or your organization's data center and managed by the DuploCloud Platform. They are used to provision scalable, on-demand infrastructure. DuploCloud abstracts the complexities of provisioning, configuring, and managing these Hosts. DuploCloud supports the following Host contexts:

  • Public Cloud: VMs provided by cloud providers and managed through the DuploCloud Platform.

  • Private Cloud: Virtualized environments managed within an organization's data center.

  • Combination of On-premises and Cloud: A mix of physical hosts, VMs, and cloud-hosted instances.

GCP

Read the and learn about DuploCloud terms like , , and

Read the section and ensure at least one person has administrator access

AWS: In AWS a single DuploCloud Portal manages one and only one AWS account. This is inline with the AWS IAM implementation i.e. even in native AWS IAM model the building blocks like IAM role, Instance profiles do not span multiple accounts. The cross account SCP policies are quite light weight. In fact AWS organizations was added almost 10 years after the launch of AWS. For example, when a user logs in using AWS Identity center, they have to choose an account and the session is scoped to that. See the picture below of the IAM login console.

DuploCloud Platform Overview
Infrastructure
Plan
Tenant
Access Control
AWS Host
Azure Host
GCP Host

Creating an ECS Service

Finish the Quick Start Tutorial by creating an ECS Service

Instead of creating a DuploCloud Service with AWS ECS, you can alternatively finish the tutorial by:

Deploying an AWS ECS Service in DuploCloud

To deploy your app with AWS ECS in this ECS tutorial, you:

  1. Create a Task Definition using ECS.

  2. Create a DuploCloud Service named webapp, backed by a Docker image.

  3. Expose the app to the web with a Load Balancer.

  4. Complete the tutorial by testing your application.

Estimated time to complete remaining tutorial steps: 30-40 minutes

Network Architecture and Configurations

Behind the scenes, the topology that DuploCloud creates resembles this low-level configuration in AWS.

Step 6: Test the Application

Test the application to ensure you get the results you expect

You can test your application using the DNS Name from the Services page.

Estimated time to complete Step 6 and finish tutorial: 5 minutes.

Prerequisites

Before testing your application, verify that you accomplished the tasks in the previous tutorial steps. Using the DuploCloud Portal, confirm that:

Testing the Application

  1. In the Tenant list box, select the dev01 Tenant that you created.

  2. Navigate to Cloud Services -> ECS.

  3. Click the Service Details tab.

  1. Open a browser and paste the DNS address in the URL field of your browser.

  2. Press ENTER. A web page with the text It works! displays, from the JavaScript program residing in your Docker Container that is running in sample-httpd-app, which is exposed to the web by your Application Load Balancer.

It can take from five to fifteen (5-15) minutes for the Domain Name to become active once you launch your browser instance to test your application.

Congratulations! You have just launched your first web service on DuploCloud!

Reviewing What You Learned

In this tutorial, your objective was to create a cloud environment to deploy an application for testing purposes, and to understand how the various components of DuploCloud work together.

The application rendered a simple web page with text, coded in JavaScript, from software application code residing in a Docker container. You can use this same procedure to deploy much more complex cloud applications.

In the previous steps, you:

Cleaning Up Your Tutorial Environment

In this tutorial, you created many artifacts. When you are ready, clean them up so others can run this tutorial using the same names for Infrastructure and Tenant.

The NONPROD Infrastructure is deleted and you have completed the clean-up of your test environment.

ECS Setup

Enable Elastic Container Service (ECS) for AWS when creating a DuploCloud Infrastructure

Up to one instance (0 or 1) of an ECS is supported for each DuploCloud Infrastructure.

This section of the tutorial shows you how to deploy a web application with .

For a full discussion of the benefits of using EKS vs. ECS, consult.

running Docker containers or

.

Unlike AWS EKS, creating and deploying services and apps with ECS requires creating a , a blueprint for your application. Once you create a Task Definition, you can run it as a Task or as a Service. In this tutorial, we run the Task Definition as a Service.

A diagram of AWS architecture and configuration

An exist, both with the name NONPROD.

The NONPROD infrastructure has .

A Tenant named .

A named sample-task-def has been created.

The sample-httpd-app) and Load Balancer have been created.

In the DNS Name card, click the Copy Icon ( ) to copy the DNS address to your clipboard.

named NONPROD, a Virtual Private Cloud instance, backed by an ECS-enabled Kubernetes cluster.

named dev01 in Infrastructure NONPROD. While generating the Infrastructure, DuploCloud created a set of templates () to configure multiple AWS and Kubernetes components needed for your environment.

named sample-task-def, used to create a service to run your application.

named sample-httpd-app to connect the Docker containers and associated images, in which your application code resides, to the DuploCloud Tenant environment. In the same step, you c to expose your application via ports and backend network configurations.

as expected by testing the DNS Name exposed by the Load Balancer Listener.

To delete the dev01 tenant , and then return to this page. As you learned, the Tenant segregates all work in one isolated environment, so deleting the Tenant cleans up most of your artifacts.

Finish by deleting the NONPROD Infrastructure. In the DuploCloud Portal, navigate to Administrator -> Infrastructure. Click the Action menu icon () for the NONPROD row and select Delete.

Thanks for completing this tutorial and proceed to the next section to learn more about .

Setting up an Infrastructure that uses ECS is similar to creating an , except that during creation, instead of selecting Enable EKS, you select Enable ECS Cluster.

For more information about ECS Services, see the documentation.

Creating an Infrastructure with ECS can take some time. See the section for details about other elements on the Add Infrastructure form.

AWS Elastic Container Service (ECS)
this AWS blog
Creating an AWS EKS Service in DuploCloud
Creating a DuploCloud native Docker Service
Task Definition
Service Details tab with DNS Name card highlighted
Web page with Hello World! displayed
Add Infrastructure page with Enable ECS Cluster selected
Infrastructure and Plan
dev01 has been created
Task Definition
ECS Service (
Created a DuploCloud Infrastructure
Created a Tenant
Plan
Created a Task Definition
Created a Service
reated an ALB Load Balancer Listener
follow these instructions
using DuploCloud with AWS
Infrastructure that uses EKS
Containers and Services
Infrastructure
ECS Enabled
Verified that your web page rendered

Step 5: Create the ECS Service and Load Balancer

Create an ECS Service from Task Definition and expose it with a Load Balancer

Now that you've created a Task Definition, create a Service, which creates a Task (from the definition) to run your application. A Task is the instantiation of a Task Definition within a cluster. After you create a task definition for your application within Amazon ECS, you can specify multiple tasks to run on your cluster, based on your performance and availability requirements.

Once a Service is created, you must create a Load Balancer to expose the Service on the network. An Amazon ECS service runs and maintains the desired number of tasks simultaneously in an Amazon ECS cluster. If any of your tasks fail or stop, the Amazon ECS service scheduler launches another instance based on parameters specified in your Task Definition. It does so in order to maintain the desired number of tasks created.

Estimated time to complete Step 5: 10 minutes.

Prerequisites

Before creating the ECS Service and Load Balancer, verify that you accomplished the tasks in the previous tutorial steps. Using the DuploCloud Portal, confirm that:

Creating an ECS Service and Load Balancer

  1. In the DuploCloud Portal's Tenant list box, select dev01.

  2. Navigate to Cloud Services -> ECS.

  3. In the Service Details tab, click the Configure ECS Service link. The Add ECS Service page displays.

  1. In the Name field, enter sample-httpd-app as the Service name.

  2. In the LB Listeners area, click Add. The Add Load Balancer Listener pane displays.

  3. From the Select Type list box, select Application LB.

  4. In the Container Port field, enter 3000.

  5. In the External Port field, enter 80.

  6. From the Visibility list box, select Public.

  7. In the Heath Check field, enter /, specifying root, the location of Kubernetes Health Check logs.

  8. From the Backend Protocol list box, select HTTP.

  9. From the Protocol Policy list box, select HTTP1.

  10. On the Add ECS Service page, click Submit.

Checking Your Work

In the Service Details tab, information about the Service and Load Balancer you created is displayed. Verify that the Service and Load Balancer configuration details in the Service Details tab are correct.

Security Group rules

Add rules to custom configure your AWS Security Groups in the DuploCloud Portal

Adding Security Group rules

  1. In the DuploCloud Portal, navigate to Administrator -> Infrastructure. The Infrastructure page displays.

  2. Select the Infrastructure for which you want to add or view Security Group rules from the Name column.

  3. Click the Security Group Rules tab.

  4. Click Add. The Add Infrastructure Security pane displays.

  5. From the Source Type list box, select Tenant or IP Address.

  6. From the Tenant list box, select the Tenant for which you want to set up the Security Rule.

  7. Select the protocol from the Protocol list box.

  8. In the Port Range field, specify the range of ports for access (for example, 1-65535).

  9. Optionally, add a Description of the rule you are adding.

  10. Click Add.

Viewing Security Group rules

  1. In the DuploCloud Portal, navigate to Administrator -> Infrastructure.

  2. Select the Infrastructure from the Name column.

  3. Click the Security Group Rules tab. Security Rules are displayed.

Deleting Security Group rules

  1. In the DuploCloud Portal, navigate to Administrator -> Infrastructure.

  2. Select the Infrastructure from the Name column.

  3. Click the Security Group Rules tab. Security Rules are displayed in rows.

Tenant Config settings

Configure settings for all new Tenants under a Plan

Configuring Tenant Config settings

You can configure settings to apply to all new Tenants under a Plan using the Config tab. Tenant Config settings will not apply to Tenants created under the Plan before the settings were configured.

  1. From the DuploCloud portal, navigate to Administrator -> Plan.

  2. Click on the Plan you want to configure settings under in the NAME column.

  3. Select the Config tab.

  4. Click Add. The Add Config pane displays.

  5. From the Config Type field, select TenantConfig.

  6. In the Name field, enter the setting that you would like to apply to new Tenants under this Plan. (In the example, the enable_alerting setting is entered.)

  7. In the Value field, enter True.

  8. Click Submit. The setting entered in the Name field (enable alerting in the example) will apply to all new Tenants added under the Plan.

Viewing Tenant Config settings

You can check that the Tenant Config settings are enabled for new Tenants on the Tenants details page, under the Settings tab.

  1. From the DuploCloud portal, navigate to Administrator -> Tenants.

  2. From the NAME column, select a Tenant that was added after the Tenant Config setting was enabled.

  3. Click on the Settings tab.

  4. Check that the configured setting is listed in the NAME column. (Enable Alerting in the example.)

An exist, both named NONPROD.

The NONPROD infrastructure has .

A Tenant named .

A has been created.

DuploCloud Tenant list box with dev01 selected

In the Task Definitions tab, select the Task Definition Family Name, DUPLOSERVICES-DEV01-SAMPLE-TASK-DEF. This is the prepended by a unique identifier, which includes your Tenant name (DEV01) and part of your Infrastructure name (ECS-TEST).

The Service Details tab
The Add ECS Service page
Add Load Balancer Listener pane for an ECS Service
Service Details tab displaying Service and Load Balancer configuration details
Add Infrastructure Security pane defining port range for Cross-tenant access
Viewing Security Rules using the Security Group Rules tab

In the first column of the Security Group row, click the Options Menu Icon ( ) and select Delete.

Infrastructure and Plan
dev01 has been created
Task Definition named sample-task-def
ECS Enabled
Task Definition Name you created
The Add Config pane for the Infra-126-4 Plan
The Settings tab on the Tenants details page showing the Enable Alerting setting

Add VPC endpoints

Securely access AWS Services using VPC endpoints

DuploCloud allows you to specify predefined AWS endpoints for your Infrastructure in the DuploCloud Portal.

Adding VPC endpoints to a Duplocloud Infrastructure

  1. In the DuploCloud Portal, navigate to Administrator -> Infrastructure. The Infrastructure page displays.

  2. Select the Infrastructure to which you want to add VPC endpoints.

  3. Click the Endpoints tab.

  4. Click Add. The Infra - Create VPC Endpoints pane displays.

  5. From the VPC Endpoint Service list box, select the endpoint service you want to add.

  6. Click Create. In the Endpoints tab, the VPC Endpoint ID of your selected service displays.

Setting Tenant session duration

Manage Tenant session duration settings in the DuploCloud Portal

Managing Tenant session duration

In the DuploCloud Portal, configure the session duration time for all Tenants or a single Tenant. At the end of a session, the Tenants or Tenant ceases to be active for a particular user, application, or Service.

Configuring session duration for all Tenants

  1. In the DuploCloud Portal, navigate to Administrator -> System Settings. The System Settings page displays.

  2. Click the System Config tab.

  3. Click Add. The App Config pane displays.

  4. From the Config Type list box, select AppConfig.

  5. From the Key list box, select AWS Role Max Session Duration.

  6. From the Select Duration Hour list box, select the maximum session time in hours or set a Custom Duration in seconds.

  7. Click Submit. The AWS Role Max Session Duration and Value are displayed in the System Config tab. Note that the Value you set for maximum session time in hours is displayed in seconds. You can Delete or Update the setting in the row's Actions menu.

Configuring session duration for a single Tenant

  1. In the DuploCloud Portal, navigate to Administrator -> Tenants. The Tenants page displays.

  2. From the Name column, select the Tenant for which you want to configure session duration time.

  3. Click the Settings tab.

  4. Click Add. The Add Tenant Feature pane displays.

  5. From the Select Feature list box, select AWS Role Max Session Duration.

  6. From the Select Duration Hour list box, select the maximum session time in hours or set a Custom Duration in seconds.

  7. Click Add. The AWS Role Max Session Duration and Value are displayed in the Settings tab. Note that the Value you set for maximum session time in hours is displayed in seconds. You can Delete or Update the setting in the row's Actions menu.

An AWS creates a private connection to supported AWS services and VPC endpoint services powered by AWS PrivateLink. Amazon VPC instances do not require public IP addresses to communicate with the resources of the service. Traffic between an Amazon VPC and a service does not leave the Amazon network.

VPC endpoints are virtual devices. They are horizontally scaled, redundant, and highly available Amazon VPC components that allow communication between instances in an Amazon VPC and services without imposing availability risks or bandwidth constraints on network traffic. There are two types of VPC endpoints, , and .

Infra - Create VPC Endpoints pane displaying avaliable VPC Endpoints
Infrastructure page with Endpoints tab

For more information about IAM roles and session times in relation to a user, application, or Service, see the .

VPC endpoint
Interface Endpoints
Gateway Endpoints
Add Config pane to set Key AWS Role Max Session Duration for all Tenants
System Config tab on System Settings page displaying MaximumSessionDuration for all Tenants
Add Tenant Feature pane to set AWS Role Max Session Duration for a single Tenant
The Tenants details page with AWS Role Max Session Duration enabled
AWS Documentation

Autoscaling Hosts

Autoscale your Host workloads in DuploCloud

DuploCloud supports various ways to scale Host workloads, depending on the underlying AWS services being used.

Autoscaling Groups (ASG)
ECS Auto Scaling
Autoscaling in Kubernetes
Aurora RDS
Certificate Authorities for RDS instances
RDS instance creation
RDS Performance Insights
Support for Aurora Serverless V2
secondary indexes
Enable delete protection for AWS Load Balancers.
AWS
custom CIDRs
Other Settings card
Ability to add Path-Based Routing rules
Disable AWS JIT access for non-admin users
AWS JIT session timeout
JIT Access to the AWS Console is redesigned
Customize a Node Selector for EKS Services
Essential Containers
Multiple containers
Start, stop, and restart
Read-only processing for ECS services
Restart up to twenty DuploCloud Services
Force creation of StatefulSets
Force creation of StatefulSets in AWS
Support multiple docker registry credentials in a single tenant
Create a Task Definition
viewing user access
https://github.com/duplocloud/actions