Deploying Spotfire on Amazon Elastic Kubernetes Service (EKS)
This page provides an overview of the main steps needed to prepare an environment in AWS and to deploy the Spotfire Platform ⧉ on Amazon Elastic Kubernetes Service (EKS) ⧉, using the Spotfire CDK ⧉.
You will deploy the Spotfire Platform on AWS using the following services:
- Kubernetes cluster: Amazon Elastic Kubernetes Service (EKS) ⧉.
- Database server: Amazon RDS for PostgreSQL ⧉.
- Blob storage: Amazon S3 ⧉.
- Load balancer: Amazon Elastic Load Balancer (ELB) ⧉.
This is a quickstart guide. For more information, see the official documentation. Always follow the documentation and recommended best practices from the vendor.
Remember to change the provided example values to adapt them to your own environment and needs.
Prerequisites
- An account in AWS with permissions for the required services
- A Linux host with the following clients installed:
Note: The AWS CLI (aws
) and ekscli
are used in the examples below, but you can use the AWS web interface, REST API, libraries or any other available methods.
Steps
1. Prepare your AWS environment
- Login to your AWS account and set up your project:
2. Create an EKS cluster
-
Define the variables for your cluster:
Note: In this example we create a 3-nodes cluster using the
m5.xlarge
virtual machine type (8 vCPUs, 32 GB). See the Amazon EC2 Instance types ⧉ to understand which SKU you need for your K8s nodes. The AWS M-Family of machines are general purpose VMs for Enterprise-grade containerized applications.Note: See the Spotfire system requirements ⧉ for the minimum and recommended sizing. Observe your K8s resource utilization to understand which node size and how many nodes do you need.
-
Create the Amazon Elastic Kubernetes Service (EKS):
eksctl create cluster \ --name $CLUSTER_NAME \ --region $REGION \ --nodegroup-name $CLUSTER_NAME-nodes \ --node-type $NODE_TYPE \ --nodes $NUM_NODES
It will take ~10-15 minutes to create the K8s cluster.
For more information, see Get started with Amazon EKS – eksctl ⧉.
-
After creating the cluster, you must configure
kubectl
to use the new EKS cluster: -
Verify that you can connect to the cluster using
kubectl
:
For more information, see the Amazon Elastic Kubernetes Service Documentation ⧉.
You can learn about reference architectures, diagrams, and best practices in the AWS Architecture Center ⧉.
See also the Amazon EKS Best Practices Guide ⧉.
3. Deploy Spotfire
-
Create a namespace for your deployment:
-
Create a pull secret for the Spotfire container registry:
The secret is used by the Kubernetes cluster to pull the Spotfire container images from the Spotfire OCI registry.export REGISTRY_SERVER=oci.spotfire.com export REGISTRY_SECRET=spotfire-oci-secret export REGISTRY_USERNAME=<username> export REGISTRY_PASSWORD=<password> kubectl create secret docker-registry $REGISTRY_SECRET \ --namespace $NAMESPACE \ --docker-server=$REGISTRY_SERVER \ --docker-username=$REGISTRY_USERNAME \ --docker-password=$REGISTRY_PASSWORD
-
Log in to the Spotfire Helm charts registry:
This is needed to access the Spotfire Helm charts in the Spotfire OCI registry. -
Deploy the Spotfire Platform using the
spotfire-platform
Helm chart. For example:For more information, see the spotfire-platform Helm chart.export MY_SPOTFIRE_RELEASE=vanilla-spotfire helm upgrade --install $MY_SPOTFIRE_RELEASE \ oci://$REGISTRY_SERVER/charts/spotfire-platform \ --version 2.0.0 \ --namespace=$NAMESPACE \ --set global.spotfire.acceptEUA=true \ --set global.spotfire.image.registry=$REGISTRY_SERVER \ --set global.spotfire.image.pullSecrets[0]=$REGISTRY_SECRET \ --set spotfire-server.configuration.site.publicAddress=http://spotfire.example.com \ --set spotfire-server.postgresql.enabled=true \ ...
You have now deployed the Spotfire platform on AWS, using Amazon Elastic Kubernetes Service (EKS).
4. Next steps
You can now continue with:
- Configuring an Amazon Network Load Balancer or an Amazon Application Load Balancer.
- Configuring an Amazon RDS for PostgreSQL database as the Spotfire database.
- Configuring an Amazon S3 bucket as the Spotfire external library storage.
Cleanup
To avoid unneeded resource usage, once you have completed these tutorials, delete any created resources:
For more information, see Delete an Amazon EKS cluster ⧉.