| 1 | --- |
| 2 | title: AWS |
| 3 | description: Build AWS applications with Alchemy — a runtime (usually Lambda) plus typed resources, wired together by bindings that mint least-privilege IAM policies. |
| 4 | --- |
| 5 | |
| 6 | An Alchemy app on AWS is one **runtime** — usually a Lambda |
| 7 | Function — plus the **resources** it talks to: tables, |
| 8 | buckets, queues, streams. You wire them together with typed |
| 9 | **bindings**: call `S3.PutObject(bucket)` in your code and |
| 10 | Alchemy attaches the matching least-privilege IAM statement to |
| 11 | the function's role. The code is the policy. |
| 12 | |
| 13 | New here? [Set up credentials](/aws/setup) first, then deploy |
| 14 | your first [Lambda](/aws/compute/lambda). |
| 15 | |
| 16 | ## Pick your runtime |
| 17 | |
| 18 | - **[Lambda](/aws/compute/lambda)** — serverless, event-driven functions |
| 19 | with public Function URLs. The primary documented path: every |
| 20 | resource and event source in this section is shown |
| 21 | running on Lambda. |
| 22 | - **[ECS](/aws/compute/ecs)** — long-running containers on Fargate. |
| 23 | Alchemy bundles your Effect program into a Docker image and |
| 24 | runs it as a Cluster + Service + Task. |
| 25 | - **[EKS](/aws/compute/eks)** — managed Kubernetes (Auto Mode). |
| 26 | Deployments, Jobs, raw manifests, and Helm charts in the same |
| 27 | TypeScript program as the cluster — no YAML, no kubectl. |
| 28 | - **[EC2](/aws/compute/ec2)** — full-control virtual machines, with the |
| 29 | complete VPC networking toolkit around them. |
| 30 | |
| 31 | Not sure which? See |
| 32 | [Choosing a runtime](/aws/compute/choosing-a-runtime). |
| 33 | |
| 34 | ## Data |
| 35 | |
| 36 | - **[DynamoDB](/aws/data/dynamodb)** — key/value tables with |
| 37 | `GetItem`/`PutItem` bindings and change-data-capture Streams. |
| 38 | - **[S3](/aws/data/s3)** — object storage with `GetObject`/`PutObject` |
| 39 | bindings and bucket event notifications. |
| 40 | - **[RDS & Aurora](/aws/data/rds)** — managed Postgres/MySQL: the |
| 41 | `Aurora` helper stands up the whole cluster in one call, with |
| 42 | a `Connect` binding or the Data API at runtime. |
| 43 | |
| 44 | ## Messaging & events |
| 45 | |
| 46 | - **[SQS](/aws/messaging/sqs)** — queues with a `SendMessage` binding and a |
| 47 | `Stream`-shaped Lambda consumer. |
| 48 | - **[SNS](/aws/messaging/sns)** — pub/sub topics with a `Publish` binding |
| 49 | and fan-out to queues and functions. |
| 50 | - **[EventBridge & Scheduler](/aws/messaging/eventbridge)** — event buses, |
| 51 | rules, and cron/rate schedules that invoke your functions. |
| 52 | - **[Kinesis](/aws/messaging/kinesis)** — ordered, sharded data streams |
| 53 | with a `PutRecord` binding and the same `Stream` consumer |
| 54 | surface. |
| 55 | |
| 56 | ## Email |
| 57 | |
| 58 | - **[Sending & managing email](/aws/email/sending)** — verify an SES |
| 59 | identity, send from a Lambda with the `SendEmail` binding, and |
| 60 | manage identity policies, contact lists, dedicated IP pools, |
| 61 | tenants, account settings, and deliverability insights. |
| 62 | - **[Receiving inbound email](/aws/email/receiving)** — SES receipt |
| 63 | rule sets and rules that store mail in S3, fan out to SNS, invoke |
| 64 | a Lambda, or bounce it. Region-limited to `us-east-1`, |
| 65 | `us-west-2`, and `eu-west-1`. |
| 66 | |
| 67 | ## Security & secrets |
| 68 | |
| 69 | - **[Secrets & env](/aws/security/secrets-env)** — .env values via |
| 70 | Config, Secrets Manager when the secret is shared, generated, |
| 71 | or rotated. |
| 72 | |
| 73 | ## Observability |
| 74 | |
| 75 | - **[CloudWatch](/aws/observability/cloudwatch)** — dashboards and metric |
| 76 | alarms, declared in the same Stack as the resources they |
| 77 | watch. |
| 78 | |
| 79 | ## Frontend & networking |
| 80 | |
| 81 | - **[Websites](/aws/frontend/websites)** — the frontend block: static |
| 82 | sites and built Vite apps on S3 + CloudFront as a single |
| 83 | `StaticSite` resource. |
| 84 | - **[VPC & networking](/aws/networking)** — the `Network` helper |
| 85 | and the VPC primitives, for when ECS, EKS, or EC2 needs |
| 86 | explicit networking. |
| 87 | |
| 88 | ## What are you building? |
| 89 | |
| 90 | | You're building | Reach for | |
| 91 | | ------------------------------------- | ----------------------------------------------------------------------------- | |
| 92 | | An HTTP API | [Lambda](/aws/compute/lambda) + Function URL + [DynamoDB](/aws/data/dynamodb) | |
| 93 | | A typed HTTP API | [Effect HTTP API on Lambda](/aws/apis/effect-http-api) | |
| 94 | | A typed API for external clients | [Effect RPC on Lambda](/aws/apis/effect-rpc) | |
| 95 | | Drive a MicroVM from a Lambda (internal RPC) | [MicroVMs](/aws/compute/microvms) + [Schemaless RPC](/apis/schemaless) | |
| 96 | | An ML training fleet | [HyperPod](/aws/compute/hyperpod) — Slurm or EKS orchestrated, with task governance | |
| 97 | | A REST API with stages/custom domains | [API Gateway](/aws/apis/api-gateway) | |
| 98 | | Your own domain on a site or API | [Custom domains with Route53 + ACM](/aws/networking/custom-domains) | |
| 99 | | A static site | [Deploy a static site](/aws/frontend/static-site) on S3 + CloudFront | |
| 100 | | An event pipeline | [Kinesis](/aws/messaging/kinesis) → Lambda | |
| 101 | | Background jobs | [SQS](/aws/messaging/sqs) + Lambda | |
| 102 | | Scheduled jobs | [EventBridge Scheduler](/aws/messaging/eventbridge) → Lambda | |
| 103 | | A Postgres database | [RDS & Aurora](/aws/data/rds) | |
| 104 | | Kubernetes workloads or Helm charts | [EKS](/aws/compute/eks) | |
| 105 | | Object processing | [S3 events](/aws/messaging/s3-events) | |
| 106 | | Sending transactional email | [SES sending](/aws/email/sending) — identity + `SendEmail` binding | |
| 107 | | Inbound email pipelines | [SES email receiving](/aws/email/receiving) → S3 / SNS / Lambda | |
| 108 | | Change data capture | [DynamoDB Streams](/aws/messaging/dynamodb-streams) | |
| 109 | | API keys or credentials for a function | [Secrets & env](/aws/security/secrets-env) | |
| 110 | |
| 111 | ## Where next |
| 112 | |
| 113 | - [Setup](/aws/setup) — install Alchemy and connect your AWS |
| 114 | account. |
| 115 | - [Deploy a static site](/aws/frontend/static-site) and |
| 116 | [Effect HTTP API on Lambda](/aws/apis/effect-http-api) — |
| 117 | end-to-end guides for the two most common app shapes. |
| 118 | - [Providers reference](/providers) — generated API docs for |
| 119 | every AWS resource Alchemy ships, well beyond the blocks |
| 120 | documented here (CloudFront, Route53, IAM, and more). |