|
¡Ø ¾Ë·Áµå¸³´Ï´Ù.¹ßÇàÀÏ : 2021-11-19
Ã¥¼Ò°³ÀÌ Ã¥ÀÌ ¼ÓÇÑ ºÐ¾ß¡¶µû¶óÇÏ¸ç ¹è¿ì´Â µµÄ¿¿Í CI ȯ°æ¡·°ú ÇÔ²² ´õ ½±°Ô, ´õ ±íÀÌ ÀÖ°Ô µµÄ¿¸¦ ¸¸³ªº¸¼¼¿ä! ÀÌ Ã¥ÀÇ Àü¹ÝºÎ¿¡¼´Â µµÄ¿ ÄÁÅ×ÀÌ³Ê¿Í µµÄ¿ À̹ÌÁö°¡ ¹«¾ùÀÎÁöºÎÅÍ µµÄ¿ ÄÄÆ÷Áî±îÁö µµÄ¿¿¡ °üÇØ ¾Ë¾Æº¾´Ï´Ù. ´Ù¾çÇÑ µµÇØ¿Í ÇÔ²² ¼³¸íÇÔÀ¸·Î½á µµÄ¿¸¦ ´õ¿í´õ ½±°Ô ÀÌÇØÇÒ ¼ö ÀÖ°í, ±íÀÌ ÀÖ°Ô °øºÎÇÒ ¼ö ÀÖ½À´Ï´Ù. Àü¹ÝºÎ¿¡¼ µµÄ¿ÀÇ ±âº»±â¸¦ źźÇÏ°Ô ´ÙÁø ÈÄ¿¡, ÀÌ Ã¥ÀÇ ÈĹݺο¡¼´Â µÎ °¡Áö ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µé¾î º¾´Ï´Ù. ±êÇãºê, Travis CI, AWS¸¦ ÀÌ¿ëÇÑ CI/CD ȯ°æÀ» ±¸ÃàÇغ¸¸é¼ ½ÇÁ¦ ½Ç¹«¿¡¼ µµÄ¿¸¦ ¾î¶»°Ô È°¿ëÇÏ´ÂÁö ½Ç½ÀÇÕ´Ï´Ù. ±êÇãºê, Travis CI, AWS¸¦ »ç¿ëÇÑ °æÇèÀÌ ¾ø´õ¶óµµ ÇÑ ´Ü°è¾¿ Â÷±ÙÂ÷±Ù ¸¸µé¾î ³ª°¡¹Ç·Î ºÎ´ã ¾øÀÌ °øºÎÇÒ ¼ö ÀÖ½À´Ï´Ù. »ó¼¼À̹ÌÁö¸ñÂ÷¢Ã 01Àå: µµÄ¿¶õ? 1.1 µµÄ¿¸¦ »ç¿ëÇÏ´Â ÀÌÀ¯ ___µµÄ¿¸¦ »ç¿ëÇÏÁö ¾ÊÀ» ¶§¿Í µµÄ¿¸¦ »ç¿ëÇØ ÇÁ·Î±×·¥À» ¼³Ä¡ÇÒ ¶§ ___µµÄ¿¸¦ »ç¿ëÇÏÁö ¾Ê°í ·¹µð½º ¼³Ä¡Çϱâ ___µµÄ¿¸¦ »ç¿ëÇØ ·¹µð½º ¼³Ä¡Çϱâ 1.2 µµÄ¿¿Í ÄÁÅ×ÀÌ³Ê ___½Ç ¼¼°èÀÇ ÄÁÅ×ÀÌ³Ê ___µµÄ¿¿¡¼ÀÇ ÄÁÅ×ÀÌ³Ê 1.3 µµÄ¿ À̹ÌÁö¿Í µµÄ¿ ÄÁÅ×ÀÌ³Ê 1.4 µµÄ¿ ¼³Ä¡Çϱâ ___µµÄ¿ ȸ¿ø °¡ÀÔÇϱâ ___À©µµ¿ì ȯ°æ¿¡¼ µµÄ¿ ¼³Ä¡Çϱâ ___macOS ȯ°æ¿¡¼ µµÄ¿ ¼³Ä¡Çϱâ 1.5 µµÄ¿¸¦ »ç¿ëÇÒ ¶§ÀÇ È帧 1.6 µµÄ¿¿Í ±âÁ¸ °¡»óÈ ±â¼úÀÇ Â÷ÀÌÁ¡ ___°¡»óÈ ±â¼úÀÌ ³ª¿À±â Àü¿¡ ¼¹ö¸¦ »ç¿ëÇÏ´ø ¹æ½Ä ___ÇÏÀÌÆÛ¹ÙÀÌÀú ±â¹ÝÀÇ °¡»óÈ ±â¼ú ___ÇÏÀÌÆÛ¹ÙÀÌÀúÀÇ Á¾·ù ___´õ ÀÚ¼¼ÇÏ°Ô µµÄ¿ ÄÁÅ×ÀÌ³Ê »ìÆ캸±â ___Cgroup°ú ³×ÀÓ½ºÆäÀ̽º 1.7 µµÄ¿ À̹ÌÁö·Î µµÄ¿ ÄÁÅ×ÀÌ³Ê ¸¸µé±â ___ÀÀ¿ë ÇÁ·Î±×·¥À» ½ÇÇàÇÏ´Â µ¥ ÇÊ¿äÇÑ ¸ðµç °Í ___µµÄ¿ ÄÁÅ×À̳ʰ¡ »ý¼ºµÇ´Â ¼ø¼ 1.8 Cgroup, ³×ÀÓ½ºÆäÀ̽º¸¦ ¾µ ¼ö ÀÖ´Â ÀÌÀ¯ ¢Ã 02Àå: ±âº»ÀûÀÎ µµÄ¿ Ŭ¶óÀ̾ðÆ® ¸í·É¾î 2.1 µµÄ¿ À̹ÌÁöÀÇ ³»ºÎ ÆÄÀÏ ±¸Á¶ º¸±â - docker run ls 2.2 ÄÁÅ×ÀÌ³Ê ³ª¿Çϱâ - docker ps ___ÇöÀç ½ÇÇà ÁßÀÎ ÄÁÅ×ÀÌ³Ê ³ª¿ ___µµÄ¿ ÄÁÅ×À̳ʸ¦ ³ª¿ÇÒ ¶§ ¿øÇÏ´Â Ç׸ñ¸¸ º¸±â ___¸ðµç µµÄ¿ ÄÁÅ×À̳ʸ¦ ³ª¿ 2.3 µµÄ¿ ÄÁÅ×À̳ÊÀÇ »ý¼º°ú ½ÇÇà ___µµÄ¿ ÄÁÅ×À̳ʸ¦ »ý¼ºÇÏ°í ½ÇÇàÇϱâ - docker run ¡´À̹ÌÁö À̸§¡µ ___µµÄ¿ ÄÁÅ×ÀÌ³Ê »ý¼ºÇϱâ - docker create ¡´À̹ÌÁö À̸§¡µ ___»ý¼ºµÈ µµÄ¿ ÄÁÅ×ÀÌ³Ê ½ÇÇàÇϱâ - docker start ¡´ÄÁÅ×ÀÌ³Ê ID/À̸§¡µ 2.4 µµÄ¿ ÄÁÅ×ÀÌ³Ê ¸ØÃß±â ___µµÄ¿ ÄÁÅ×ÀÌÅ͸¦ ¿ì¾ÆÇÏ°Ô ÁßÁöÇϱâ - docker stop ¡´ÄÁÅ×ÀÌ³Ê ID/À̸§¡µ ___µµÄ¿ ÄÁÅ×ÀÌÅ͸¦ Áï½Ã ÁßÁöÇϱâ - docker kill ¡´ÄÁÅ×ÀÌ³Ê ID/À̸§¡µ 2.5 µµÄ¿ ÄÁÅ×ÀÌ³Ê »èÁ¦Çϱâ - docker rm ___ÁßÁöµÈ ¸ðµç ÄÁÅ×ÀÌ³Ê »èÁ¦Çϱâ - docker rm `docker ps -a -q` ___µµÄ¿ À̹ÌÁö »èÁ¦Çϱâ - docker rmi ¡´À̹ÌÁö id¡µ ___»ç¿ëÇÏÁö ¾Ê´Â µ¥ÀÌÅÍ »èÁ¦Çϱâ - docker system prune 2.6 ½ÇÇà ÁßÀÎ ÄÁÅ×À̳ʿ¡ ¸í·É¾î Àü´ÞÇϱâ - docker exec 2.7 ·¹µð½º¸¦ ÀÌ¿ëÇØ µµÄ¿ ÄÁÅ×ÀÌ³Ê ÀÌÇØÇϱâ 2.8 ½ÇÇà ÁßÀÎ ÄÁÅ×À̳ʿ¡¼ Å͹̳Π»ç¿ëÇϱâ - docker exec sh ___½ÇÇà ÁßÀÎ ÄÁÅ×À̳ʿ¡ ¼Ð ȯ°æÀ¸·Î Á¢¼ÓÇϱâ ___¼Ð ȯ°æÀ¸·Î Á¢¼ÓÇϱ⠢à 03Àå: Á÷Á¢ µµÄ¿ À̹ÌÁö »ý¼ºÇϱâ 3.1 µµÄ¿ À̹ÌÁö¸¦ »ý¼ºÇÏ´Â ¼ø¼ ___µµÄ¿ À̹ÌÁö´Â ¾î¶»°Ô »ý¼ºÇÒ±î¿ä? ___µµÄ¿ À̹ÌÁö¸¦ »ý¼ºÇÏ´Â ¼ø¼ 3.2 µµÄ¿ ÆÄÀÏ(Dockerfile) ¸¸µé±â ___µµÄ¿ ÆÄÀÏÀ̶õ? ___µµÄ¿ ÆÄÀÏ ÀÛ¼º ¹æ¹ý ___º£À̽º À̹ÌÁö¶õ ¹«¾ùÀΰ¡? ___µµÄ¿ ÆÄÀÏ ÀÛ¼ºÇϱâ 3.3 Buildkit ºñÈ°¼ºÈÇϱâ ___BuildkitÀ̶õ ¹«¾ùÀΰ¡¿ä? ___BuildkitÀ» ÀÌ¿ëÇßÀ» ¶§ÀÇ Â÷ÀÌÁ¡ ___Buildkit ºñÈ°¼ºÈÇϱâ 3.4 µµÄ¿ ÆÄÀÏ·Î µµÄ¿ À̹ÌÁö ¸¸µé±â ___build ¸í·É¾î´Â ¹«¾ùÀΰ¡¿ä? ___build ¸í·É¾î·Î À̹ÌÁö ºôµåÇϱâ ___ºôµå °úÁ¤ ÀÚ¼¼È÷ »ìÆ캸±â ___ºôµå °úÁ¤ÀÇ Step 2/2 ÀÚ¼¼È÷ º¸±â 3.5 ³»°¡ ¸¸µç À̹ÌÁö¿¡ ±â¾ïÇϱ⠽¬¿î À̸§ ºÙ¿©ÁÖ±â ___µµÄ¿ À̹ÌÁö¿¡ À̸§ ºÙ¿©ÁÖ±â - docker build -t ___À̹ø Àå¿¡¼ ¸¸µé Node.js ¾ÖÇø®ÄÉÀ̼ÇÀÇ ±¸Á¶ ___µµÄ¿¸¦ ÀÌ¿ëÇØ Node.js ¾ÖÇø®ÄÉÀ̼ÇÀ» ¸¸µå´Â ¼ø¼ ¢Ã 04Àå: µµÄ¿¸¦ ÀÌ¿ëÇÑ °£´ÜÇÑ Node.js ¾ÖÇø®ÄÉÀÌ¼Ç ¸¸µé±â 4.1 Node.js ¾ÖÇø®ÄÉÀÌ¼Ç ¸¸µé±â ___Node.js ¼³Ä¡Çϱâ ___Node.js ¾Û ¸¸µé±â 4.2 µµÄ¿ ÆÄÀÏ ÀÛ¼ºÇϱâ ___ÀÛ¼ºÇÑ µµÄ¿ ÆÄÀÏ ÀÚ¼¼È÷ »ìÆ캸±â ___¿Ö FROM ºÎºÐ¿¡ alpine º£À̽º À̹ÌÁö°¡ ¾Æ´Ñ node À̹ÌÁö¸¦ »ç¿ëÇÒ±î¿ä? ___RUN ºÎºÐ¿¡ ÀÖ´Â npm installÀº ¾î¶² ÄÚµåÀΰ¡¿ä? ___CMDºÎºÐ¿¡ ÀÖ´Â “node”, “server.js”´Â ¹«¾ùÀΰ¡¿ä? 4.3 package.jsonÀÌ ¾ø´Ù´Â ¿¡·¯ ¸Þ½ÃÁö°¡ ¹ß»ýÇÏ´Â ÀÌÀ¯ ___À̹ÌÁö¸¦ ºôµåÇÒ ¶§ ¿Ö package.json ÆÄÀÏÀÌ ¾ø´Ù°í ³ª¿À³ª¿ä? 4.4 »ý¼ºÇÑ À̹ÌÁö·Î ¾ÖÇø®ÄÉÀÌ¼Ç ½ÇÇà ½Ã Á¢±ÙÀÌ ¾È µÇ´Â ÀÌÀ¯ ___¾ÕÀ¸·Î ÄÁÅ×À̳ʸ¦ ½ÇÇàÇϱâ À§ÇØ »ç¿ëÇÒ ¸í·É¾î ___»õ·Ó°Ô Ãß°¡µÈ ºÎºÐÀº ¹«½¼ ¶æÀΰ¡¿ä? 4.5 ÀÛ¾÷ µð·ºÅ͸® ¸í½ÃÇϱâ ___WORKDIR Áö½ÃÀÚ´Â ¹«¾ùÀΰ¡¿ä? ___µµÄ¿ ÄÁÅ×ÀÌ³Ê ¾È¿¡ º°µµÀÇ ÀÛ¾÷ µð·ºÅ͸®°¡ ¿Ö ÀÖ¾î¾ß Çϳª¿ä? ___COPY Áö½ÃÀÚ·Î ÄÁÅ×ÀÌ³Ê ¾ÈÀ¸·Î º¹»çÇÑ Æú´õ¿Í ÆÄÀÏ ___ÀÌ·¸°Ô ÆÄÀÏ°ú Æú´õ°¡ ÇÑ µð·ºÅ͸®¿¡ ¼¯ÀÌ¸é ¹®Á¦°¡ µÇ³ª¿ä? ___ÀÛ¾÷ µð·ºÅ͸®¸¦ ¼³Á¤ÇÏ´Â ¹æ¹ý 4.6 ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¼Ò½º ÄÚµå º¯°æÀ¸·Î ´Ù½Ã ºôµåÇÒ ¶§ÀÇ ¹®Á¦Á¡ ___µµÄ¿ ȯ°æ¿¡¼ ¾ÖÇø®ÄÉÀ̼ÇÀ» ½ÇÇàÇÏ´Â ¼ø¼ ___À̹ÌÁö¸¦ »õ·Î ºôµåÇÏ¸é¼ »ý±ä 2°¡Áö ¹®Á¦Á¡ 4.7 ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¼Ò½º Äڵ带 º¯°æÇßÀ» ¶§ À̹ÌÁö¸¦ È¿À²ÀûÀ¸·Î ´Ù½Ã ºôµåÇϱâ ___COPY Áö½ÃÀÚ ºÎºÐÀ» ¹Ù²Û ÀÌÀ¯´Â ¹«¾ùÀϱî¿ä? ___COPY Áö½ÃÀÚ¸¦ RUN ÀüÈÄ·Î ³ª´² È¿À²ÀûÀ¸·Î ºôµåÇϱâ 4.8 µµÄ¿ º¼·ý ___µµÄ¿ º¼·ý(Docker Volume)Àº ¹«¾ùÀΰ¡¿ä? ___µµÄ¿ º¼·ýÀº ¾î¶»°Ô ÀÌ¿ëÇϳª¿ä? ___PWD(print working directory) ___µµÄ¿ º¼·ýÀ» »ç¿ëÇØ ¾ÖÇø®ÄÉÀÌ¼Ç ½ÇÇàÇϱ⠢à 05Àå: µµÄ¿ ÄÄÆ÷Áî 5.1 À̹ø Àå¿¡¼ ¸¸µé ¾ÖÇø®ÄÉÀÌ¼Ç ___À̹ø ÀåÀÇ ÇнÀ ¼ø¼ 5.2 Node.js¿Í ·¹µð½º ±¸ÇöÇϱâ ___Node.js ¾ÖÇø®ÄÉÀÌ¼Ç ¸¸µé±â ___·¹µð½º¶õ ¹«¾ùÀΰ¡¿ä? ___·¹µð½ºÀÇ ÀåÁ¡Àº ¹«¾ùÀΰ¡¿ä? ___Node.js ȯ°æ¿¡¼ ·¹µð½º¸¦ »ç¿ëÇÏ´Â ¹æ¹ý ___µµÄ¿ ȯ°æ¿¡¼ ·¹µð½º Ŭ¶óÀ̾ðÆ®¸¦ »ý¼ºÇÒ ¶§ ÁÖÀÇÇÒ Á¡ ___Node.js ¾ÖÇø®ÄÉÀ̼ǿ¡ ·¹µð½º ÄÚµå Ãß°¡Çϱâ 5.3 Node.js¸¦ ½ÇÇàÇÒ ÄÁÅ×À̳ÊÀÇ µµÄ¿ ÆÄÀÏ ÀÛ¼ºÇϱâ ___µµÄ¿ ÆÄÀÏ ÀÛ¼ºÇϱâ 5.4 Åë½ÅÇÒ ¶§ ³ªÅ¸³ª´Â ¿¡·¯ ___¾ÖÇø®ÄÉÀÌ¼Ç ½ÇÇà ¼ø¼ 5.5 µµÄ¿ ÄÄÆ÷Áî ÆÄÀÏ ÀÛ¼ºÇϱâ ___µµÄ¿ ÄÄÆ÷Áî ÆÄÀÏÀº È®ÀåÀÚ°¡ yamlÀ̳ª ymlÀε¥ ÀÌ°ÍÀº ¹«½¼ ÆÄÀÏÀΰ¡¿ä? ___µµÄ¿ ÄÄÆ÷ÁîÀÇ ÆÄÀÏ ±¸Á¶ 5.6 µµÄ¿ ÄÄÆ÷Áî Á¤Áö½ÃÅ°±â ¢Ã 06Àå: ´ÜÀÏ ÄÁÅ×À̳ʸ¦ È°¿ëÇÑ ¾ÖÇø®ÄÉÀÌ¼Ç ¸¸µé±â 6.1 ¸®¾×Æ® ¼³Ä¡ ¹× ¾ÖÇø®ÄÉÀÌ¼Ç »ý¼º ___¸®¾×Æ® ¾ÖÇø®ÄÉÀÌ¼Ç »ý¼ºÇϱâ 6.2 ¸®¾×Æ® ¾ÖÇø®ÄÉÀ̼ÇÀ» À§ÇÑ µµÄ¿ ÆÄÀÏ ÀÛ¼ºÇϱâ ___°³¹ß ȯ°æÀ» À§ÇÑ µµÄ¿ ÆÄÀÏ ÀÛ¼ºÇϱâ ___¿Ö ÀÌ·± ¿¡·¯ ¸Þ½ÃÁö°¡ ¹ß»ýÇßÀ»±î¿ä? 6.3 »ý¼ºµÈ µµÄ¿ À̹ÌÁö·Î ·ÎÄÿ¡¼ ¸®¾×Æ® ½ÇÇàÇϱâ 6.4 µµÄ¿ º¼·ýÀ» ÀÌ¿ëÇÑ ¼Ò½º ÄÚµå º¯°æ ___COPY¿Í µµÄ¿ º¼·ýÀÇ Â÷ÀÌÁ¡ º¹½À ___µµÄ¿ º¼·ýÀ» »ç¿ëÇØ ¾ÖÇø®ÄÉÀÌ¼Ç ½ÇÇàÇϱâ 6.5 µµÄ¿ ÄÄÆ÷Áî·Î Á» ´õ °£´ÜÇÏ°Ô ¾ÖÇø®ÄÉÀÌ¼Ç ½ÇÇàÇϱâ ___µµÄ¿ ÄÄÆ÷Á ÀÌ¿ëÇØ ¾ÖÇø®ÄÉÀÌ¼Ç ½ÇÇàÇϱâ 6.6 ¸®¾×Æ® ¾ÖÇø®ÄÉÀÌ¼Ç Å×½ºÆ®Çϱâ ___µµÄ¿¸¦ ÀÌ¿ëÇÑ ¸®¾×Æ® ¾ÖÇø®ÄÉÀ̼ǿ¡¼ Å×½ºÆ®¸¦ ÁøÇàÇÏ·Á¸é 6.7 ¿î¿µ ȯ°æÀ» À§ÇÑ ¿£Áø¿¢½º ___°³¹ß ȯ°æ¿¡¼ ¸®¾×Æ® ¾ÖÇø®ÄÉÀ̼ÇÀÌ ½ÇÇàµÇ´Â ±¸Á¶ ___¿î¿µ ȯ°æ¿¡¼ ¸®¾×Æ® ¾ÖÇø®ÄÉÀ̼ÇÀÌ ½ÇÇàµÇ´Â ±¸Á¶ ___¿Ö °³¹ß ȯ°æÀÇ ¼¹ö¿Í ¿î¿µ ȯ°æÀÇ ¼¹ö°¡ ´Ù¸¥°¡¿ä? 6.8 ¿î¿µ ȯ°æÀÇ µµÄ¿ À̹ÌÁö¸¦ À§ÇÑ µµÄ¿ ÆÄÀÏ ÀÛ¼ºÇϱâ ___°³¹ß ȯ°æÀÇ µµÄ¿ ÆÄÀÏ°ú ¿î¿µ ȯ°æÀÇ µµÄ¿ ÆÄÀÏ ºñ±³ ___¿î¿µ ȯ°æÀÇ µµÄ¿ ÆÄÀÏ ÀÚ¼¼È÷ º¸±â ___BUILDER STAGE ___RUN STAGE ___¿î¿µ ȯ°æ¿¡¼ ¸®¾×Æ® ¾ÖÇø®ÄÉÀÌ¼Ç ½ÇÇàÇϱâ 6.9 ¿î¿µ ȯ°æÀÇ µµÄ¿ ÄÄÆ÷Áî ÆÄÀÏ ÀÛ¼ºÇϱâ ___¿î¿µ ȯ°æÀÇ µµÄ¿ ÄÄÆ÷Áî ÆÄÀÏ ÀÛ¼º ¢Ã 07Àå: ´ÜÀÏ ÄÁÅ×À̳ʸ¦ È°¿ëÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀÇ Å×½ºÆ®¿Í ¹èÆ÷ 7.1 ±êÇãºê¿¡ ¼Ò½º ÄÚµå ¿Ã¸®±â 7.2 Travis CI¿¡¼ Å×½ºÆ®Çϱâ ___Travis CI¶õ? ___Travis CIÀÇ ¿ªÇÒ ___Travis CI¿Í ±êÇãºê ¿¬µ¿ ___Å×½ºÆ®¸¦ À§ÇÑ Travis CI ¼³Á¤ ÆÄÀÏ ÀÛ¼ºÇϱâ - travis.yml ___travis.yml ÆÄÀÏ ÀÚ¼¼È÷ »ìÆ캸±â ___.travis.yml ÆÄÀÏ ÀÛ¼ºÇϱâ 7.3 AWS ¾Ë¾Æº¸±â ___AWSÀÇ ¼ºñ½ºµé ___EC2¶õ ¹«¾ùÀΰ¡? (Elastic Compute Cloud) ___ÀÏ·¡½ºÆ½ ºó½ºÅåÀ̶õ ¹«¾ùÀΰ¡? (Elastic Beanstalk) 7.4 ÀÏ·¡½ºÆ½ ºó½ºÅå ȯ°æ°ú ¾ÖÇø®ÄÉÀÌ¼Ç ¸¸µé±â ___»õ·Î¿î ÀÏ·¡½ºÆ½ ºó½ºÅå ȯ°æ ¸¸µé±â ___Æ®·¡ÇÈÀÌ ¸¹Áö ¾ÊÀ» ¶§ ___Æ®·¡ÇÈÀÌ ¸¹À» ¶§ 7.5 ¾ÖÇø®ÄÉÀ̼ÇÀ» ¹èÆ÷Çϱâ À§ÇÑ Travis CI ¼³Á¤ ÆÄÀÏ ÀÛ¼ºÇϱâ ___¹èÆ÷¿Í °ü·ÃµÈ Travis CI ¼³Á¤ ÄÚµå 7.6 Travis CI¿¡¼ AWS¿¡ Á¢±ÙÇϱâ À§ÇÑ API »ý¼º ___¼Ò½º Äڵ带 Àü´ÞÇϱâ À§ÇÑ Á¢±Ù ¿ä°Ç ___IAM(Identity and Access Management)À̶õ? ___IAM »ç¿ëÀÚ »ý¼ºÇϱâ ___API Å°¸¦ Travis CI ¼³Á¤ ÆÄÀÏ¿¡ ÀÛ¼ºÇϱâ ___ÀÏ·¡½ºÆ½ ºó½ºÅå ȯ°æ Á¾·áÇϱ⠢à 08Àå: ´ÙÁß ÄÁÅ×À̳ʸ¦ È°¿ëÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀÇ °³¹ß ȯ°æ ±¸Ãà 8.1 ´ÙÁß ÄÁÅ×À̳ʸ¦ È°¿ëÇØ ¸¸µé ¾ÖÇø®ÄÉÀ̼ÇÀÇ ±¸Á¶ ___¸ÖƼ ÄÁÅ×ÀÌ³Ê ¾ÖÇø®ÄÉÀ̼ÇÀ» À§ÇÑ ÀüüÀûÀÎ ¼³°è ___¿£Áø¿¢½ºÀÇ ÇÁ·Ï½Ã(Proxy) ±â´ÉÀ» ÀÌ¿ëÇÑ ¼³°è ___¿£Áø¿¢½º´Â Á¤Àû ÆÄÀϸ¸ Á¦°øÇÏ´Â ¼³°è ___¾ÖÇø®ÄÉÀ̼ÇÀÇ ±¸Çö ¼ø¼ 8.2 Node.js·Î ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¹é¿£µå ¼¹ö ±¸ÇöÇϱâ 8.3 React.js·Î ¾ÖÇø®ÄÉÀ̼ÇÀÇ ÇÁ·±Æ®¿£µå ±¸ÇöÇϱâ 8.4 ¸®¾×Æ® ¾ÖÇø®ÄÉÀ̼ÇÀ» À§ÇÑ µµÄ¿ ÆÄÀÏ ¸¸µé±â ___¿£Áø¿¢½º ¼³Á¤ º¯°æÇϱâ 8.5 ³ëµå ¾ÖÇø®ÄÉÀ̼ÇÀ» À§ÇÑ µµÄ¿ ÆÄÀÏ ¸¸µé±â 8.6 °³¹ß ȯ°æ°ú ¿î¿µ ȯ°æÀÇ µ¥ÀÌÅͺ£À̽º ±¸¼º ___°³¹ß ȯ°æ°ú ¿î¿µ ȯ°æÀÇ µ¥ÀÌÅͺ£À̽º¸¦ ³ª´©´Â ÀÌÀ¯´Â? ___µ¥ÀÌÅͺ£À̽ºÀÇ ±¸Á¶ ÀÚ¼¼È÷ »ìÆ캸±â 8.7 MySQLÀ» À§ÇÑ µµÄ¿ ÆÄÀÏ ¸¸µé±â ___MySQLÀ» À§ÇÑ µµÄ¿ ÆÄÀÏ ÀÛ¼º 8.8 ¿£Áø¿¢½º¸¦ À§ÇÑ ¼³Á¤ ÆÄÀÏ°ú µµÄ¿ ÆÄÀÏ ¸¸µé±â ___ÇÁ·Ï½Ã ±â´ÉÀ» À§ÇÑ ¿£Áø¿¢½º ¼³Á¤ 8.9 °³¹ßȯ°æÀ» À§ÇÑ µµÄ¿ ÄÄÆ÷Áî ÆÄÀÏ ÀÛ¼ºÇϱâ 8.10 º¼·ýÀ» ÀÌ¿ëÇÑ µ¥ÀÌÅͺ£À̽ºÀÇ µ¥ÀÌÅÍ À¯ÁöÇϱâ ___µµÄ¿ º¼·ýÀ» ÀÌ¿ëÇÑ µ¥ÀÌÅÍ ¿µ¼Ó¼º ±¸Á¶ ¢Ã 09Àå: ´ÙÁß ÄÁÅ×À̳ʸ¦ È°¿ëÇÑ ¾ÖÇø®ÄÉÀ̼ÇÀÇ ¹èÆ÷ 9.1 Å×½ºÆ® ¹× ¹èÆ÷ ¼ø¼ »ìÆ캸±â ___1. ±êÇãºê ¿ø°Ý ÀúÀå¼Ò¿¡ ¼Ò½º Äڵ带 Ǫ½ÃÇÕ´Ï´Ù. ___2. Travis CI¿¡¼ ±êÇãºê¿¡ Ǫ½ÃÇÑ ¼Ò½º Äڵ带 °¡Á®¿Í Å×½ºÆ®ÇÕ´Ï´Ù. ___3. ºôµåµÈ µµÄ¿ À̹ÌÁö¸¦ µµÄ¿ Çãºê·Î Ǫ½ÃÇÕ´Ï´Ù. ___4. AWS ÀÏ·¡½ºÆ½ ºó½ºÅå¿¡ ¾ÖÇø®ÄÉÀ̼ÇÀ» ¹èÆ÷ÇÕ´Ï´Ù. 9.2 µµÄ¿ ȯ°æÀÇ MYSQL Á¤¸®Çϱâ 9.3 ±êÇãºê¿¡ ¼Ò½º ÄÚµå ¿Ã¸®±â 9.4 Travis CI¿¡¼ Å×½ºÆ®Çϱâ ___Travis CI¿¡¼ ÇÒ Àϵé ___Travis CI¿Í ±êÇãºê ¿¬µ¿ ___travis.yml ÆÄÀÏÀÇ ÀÛ¼º ¼ø¼ ___.travis.yml ÆÄÀÏ ÀÛ¼ºÇϱâ ___Travis CI »çÀÌÆ®¿¡¼ ȯ°æ º¯¼ö ¸¸µé±â ___Travis CI°¡ Àß ÀÛµ¿ÇÏ´ÂÁö È®ÀÎ 9-5 ¿î¿µ ȯ°æÀ» À§ÇÑ µµÄ¿ ÄÄÆ÷Áî ÆÄÀÏ »ý¼º ___µµÄ¿ ÄÄÆ÷Áî ÆÄÀÏ »ý¼º 9.6 ´ÙÁß ÄÁÅ×ÀÌ³Ê ¾ÖÇø®ÄÉÀ̼ÇÀ» À§ÇÑ ÀÏ·¡½ºÆ½ ºó½ºÅå ȯ°æ »ý¼º ___¾ÖÇø®ÄÉÀÌ¼Ç »ý¼º 9.7 VPC¿Í º¸¾È ±×·ì ¼³Á¤Çϱâ ___¿Ö VPC¿Í º¸¾È ±×·ìÀ» ¼³Á¤ÇØ¾ß Çϳª¿ä? ___VPC¶õ ¹«¾ùÀΰ¡¿ä? ___ÀÏ·¡½ºÆ½ ºó½ºÅå ȯ°æÀ» »ý¼ºÇÒ ¶§ ÇÒ´çµÇ´Â ±âº» VPC ã¾Æº¸±â ___º¸¾È ±×·ìÀ̶õ ¹«¾ùÀΰ¡¿ä? ___VPC¿Í º¸¾È ±×·ìÀ» ÀÌ¿ëÇØ EB ÀνºÅϽº¿Í RDS Åë½Å ¹®Á¦¸¦ ÇØ°áÇÏ´Â ¹æ¹ýÀº? 9.8 AWS RDS¸¦ ÀÌ¿ëÇÑ µ¥ÀÌÅͺ£À̽º »ý¼ºÇϱâ ___RDS¸¦ ÀÌ¿ëÇÑ µ¥ÀÌÅͺ£À̽º »ý¼ºÇϱâ 9.9 µ¥ÀÌÅͺ£À̽º Á¤º¸¸¦ µµÄ¿ ÄÄÆ÷Áî ÆÄÀÏ¿¡ ¸í½ÃÇØÁÖ±â ___µ¥ÀÌÅͺ£À̽ºÀÇ ¿£µåÆ÷ÀÎÆ® Á¤º¸ È®ÀÎÇϱâ ___ÀÏ·¡½ºÆ½ ºó½ºÅåÀÇ È¯°æ ¼Ó¼º ¼³Á¤Çϱâ 9.10 º¸¾È ±×·ìÀÇ »ý¼º°ú Àû¿ë ___º¸¾È ±×·ì »ý¼ºÇϱâ ___º¸¾È ±×·ì Àû¿ëÇϱâ ___MySQL ÀνºÅϽº¿¡ »õ·Î »ý¼ºÇÑ º¸¾È ±×·ì Àû¿ëÇϱâ ___ÀÏ·¡½ºÆ½ ºó½ºÅå ÀνºÅϽº¿¡ »õ·Î »ý¼ºÇÑ º¸¾È ±×·ì Àû¿ëÇϱâ 9.11 ¾ÖÇø®ÄÉÀ̼ÇÀ» ¹èÆ÷Çϱâ À§ÇÑ Travis CI ¼³Á¤ ÆÄÀÏ ÀÛ¼ºÇϱâ ___Áö±Ý±îÁö ÀÛ¼ºÇÑ Travis CI ¼³Á¤ ÄÚµå ___¹èÆ÷¸¦ À§ÇØ Ãß°¡ÇÒ Travis CIÀÇ ¼³Á¤ ÄÚµå 9.12 Travis CI¿¡¼ AWS¿¡ Á¢±ÙÇϱâ À§ÇÑ API Å° »ý¼º ___¼Ò½º Äڵ带 Àü´ÞÇϱâ À§ÇÑ Á¢±Ù ¿ä°Ç ___IAM(Identity and Access Management)À̶õ? ___IAM »ç¿ëÀÚ »ý¼ºÇϱâ ___API Å°¸¦ Travis CI ¼³Á¤ ÆÄÀÏ¿¡ ÀÛ¼ºÇϱâ 9.13 ¾ÖÇø®ÄÉÀ̼ÇÀÌ Àß ½ÇÇàµÇ´ÂÁö Å×½ºÆ®Çϱâ ___ȯ°æ Á¾·áÇϱâ ÃâÆÇ»ç ¼Æò¡Ý ±âº»ÀûÀÎ µµÄ¿ Ŭ¶óÀ̾ðÆ® ¸í·É¾î ¡Ý µµÄ¿¸¦ ÀÌ¿ëÇÑ °£´ÜÇÑ Node.js ¾ÖÇø®ÄÉÀÌ¼Ç ¸¸µé±â ¡Ý ´ÜÀÏ ÄÁÅ×À̳ʸ¦ È°¿ëÇÑ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß°ú ¹èÆ÷ ¡Ý ¸ÖƼ ÄÁÅ×À̳ʸ¦ È°¿ëÇÑ ¾ÖÇø®ÄÉÀÌ¼Ç °³¹ß°ú ¹èÆ÷ ¡Ý ±êÇãºê, Travis CI, AWS¸¦ È°¿ëÇÑ CI/CD ȯ°æ ±¸Ãà
(°³)
1. ¹è¼Û
¹è¼ÛÀº ´çÀÏ ¿ÀÈÄ 4½ÃÀÌÀü(Åä¿äÀÏÀº ¿ÀÈÄ12½Ã)¿¡ ÁÖ¹®¹× °áÀ縦 ÇÏ½Ã¸é ´çÀϹè¼ÛµË´Ï´Ù. ¹è¼ÛÀº ÁÖ¹® ÈÄ °áÀç¿Ï·áÀÏÀ» ±âÁØÀ¸·Î 1~2ÀÏ ¾È¿¡ ¹è¼Û¿Ï·á¸¦ ¿øÄ¢À¸·Î ÇÏ°í ÀÖ½À´Ï´Ù. ´Ù¸¸ ºÎµæÀÌÇÑ °æ¿ì(ÇØ´ç»óÇ°ÀÇ Ç°Àý ¹× ÀýÆÇ) °í°´´Ô²² Àüȸ¦ µå·Á¼ 󸮸¦ ÇÕ´Ï´Ù. 2. ¹è¼Û·á ¹è¼Û·á´Â 25,000¿ø ÀÌ»óÀÌ °æ¿ì À̱×ÀëÇ÷¯½º¿¡¼ ºÎ´ãÇÏ°í, ¹Ì¸¸ÀÏ °æ¿ì °í°´ÀÌ 2,500¿øÀ» ºÎ´ãÇÕ´Ï´Ù. ´Ù¸¸ ±¸¸Å±Ý¾×ÀÌ 25,000¿ø ÀÌ»óÀε¥ Àû¸³±Ý µîÀ» »ç¿ëÇÏ¿© ½ÇÁ¦ °áÀç±Ý¾×ÀÌ 25,000¿ø ¹Ì¸¸ÀÌ µÇ´õ¶óµµ À̱×ÀëÇ÷¯½º¿¡¼ ¹è¼Û·á¸¦ ºÎ´ãÇÏ°í, Á¦ÁÖ¸¦ Á¦¿ÜÇÑ µµ¼Áö¿ªÀÇ °æ¿ì´Â 5,000¿øÀÌ Ãß°¡µË´Ï´Ù. Çؿܹè¼ÛÀº Àü¾× °í°´ºÎ´ãÀÌ µË´Ï´Ù. 5. ¹ÝÇ°/±³È¯
¹ÞÀ¸½Å ³¯ ºÎÅÍ ÀÏÁÖÀÏ À̳» ¹ÝÇ°/±³È¯ÀÌ °¡´ÉÇϽʴϴÙ. ½Ã°£ÀÌ Áö³ª¸é 󸮰¡ ºÒ°¡ÇÔÀ» ¾Ë·Á µå¸³´Ï´Ù. ´Ù¸¸ ÁÖ¹®ÇϽŠ»óÇ°°ú ´Ù¸¥ »óÇ°ÀÌ ¹è¼ÛµÇ°Å³ª Æĺ», ³«ÀåÀÌ ÀÖ´Â µµ¼ÀÇ °æ¿ì ÀÌ¿ë¾à°ü¿¡ ÁØÇÏ¿© À̱×ÀëÇ÷¯½ºÀÇ ºñ¿ëÀ¸·Î ±³È¯, ¹ÝÇ° ¹× ȯºÒ µîÀ» Çص帳´Ï´Ù. 4. ȯºÒ ¹ÞÀ¸½Å ³¯ºÎÅÍ 2ÀÏ À̳»·Î Àüȳª 1:1 °Ô½Ã±Û·Î Àû¾îÁÖ¼Å¾ß °¡´ÉÇϽʴϴÙ. 5. ÁÖÀÇ °í°´´Ô º¯½ÉÀ¸·Î ÀÎÇÑ ±³È¯/¹ÝÇ°/ȯºÒ °í°´´Ô²²¼ Åùèºñ(¿Õº¹Åùèºñ)¸¦ ºÎ´ãÀÌ µÇ´Ï ÀÌÁ¡ À¯ÀÇÇØ ÁֽʽÿÀ. ¶ÇÇÑ °ÀÇÅ×ÀÙ/¾ãÀº¹®Á¦Áý/ºñ´ÒÆ÷ÀåµÈÁ¦Ç°µîÀº Çѹø ±¸¸ÅÇÏ½Ã¸é ±³È¯/¹ÝÇ°/ȯºÒÀÌ ÀüÇô ¾ÈµË´Ï´Ù. ½ÅÁßÈ÷ »ý°¢Çϼż ±¸¸Å ºÎŹµå¸³´Ï´Ù. ´Ù¸¸ ºÒ·®Å×ÀÙÀÇ °æ¿ì ±× ºÒ·®ÀÌ µÈ °³º°Å×ÀÙÀ» À̱×ÀëÇ÷¯½ºÀÇ ºñ¿ëÀ¸·Î A/S¸¦ Çص帳´Ï´Ù. 6. ÁÖ¹®Ãë¼Ò, ±³È¯, ¹ÝÇ° ¹× ȯºÒÀº ´çÀÏ 3½Ã ÀÌÀü¿¡ ÇØÁÖ¼Å¾ß °¡´ÉÇÕ´Ï´Ù. ±× ÀÌÈÄ´Â ¹è¼Û µî¿¡ µû¸¥ Á¦ºñ¿ëÀ» ºÎ´ãÇÏ¼Å¾ß ÇÕ´Ï´Ù.
|
|
||||||||
|
||||||||
|
||||||||
* »óÇ°»çÀÌÁî Ä¡¼ö´Â Àç´Â ¹æ¹ý°ú À§Ä¡¿¡ µû¶ó 1~3cm ¿ÀÂ÷°¡ ÀÖÀ» ¼ö ÀÖ½À´Ï´Ù.