목록으로
DEV

Astro 블로그를 AWS Amplify로 배포하기

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

FE6분 읽기
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 연결

  1. AWS Console → Amplify 접속
  2. Host web app 클릭
  3. GitHub 리포지토리 연결
  4. 빌드 설정 자동 감지 확인

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" > .nvmrc

2. 빌드 시 메모리 부족

대규모 사이트에서 빌드 중 메모리 부족이 발생할 수 있습니다:

# amplify.yml
frontend:
  phases:
    build:
      commands:
        - NODE_OPTIONS=--max-old-space-size=4096 npm run build

결론

Astro + Amplify 조합은 AWS 환경에서 정적 블로그를 운영하기에 충분히 실용적입니다. 초기 설정만 잘 잡아두면 이후 배포는 Git push만으로 자동화됩니다.

이런 글은 어때요?