StudyDad Loop 제품을 만들며 배운 운영과 설계를 기록합니다.

FamBlend를 중심으로 실제 구현, 운영 메모, GitHub 포트폴리오를 연결해 쌓아가는 StudyDad의 작업 기록입니다.

s3 4

데이터베이스를 쓰지 않기로 한 아키텍처 결정

운영 콘솔 아키텍처 시리즈 4/9운영 도구를 만들 때 가장 먼저 데이터베이스를 떠올리는 경우가 많다. 목록이 있고, 상태가 있고, 조회 화면이 있으면 자연스럽게 RDB 테이블을 설계하게 된다.하지만 모든 운영 콘솔에 데이터베이스가 필요한 것은 아니다. 어떤 경우에는 데이터베이스를 추가하지 않는 것이 더 단순하고 안전한 결정이 될 수 있다.문제 상황신청 관리 콘솔의 데이터 원천은 이미 외부에 있었다. 외부 파트너는 폼 도구로 신청했고, 운영자는 스프레드시트에서 데이터를 검수하고 상태를 관리했다. 스프레드시트가 사실상 Source of Truth였다.콘솔은 이 데이터를 더 보기 좋게 보여주고, 공개 가능한 일부 데이터를 외부에 노출하면 됐다. 데이터 규모는 크지 않았고, 변경도 특정 시점에 몰렸다. 초당 수..

Route53, CloudFront, S3로 운영 콘솔 도메인 라우팅하기

AWS 실전 운영 시리즈 10/12운영 콘솔을 AWS에 올릴 때 배포만큼 중요한 것이 도메인 라우팅이다.React SPA를 S3에 올리고 CloudFront를 붙이면 화면은 열릴 수 있다. 하지만 실제 운영에서는 도메인이 여러 개 생긴다.프론트엔드 도메인API 도메인CloudFront origin 도메인디버깅용 직접 접근 도메인도메인은 단순 주소가 아니다.사용자가 어디로 들어오고, CloudFront가 어떤 origin을 보고, WAF가 어디에 붙고, API가 어떤 경로로 백엔드에 도달하는지 결정하는 인프라 설계 요소다.문제 상황운영 콘솔은 크게 두 종류의 트래픽을 가졌다.첫째, React SPA 정적 파일을 가져오는 프론트엔드 트래픽이다.사용자-> console.example.com-> CloudFro..

React SPA를 S3와 CloudFront에 올릴 때 먼저 정해야 할 것들

AWS 실전 운영 시리즈 1/12React로 만든 관리자 페이지를 배포할 때 꼭 애플리케이션 서버가 필요한 것은 아니다.빌드가 끝난 React SPA는 결국 HTML, JavaScript, CSS, 이미지 같은 정적 파일이다. 이 파일들은 Node 서버나 Nginx가 없어도 S3와 CloudFront만으로 충분히 서빙할 수 있다.하지만 "S3에 올리면 끝"이라고 생각하면 운영 중에 여러 문제를 만난다.HTTPS, 커스텀 도메인, SPA 라우팅, 캐시 정책, 배포 후 무효화, 데이터 파일 보호 같은 것들을 미리 정해야 한다.문제 상황운영 콘솔은 React SPA로 만들었다.사용자는 많지 않았지만, 내부 업무에 매일 쓰이는 화면이었다. SEO는 중요하지 않았고, 서버 사이드 렌더링도 필요하지 않았다.이런 조..

Apps Script에서 S3로 직접 쓰지 않은 이유

자동화 워크플로우 시리즈 5/8Google Apps Script에서 AWS S3로 파일을 직접 업로드할 수도 있다.이론적으로는 가능하다. AWS Signature Version 4 서명을 직접 만들고, S3 PUT 요청을 보내면 된다.하지만 운영 자동화에서는 "가능하다"와 "좋은 선택이다"가 다르다.나는 Apps Script가 S3에 직접 쓰는 방식보다, API Gateway와 Lambda를 경유해 S3 저장을 위임하는 구조가 더 낫다고 봤다.문제 상황스프레드시트의 데이터를 가공해 JSON 파일로 저장해야 했다.이 JSON은 운영자 화면과 공개 페이지에서 읽을 데이터였다.구조는 단순해 보인다.Sheets-> Apps Script-> S3 JSON-> Console/Public page여기서 선택지는 두 ..