코드이그나이터4 CMS 샘플 깃허브에 올려두었던거 DB 캐시 추가하여서 커밋해두었습니다.

 

https://github.com/yks118/Manana-CMS-for-Codeigniter

 

yks118/Manana-CMS-for-Codeigniter

I am using CI4 for personal use. Contribute to yks118/Manana-CMS-for-Codeigniter development by creating an account on GitHub.

github.com

현재 AWS 비용 줄여보겠다고 여러가지를 시도하고 있는데, 그중 하나인, DB Query Cache 를 제작하여서, 현재 API 쪽에 돌리고 있는데..

 

잘 돌아가고 있기에 깃허브에 공개하였습니다.

 

사용법은 이미지의 # 15 ~ # 20과 # 36 ~ # 42 를 참고해주시면 됩니다.

 

참고로 # 15 ~ # 20은 일반적인 사용이고, # 36 ~ # 42는 캐시를 갱신하여 저장하는 구문입니다.

 

참고로 AWS RDS Aurora 의 경우 Aurora:StorageIOUsage가 단순 Network I/O를 줄인다고 줄어드는게 아닌거 같습니다.

 

그 증거로 비용이 줄어들지가 않습니다.

( 참고로 04일이 애드센스 집계 기준 페이지 1만뷰, 05일이 3만뷰, 06일이 1.5만뷰.. 06일은 현재 집계중이라 확정 금액이 아닌데, 비슷한 금액이 나올듯 합니다. )

 

본래 insert and update 를 row 별로 하다가..

 

insert and update 를 하나로 퉁쳐서 쿼리를 보내니까, 서버가 죽고.. (.. .. ..)

 

차선책으로 임시 테이블에 다중 row를 하나의 insert 로 처리를 해서, 트리거로 데이터를 보내게 하였더니, 비용이 비슷하네요.

 

아마도 Network I/O 당 집계 비용이 되는것이 아닌, SSD( S3 )의 접속 빈도를 가지고 체크하는듯 합니다.

( 자세한 이론적인 이야기는 복잡해지니 패스하고.. )

 

즉, DB Drive에 열심히 쿼리 줄여서 보내봐쟈, DB Drive 에서 작동하는 방식이 동일하면 비용이 절감되지 않습니다.

 

제가 테스트해보니, 그런듯 합니다.

 

05일 페이지뷰가 폭주해서 그런것을 감안해야할까? 라는 생각도 해보았으나, 06일의 상태를 보면, 음..

 

그닥 차이가 없을듯하네요.

( 실제 유저가 사용하는 프론트단은 캐싱으로 빡세게 잡아놔서, 저 문제가 되는 부분이 거의 뒷단에서 Cron 도는 애들일거라;; 그리고 그 최적화도 거의 Cron이 도는 뒷단 기준이고.. )

 

그래서 AWS RDS Aurora 를 MySql 혹은 MariaDB로 복귀하는것을 고려해보았는데..

 

5일까지 확정 + 6일까지의 부분이 현재 트래픽 비용만 3.34 입니다.

 

참고로 저번달이 52.39 달라인데, 단순 계산해도 이번달은 18달라( 3달라 ( 5일 ) * 6 ( 5일 * 6 ) )가 나오게 됩니다.

 

18달라면, 3.5달라의 라이트세일이 5개 ( 트래픽 5TB ) 사용 가능한 금액입니다.

 

물론 트래픽만 봤을때고, 다른금액들까지 다 하면 라이트세일이 더 저렴하다는 계산이 나오게 됩니다.

 

예약 인스턴스나 그런것도 있겠지만, 비용을 최대한 줄인다 하더라도, 특수한 경우가 아닌 이상은 라이트세일이 더 저렴하다는 생각이 드는군요.

 

왜냐면 예약 인스턴스에 트래픽 비용이 포함되는건 아닌거 같아서;;

 

관련 설명을 찾아봐도 안보이네요.

 

즉, 서비스의 규모( 특정 시간에 서버 추가 없음 )가 어느정도 결정되어있고, 트래픽이 나날이 증가하는 서비스라면 라이트세일이 더 좋아보입니다.

 

AWS EC2로의 전향은 타 블로그( 주로 기업 )에서도 많이 보이는, 오토 스케일링이 필요할때 옴기는것이 좋을거 같네요.

 

진짜로 EC2를 사용해야하는지에 대한 의문을 가지고, 다양한 금액에 따른 부작용을 감수하더라도 옴겨야 한다면 그 때 옴겨야 할거 같네요.

 

기타 다른 블로그에서는 EC2가 좋다고 각종 조합과 다양한것에 대한 추천을 하는데..

 

개인적으로는 추천하지 않을거 같습니다.

( 실제로 아는 사람들에게도 간단한 단순 서비스면 무조건 라이트세일 쓰라고 권하고 있고.. )

 

