여러 선배님들의 도움 및 조언을 얻고자 용기내어 글을 올리게 되었습니다.
와이프의 회사에서 메신저 어플을 개발중입니다.(스타트업 회사)
서비스 지역은 동남아 입니다.
해외 컨설팅 업체와 접촉을 해봤는데 AWS를 사용하라는 이야기만하고 컨설팅비만 냅다 받아갔습니다. ㅠ.ㅠ 나쁜 코쟁이
(참고로 저는 얻어 들은 지식만 있지 실제 프로그래밍에 대한 것은 하나도 모릅니다.)
현재 개발중인 어플은 메신저 어플입니다. 네이버 라인과 많이 유사합니다.(소켓 서버)
mysql, node.js, socket.i.o, php 등을 사용하여 개발하고 있습니다.
부끄럽지만 질문 몇개 올리겠습니다. ㅠ.ㅠ
1. dedicated 호스팅하는 싱가폴 업체 추천부탁드립니다.
2. 개발자들이 서버를 한대만 쓰겠다고 합니다. 제가 생각해도 비정상적인 것 같은데 말이 되나요?
3. 모바일 메신저 서비스이기에 서버단이 죽는걸 대비해서 L4(로드발란싱)를 사용하면 되는건지요?
4. 최소 필요한 서버가 몇대인가요?
제가 생각하는 서버 대수는 dB 2대(서버 죽는거 대비), CRM용 1대, 저장소 1대 입니다.
5. 동접 1만명 예상하고 있습니다. 추천 서버 부탁드립니다.
6. 외국 컨설턴트 말대로 AWS를 사용해야하나요? 아니면 코로케이션을 해야하나요?
네이버 라인과 타 메신저의 서버구성등 1주일 넘게 자료도 찾아보고 공부도 해보았지만
일반인이 이해하는데는 한계가 있었습니다. 부디 좋은 말씀 부탁드리겠습니다.
아니면 컨설팅 업체라도 알려주시면 연락해보겠습니다.
감사합니다.
socket.io ´Â ¼ÒÄÏÀÌ ¾Æ´Õ´Ï´Ù. ¼ÒÄÏ °°Àº °ÍÀÌÁÒ. node.js °¡ ¿ø·¡ ¸ÖƼ ÄÚ¾î/¸ÖƼ ¼¹ö¿¡ ÃÖÀûÈµÈ È¯°æÀº ¾Æ´Ï±â¿¡ ´ÜÀÏ ¼¹ö·Î ÃæºÐÈ÷ ¹öÆ¿¸¸ ÇÏ´Ù¸é ´ÜÀÏ ¼¹ö·Î °¡´Â°Ô ³ªÀº ¸éÀº ÀÖÁö¸¸, ±×·¸´Ù°í Ŭ·¯½ºÅÍ ±¸¼º ¾ÈÇß´Ù°¡ ¼ºñ½º ÁßÁöµÉ °æ¿ì¿¡´Â...¾Ï´ãÇÏÁÒ. ´Ü¼øÈ÷ L4 ¸¸ À̾߱âÇÒ °Ô ¾Æ´Ï¶ó node.js ¿¡¼ ¸ÖƼ Äھ ¸ÖƼ ¼¹ö¸¦ Áö¿øÇϱâ À§ÇØ ¹«¾ó ÀÌ¿ëÇÏ´ÂÁö¿¡ µû¶ó ¶Ç´Ù¸¥ °ÍÀÌ ÇÊ¿äÇÕ´Ï´Ù. redis °°Àº°É ÀÌ¿ëÇÑ´Ù¸é zookeeper ³ª ±âŸ ´Ù¸¥ µ¥¸óµµ ÇÊ¿äÇÏ°í ±×·±µ¥...Àåºñ ÂÊÀ¸·Î ´Ù ÇØ°áµÉ °Å¶ó°í »ý°¢ ¾ÈÇÏ½Ã´Â°Ô ÁÁ½À´Ï´Ù. °³¹ßÀÚµéÀº ±×·± ¼¹ö ÇÁ·Î±×·¡¹Ö ÂÊÀº Àß ¸ô¶ó¼ ±×·¯´Â °É¼öµµ ÀÖ±¸¿ä.
¸»¾¸Áß¿¡ node.js´Â ¸ÖƼ Äھ ÃÖÀûÈ°¡ ¾ÈµÇ¾î ÀÖ¾î¼ °¢ Äھ´Ù ¼³Á¤À» ÇØÁÖ¾î¾ß ÇÑ´Ù´Â ¸»¾¸À̽ÃÁÒ?
°³¹ßÀÚµéÀÌ ¾î¶»°Ô ÀÛ¾÷ÇÏ°í ÀÖ´ÂÁö È®ÀÎÇغ¸¶ó°í ÇÏ°Ú½À´Ï´Ù. L4°¡ ¸¸´ÉÀº ¾Æ´Ï¶ó´Â ¸»¾¸ ±íÀÌ »õ°Üµè°Ú½À´Ï´Ù.
¼ÒÁßÇÑ ´äº¯ Á¤¸» °¨»çÇÕ´Ï´Ù.
µ¿Á¢ 1¸¸¸íÀÌ°í ¸Þ½ÅÁ® ½ºÅ»À̶ó¸é, 3´ë·Î µ¹¸®¾ß ÇÕ´Ï´Ù.
2´ë´Â HA·Î ÇÏ°í, 1´ë´Â stand-by°¡ µÇ¾î¾ß Çϱ⠶§¹®ÀÔ´Ï´Ù.
±»ÀÌ L4·Î °¡¾ß ÇÏ´Â °ÍÀº ¾Æ´Õ´Ï´Ù.
Á¢¼Ó½ÃÁ¡¿¡ ³×Æ®¿÷ üũÇؼ, ·£´ýÇÏ°Ô 1¹ø°ú 2¹øÀ» üũÇؼ µé¾î°¡¸é µÇ´Ï±î¿ä.
ÇÁ·Î±×·¥ °³¹ßÀÚ´Â ÆíÀǼº ¶§¹®¿¡ 1´ë·Î °¡¾ßÁö ÇÏ°í
±×°ÍÀ» 3´ë·Î ºÐ»êÇÏ´Â °ÍÀº ½Ã½ºÅÛ °ü¸®ÀÚÀÇ ¿ªÈ° ÀÔ´Ï´Ù.
¸Þ½ÅÁ®´Â DB¸¦ redis °°Àº °ÍÀ» ¾¹´Ï´Ù. slot ±¸Á¶ÀÇ db´Ï±î¿ä.
redis´Â 1°³ÀÇ ¼¹ö¿¡ ¼ö½Ê ¼ö¹é°³ÀÇ db instance¸¦ °¡Áú ¼ö ÀÖ±¸¿ä.
¶óÀεµ redis·Î ½ÃÀÛÇß½À´Ï´Ù.
AWS¿¡ instance¸¦ 1°³ ¿¾î¼ ½ÃÀÛÇÏ°í, ºÎÇÏ°¡ ´Ã¾î³ª¸é ¼¹ö¸¦ ºÐ»êÇØÁÖ¸é µË´Ï´Ù.
óÀ½ºÎÅÍ 3´ë·Î ½ÃÀÛ ¾ÈÇصµ µË´Ï´Ù.
redisÀÇ °æ¿ì cluster°¡ ³ª¿Ô±â ¶§¹®¿¡, zoo keeper °°Àº°Å¸¦ ÀÌÁ¦´Â ¾ÈÇصµ °¡´ÉÇÕ´Ï´Ù.
¸Þ½ÅÀú db´Â redis·Î ½á¾ßÁö ¼Óµµ³ª Â÷ÈÄ ¼¹öÁõ¼³¿¡ À־µ À¯¸®ÇÑ°¡ º¾´Ï´Ù.
±×·¯¸é redis¿Í Ŭ·¯½ºÅÍ ±×¸®°í mysqlÀ» ¾²¸é µÇ´Â°ÇÁö¿ä? redis°¡ Èֹ߼ºÀÌ¶ó¼ ¿µ±¸ÀûÀ¸·Î ÀúÀåÀÌ ÇÊ¿äÇÑ
µ¥ÀÌŸ¿Í 1ÁÖÀÏ Á¤µµ ÀúÀåÀÌ µÇ´Â µ¥ÀÌŸ¸¦ ÀúÀåÇÒ·Á¸é mysql °°Àº °ÍÀ» ½á¾ßÇÏÁö ¾Ê³ª¿ä?
¸»¾¸ÇϽŠAWS¸¦ »ç¿ëÇÒ·Á°í »ý°¢ÇÏ°í ÀÖ½À´Ï´Ù.
±×·³ ¼¹öÇÑ´ëÀÇ ¸Þ¸ð¸®¸¦ ºÐÇÒÇÏ¿© ¸î½ÊÆÛ¼¾Æ®´Â redisÀÇ db ÀúÀå¼Ò·Î »ç¿ëÇÏ°í ³ª¸ÓÁö ¸Þ¸ð¸®´Â ¼¹öÀÇ
¸Þ¸ð¸®·Î ±×¸®°í µ¥ÀÌŸ´Â ¼¹öÀÇ ssd¿¡ ÀúÀåµÈ´Ù°í ÀÌÇØÇصµ µÇ´ÂÁö¿ä?
Á¦´ë·Î ¾Ë°í Áú¹®µå·Á¾ß Çϴµ¥ Á˼ÛÇÕ´Ï´Ù.
±×¸®°í °¨»çµå¸³´Ï´Ù.
redis DB´Â ½ÇÁ¦·Î ¾²´Â ¸Þ¸ð¸® ¿ë·®ÀÌ Å©Áö ¾Ê½À´Ï´Ù.
Å« °í¹Î ¾ÈÇصµ µÉ°Å¿¡¿ä.
MySQLÀÇ °æ¿ì¿¡´Â ÀÏÀÚº°·Î ÆÄƼ¼Å´×À» Çؼ, 30ÀÏ ´ÜÀ§·Î ·Ñ¸µ µ¹¸®¸é ºÎÇÏ°¡ Å©Áö ¾Ê±¸¿ä.
±×¸®°í »ç½Ç ¸Þ½ÅÀú¶ó¸é Àú·± nosql º¸´Ù´Â IMDG °°Àº°Ô ´õ È¿À²¼ºÀÌ ÁÁÀ» °Í °°½À´Ï´Ù. Àú´Â Á¶±Ý ´À¸®´Ù´Â hazelcast À» ¾²°í Àִµ¥(java vert.x ¶ó¼) »ó¿ëÀ̳ª zing jvm µµÀÔ ¾øÀ̵µ ¾î´À Á¤µµ ¸¸Á·ÇÒ¸¸ÇÑ ¼º´ÉÀÌ ³ª¿Í¼¿ä...
±×·±µ¥ ¾Õ¼ À̾߱â ÇØÁֽŠIMDGÀÇ Àǹ̰¡ ¹«¾ùÀÎÁö ¸ð¸£°Ú½À´Ï´Ù.
³×À̹öÂÊÀ¸·Î ã¾ÆºÁµµ IMDG¿¡ ´ëÇÑ Àǹ̰¡ ³ª¿ÀÁö ¾Ê½À´Ï´Ù.
Á˼ÛÇÏÁö¸¸ Á¶±Ý¸¸ ¼³¸íÇØÁÖ½Ã¸é ¾ÈµÉ·±Áö¿ä.
³»ÀÏ ÇÏ·çµµ ÇູÇϼ¼¿ä. °¨»çÇÕ´Ï´Ù.
IMDG ´Â ÀÌ°É ¶Ù¾î³Ñ¾î »ç¿ëÀÚÀÇ ¸Þ¸ð¸®(¶ó±â º¸´Ù´Â ƯÁ¤ º¯¼ö°ª Á¤µµ°¡ µÇ°ÚÁÒ)¸¦ ¼¹ö °£¿¡ °øÀ¯¸¦ ÇÏ´Â °³³äÀÔ´Ï´Ù. ¹°·Ð ºñµ¿±âÀ̱⠶§¹®¿¡ ¿Ïº®ÇÏ°Ô µ¿ÀÏÇÏ°Ô »ç¿ëÇϱâ À§Çؼ´Â lock À» °É¾î³õ°í µ¥ÀÌÅ͸¦ ó¸®ÇØ¾ß ÇÑ´Ù´ø°¡ ÇØ¾ß Çϴµ¥, NoSQL Á¦Ç° Áß¿£ ÀÌ·± µ¿±âȸ¦ À§ÇÑ lock 󸮰¡ Á» º°·ÎÀÎ °æ¿ìµµ ÀÖ¾î¼...
¾î·µç ¿À¶óŬ·Î ÀμöµÈ Coherence ¶ó´øÁö...¸î°¡Áö ¼Ö·ç¼ÇÀÌ Á¸ÀçÇÕ´Ï´Ù. Áö¼ÓÀûÀÎ ÀúÀåÀÌ ¾Æ´Ñ µ¥ÀÌÅÍ °øÀ¯¶ó´Â °³³ä¸¸ °¡Áö°í °£´Ù¸é IMDG °¡ ÈξÀ µµÀÔÇϱ⠰£´ÜÇÏ°í °ü¸®Æ÷ÀÎÆ®µµ ÈξÀ Àû½À´Ï´Ù. ¹°·Ð IMDG ¿¡ µû¶ó Áö¿øÇÏ´Â ¾ð¾î¿¡ ´ëÇÑ Á¦¾àµµ ÀÖ°í(ÁÖ·Î Java ÂÊÀ» Áö¿øÇÏ´Â °æ¿ì°¡ ¸¹½À´Ï´Ù) ºñ½Ñ°Ç ¹«Áö ºñ½Î°í...±×·¸Áö¸¸ ¼¹ö°¡ ²¨Á³À» ¶§¸¦ ´ëºñÇØ µð½ºÅ©¿¡ ¹é¾÷µµ ÇØÁÖ´Â ¼Ö·ç¼Çµéµµ Àֱ⠶§¹®¿¡ µµÀÔÀ» °ËÅäÇغ¸½Ã´Â °Íµµ ÁÁ½À´Ï´Ù.
°¡°Ýµµ ±×·¸±¸¿ä
±×¸®°í 1´ë¶ó´Â°³³äÀÌ È£½ºÆþ÷ü¿¡ ¼¹öÀ§Å¹À̳ª ¸®½ºÇÏ°í ÇÊ¿äÇϸé ÇϵåÃß°¡µîÀ» »ý°¢ÇϽô°Å
°°Àºµ¥ ¿äÁò°°Àº ±Û·Î¹úÀÎÅͳݽô뿡´Â ÀÇ¹Ì ¾ø½À´Ï´Ù.
´õ±º´Ù³ª ¸Þ½ÅÀú¼¹öÀε¥ ¾ðÁ¦ ¾îµð·Î Æ¥Áö ¸ð¸¨´Ï´Ù.
AWS°°Àº°æ¿ì ºÎÇϵ µû¶ó¼ Áï½Ã·Î Áõ¼³µîÀÌ ÆíÇÕ´Ï´Ù.
±×¸®°í ¾îÂ÷ÇÇ È£½ºÆÃÀ» »ç¿ëÇصµ ¿ø°ÝÀ¸·Î ÀÛ¾÷ÇؾßÇϴµ¥
ÀÛ¾÷ÀÚ ÀÔÀå¿¡¼º¸¸é È£½ºÆÃÀ̳ª AWS³ª °ÅÀÇ Â÷ÀÌ ¾ø½À´Ï´Ù.
¸»¾¸ÇϽŰÍó·³ AWS·Î °¡´ÚÀ» Àâ°í ÀÖ½À´Ï´Ù. ±¸±Ûµµ AWS¿Í ºñ½ÁÇÑ ¼ºñ½º¸¦ ·±ÄªÇ߱⿡
ºñ±³µµ Çغ¼ »ý°¢ÀÔ´Ï´Ù. ¸Þ½ÅÀú ¼¹öÀÇ Æ¯Â¡À» ÀúÈñ°¡ ÆľÇÇÏÁö ¾Ê°í ÀÏÀ» ÁøÇàÇß´ø°Í °°½À´Ï´Ù.
¼ÒÁßÇÑ ´äº¯ Á¤¸» °¨»çµå¸³´Ï´Ù.