anything-llm/cloud-deployments/aws/cloudformation/DEPLOY.md
2023-10-29 13:06:43 -07:00

2.4 KiB

How to deploy a private AnythingLLM instance on AWS

With an AWS account you can easily deploy a private AnythingLLM instance on AWS. This will create a url that you can access from any browser over HTTP (HTTPS not supported). This single instance will run on your own keys and they will not be exposed - however if you want your instance to be protected it is highly recommend that you set the AUTH_TOKEN and JWT_SECRET variables in the docker/ ENV.

Quick Launch (EASY)

  1. Log in to your AWS account
  2. Open CloudFormation
  3. Ensure you are deploying in a geographic zone that is nearest to your physical location to reduce latency.
  4. Click Create Stack

Create Stack

  1. Use the file cloudformation_create_anythingllm.json as your JSON template.

Upload Stack

  1. Click Deploy.
  2. Wait for stack events to finish and be marked as Completed
  3. View Outputs tab.

Stack Output

  1. Wait for all resources to be built. Now wait until instance is available on [InstanceIP]:3001. This process may take up to 10 minutes. See Note below on how to visualize this process.

The output of this cloudformation stack will be:

  • 1 EC2 Instance
  • 1 Security Group with 0.0.0.0/0 access on port 3001
  • 1 EC2 Instance Volume gb2 of 10Gib minimum - customizable pre-deploy.

Requirements

  • An AWS account with billing information.
    • AnythingLLM (GUI + document processor) must use a t2.small minimum and 10Gib SSD hard disk volume

Please read this notice before submitting issues about your deployment

Note: Your instance will not be available instantly. Depending on the instance size you launched with it can take varying amounts of time to fully boot up.

If you want to check the instance's progress, navigate to your deployed EC2 instances and connect to your instance via SSH in browser.

Once connected run sudo tail -f /var/log/cloud-init-output.log and wait for the file to conclude deployment of the docker image. You should see an output like this

[+] Running 2/2
 ⠿ Network docker_anything-llm  Created 
 ⠿ Container anything-llm       Started  

Additionally, your use of this deployment process means you are responsible for any costs of these AWS resources fully.