1---
2title: AWS
3description: Build AWS applications with Alchemy — a runtime (usually Lambda) plus typed resources, wired together by bindings that mint least-privilege IAM policies.
4---
5
6An Alchemy app on AWS is one **runtime** — usually a Lambda
7Function — plus the **resources** it talks to: tables,
8buckets, queues, streams. You wire them together with typed
9**bindings**: call `S3.PutObject(bucket)` in your code and
10Alchemy attaches the matching least-privilege IAM statement to
11the function's role. The code is the policy.
12
13New here? [Set up credentials](/aws/setup) first, then deploy
14your 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
31Not 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).