PageSourceSearch

https://spiceai.org/assets/js/22e220e2.01cfd629.js

js spiceai.org collected 2026-10-02 11:06:45 UTC 16,273 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkwebsite=self.webpackChunkwebsite||[]).push([["125138"],{235819(e,s,n){n.r(s),n.d(s,{metadata:()=>a,default:()=>h,frontMatter:()=>o,contentTitle:()=>i,toc:()=>l,assets:()=>c});var a=JSON.parse('{"id":"deployment/aws/index","title":"AWS Deployment Options","description":"Guide to deploying Spice.ai applications on Amazon Web Services (AWS)","source":"@site/versioned_docs/version-1.5.x/deployment/aws/index.md","sourceDirName":"deployment/aws","slug":"/deployment/aws/","permalink":"/docs/v1.5/deployment/aws/","draft":false,"unlisted":false,"editUrl":"https://github.com/spiceai/docs/edit/trunk/website/versioned_docs/version-1.5.x/deployment/aws/index.md","tags":[],"version":"1.5.x","sidebarPosition":2,"frontMatter":{"title":"AWS Deployment Options","description":"Guide to deploying Spice.ai applications on Amazon Web Services (AWS)","sidebar_label":"AWS","sidebar_position":2},"sidebar":"docs","previous":{"title":"Cluster","permalink":"/docs/v1.5/deployment/architectures/cluster"},"next":{"title":"Docker","permalink":"/docs/v1.5/deployment/docker/"}}'),r=n(474848),t=n(28453);let o={title:"AWS Deployment Options",description:"Guide to deploying Spice.ai applications on Amazon Web Services (AWS)",sidebar_label:"AWS",sidebar_position:2},i,c={},l=[{value:"Benefits of Deploying on AWS",id:"benefits-of-deploying-on-aws",level:2},{value:"Deployment Options",id:"deployment-options",level:2},{value:"Amazon EKS (Elastic Kubernetes Service)",id:"amazon-eks-elastic-kubernetes-service",level:3},{value:"EC2 / AWS CloudFormation",id:"ec2--aws-cloudformation",level:3},{value:"Amazon ECS (Elastic Container Service)",id:"amazon-ecs-elastic-container-service",level:3},{value:"Learn More",id:"learn-more",level:2}];function d(e){let s={a:"a",code:"code",h2:"h2",h3:"h3",li:"li",ol:"ol",p:"p",strong:"strong",ul:"ul",...(0,t.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(s.p,{children:"Spice.ai provides multiple deployment options on Amazon Web Services (AWS), allowing you to leverage AWS's robust infrastru
1cture for your data and AI applications. Whether you prefer virtual machines, container orchestration, or managed services, you can deploy Spice.ai to meet your specific requirements for performance, scalability, and cost efficiency."}),"\n",(0,r.jsx)(s.h2,{id:"benefits-of-deploying-on-aws",children:"Benefits of Deploying on AWS"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Scalability"}),": Easily scale your Spice.ai applications with AWS's elastic infrastructure."]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Global Reach"}),": Deploy across AWS's ",(0,r.jsx)(s.a,{href:"https://aws.amazon.com/about-aws/global-infrastructure/",children:"worldwide regions"})," for low-latency access."]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Integration"}),": Connect with other AWS services like ",(0,r.jsx)(s.a,{href:"https://aws.amazon.com/s3/",children:"Amazon S3"}),", ",(0,r.jsx)(s.a,{href:"https://aws.amazon.com/rds/",children:"Amazon RDS"}),", and ",(0,r.jsx)(s.a,{href:"https://aws.amazon.com/secrets-manager/",children:"AWS Secrets Manager"}),"."]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Cost Control"}),": Optimize expenses with various ",(0,r.jsx)(s.a,{href:"https://aws.amazon.com/ec2/instance-types/",children:"instance types"})," and ",(0,r.jsx)(s.a,{href:"https://aws.amazon.com/pricing/",children:"pricing models"}),"."]}),"\n",(0,r.jsxs)(s.li,{children:[(0,r.jsx)(s.strong,{children:"Security and Compliance"}),": Deploy Spice.ai within your AWS security perimeter using features like ",(0,r.jsx)(s.a,{href:"https://aws.amazon.com/vpc/",children:"VPC"})," isolation, ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/vpc/latest/userguide/vpc-security-groups.html",children:"security groups"}),", ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html",children:"IAM roles"})," to meet organizational compliance requirements."]}),"\n"]}),"\n",(0,r.jsx)(s.h2,{id:"deployment-options",children:"Deployment Options"}),"\n",(0,r.jsx)(s.h3,{id:"amazon-eks-elastic-kubernetes-service",children:"Amazon EKS (Elastic Kubernetes Service)"}),"\n",(0,r.jsxs)(s.p,{children:["Leverage ",(0,r.jsx)(s.a,{href:"https://kubernetes.io/",children:"Kubernetes"})," orchestration with ",(0,r.jsx)(s.a,{href:"https://aws.amazon.com/eks/",children:"Amazon EKS"})," for containerized Spice.ai deployments."]}),"\n",(0,r.jsxs)(s.ol,{children:["\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"Create an EKS Cluster"}),":"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Use the ",(0,r.jsx)(s.a,{href:"https://console.aws.amazon.com/eks/",children:"AWS Management Console"}),", ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/cli/latest/reference/eks/",children:"AWS CLI"}),", or ",(0,r.jsx)(s.a,{href:"https://eksctl.io/",children:"eksctl"})," to create your cluster"]}),"\n",(0,r.jsxs)(s.li,{children:["Configure ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/eks/latest/userguide/managed-node-groups.html",children:"node groups"})," according to your workload requirements"]}),"\n",(0,r.jsxs)(s.li,{children:["(Optional) Use ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/eks/latest/userguide/fargate.html",children:"EKS Fargate profiles"})," for serverless container deployment"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"Deploy Spice.ai on EKS"}),":"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Apply Spice.ai Kubernetes manifests via ",(0,r.jsx)(s.a,{href:"https://spiceai.org/docs/deployment/kubernetes",children:"Helm chart"})]}),"\n",(0,r.jsxs)(s.li,{children:["Configure persistent storage using ",(0,r.jsx)(s.a,{href:"https://aws.amazon.com/ebs/",children:"Amazon EBS"})," or ",(0,r.jsx)(s.a,{href:"https://aws.amazon.com/efs/",children:"Amazon EFS"})]}),"\n",(0,r.jsxs)(s.li,{children:["Set up ingress with the ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/eks/latest/userguide/network-load-balancing.html",children:"AWS Network Load Balancer (NLB)"})]}),"\n",(0,r.jsxs)(s.li,{children:["(Optional) Automate cluster and resource provisioning with Infrastru
1cture as Code (IaC) tools such as ",(0,r.jsx)(s.a,{href:"https://aws.amazon.com/cloudformation/",children:"AWS CloudFormation"})," or ",(0,r.jsx)(s.a,{href:"https://www.terraform.io/",children:"Terraform"})," for consistent, repeatable deployments"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(s.p,{children:["For comprehensive instructions and advanced configuration options, refer to the ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/eks/latest/userguide/what-is-eks.html",children:"Amazon EKS User Guide"}),", ",(0,r.jsx)(s.a,{href:"https://aws.github.io/aws-eks-best-practices/",children:"EKS Best Practices Guide"}),", and ",(0,r.jsx)(s.a,{href:"https://spiceai.org/docs/deployment/kubernetes",children:"Spice.ai Kubernetes Deployment Guide"}),"."]}),"\n",(0,r.jsx)(s.h3,{id:"ec2--aws-cloudformation",children:"EC2 / AWS CloudFormation"}),"\n",(0,r.jsxs)(s.p,{children:["Deploy Spice.ai directly on ",(0,r.jsx)(s.a,{href:"https://aws.amazon.com/ec2/",children:"Amazon EC2"})," instances for maximum control over the environment."]}),"\n",(0,r.jsxs)(s.ol,{children:["\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"Manual EC2 Deployment"}),":"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Launch an ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EC2_GetStarted.html",children:"EC2 instance"})," with your preferred Linux distribution"]}),"\n",(0,r.jsxs)(s.li,{children:["Install ",(0,r.jsx)(s.a,{href:"https://docs.docker.com/engine/install/",children:"Docker"})]}),"\n",(0,r.jsxs)(s.li,{children:["Run ",(0,r.jsx)(s.a,{href:"https://spiceai.org/docs/deployment/docker#running-spiceai-as-a-docker-container",children:"Spice.ai as a Docker Container"})," on your EC2 instance"]}),"\n",(0,r.jsxs)(s.li,{children:["(Optional) Use Infrastructure as Code (IaC) tools like ",(0,r.jsx)(s.a,{href:"https://aws.amazon.com/cloudformation/",children:"AWS CloudFormation"})," or ",(0,r.jsx)(s.a,{href:"https://www.terraform.io/",children:"Terraform"})," to automate the provisioning, configuration, and management of EC2 resources for repeatable and consistent deployments"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"Automated EC2 Deployment with CloudFormation"}),":"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Define your infrastructure in a ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-guide.html",children:"CloudFormation template"}),", including EC2 instances (using a ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AMIs.html",children:"Linux AMI"}),"), security groups, IAM roles, VPC, and subnets"]}),"\n",(0,r.jsxs)(s.li,{children:["Use EC2 ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/user-data.html",children:(0,r.jsx)(s.code,{children:"UserData"})})," to automate Docker installation, pull the ",(0,r.jsx)(s.a,{href:"https://hub.docker.com/r/spiceai/spiceai",children:"Spice.ai Docker image"}),", retrieve configuration or secrets from ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html",children:"AWS Parameter Store"})," or ",(0,r.jsx)(s.a,{href:"https://aws.amazon.com/secrets-manager/",children:"Secrets Manager"}),", and run the container with required environment variables"]}),"\n",(0,r.jsxs)(s.li,{children:["(Optional) Add ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/parameters-section-structure.html",children:"parameters"})," to your template for VPC ID, Subnet ID, ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html",children:"KeyPair"}),", instance type, and secret names to enable flexible deployments"]}),"\n",(0,r.jsxs)(s.li,{children:["(Optional) Store sensitive data such as API keys in ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html",children:"Parameter Store"})," or ",(0,r.jsx)(s.a,{href:"https://aws.amazon.com/secrets-manager/",children:"Secrets Manager"})," and reference them securely in ",(0,r.jsx)(s.code,{children:"UserData"})]}),"\n",(0,r.jsxs)(s.li,{children:["(Optional) Deploy and manage your CloudFormation stack using the ",(0,r.jsx)(s.a,{href:"https://console.aws.amazon.com/cloudformation/",children:"AWS Console"}),", ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/cli/latest/reference/cloudformation/",children:"CLI"}),", or ",(0,r.jsx)(s.a,{href:"https://aws.amazon.com/devops/continuous-delivery/",children:"CI/CD pipelines"}
1)," for repeatable, version-controlled infrastructure"]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(s.p,{children:["For detailed guidance and best practices, refer to the ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/Welcome.html",children:"AWS CloudFormation User Guide"}),", ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/",children:"EC2 User Guide for Linux Instances"}),", and ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html",children:"AWS Systems Manager Parameter Store Documentation"}),"."]}),"\n",(0,r.jsx)(s.h3,{id:"amazon-ecs-elastic-container-service",children:"Amazon ECS (Elastic Container Service)"}),"\n",(0,r.jsxs)(s.p,{children:["Deploy Spice.ai as containerized tasks on ",(0,r.jsx)(s.a,{href:"https://aws.amazon.com/ecs/",children:"Amazon ECS"})," for easy container management and flexible scaling."]}),"\n",(0,r.jsxs)(s.ol,{children:["\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"Create an ECS Cluster"}),":"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Choose a launch type: ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html#ec2-launch-type",children:"EC2"})," (manage your own EC2 instances) or ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/launch_types.html#fargate-launch-type",children:"Fargate"})," (serverless)."]}),"\n",(0,r.jsxs)(s.li,{children:["Create the ECS cluster using the ",(0,r.jsx)(s.a,{href:"https://console.aws.amazon.com/ecs/",children:"AWS Console"}),", ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/cli/latest/reference/ecs/",children:"CLI"}),", or Infrastructure as Code (",(0,r.jsx)(s.a,{href:"https://aws.amazon.com/cloudformation/",children:"CloudFormation"}),", ",(0,r.jsx)(s.a,{href:"https://www.terraform.io/",children:"Terraform"}),")."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"Define a Task Definition"}),":"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Specify the ",(0,r.jsx)(s.a,{href:"https://hub.docker.com/r/spiceai/spiceai",children:"Spice.ai Docker image"}),", resource needs, networking, environment variables, and storage in a ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definitions.html",children:"Task Definition"}),"."]}),"\n",(0,r.jsxs)(s.li,{children:["(Optional) Use ",(0,r.jsx)(s.a,{href:"https://aws.amazon.com/secrets-manager/",children:"AWS Secrets Manager"})," or ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html",children:"Parameter Store"})," to inject secrets securely."]}),"\n",(0,r.jsxs)(s.li,{children:["Enable logging with ",(0,r.jsx)(s.a,{href:"https://aws.amazon.com/cloudwatch/",children:"Amazon CloudWatch"}),"."]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(s.li,{children:["\n",(0,r.jsxs)(s.p,{children:[(0,r.jsx)(s.strong,{children:"Deploy Spice.ai on ECS"}),":"]}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsxs)(s.li,{children:["Create an ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/ecs_services.html",children:"ECS Service"})," to run and manage Spice.ai tasks."]}),"\n",(0,r.jsxs)(s.li,{children:["Set up load balancing with ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/elasticloadbalancing/latest/network/introduction.html",children:"NLB"}),"."]}),"\n",(0,r.jsxs)(s.li,{children:["(Optional) Configure ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html",children:"auto-scaling"})," based on resource usage or CloudWatch metrics."]}),"\n",(0,r.jsxs)(s.li,{children:["(Optional) Use ",(0,r.jsx)(s.a,{href:"https://aws.amazon.com/devops/continuous-delivery/",children:"CI/CD pipelines"})," for automated updates. Manage infrastructure with CloudFormation, Terraform, or the AWS CLI."]}),"\n"]}),"\n"]}),"\n"]}),"\n",(0,r.jsxs)(s.p,{children:["For more details, see the ",(0,r.jsx)(s.a,{href:"https://docs.aws.amazon.com/ecs/latest/developerguide/Welcome.html",children:"Amazon ECS Developer Guide"})," and ",(0,r.jsx)(s.a,{href:"https://spiceai.org/docs/deployment/docker",children:"Spice.ai Docker Deployment Guide"}),"."]}),"\n",(0,r.jsx)(s.h2,{id:"learn-more",children:"Learn More"}),"\n",(0,r.jsxs)(s.ul,{children:["\n",(0,r.jsx)(s.li,{children:(0,r.jsx)(s.a,{href:"https://spiceai.org/docs/components/secret-stores/aws-secrets-manager",children:"Using AWS Secrets Manager Secret Store with Spice.ai"})}),"\n"]})]})}function h(e={}){let{wrapper:s}={...(0,t.R)(),...e.components};return s?(0,r.jsx)(s,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},28453(e,s,n){n.d(s,{R:()=>o,x:()=>i});var a=n(296540);let r={},t=a.createContext(r);function o(e){let s=a.useContext(t);return a.useMemo(function(){return"function"==typeof e?e(s):{...s,...e}},[s,e])}function i(e){let s;return s=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:o(e.components),a.createElement(t.Provider,{value:s},e.children)}}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.