AWS EC2 로 전향하면 다양한 AWS 의 기능들을 쓸 수 있어서 좋습니다.

 

하지만, 어떤 수단과 방법을 쓰더라도 줄일 수 없는 금액이 존재합니다.

 

그것을 감당 하실 수 있다면 문제가 없겠지만, 감당이 안되기 시작하면 일반 웹 호스팅이 더 좋은 효과가 나올 수도 있습니다.

( 개인적으로는 트래픽 요금이네요. 트래픽 요금을 줄일 방법이..??? 서비스를 닫나..??? )

 

그래서 현재 서비스중인것들을 라이트세일로 다시 옴길 예정입니다.

 

라이트세일에서 그냥 제가 서버에 다 설치해서 써야할거 같네요.

 

대충 AWS의 각종 로그를 볼때 어떻게 구성하면 되고, 서버 스팩은 어느정도면 되겠다 그런것들이 다 정리가 되었으니..

 

현재 구상중인것은, Route53 은 그대로두고..

 

라이트세일1에 Nginx 를 둬서 로드밸런싱하도록하고..

 

라이트세일2와 3에 PHP를 설치해서 기존 EC2의 역활을 하도록하고..

 

라이트세일4에는 Redis Cache 를 둬서 캐싱을 하도록하고..

 

라이트세일5에는 MySql 마스터 역활( Insert, Update, Delete )을..

 

라이트세일6에는 MySql 슬레이브 역활( Select )을..

 

이렇게 둘까 생각중에 있습니다.

( MySql 서버가 라이트세일에 설치해서 상황을 봐야하겠지만, 그렇다해도 현재 비용을 보면 이게 더 저렴하게 먹힐거 같네요.. )

 

그래서 비용에 여유가 생기면 라이트세일 3번( EC2 역활 )과 5번( RDS 마스터 역활 )을 제거하고 각 리전에 추가하면 될거 같네요.

 

상황에따라서는 MySql 슬레이브를 API로 대체할지도..

( 근데 생각해보면, API로 대체하면 한단계 거치는거라;; Select 는 문제없는데, Insert, Update, Delete 의 경우 한단계 거쳐서 가는거라 웨이팅 타임이 더 길어질수도;; )

 

라이트세일로의 이전 이후 마스터와 슬레이브를 자동으로 나눠서 보내주도록 Class 변경을 하게 되면, 이것도 추가하여서 커밋 할 예정입니다.

 

이번 주말은 좀 고민해보고서 라이트세일로 이전 할 예정입니다.

 

라이트세일의 DB나 로드밸런서를 쓰는 방법도 고민을 해봤는데..

 

그냥 VPS로 트래픽 벌이를 하는게 더 좋아보이네요.

( 만약 로드바란서 서버가 문제가 생기거나 하면, 라이트세일 로드바란서로 옴길 예정입니다. )

 

기존 작업들처럼 사용자 별로 없는 현재 열심히 개발하다가 AWS 비용 때문에 잠시 중단된 서비스 옴기고..

 

어느정도 사용자가 있는 서비스를 옴기고..

 

그 이후에 본격적으로 서비스 옴길 예정입니다.

 

대충 새벽이나 낮시간에 2 ~ 4시간정도 서비스가 애매모호하게 왔다 갔다 할 확률이 큽니다.

( 주말빼고.. )

 

ps. AWS가 서버를 전담해서 관리해주고 하기는 합니다.

한번 구축하면 서버에 대해서 생각 안하셔도 됩니다!

단, 그 대가로 엄청난 돈을 가져갈 뿐..;;

( 저도 돈을 최대한 줄여보겠다고 몇달째 이러고 있네요;; )

Posted by Pure Ani

RE:D Cherish! -Eternity Blood- CRYSTALiA

放課後シンデレラ2 HOOKSOFT

花鐘カナデ*グラム NanaWind

フタマタ恋愛 ASa Project

スタディ§ステディ2 ま~まれぇど

リンパにATATA! ~メス牡蠣ミルクどぴゅらっしゅ~ Hending

創作彼女の恋愛公式 Aino+Links

流星ワールドアクター Heliodor

Secret Agent~騎士学園の忍びなるもの~ ensemble

天冥のコンキスタ エウシュリー

HaremKingdom -ハーレムキングダム- SMEE

ラズベリーキューブ まどそふと

ノラと皇女と野良猫ハート2 -Nora, Princess, and Crying Cat.- HARUKAZE

『ノラと皇女と野良猫ハート2』応援中♪

ピュアソングガーデン PULLTOP

はにデビ! Honey&Devil eufonie

姫繰三六五 HIMEKURI365

姫繰三六五 公式ウェブサイト

はるるみなもに! クロシェット

死に逝く君、館に芽吹く憎悪 バグシステム

Sanguinea-サングイネア- すにぃる

麗華の館 しすたーそふと

カスタムメイドオンライン KISS