카테고리 없음

95. 정적 HTML + S3 + Claude API로 서비스 구조를 잡은 이유

privacydo 2026. 3. 16. 09:30
반응형

pia-privacy.com은 서버가 없다. 백엔드 코드가 없고, 데이터베이스도 없다. HTML 파일 몇 개를 S3 버킷에 올리고, 버킷을 정적 웹사이트로 설정한 게 전부다.

왜 이 구조를 선택했나

운영 부담이 제일 컸다. EC2나 Lambda를 쓰면 관리해야 할 것들이 생긴다. 보안 패치, 모니터링, 비용 관리. 개인 프로젝트에서 이걸 계속 신경 쓰고 싶지 않았다.

S3 정적 호스팅은 파일을 올리면 끝난다. SSL도 CloudFront를 붙이면 해결된다. 비용은 거의 없다.

실제 구성

HTML 파일이 직접 fetch()로 Anthropic API를 호출한다. 중간에 아무것도 없다.

사용자 → 브라우저 → Anthropic API

장점은 단순함이다. 단점은 API 키가 클라이언트 코드에 들어간다는 것이다. 이 부분은 개인·내부 사용 목적이라는 전제 하에 감수한 부분이다.

S3 설정에서 신경 쓴 것들

정적 웹사이트 호스팅 설정 자체는 단순하다. 그런데 CORS 설정을 빠뜨리면 API 호출이 안 된다. 브라우저에서 직접 외부 API를 호출하는 구조이기 때문에, 해당 API가 CORS 헤더를 허용하는지 미리 확인해야 한다.

또 하나는 에러 페이지 처리다. S3 정적 호스팅에서는 404 처리를 별도로 잡아줘야 한다. 그냥 두면 S3 기본 오류 페이지가 뜬다.

확장할 때 생길 병목

지금 구조로는 로그가 없다. 어떤 질문이 많이 들어오는지, 어떤 기능이 자주 쓰이는지 알 수 없다. 이걸 알고 싶어지면 결국 백엔드가 필요해진다.

또 API 키를 교체하려면 HTML 파일을 다시 올려야 한다. 관리 편의성은 떨어진다. 이 한계를 알면서 쓰는 구조다.

반응형