AWS Marketplace
Overview
You can use AWS Marketplace to directly launch a Weaviate cluster.
We use an AWS CloudFormation template for delivery.
- An AWS account with sufficient credit / payment method.
- (Recommended) Familiarity with AWS and the AWS console.
What resources are used & installed?
This will set up the following resources:
- EKS Cluster with a Single Node Group
- In the default VPC or a fresh VPC with CIDR 10.0.0.0/16
- Load Balancer Controller for EKS
- aws-ebs-csi-driver for EKS
- The latest selected version of Weaviate (e.g.
1.20.3
if you select1.20
)- This will be installed using our official Helm chart
Installation instructions
Video
If you prefer a video, you can watch the following walkthrough. This video is recorded in September 2023, some details may have changed since then.
AWS Marketplace
- Go to Weaviate's AWS Marketplace listing
- Subscribe to the product in AWS Marketplace by following the instructions on the page. At the time of writing (August 2023), the steps are to:
- Click Continue to Subscribe, then go to the next page
- Click Continue to Configuration, then go to the next page
- Select the fulfillment option & software version from the list. Then click Continue to Launch.
- Launch the software using a CloudFormation template (select the one for your preferred availability zone in the table below):
Region | CloudFormation template link (per Availability Zone) |
---|---|
AP | ap-northeast-1; ap-northeast-2; ap-northeast-3; ap-south-1; ap-southeast-1; ap-southeast-2 |
CA | ca-central-1 |
EU | eu-central-1; eu-north-1; eu-west-1; eu-west-2; eu-west-3 |
SA | sa-east-1 |
US | us-east-1; us-east-2; us-west-1; us-west-2 |
Configuration & Cluster creation
Some settings may not be changed after launch
Not all settings may be changed after launch. For example, these settings are currently not changeable after launch:
- weaviatePVCSize
- albDriver
- ebsDriver
- vpcUseDefault
Some settings may lead to recreation of the cluster
- Changes to the instance type will lead to recreation of the node pool.
Suggested configurations
- The default values should be suitable for a majority of cases.
weaviatePVCSize
: For production environments, at least 500GB per StatefulSet pod is recommended. (Smaller disks may be sufficient for dev environments.)weaviateAuthType
: We recommend not running Weaviate with anonymous access. We suggest setting it toapikey
and setting a key, for example by executingpwgen -A -s 32
to generate a random string.
Once you open the CloudFormation template, you should see a set of options similar to below.
Here, you can:
- Set the
stack name
for identifying the stack in AWS (required). - Set Weaviate/AWS parameters, such as:
- number of nodes
- instance types
- Weaviate authentication parameters.
- Confirm required resources & proceed to Create stack.
- This template may require additional resources and capabilities.
After clicking Create stack, the creation process may take a while, such as around 30 minutes.
You can check the status of individual resources in the Events
tab. Once the stack has been created, the status for the stack will change to ✅ CREATE_COMPLETE
.
Accessing the cluster
Once the stack has been created, you can access the cluster using kubectl
, and Weaviate itself using the load balancer.
Interaction using kubectl
You can run the following command which will update or create a kubeconfig file for the Weaviate cluster:
aws eks update-kubeconfig --name [cluster-name] --region [aws-region]--role-arn arn:aws:iam::[AccountID]:role/[StackName]-MastersRole[XX]
The exact command can be found in the CloudFormation stack, in the Outputs
tab, under the EKSClusterConfigCommand
output.
Once that's set up, you can run kubectl
commands as usual. For example
kubectl get pods -n weaviate
to list all pods in theweaviate
namespace.kubectl get svc --all-namespaces
to list all services in all namespaces.
Finding the Weaviate URL
Once the stack has been created, you can access Weaviate via the load balancer URL.
You can find the Weaviate endpoint URL by any of:
- Going to the
Services
section of AWS, underEC2
>Load Balancers
. Find the load balancer, and look for theDNS name
column. - Running
kubectl get svc -n weaviate
and looking for theEXTERNAL-IP
of theweaviate
service.
The load balancer URL (e.g. a520f010285b8475eb4b86095cabf265-854109584.eu-north-1.elb.amazonaws.com
) will be the Weaviate URL (e.g. http://a520f010285b8475eb4b86095cabf265-854109584.eu-north-1.elb.amazonaws.com
).
Deleting the cluster
You can delete the cluster by deleting the CloudFormation stack.
Caution. This action deletes your data from Weaviate. If you want to keep your data, back it up or export the data before you delete the cluster.
Some resources many require manual deletion
Verify that all unused resources are deleted. You continue to incur costs for undeleted resources.
There may be some AWS resources that are not deleted automatically when the CloudFormation stack is deleted. For example, EBS volumes, and Key Management Service (KMS) keys may not be deleted from time to time.
You must delete these manually.
Tips
- If your CloudFormation stack indicates "DELETE_FAILED", you may be able to re-initiate deletion of these resources.
- Review the
Resources
tab of the CloudFormation stack to find resources that may not have been deleted. - Key Management Service (KMS) keys may be deleted by going to the KMS console, and deleting the keys manually. You may need to schedule deletion of the keys.
Billing
You will be charged for Weaviate and associated resources directly by AWS.
This will, for example, include the EC2 instances, EBS volumes, and any other resources used by the cluster.
Questions and feedback
If you have any questions or feedback, let us know in the user forum.