59 lines
1.2 KiB
Markdown
59 lines
1.2 KiB
Markdown
# AWS (Amplify / S3 / ECS)
|
|
|
|
## Amplify Hosting
|
|
```bash
|
|
npm install -g @aws-amplify/cli
|
|
amplify configure
|
|
amplify init
|
|
amplify publish
|
|
```
|
|
|
|
### Config: amplify.yml
|
|
```yaml
|
|
version: 1
|
|
frontend:
|
|
phases:
|
|
preBuild:
|
|
commands:
|
|
- npm ci
|
|
build:
|
|
commands:
|
|
- npm run build
|
|
artifacts:
|
|
baseDirectory: dist
|
|
files:
|
|
- '**/*'
|
|
cache:
|
|
paths:
|
|
- node_modules/**/*
|
|
```
|
|
|
|
### Free Tier (12 months)
|
|
1000 build min/mo, 15GB storage, 15GB bandwidth.
|
|
After: $0.01/build min, $0.023/GB storage, $0.15/GB served.
|
|
|
|
## S3 Static Hosting
|
|
```bash
|
|
aws s3 sync ./dist s3://BUCKET_NAME --delete
|
|
aws s3 website s3://BUCKET_NAME --index-document index.html --error-document error.html
|
|
```
|
|
|
|
### Free Tier (12 months)
|
|
5GB storage, 20K GET, 2K PUT requests.
|
|
|
|
## ECS Fargate
|
|
```bash
|
|
aws ecs update-service --cluster CLUSTER --service SERVICE --force-new-deployment
|
|
```
|
|
Config: `task-definition.json`. No free tier.
|
|
|
|
## Detection
|
|
- `amplify.yml`, `buildspec.yml` → Amplify
|
|
- S3 bucket policy JSON → S3
|
|
- `task-definition.json` → ECS
|
|
|
|
## Best For
|
|
- Amplify: static sites + serverless backends
|
|
- S3 + CloudFront: cheapest static at scale
|
|
- ECS: enterprise containerized workloads
|