Astro 블로그를 AWS Amplify로 배포하기
Astro 정적 사이트를 AWS Amplify에 배포하는 과정과 트러블슈팅 경험을 공유합니다.

왜 Amplify인가?
Astro로 만든 정적 블로그를 배포할 플랫폼을 고르면서 몇 가지를 비교했습니다.
- Vercel: Astro 공식 지원, 무료 플랜 관대
- Netlify: 비슷한 포지션, 빌드 속도 빠름
- AWS Amplify: AWS 생태계 통합, 커스텀 도메인 관리 편리
팀에서 이미 AWS를 사용 중이었기 때문에 Amplify를 선택했습니다.
프로젝트 세팅
npm create astro@latest my-blog
cd my-blog
npm run dev기본 Astro 프로젝트를 생성한 뒤, astro.config.mjs에 출력 설정을 추가합니다:
import { defineConfig } from "astro/config"
export default defineConfig({
output: "static",
site: "https://blog.example.com",
})Amplify 연결
- AWS Console → Amplify 접속
- Host web app 클릭
- GitHub 리포지토리 연결
- 빌드 설정 자동 감지 확인
Amplify는 package.json의 build 스크립트를 자동으로 감지합니다.
빌드 설정 커스터마이징
amplify.yml 파일을 프로젝트 루트에 추가합니다:
version: 1
frontend:
phases:
preBuild:
commands:
- npm ci
build:
commands:
- npm run build
artifacts:
baseDirectory: dist
files:
- "**/*"
cache:
paths:
- node_modules/**/*커스텀 도메인 설정
Route 53에서 관리 중인 도메인이라면 Amplify 콘솔에서 바로 연결할 수 있습니다.
blog.example.com → Amplify 앱
SSL 인증서는 자동으로 프로비저닝됩니다.
트러블슈팅
1. Node.js 버전 불일치
Amplify 기본 빌드 이미지의 Node.js 버전이 로컬과 다를 수 있습니다.
# .nvmrc 파일로 버전 고정
echo "20" > .nvmrc2. 빌드 시 메모리 부족
대규모 사이트에서 빌드 중 메모리 부족이 발생할 수 있습니다:
# amplify.yml
frontend:
phases:
build:
commands:
- NODE_OPTIONS=--max-old-space-size=4096 npm run build결론
Astro + Amplify 조합은 AWS 환경에서 정적 블로그를 운영하기에 충분히 실용적입니다. 초기 설정만 잘 잡아두면 이후 배포는 Git push만으로 자동화됩니다.
