서버값 줄이는 게 뭔지... 정말 모든 것이 노가다 아니면 돈
지금은 Supabase S3에 있는 바카라 커버를 Cloudflare의 R2로 올린다고 삽질하고 있는 중이다. 라고 하면 뭔소린지 모르겠죠....
원래 좋아하는 일을 하면 돈이 벌리는 게 아니라 나가는 거라지만, 플랜트샤워 개발은 상당한 노동을 하면서 차값이나 식물 구매를 줄여야 할 정도로 돈이 나가는 파워적자 상황이었다. https://posty.pe/bsi265 원래 월단위로 작은 아르바이트비 정도 벌리면 최고로 짱이겠는걸 이라고 생각했지만 어림 반푼어치없었다. 그런질문 할래면 내 마음이 아프니까 삼천원 달라는 의도로 3천포인트를 설정한 것이지만(누구나 마음속에 삼천원 하나씩은 있으니까... 는 이제 너무 오래된 밈) 당연히 결제한 사람은 없었다.
하지만 이 비용에는 AWS가 의도한 상당한 초보자 멍청비용이 있었기 때문에 이걸 줄이면 같은 비용으로 두 개의 서비스를 굴릴 수 있지 않을까 생각했고 그것에서 마침내 탈출한 후기는 https://posty.pe/22ptzk 이쪽에.
하지만 사용량이 아무리 적어도 MySQL같은 DB 프로그램을 서버 안에 설치하려면 기본빵으로 램 4GB가 필요하고, 램이 2기가가 되면 서버비가 절반이 되기 때문에 아예 Supabase라는 DB전문 프로그램을 쓰기로 했다. 그리고 서버도 피눈물나게 비싼 EC2 대신 Lightsail이라는 어느정도 접속량까지는 월정액으로 커버하는 서비스를 사용하기로 했다. 혹시 만에 하나 서비스가 대박이 나도 여기도 로드 밸런서가 있으니까 어떻게든 될거라며....ㅋㅋㅋ
내가 서버값때문에 맨날 걱정하니까 반려인이 Supabase라는 전문 SQL 서버 서비스가 있는데 한번 써보라고 추천을 해줬다.
MySQL보다 PostgreSQL이 요즘 많이 쓰는 거라고 함(SQL injection 등에 보안적으로 안전)
이 서비스가 무료로 커버되는 레인지가 넓어서 듣보잡 서비스에는 충분할 것이다.
뭐 이런 이유였는데 서버값 절약된다니까 솔깃해서 Lightsail + Supabase 구성으로 시작하게 되었다. 이 구성의 좋은 점은 돈이 확실히? 덜나가서 사자의 풀밭 서버값만으로는 적자까지는 아니라는 점이고, 나쁜 점은 비개발자가 하기에는 어려워 나의 노동을 2~3배로 유발한다는 것이다. 그리고 AWS S3이 보안값을 유지하면서 세팅하기가 더럽게 어렵다. 그 내용은 여기 다 써있는데요. https://posty.pe/27yb4n
Supabase에서 유사하게 이미지, 동영상같은 단순 파일만 전용으로 서비스하는 S3을 무료 유저에게도 1GB 준다길래 좋다 하고 설정한 게 큰 실수였다.(플랜트샤워는 1GB 되는데 2년 걸렸는데...) 심지어 AWS S3처럼 설정하기가 어렵지도 않았다. 너무 신났다. 하지만 문제는 런칭하기 직전에 생기게 된다.
사자의 풀밭은 커버를 안정적으로 서비스하기 위해 일단 어떤 바카라을 DB에 등록하게 되면 커버를 사자의 풀밭에 지정된 S3 저장공간에 저장하게 된다.(아무리 오픈API라지만 남의 트래픽 너무 훔쳐쓰면 안되기도 하고 그 서비스가 다운되면 바카라커버 의존적인 디자인이 다 깨지게 되니까) 그런데 문제는 내 바카라을 다 등록하고 localhost(내 컴퓨터 서버)에서 이렇게저렇게 테스트하면서 생기게 되었다. Supabase에서 Egress가 초과되었으니 이걸 내리든지 한달에 25달러짜리 유료 플랜을 쓰든지 하라고 경고 문구가 떴다. 안그러면 12월 7일 이후로는 DB 내려간다는 청천벽력같은 문구와 함께. 나혼자 쓰는데 어째서? Egress라는게 뭐야? AWS S3 쓰면서는 평생 신경써본적이 없는 것이었다.
물론 이메일도 온다.
Egress는 쉽게 말하면 트래픽이다. 다운로드량이 많으면 늘어난다. 내 컴퓨터 서버로 내려오는 것만으로도 무료로 주는 트래픽이 AWS는 무조건 그냥 돈을 내면 되기 때문에 신경쓸 필요가 없었고 돈이 많지도 않았는데 이것때문에 25$을 내라니....
그래서 이 트래픽을 들고가주고 캐싱-즉 이미 저장된 이미지를 내려줘 트래픽을 절약해주는 Cloudflare가 필요한 것이다. Cloudflare는 웬만한 사용량까지는 무료고 나도 지금 무료로 쓰고 있다. 그래서 Cloudflare가 다운되면 전세계의 인터넷이 다운된다는 이치를 나도 모르게 알게 되었다. 이걸 설정하려면 도메인을 Cloudflare에서 설정하고 Worker라는 걸 설정해야 한다. 도메인을 산 가비아가 들고 있는 DNS를 얼렁뚱땅 들고옵니다.
여기서 Assets만 Proxied하는 것이 중요. target은 supabase url을 쓰시고요... url은 supabase에 가입하면 생기는 랜덤 아이디가 있는데 에 가면 Project id라는 것이 나오는데 거기에 나오는 proje여기서 Assets만 Proxied하는 것이 중요. target은 supabase url을 쓰시고요... url은 supabase에 가입하면 생기는 랜덤 아이디가 있는데 Project Settings -> General -> Settings에 가면 Project id라는 것이 나오는데 거기에 나오는 project-id.supabase.com 이 된다.
지금 바로 작가의 멤버십 구독자가 되어
멤버십 특별 연재 콘텐츠를 모두 만나 보세요.
오직 멤버십 구독자만 볼 수 있는,
이 작가의 특별 연재 콘텐츠