<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Racoon's IT Devlog</title>
    <link>https://chick-it.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Sun, 26 Jul 2026 12:58:03 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>코딩하는너굴맨</managingEditor>
    <image>
      <title>Racoon's IT Devlog</title>
      <url>https://tistory1.daumcdn.net/tistory/5092276/attach/cfd65141270c4b3ebf1ff116502d8788</url>
      <link>https://chick-it.tistory.com</link>
    </image>
    <item>
      <title>8월 최근 일상 - 입사 5개월차</title>
      <link>https://chick-it.tistory.com/98</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;근황&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;519&quot; data-origin-height=&quot;507&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bnV0VV/btsIUzdpELX/kFVV866mtqPJsVaGboT4P1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bnV0VV/btsIUzdpELX/kFVV866mtqPJsVaGboT4P1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bnV0VV/btsIUzdpELX/kFVV866mtqPJsVaGboT4P1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnV0VV%2FbtsIUzdpELX%2FkFVV866mtqPJsVaGboT4P1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;451&quot; height=&quot;441&quot; data-origin-width=&quot;519&quot; data-origin-height=&quot;507&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;더워 죽겠는 8월입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재는 입사 5개월정도 꽉채운 현재입니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원래 하던 프로젝트 외에 새로운 프로젝트에도 투입되고, 출장도 3번이나 갔다왔습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;솔직히 아직도 전체적인 구조도 이해 안가는 곳이 많고, 겨우겨우 따라가는 느낌입니다. 언젠간 익숙해지겠지 하고 버티고 있는 요즘입니다.&amp;nbsp; 열심히 하다보면 어떻게 되겠죠?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아마도 9월말에는 외국으로 출장을 갈 수도 있을 것같습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;유럽도 처음가보고, 좀 기대가 되는 부분이 없지않습니다. 푸하하&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1310&quot; data-origin-height=&quot;718&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Gl6Qp/btsITuqnW6F/KO4jOVaUojEat9bqio6uc1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Gl6Qp/btsITuqnW6F/KO4jOVaUojEat9bqio6uc1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Gl6Qp/btsITuqnW6F/KO4jOVaUojEat9bqio6uc1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGl6Qp%2FbtsITuqnW6F%2FKO4jOVaUojEat9bqio6uc1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1310&quot; height=&quot;718&quot; data-origin-width=&quot;1310&quot; data-origin-height=&quot;718&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요즘은 취미로 맛집을 구글맵에 정리하고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;어떻게든 chatgpt나 구글 api를 활용해서 자동화해보려고 했는데, 가게마다 기준도 다르고 뭔가 엄청 귀찮아져서 2주만에 포기하고, 그냥 수동으로 적는 중입니다. 뭔가 지도가 채워지는 느낌이 재밌네요.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;168&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/5jb8N/btsIUD1a987/4k66vDkfaWHJI6JMu8x9NK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/5jb8N/btsIUD1a987/4k66vDkfaWHJI6JMu8x9NK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/5jb8N/btsIUD1a987/4k66vDkfaWHJI6JMu8x9NK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F5jb8N%2FbtsIUD1a987%2F4k66vDkfaWHJI6JMu8x9NK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;300&quot; height=&quot;168&quot; data-origin-width=&quot;300&quot; data-origin-height=&quot;168&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자취한지 6개월 정도가 되어가는데, 외로움이 없는사람이지만, 외로움이 조금씩 생기는 기분입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;본가에서 아예 먼 곳으로 오다보니 친구들도 주변에 없고, 특히 주말에 좀 심심한 기분입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 또한 지나가겠죠.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;180&quot; data-origin-height=&quot;180&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhs9OC/btsITSEwg2Y/Xm9CUlJHsAgpR62XddWl61/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhs9OC/btsITSEwg2Y/Xm9CUlJHsAgpR62XddWl61/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhs9OC/btsITSEwg2Y/Xm9CUlJHsAgpR62XddWl61/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbhs9OC%2FbtsITSEwg2Y%2FXm9CUlJHsAgpR62XddWl61%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;180&quot; height=&quot;180&quot; data-origin-width=&quot;180&quot; data-origin-height=&quot;180&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요즘 결혼하는 친구들이 하나둘 늘어나고 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 신입으로 들어와 정신도 없는데 일찍 일해서 일찍 결혼하는 친구들을 보니 새삼 대단하다고 느낍니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요즘 출산율이 안좋다, 결혼을 안한다 뭐니 하는데, 제 주변에는 해당하지 않는 것 같군요?!&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Users/일상</category>
      <author>코딩하는너굴맨</author>
      <guid isPermaLink="true">https://chick-it.tistory.com/98</guid>
      <comments>https://chick-it.tistory.com/98#entry98comment</comments>
      <pubDate>Sat, 3 Aug 2024 19:16:55 +0900</pubDate>
    </item>
    <item>
      <title>7월 최근 일상 - 입사 4개월 차</title>
      <link>https://chick-it.tistory.com/97</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 근황&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;519&quot; data-origin-height=&quot;507&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zKamz/btsIhiEE7Z3/lVtAbANjELuJTkkK7JV1Gk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zKamz/btsIhiEE7Z3/lVtAbANjELuJTkkK7JV1Gk/img.jpg&quot; data-alt=&quot;짜잔&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zKamz/btsIhiEE7Z3/lVtAbANjELuJTkkK7JV1Gk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzKamz%2FbtsIhiEE7Z3%2FlVtAbANjELuJTkkK7JV1Gk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;404&quot; height=&quot;395&quot; data-origin-width=&quot;519&quot; data-origin-height=&quot;507&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;짜잔&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최근 근 거의 4개월간 포스팅을 하지 못했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제가 쭉 백엔드 과정으로 올해 2월까지 준비를 했었는데요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;제가 이때까지 대학시절 파이썬이나 OpenCV같은 카메라 인식, 인공지능 같은 분야에 관심이 많았습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 취업 쪽으로는 백엔드 개발자를 목표로 공부를 계속 하고 있었어요.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만, 이번에 3월에 Vision 쪽, 즉 카메라, 인식 관련 개발자로 일하게 되었습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 자취를 위해 이사하랴 부랴부랴 준비하고, 신입으로 4개월동안 일하느라 정신이 없었네요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 하고있는 일은 하나부터 열까지 처음부터 알아가는 과정중이라 적응하는게 어려운거지,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;제가 관심있는 분야에서 일하는 것이라 현재까지는 너무 즐겁게 일하고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그래서 앞으로는 백엔드 보다는, 폭넓은 컴퓨터 포스팅이나, Vision 쪽 포스팅을 하게될 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;오늘은 새벽 4시에 일어나서 글을 작성하고 있네요.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일주일에 한번 정도는 일상 글을 적어볼까도 생각중입니다. 생각을 정리하는데 좋을 것&amp;nbsp; 같아요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 이만~&amp;nbsp;&lt;/p&gt;</description>
      <category>Users/일상</category>
      <author>코딩하는너굴맨</author>
      <guid isPermaLink="true">https://chick-it.tistory.com/97</guid>
      <comments>https://chick-it.tistory.com/97#entry97comment</comments>
      <pubDate>Mon, 1 Jul 2024 04:47:25 +0900</pubDate>
    </item>
    <item>
      <title>AWS - AWS 꼭 확인하자! 요금폭탄 피하기</title>
      <link>https://chick-it.tistory.com/96</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;0. 개요&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;581&quot; data-origin-height=&quot;630&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DDATP/btsEkeNkvmZ/2O6OfzzAoc746sRO3MKeg0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DDATP/btsEkeNkvmZ/2O6OfzzAoc746sRO3MKeg0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DDATP/btsEkeNkvmZ/2O6OfzzAoc746sRO3MKeg0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDDATP%2FbtsEkeNkvmZ%2F2O6OfzzAoc746sRO3MKeg0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;247&quot; height=&quot;268&quot; data-origin-width=&quot;581&quot; data-origin-height=&quot;630&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가난한 취준생 생활을 이어가는 중에, 갑자기 AWS에서 16,000원 가량의 해외결제를 제 계좌로 계속 시도하고 있었던 것을 확인했습니다. 결제가 되지않은 것은 해당 해외결제 카드를 사용하지 않아서 돈이 없어서 그런 것 이었는데요. 나는 AWS 프리티어만 사용했고, 돈이 나갈일이 없는데 뭐지? 해킹이라도 당한건가? 라는 불안함이 엄습했습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 청구서 확인하기&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1317&quot; data-origin-height=&quot;516&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sUafx/btsEn0s4IOZ/kXumpQpmopaA16oHCDquV1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sUafx/btsEn0s4IOZ/kXumpQpmopaA16oHCDquV1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sUafx/btsEn0s4IOZ/kXumpQpmopaA16oHCDquV1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsUafx%2FbtsEn0s4IOZ%2FkXumpQpmopaA16oHCDquV1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;694&quot; height=&quot;272&quot; data-origin-width=&quot;1317&quot; data-origin-height=&quot;516&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;청구서를 확인해보니 Lightsail과 Elastic Compute Cloud에서 사용요금이 나가고 있었습니다.... 이게뭐야??&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;확인해보니, 한두달전에 유튜브에서 본 AWS강의를 보고 Lightsail을 사용했던 적이 있었던 것 같습니다. 그래서 Lightsail 인스턴스와 고정IP가 할당되어 있었습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한 Elastic Compute Cloud의 경우에도 이게 뭔가하고 보았더니 IPv4 adress에 대해서 요금이 할당되고 있었습니다. EC2를 사용하더라도, 고정 IP를 사용하는 경우에는 요금이 조금씩 부과되는 것으로 보입니다...&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;배포나 직접 사용하지만 않으면 요금이 부과되지 않을거라 생각했던 제가 안일했던 거죠..&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1083&quot; data-origin-height=&quot;863&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/q4nNa/btsEnX4ax54/x23DyvEvQCxV482kzMqlG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/q4nNa/btsEnX4ax54/x23DyvEvQCxV482kzMqlG0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/q4nNa/btsEnX4ax54/x23DyvEvQCxV482kzMqlG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fq4nNa%2FbtsEnX4ax54%2Fx23DyvEvQCxV482kzMqlG0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;691&quot; height=&quot;551&quot; data-origin-width=&quot;1083&quot; data-origin-height=&quot;863&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;궁금해서 알아보니 AWS에 대해서 관리나 설정을 잘못하거나, key를 해킹당해서 요금폭탄을 맞는 경우가 꽤나 있는 편 인 것 같습니다. 다행이 고객센터에서 직접 사용하지 않는 사례에 대해서는 해결을 해준다고는 하지만, 관리를 잘 해야하는 것 같습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 요금폭탄 피하기 - 수시로 확인하고, 삭제하자&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;수시로 확인하기&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;460&quot; data-origin-height=&quot;277&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/v2Jp7/btsEnRXoEov/0YPfLIv8kkMAK8szXF7gHK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/v2Jp7/btsEnRXoEov/0YPfLIv8kkMAK8szXF7gHK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/v2Jp7/btsEnRXoEov/0YPfLIv8kkMAK8szXF7gHK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fv2Jp7%2FbtsEnRXoEov%2F0YPfLIv8kkMAK8szXF7gHK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;460&quot; height=&quot;277&quot; data-origin-width=&quot;460&quot; data-origin-height=&quot;277&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;좌측 상단에 자신의 계정을 클릭하면 &quot;결제 및 비용관리&quot; 라는 메뉴가 있습니다. 여기서 청구서를 들어가서 위에 제가 올린 것처럼 어디서 어떤 비용이 발생되었는지를 확인할 수 있습니다. 비용은 매월 초 (3일)에 카드로 요금이 요청됩니다. 꼭 확인합시다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를들어, EC2를 사용하더라고 여러개의 인스턴스를 생성해서 프리티어의 사용량을 넘을 수도 있고, 고정 IP를 사용하고 방치를 했다던가, 등등의 이유가 있을 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;지우고, 삭제하라&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dmLV81/btsEjHB2DOZ/sskrMLpjCQ9cGLw8Qaa7SK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dmLV81/btsEjHB2DOZ/sskrMLpjCQ9cGLw8Qaa7SK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dmLV81/btsEjHB2DOZ/sskrMLpjCQ9cGLw8Qaa7SK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdmLV81%2FbtsEjHB2DOZ%2FsskrMLpjCQ9cGLw8Qaa7SK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;236&quot; height=&quot;236&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;800&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사용할 때마다 생성하고, 평소에는 삭제해 놓는 것이 좋습니다. 1년 365일 매일매일 AWS에 들어와서 체크하기는 힘들 것 입니다. ㅠㅠ&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;청구서에서서 확인한 서비스로 들어가서 삭제해주도록 합니다.&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;인스턴스 중지, 인스턴스 삭제, 고정Ip를&lt;span&gt; 삭제합니다.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;DB를 생성했다면, RDS에서 DB를 삭제해줍니다. 스냅숏도 삭제합니다.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;S3, VPC를 사용했다면 삭제해줍니다.&lt;/li&gt;
&lt;li&gt;이미지 복사본 AMI를 만들었다면, EC2-AMI에서 삭제합니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;또한, 당분간 사용하지 않을 계힉이라면, 계정 자체를 지워두는 것이 마음이 편할 수 있습니다. 이렇게 하는 것도 좋습니다. 여기서도 주의할 점이 사용하고 있던 리소스들을 삭제하지 않고 계정탈퇴를 하면, 그대로 요금이 부과될&amp;nbsp; 수도 있습니다. 계정 복구를 해서 다시 리소스들을 삭제한 후에 계정 탈퇴를 하도록 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;예방하는법&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://brunch.co.kr/@topasvga/96&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://brunch.co.kr/@topasvga/96&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1706956972247&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;22.AWS 예상 비용 알람 받기&quot; data-og-description=&quot;AWS는 사용한 만큼 비용을 낸다. 테스트로 몇 개 만들어 놓고 지우지 않으면 비용이 계속 발생한다. 서버 자동생성 코딩을 잘못해서 고비용이 발생할 수 있다 이를 모니터링하기 위해 기본적으로&quot; data-og-host=&quot;brunch.co.kr&quot; data-og-source-url=&quot;https://brunch.co.kr/@topasvga/96&quot; data-og-url=&quot;https://brunch.co.kr/@topasvga/96&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/6NnXS/hyVcdKCfuJ/7ChCIAZjlkJfAcBebbnyf0/img.png?width=1280&amp;amp;height=686&amp;amp;face=0_0_1280_686,https://scrap.kakaocdn.net/dn/hX6QA/hyVb2vy1jV/5w6ToJiUs1qUg4JSnzor2K/img.png?width=500&amp;amp;height=500&amp;amp;face=0_0_500_500,https://scrap.kakaocdn.net/dn/oOV4i/hyVfX68P8C/9ZKv3zbptqTkytiIAcYaKk/img.png?width=1280&amp;amp;height=920&amp;amp;face=0_0_1280_920&quot;&gt;&lt;a href=&quot;https://brunch.co.kr/@topasvga/96&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://brunch.co.kr/@topasvga/96&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/6NnXS/hyVcdKCfuJ/7ChCIAZjlkJfAcBebbnyf0/img.png?width=1280&amp;amp;height=686&amp;amp;face=0_0_1280_686,https://scrap.kakaocdn.net/dn/hX6QA/hyVb2vy1jV/5w6ToJiUs1qUg4JSnzor2K/img.png?width=500&amp;amp;height=500&amp;amp;face=0_0_500_500,https://scrap.kakaocdn.net/dn/oOV4i/hyVfX68P8C/9ZKv3zbptqTkytiIAcYaKk/img.png?width=1280&amp;amp;height=920&amp;amp;face=0_0_1280_920');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;22.AWS 예상 비용 알람 받기&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;AWS는 사용한 만큼 비용을 낸다. 테스트로 몇 개 만들어 놓고 지우지 않으면 비용이 계속 발생한다. 서버 자동생성 코딩을 잘못해서 고비용이 발생할 수 있다 이를 모니터링하기 위해 기본적으로&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;brunch.co.kr&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일정 금액이상의 노티가 나오면 예상 금액을 알람을 받도록 설정할 수 있습니다. 위의 포스팅을 참고해주세요.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;244&quot; data-origin-height=&quot;257&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eHsyzc/btsEna3MB8y/rrKDKl8iz7XretiNlXGyB1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eHsyzc/btsEna3MB8y/rrKDKl8iz7XretiNlXGyB1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eHsyzc/btsEna3MB8y/rrKDKl8iz7XretiNlXGyB1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeHsyzc%2FbtsEna3MB8y%2FrrKDKl8iz7XretiNlXGyB1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;244&quot; height=&quot;257&quot; data-origin-width=&quot;244&quot; data-origin-height=&quot;257&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혹은 구글 OTP를 사용해서 해킹당했을 시&amp;nbsp; 통장에서 돈이 빠져나가는 것을 예방하는 것이 좋습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1347&quot; data-origin-height=&quot;175&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/B43q3/btsEkTvnP2l/pLXpKakSqQKq3tqqKj9p50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/B43q3/btsEkTvnP2l/pLXpKakSqQKq3tqqKj9p50/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/B43q3/btsEkTvnP2l/pLXpKakSqQKq3tqqKj9p50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FB43q3%2FbtsEkTvnP2l%2FpLXpKakSqQKq3tqqKj9p50%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1347&quot; height=&quot;175&quot; data-origin-width=&quot;1347&quot; data-origin-height=&quot;175&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;혹은 결제 및 비용관리에서 &lt;span style=&quot;background-color: #ffffff; color: #16191f; text-align: left;&quot;&gt;비용 분석 및 보고서탭에서 비용모니터로 사용량을 관찰할 수 도 있습니다. 모니터를 생성해주고 수시로 확인해봅시다.&lt;/span&gt;&lt;/p&gt;</description>
      <category>Project/AWS 및 배포</category>
      <category>aws</category>
      <author>코딩하는너굴맨</author>
      <guid isPermaLink="true">https://chick-it.tistory.com/96</guid>
      <comments>https://chick-it.tistory.com/96#entry96comment</comments>
      <pubDate>Sat, 3 Feb 2024 19:49:24 +0900</pubDate>
    </item>
    <item>
      <title>Docker - 1. Docker의 개념과 설치 및 사용법</title>
      <link>https://chick-it.tistory.com/95</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;0. 개요&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;269&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ciVFMw/btsEmQxw1co/GzHlCkDKvwRNlywexbI9Y1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ciVFMw/btsEmQxw1co/GzHlCkDKvwRNlywexbI9Y1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ciVFMw/btsEmQxw1co/GzHlCkDKvwRNlywexbI9Y1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FciVFMw%2FbtsEmQxw1co%2FGzHlCkDKvwRNlywexbI9Y1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;792&quot; height=&quot;269&quot; data-origin-width=&quot;792&quot; data-origin-height=&quot;269&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에는 Docker에 대해서 제가 공부한 내용을 정리하는 시간을 가져보고자 합니다. docker가 무엇이길래, 이걸로 프로젝트 배포를 관리하고, 꼭 배워야 한다고 하는 것일까?&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. Docker를 알기위한 Container&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;373&quot; data-origin-height=&quot;286&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bH7LHq/btsEmqy5A3G/SuDk38LdH6VMU2LawBsZ8K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bH7LHq/btsEmqy5A3G/SuDk38LdH6VMU2LawBsZ8K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bH7LHq/btsEmqy5A3G/SuDk38LdH6VMU2LawBsZ8K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbH7LHq%2FbtsEmqy5A3G%2FSuDk38LdH6VMU2LawBsZ8K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;373&quot; height=&quot;286&quot; data-origin-width=&quot;373&quot; data-origin-height=&quot;286&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Docker의 마크를 보면, 배위에 컨테이너가 쌓여있는 듯한 그림이 존재합니다. 왜 이렇게 Docker를 비유했을까??&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1100&quot; data-origin-height=&quot;500&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2HfMo/btsEj5P0GMs/b9HbFpk4TE0FckvLydmTFK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2HfMo/btsEj5P0GMs/b9HbFpk4TE0FckvLydmTFK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2HfMo/btsEj5P0GMs/b9HbFpk4TE0FckvLydmTFK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2HfMo%2FbtsEj5P0GMs%2Fb9HbFpk4TE0FckvLydmTFK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;719&quot; height=&quot;327&quot; data-origin-width=&quot;1100&quot; data-origin-height=&quot;500&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;말콤 맥린(Malcolm McLean)이라는 20세기 초반, 자동차 운수업으로 매우 성공한 사람이 있었습니다. 자동차를 팔면서, 에로사항이 발생했습니다. 항구가 존재하면, 항구의 입구를 통해서 자동차를 담은 트럭이 들어오고, 배앞으로 와서 노동자들이 자동차를 내려서 배에 싣고... 이 작업을 하는동안 다른 트럭들은 대기를 하고... 이렇게 엄청난 트래픽이 몰리면서 구조적으로 비효율적이었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;777&quot; data-origin-height=&quot;559&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bCiyWS/btsEmrx1hPY/DUk04x154jjfzL2jIgISrk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bCiyWS/btsEmrx1hPY/DUk04x154jjfzL2jIgISrk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bCiyWS/btsEmrx1hPY/DUk04x154jjfzL2jIgISrk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbCiyWS%2FbtsEmrx1hPY%2FDUk04x154jjfzL2jIgISrk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;537&quot; height=&quot;386&quot; data-origin-width=&quot;777&quot; data-origin-height=&quot;559&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 container라는 개념이 생겨났습니다. 노동자들이 트럭이 자동차를 내릴 필요가 있었던 이전방식과 달리 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;외부에서 항구로 차를 싣을 컨테이너를 가져와서&lt;span&gt; 대형 기계가 컨테이너를 들어서 항구에 적재하고, 트럭은 할일을 다했으니 그냥 가면 됩니다. 컨테이너채로 싣어버리니까 노동자의 일도줄고, 시간도 빠르고, 트래픽도 줄어들게 되었습니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;받는 쪽에서도 배가 들어오면, 컨테이너를 기계로 싣어버리고, 트럭에 컨테이너에 그대로 싣어서 내보내는 간편함이 있었습니다. 이것이 컨테이너의 발명입니다. 그리고 Docker는 프로그래밍적으로 컨테이너를 관리하는 프로그램입니다.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. Docker??&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;422&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/AQHx0/btsEndzfbh8/JWYh4yaVUtnkB2EFkCTM40/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/AQHx0/btsEndzfbh8/JWYh4yaVUtnkB2EFkCTM40/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/AQHx0/btsEndzfbh8/JWYh4yaVUtnkB2EFkCTM40/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FAQHx0%2FbtsEndzfbh8%2FJWYh4yaVUtnkB2EFkCTM40%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;501&quot; height=&quot;282&quot; data-origin-width=&quot;750&quot; data-origin-height=&quot;422&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아까 배위에 컨테이너를 올리듯이, Docker는 나의 컴퓨터 위에 OS를 올립니다. OS에는 JDK, Git, Python ...등등의 많은 프로그램이 설치되어 있습니다. 통째로 한번에 설치해서 올릴 수 있는 것 입니다. 또 이렇게 만들어진 컨테이너를 다른 컨테이너와 상호작용을 해서 한번에 올리거나 한번에 내릴 수도 있습니다. 이것을 Docker-compose라고 합니다.&amp;nbsp; 이렇게 Docker container는 여러 프로그램을 한방에 옮길 수 있으므로, 잘 만들어놓은 컨테이너가 있으면 다른 컴퓨터에서도 동일하게 환경세팅을 쉽게 할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. Docker, Docker-compose, Docker-hub&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;439&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cM8dTg/btsEmqy5UyG/QYiCi6CtkiYmKZJh9oDkW0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cM8dTg/btsEmqy5UyG/QYiCi6CtkiYmKZJh9oDkW0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cM8dTg/btsEmqy5UyG/QYiCi6CtkiYmKZJh9oDkW0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcM8dTg%2FbtsEmqy5UyG%2FQYiCi6CtkiYmKZJh9oDkW0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;627&quot; height=&quot;353&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;439&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Docker는 컨테이너를 만들고 실행을 하고, 컨테이너를 구성할 수 있게 도와주는 기능을 제공합니다. 예를들어 떡볶이라는 컨테이너를 만들어서 떡, 파, 오뎅 등을 싣을 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Docker-compose는&amp;nbsp; 다른 컨테이너와 상호작용할 수 있게 해줍니다. 예를들어 불고기라는 컨테이너를 떡볶이가 실행되면 같이 실행되도록 할 수 있습니다. 최소 두 개이상의 컨테이너를 실행하는 방법입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Docker-hub(&lt;a href=&quot;https://hub.docker.com/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://hub.docker.com/&lt;/a&gt;)는 Github와 같다고 생각하면 편합니다. 클라우드 서버에 개인이나 회사가 완성한 컨테이너를 올려서 공유하고, 통째로 다운받을 수 있습니다. repository와 같은 느낌의 컨테이너 관리 저장소입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. Docker-Desktop, Docker-compose 설치&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Docker-Desktop&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.docker.com/products/docker-desktop/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.docker.com/products/docker-desktop/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1706880112444&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;article&quot; data-og-title=&quot;Docker Desktop: The #1 Containerization Tool for Developers | Docker&quot; data-og-description=&quot;Docker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.&quot; data-og-host=&quot;www.docker.com&quot; data-og-source-url=&quot;https://www.docker.com/products/docker-desktop/&quot; data-og-url=&quot;https://www.docker.com/products/docker-desktop/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/DmJUC/hyVf1BCamu/aJ5zEnm4uplVDGTseF9rFK/img.png?width=1110&amp;amp;height=580&amp;amp;face=0_0_1110_580,https://scrap.kakaocdn.net/dn/cR0c6w/hyVcatrApY/td3nU6ZrK90tRMxxJLHuK0/img.png?width=1110&amp;amp;height=580&amp;amp;face=0_0_1110_580&quot;&gt;&lt;a href=&quot;https://www.docker.com/products/docker-desktop/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.docker.com/products/docker-desktop/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/DmJUC/hyVf1BCamu/aJ5zEnm4uplVDGTseF9rFK/img.png?width=1110&amp;amp;height=580&amp;amp;face=0_0_1110_580,https://scrap.kakaocdn.net/dn/cR0c6w/hyVcatrApY/td3nU6ZrK90tRMxxJLHuK0/img.png?width=1110&amp;amp;height=580&amp;amp;face=0_0_1110_580');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Docker Desktop: The #1 Containerization Tool for Developers | Docker&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Docker Desktop is collaborative containerization software for developers. Get started and download Docker Desktop today on Mac, Windows, or Linux.&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.docker.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Docker-Desktop을 설치해줍니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;688&quot; data-origin-height=&quot;488&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c5vzpp/btsEmMPqGoT/wRWA1rijAZl07PzqBJhM2k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c5vzpp/btsEmMPqGoT/wRWA1rijAZl07PzqBJhM2k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c5vzpp/btsEmMPqGoT/wRWA1rijAZl07PzqBJhM2k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc5vzpp%2FbtsEmMPqGoT%2FwRWA1rijAZl07PzqBJhM2k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;688&quot; height=&quot;488&quot; data-origin-width=&quot;688&quot; data-origin-height=&quot;488&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여기서 중요한 점은 제어판 &amp;gt; 프로그램 및 기능&amp;nbsp; &amp;gt; Windows 기능에서 Linux용 Windwos 하위 시스템이 깔려있어야 합니다. Docker는 리눅스 시스템으로 돌아가므로, Docker Desktop을 설치하면 해당 옵션이 생성될 것 입니다. 체크해서 활성화 되어 있는지 확인해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1706880271884&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker --version&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;도커가 정상적으로 설치되어 있는지 cmd창에서 확인할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1706880304827&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker run -d -p 80:80 docker/getting-started&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예시로 한번 컨테이너를 받아서 실행시켜봅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;나중에 다시 설명하긴 할텐데, 위의 명령어는 docker/getting-started라는 컨테이너를 run(실행)합니다. 만약 해당 컨테이너(이미지)가 내 컴퓨터에 없으면 다운받아서 실행합니다. 80:80으로 포트포위딩을해서 -d옵션으로 백그라운드 실행을 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1149&quot; data-origin-height=&quot;226&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nUWce/btsEmDZGqQu/vopXmpjvMngEBISYg8DFxk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nUWce/btsEmDZGqQu/vopXmpjvMngEBISYg8DFxk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nUWce/btsEmDZGqQu/vopXmpjvMngEBISYg8DFxk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnUWce%2FbtsEmDZGqQu%2FvopXmpjvMngEBISYg8DFxk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1149&quot; height=&quot;226&quot; data-origin-width=&quot;1149&quot; data-origin-height=&quot;226&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 이렇게 Docker-Desktop에 새로운 컨테이너가 활성화 됩니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;655&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cIiCU3/btsEnO0qMBj/CpkyGno8E5TNS5k2DXKf1k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cIiCU3/btsEnO0qMBj/CpkyGno8E5TNS5k2DXKf1k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cIiCU3/btsEnO0qMBj/CpkyGno8E5TNS5k2DXKf1k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcIiCU3%2FbtsEnO0qMBj%2FCpkyGno8E5TNS5k2DXKf1k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;700&quot; height=&quot;655&quot; data-origin-width=&quot;700&quot; data-origin-height=&quot;655&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;80포트로 실행중이니 localhost:80으로 진입하면 정상적으로 잘 실행되는 것을 확인할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;Docker-compose&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://docs.docker.com/compose/install/standalone/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://docs.docker.com/compose/install/standalone/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1706880514789&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Install Compose standalone&quot; data-og-description=&quot;How to install Docker Compose - Other Scenarios&quot; data-og-host=&quot;docs.docker.com&quot; data-og-source-url=&quot;https://docs.docker.com/compose/install/standalone/&quot; data-og-url=&quot;https://docs.docker.com/compose/install/standalone/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/YH76y/hyVb8oRps6/6GTMzZC5NqH02KXTwKHVUk/img.png?width=129&amp;amp;height=128&amp;amp;face=0_0_129_128&quot;&gt;&lt;a href=&quot;https://docs.docker.com/compose/install/standalone/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://docs.docker.com/compose/install/standalone/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/YH76y/hyVb8oRps6/6GTMzZC5NqH02KXTwKHVUk/img.png?width=129&amp;amp;height=128&amp;amp;face=0_0_129_128');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Install Compose standalone&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;How to install Docker Compose - Other Scenarios&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;docs.docker.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 문서에서 docker-compose를 설치하는 방법을 알려주고 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1706880534080&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt; Start-BitsTransfer -Source &quot;https://github.com/docker/compose/releases/download/v2.24.5/docker-compose-windows-x86_64.exe&quot; -Destination $Env:ProgramFiles\Docker\docker-compose.exe&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 명령어를 파워쉘의 관리자모드에서 실행해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1706880561138&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;docker-compose --version&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 명령어가 잘 실행되면 잘 설치가 된 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에는 Docker에 관해서, 설치에 대해서 얘기했습니다. 다음에는 Docker의 작동원리, 컨테이너에 대해서 알아보는 시간을 가져보려고 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>Project/Docker</category>
      <category>docker</category>
      <author>코딩하는너굴맨</author>
      <guid isPermaLink="true">https://chick-it.tistory.com/95</guid>
      <comments>https://chick-it.tistory.com/95#entry95comment</comments>
      <pubDate>Fri, 2 Feb 2024 22:30:46 +0900</pubDate>
    </item>
    <item>
      <title>AWS - 3-3. 베이직 하게 배포해보기 - cron으로 주기적 실행</title>
      <link>https://chick-it.tistory.com/94</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;0.개요&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;730&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bIAa2e/btsEeELdTo3/biPD2xuMXQT3hDJwt4NIb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bIAa2e/btsEeELdTo3/biPD2xuMXQT3hDJwt4NIb1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bIAa2e/btsEeELdTo3/biPD2xuMXQT3hDJwt4NIb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbIAa2e%2FbtsEeELdTo3%2FbiPD2xuMXQT3hDJwt4NIb1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;310&quot; height=&quot;283&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;730&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전에는 스크립트 파일로 불필요한 명령어를 치는 과정을 하나의 스크립트 파일로 압축해서 실행하도록 했습니다. 하지만 아직은 스크립트 파일을 일일히 수동으로 실행해주어야합니다. 하지만 웹사이트는 어떠한 문제로 인해서 프로세스가 종료될 수 도 있습니다. 이를 감지해서 알아서 자동으로 켜주게 하는 것이 좋을 것입니다. cron이라는 명령어를 통해서 주기적으로 프로세스를 감지,실행하도록 해보겠습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. cron명령어&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;179&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bSnzw6/btsEdNICmrG/ccB2RWAmlSB9w79QnbM1i0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bSnzw6/btsEdNICmrG/ccB2RWAmlSB9w79QnbM1i0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bSnzw6/btsEdNICmrG/ccB2RWAmlSB9w79QnbM1i0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbSnzw6%2FbtsEdNICmrG%2FccB2RWAmlSB9w79QnbM1i0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;512&quot; height=&quot;179&quot; data-origin-width=&quot;512&quot; data-origin-height=&quot;179&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;cron&lt;/b&gt;은 주기적으로 어떤 작업을 실행할 수 있는 명령어입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;462&quot; data-origin-height=&quot;163&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/vXYAP/btsEdOgpEWG/ThVfjtHgrNfLyp173iUex1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/vXYAP/btsEdOgpEWG/ThVfjtHgrNfLyp173iUex1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/vXYAP/btsEdOgpEWG/ThVfjtHgrNfLyp173iUex1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FvXYAP%2FbtsEdOgpEWG%2FThVfjtHgrNfLyp173iUex1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;462&quot; height=&quot;163&quot; data-origin-width=&quot;462&quot; data-origin-height=&quot;163&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;413&quot; data-origin-height=&quot;150&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bp0u0T/btsEcpBb9Dr/SIDuWYXmYYV9CSLV6i2nGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bp0u0T/btsEcpBb9Dr/SIDuWYXmYYV9CSLV6i2nGk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bp0u0T/btsEcpBb9Dr/SIDuWYXmYYV9CSLV6i2nGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbp0u0T%2FbtsEcpBb9Dr%2FSIDuWYXmYYV9CSLV6i2nGk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;413&quot; height=&quot;150&quot; data-origin-width=&quot;413&quot; data-origin-height=&quot;150&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706697760548&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;crontab -e&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1706697774117&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;* * * * * ls -l &amp;gt;&amp;gt;cron.log&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;crontab -e를 통해서 crontab을 생성해줍니다. 이후에 어떤 에디터로 작성할지를 묻는데, 저는 vi에디터가 편해서 2번을 선택하겠습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;안에는 위와같은 텍스트를 적어줍니다.&amp;nbsp; * 은 처음부터 분,시간,일,월,요일을 의미합니다. &quot;&amp;gt;&quot;와 &quot;&amp;gt;&amp;gt;&quot;의 차이는 한개일 때는 결과값을 넘기고 덮어씌웁니다. 두개일 때는 지속적으로 추가합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정리하자면, 해당 명령어는 매분 &quot;ls -l&quot;이라는 명령어를 실행해서 cron.log라는 파일을 생성해서 안에 지속적으로 추가하라는 의미입니다. 해당 명령어로 crontab이 잘돌아가는지 실험해 보도록합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;511&quot; data-origin-height=&quot;144&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmPxuj/btsEig3wFfD/2MmaJiujkLtmKkKAB16Hz1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmPxuj/btsEig3wFfD/2MmaJiujkLtmKkKAB16Hz1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmPxuj/btsEig3wFfD/2MmaJiujkLtmKkKAB16Hz1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmPxuj%2FbtsEig3wFfD%2F2MmaJiujkLtmKkKAB16Hz1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;511&quot; height=&quot;144&quot; data-origin-width=&quot;511&quot; data-origin-height=&quot;144&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 루트경로에가서 확인해보면 cron.log라는 파일이 생성된 것을 확인해볼 수 있습니다. cat으로 확인해보면 &quot;ls-l&quot; 이라는 명령어가 매분마다 실행되고 있음을 확인할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. cron 스크립트화&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이런 cron 명령어 또한 스크립트화 해주도록 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;320&quot; data-origin-height=&quot;123&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bM5AgW/btsEixD432Q/cRD0mpf1TX6LueK7EKPPGk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bM5AgW/btsEixD432Q/cRD0mpf1TX6LueK7EKPPGk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bM5AgW/btsEixD432Q/cRD0mpf1TX6LueK7EKPPGk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbM5AgW%2FbtsEixD432Q%2FcRD0mpf1TX6LueK7EKPPGk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;320&quot; height=&quot;123&quot; data-origin-width=&quot;320&quot; data-origin-height=&quot;123&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1706698151862&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;vi myscript.sh&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1706698168155&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;crontab -l 1&amp;gt;crontab_new&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스크립트 파일을 하나 만들고, 안에 위의 명령어를 적어줍니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;crontab의 내용을 그대로 가져와서 crontab_new라는 파일에 덮어씌워준다는 의미입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;503&quot; data-origin-height=&quot;96&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cvMuvx/btsEhGOWlvh/jsYU04u6cSukiGPWoZ5451/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cvMuvx/btsEhGOWlvh/jsYU04u6cSukiGPWoZ5451/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cvMuvx/btsEhGOWlvh/jsYU04u6cSukiGPWoZ5451/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcvMuvx%2FbtsEhGOWlvh%2FjsYU04u6cSukiGPWoZ5451%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;503&quot; height=&quot;96&quot; data-origin-width=&quot;503&quot; data-origin-height=&quot;96&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;497&quot; data-origin-height=&quot;197&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/s8nKr/btsEb8M8egX/4uyRFx7SBX41Lj9IXYTd40/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/s8nKr/btsEb8M8egX/4uyRFx7SBX41Lj9IXYTd40/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/s8nKr/btsEb8M8egX/4uyRFx7SBX41Lj9IXYTd40/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fs8nKr%2FbtsEb8M8egX%2F4uyRFx7SBX41Lj9IXYTd40%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;497&quot; height=&quot;197&quot; data-origin-width=&quot;497&quot; data-origin-height=&quot;197&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706698179027&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;./myscript.sh
cat crontab_new&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실행하고 확인해보면 crontab의 내용이 그대로 담겨진 crontab_new라는 파일이 생성되었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1706698349285&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;crontab -l 1&amp;gt;crontab_new

echo &quot;* * * * * /home/ubuntu/job.sh&quot; 1&amp;gt;&amp;gt;crontab_new

crontab crontab_new&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;방금 만든 스크립트 파일의 내용을 위처럼 추가해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;매분 /home/ubuntu/job.sh 라는 파일을 실행해서 contab_new에 넣고, 이후 crontab_new의 내용을 crontab명령어로 실행하도록 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;496&quot; data-origin-height=&quot;162&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qlsVh/btsEeJFE0n9/kRQOPzZJpcBHPIyJOalZVK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qlsVh/btsEeJFE0n9/kRQOPzZJpcBHPIyJOalZVK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qlsVh/btsEeJFE0n9/kRQOPzZJpcBHPIyJOalZVK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqlsVh%2FbtsEeJFE0n9%2FkRQOPzZJpcBHPIyJOalZVK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;496&quot; height=&quot;162&quot; data-origin-width=&quot;496&quot; data-origin-height=&quot;162&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706698738753&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;vi job.sh&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1706698762324&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ls -l&amp;gt;/home/ubuntu/cron.log&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;job.sh파일에서는 &quot;ls -l&quot;이라는 명령어를 cron.log에 담는 작업을 하도록 해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;379&quot; data-origin-height=&quot;99&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bkx1Cf/btsEhoA6WFp/lljuAxzsCrhN7Nb3Hk5Dd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bkx1Cf/btsEhoA6WFp/lljuAxzsCrhN7Nb3Hk5Dd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bkx1Cf/btsEhoA6WFp/lljuAxzsCrhN7Nb3Hk5Dd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbkx1Cf%2FbtsEhoA6WFp%2FlljuAxzsCrhN7Nb3Hk5Dd1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;379&quot; height=&quot;99&quot; data-origin-width=&quot;379&quot; data-origin-height=&quot;99&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 crontab -e를 통해서 crontab을 확인해보면 crontab_new에서 Job.sh를 실행하라는 명령이 반영되어 있는 것을 확인해볼 수 있습니다. 이제 crontab에서는 주기적으로 job.sh안에 있는 ls -l를 cron.log에 저장하도록 할 겁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;489&quot; data-origin-height=&quot;100&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/toqVZ/btsEfuBAlA7/eFa1nK7sKf8uFpayxxQPiK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/toqVZ/btsEfuBAlA7/eFa1nK7sKf8uFpayxxQPiK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/toqVZ/btsEfuBAlA7/eFa1nK7sKf8uFpayxxQPiK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtoqVZ%2FbtsEfuBAlA7%2FeFa1nK7sKf8uFpayxxQPiK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;489&quot; height=&quot;100&quot; data-origin-width=&quot;489&quot; data-origin-height=&quot;100&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;cron.log을 살펴보면 분마다 &quot;ls -l&quot;을 실행해서 저장하고 있는 것을 확인해볼 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;정리&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정리하자면,&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;crontab -e를 통해 crontab이라는 주기적으로 명령들이 실행되는 공간을 만든다.&lt;/li&gt;
&lt;li&gt;crontab_new라는 파일을 만들어서 crontab의 내용을 가져와서 복사합니다.&lt;/li&gt;
&lt;li&gt;crontab_new에 원하는 명령어나 스크립트 실행하는 명령어를 추가한 다음 crontab_new에 내용이 crontab에 적용되도록 합니다.&lt;/li&gt;
&lt;li&gt;crontab_new에 추가된 내용이 crontab에 적용되면서 주기적으로 해당 명령어들이 실행됩니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;3. cron을 이용해 스프링 서버를 재시작하기&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;pre id=&quot;code_1706699426700&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;mkdir cron-restart
cd cron-restart
vi spring_stop.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;cron-restart&quot; 라는 디렉토리를 만들어서 프로젝트를 종료,시작하는 스크립트 파일을 모아두겠습니다. 해당 디렉토리로 들어가서 &quot;spring_stop&quot;이라는 스크립트 파일을 만들어줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1706699433736&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;echo &quot;SPRINGBOOT STOP...&quot;
SPRING_PID=$(pgrep -f v1.0.0.1-SNAPSHOT.jar)
kill -9 $SPRING_PID&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전에 했던 내용 그대로 우리가 실행하는 포르젝트의 jar파일을 종료하도록 하는 스크립트를 작성해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1706699519914&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;vi spring-restart.sh&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1706699530798&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;SPRING_PID=$(pgrep -f v1-0.0.1-SNAPSHOT.jar)
SPRING_PATH=&quot;/home/ubuntu/aws-v1/build/libs/v1-0.0.1-SNAPSHOT.jar&quot;

echo $SPRING_PID
echo $SPRING_PATH

if [ -z &quot;$SPRING_PID&quot; ]; then
        echo &quot;스프링 종료된 상태...&quot;
        echo &quot;스프링 재시작 - $(date)&quot; 1&amp;gt;&amp;gt;/home/ubuntu/cron-restart/spring-restart.log
        nohup java -jar $SPRING_PATH 1&amp;gt;log.out 2&amp;gt;err.out &amp;amp;
else
        echo &quot;스프링이 시작된 상태...&quot;
fi&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에는 &quot;spring-restart&quot;라는 프로젝트를 재실행하는 스크립트도 짜두도록 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 스크립트는 프로젝트의 jar파일의 PID를 추적해서, -z 옵션으로 해당 PID의 길이가 0이면 참이라고 판단하게 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;현재 프로젝트가 실행중이라면, PID가 존재한다.&amp;gt; PID가 존재하면 길이가 0일 수가 없다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;반대로, PID가 존재하지 않는다 &amp;gt; 길이가 0이다 &amp;gt; 현재 프로세스가 실행되고 있지 않다. 라는걸 의미합니다. 해당 조건으로 if문을 통해서 현재 프로젝트가 실행중인지 아닌지 판단할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 판단을 통해서 현재 프로세스가 종료된 상태라면, date, 즉 현재시간을 함께 담아서 언제 프로젝트가 재실행 되었는지를 확인할 수 있도록 spring-restart.log라는 로그에 담도록 하고, nohup명령어로 다시 프로젝트를 실행하도록 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 하면 모종의 이유로 종료된 프로젝트를 감지해서 알아서 재시작 해주는 로직이 완성되었습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1706699873279&quot; class=&quot;shell&quot; data-ke-language=&quot;shell&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;vi deploy.sh&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1706699862460&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;# 2. 스프링 서버 종료시 재시작
echo &quot;crontab 등록 - spring restart...&quot;
crontab -l &amp;gt; crontab_new
echo &quot;* * * * * /home/ubuntu/cron-restart/spring-restart.sh&quot; 1&amp;gt;&amp;gt;crontab_new
crontab crontab_new
rm crontab_new&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;deploy.sh라는 스크립트 파일을 만들어서 해당 내용을 넣어줍니다. crontab_new를 만들어서, 프로젝트 재실행 동작을 추가하고, crontab에 적용하고, crontab_new파일을 필요 없어졌으니 삭제해줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;deploy.sh에는 자동으로 github에서 프로젝트를 가져와서...JDK깔고....빌드해서..배포하는 과정도 추가해야 하지만 일단은 재실행 동작만 테스트 해보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1706700057055&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo chmod u+x spring-restart.sh
sudo chmod u+x deploy.sh
./deploy.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 스크립트를 실행시킵니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;494&quot; data-origin-height=&quot;104&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bsY9zw/btsEby6l2FC/mKaPP1nC2AbF8cgIj90ZVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bsY9zw/btsEby6l2FC/mKaPP1nC2AbF8cgIj90ZVk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bsY9zw/btsEby6l2FC/mKaPP1nC2AbF8cgIj90ZVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbsY9zw%2FbtsEby6l2FC%2FmKaPP1nC2AbF8cgIj90ZVk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;494&quot; height=&quot;104&quot; data-origin-width=&quot;494&quot; data-origin-height=&quot;104&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;crontab -e 로 확인해보면 crontab에 재실행 프로세스가 추가되어 있습니다. 이제 프로젝트가 종료된 것을 매분 감지해서 자동으로 실행을 해줄 것입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;620&quot; data-origin-height=&quot;369&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ensE9K/btsEeFclb3m/hkxpxkovZUh9iXc1O3834K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ensE9K/btsEeFclb3m/hkxpxkovZUh9iXc1O3834K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ensE9K/btsEeFclb3m/hkxpxkovZUh9iXc1O3834K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FensE9K%2FbtsEeFclb3m%2FhkxpxkovZUh9iXc1O3834K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;620&quot; height=&quot;369&quot; data-origin-width=&quot;620&quot; data-origin-height=&quot;369&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위처럼 프로젝트가 종료되어 있는 상태에서 1분이 지나면, spring-restart.log가 생성되고, 8080포트가 자동으로 실행됩니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;523&quot; data-origin-height=&quot;44&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dyoLPc/btsEcrTnz4p/BKjPbLTyU4XG5caCO2xAJK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dyoLPc/btsEcrTnz4p/BKjPbLTyU4XG5caCO2xAJK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dyoLPc/btsEcrTnz4p/BKjPbLTyU4XG5caCO2xAJK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdyoLPc%2FbtsEcrTnz4p%2FBKjPbLTyU4XG5caCO2xAJK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;523&quot; height=&quot;44&quot; data-origin-width=&quot;523&quot; data-origin-height=&quot;44&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;재시작 로그 또한 확인할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;4. 개선해야할 점&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;708&quot; data-origin-height=&quot;800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dApQ6C/btsEhqyORzi/u9KLBiE9G4PenUq3wHR0C0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dApQ6C/btsEhqyORzi/u9KLBiE9G4PenUq3wHR0C0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dApQ6C/btsEhqyORzi/u9KLBiE9G4PenUq3wHR0C0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdApQ6C%2FbtsEhqyORzi%2Fu9KLBiE9G4PenUq3wHR0C0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;272&quot; height=&quot;307&quot; data-origin-width=&quot;708&quot; data-origin-height=&quot;800&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;지금까지 EC2 서버를 통해서 스크립트로 베이직하게 배포하는 방법을 해보았습니다. 하지만 역시 개선해야할 점이 많습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;프로젝트가 업데이트 되어서 재배포를 해야할 때는 어떻게 할 것인가?&lt;/li&gt;
&lt;li&gt;재배포 할 시 서버가 꺼져있으면 안되는데 이것을 어떻게 해결할 것인가?&lt;/li&gt;
&lt;li&gt;테스트를 안하고 배포중인데, 테스트를 어떻게 처리할 것인가?&lt;/li&gt;
&lt;li&gt;사용자가 늘어나서 서버가 불안정해지면 어떻게할 것인가?&lt;/li&gt;
&lt;li&gt;github에 코드를 새로 push하면 이를 감지해서 자동으로 재배포를 할 수 있도록 할 수는 없을까?&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앞으로 이런점들을 고려해서 배포하는 방법들을 알아보겠습니다.&lt;/p&gt;</description>
      <category>Project/AWS 및 배포</category>
      <category>aws</category>
      <author>코딩하는너굴맨</author>
      <guid isPermaLink="true">https://chick-it.tistory.com/94</guid>
      <comments>https://chick-it.tistory.com/94#entry94comment</comments>
      <pubDate>Wed, 31 Jan 2024 20:44:32 +0900</pubDate>
    </item>
    <item>
      <title>AWS - 3-2. 베이직 하게 배포해보기 - 타임존 변경, 스크립트 작성</title>
      <link>https://chick-it.tistory.com/93</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;0. 개요&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;180&quot; data-origin-height=&quot;180&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/sHWJj/btsEhH1lLdp/SFdkEnG70zu1Ofp8yJzifK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/sHWJj/btsEhH1lLdp/SFdkEnG70zu1Ofp8yJzifK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/sHWJj/btsEhH1lLdp/SFdkEnG70zu1Ofp8yJzifK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsHWJj%2FbtsEhH1lLdp%2FSFdkEnG70zu1Ofp8yJzifK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;180&quot; height=&quot;180&quot; data-origin-width=&quot;180&quot; data-origin-height=&quot;180&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;이번에도 역시 저번 포스팅에 이어서, 프로젝트를 배포하는데 고려해야할 문제들에 대해서 조금씩 고쳐보는 시간을 가져보고자 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;추가적인 고려했던 문제입니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc; background-color: #ffffff; color: #353638; text-align: left;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;현재 우분투의 시간설정이 US로 되어 있어서 +9시간이 된 채로 로그들이 남는다. 변경해야 한다.&lt;/li&gt;
&lt;li style=&quot;list-style-type: disc;&quot;&gt;일일히 배포를 하거나, PID를 알아내서 배포를 종료하는 작업을 스크립트로 해결하도록 하는 것이 좋다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. 타임존 변경&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;678&quot; data-origin-height=&quot;255&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cwU0mb/btsEeKEvYzt/aKcIFH4Ka5Q9xeuMKyCQG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cwU0mb/btsEeKEvYzt/aKcIFH4Ka5Q9xeuMKyCQG1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cwU0mb/btsEeKEvYzt/aKcIFH4Ka5Q9xeuMKyCQG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcwU0mb%2FbtsEeKEvYzt%2FaKcIFH4Ka5Q9xeuMKyCQG1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;638&quot; height=&quot;240&quot; data-origin-width=&quot;678&quot; data-origin-height=&quot;255&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706696270234&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;timedatectl
timedatectl list-timezones | grep Seoul
sudo timedatectl set-timezone Asia/Seoul&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&lt;b&gt;timedatectl이라는 명령어&lt;/b&gt;&lt;/u&gt;로 타임존을 변경할 수 있습니다. timedatectl을 옵션없이 실행하면 현재의 타임존을 알 수 있는데 UTC로 잡혀있습니다. 이를 대한민국으로 바꾸어 주어야합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;timedatectl list-timezones로 사용할 수 있는 타임존을 검색할 수 있는데 전세계에 서비스 중이다 보니 엄청많이 나올겁니다. Seoul을 옵션으로 검색하도록 합니다. 이를통해 Asia/Seoul로 타임존을 변경해주도록 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 스크립트 작성&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;796&quot; data-origin-height=&quot;878&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bRTsSr/btsEf3jAnup/cBs3DRm5TKkBd28zqxp7lk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bRTsSr/btsEf3jAnup/cBs3DRm5TKkBd28zqxp7lk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bRTsSr/btsEf3jAnup/cBs3DRm5TKkBd28zqxp7lk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbRTsSr%2FbtsEf3jAnup%2FcBs3DRm5TKkBd28zqxp7lk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;247&quot; height=&quot;272&quot; data-origin-width=&quot;796&quot; data-origin-height=&quot;878&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로젝트 프로세스를 키거나 꺼야하는 상황이 있을겁니다. 이전까지는 java -jar로 실행하고, 끌 때는 PID를 찾아서 확인하고 해당 PID를 kill해주었습니다. 이러한 불필요한 과정은 해야하는 일을 증가시킵니다. 이를 위해서 &lt;u&gt;&lt;b&gt;스크립트 파일을 작성&lt;/b&gt;&lt;/u&gt;해서 명령어들을 자동으로 실행해주는 것이 좋습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;691&quot; data-origin-height=&quot;60&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qi304/btsEhq6Bd3t/BFHaF6mftSIKNnSKOwkKzk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qi304/btsEhq6Bd3t/BFHaF6mftSIKNnSKOwkKzk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qi304/btsEhq6Bd3t/BFHaF6mftSIKNnSKOwkKzk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fqi304%2FbtsEhq6Bd3t%2FBFHaF6mftSIKNnSKOwkKzk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;691&quot; height=&quot;60&quot; data-origin-width=&quot;691&quot; data-origin-height=&quot;60&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706696547827&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ps -ef | grep *.jar | grep -v grep | awk '{print $2}'&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전에는 실행중인 프로세스를 확인하기 위해 &quot;ps-ef&quot; 라는 명령어를 사용했습니다. 여기서 우리가 실행하는 프로젝트의 PID만을 뽑아오기 위해서 위의 조건을 달아줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;jar파일이어야 하고, 현재 ps-ef로 검색하는 것도 프로세스에 남으니 현재 프로세스는 빼고 가져오도록 하고, 두번째 칸에 있는 정보만 가져오도록 합니다. 그러면 위처럼 현재 실행중인 jar파일의 프로세스 PID를 가져올&amp;nbsp; 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;551&quot; data-origin-height=&quot;36&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dp8qOO/btsEdBuJK0C/oHQXE8syro7M8KuK71Ahg1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dp8qOO/btsEdBuJK0C/oHQXE8syro7M8KuK71Ahg1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dp8qOO/btsEdBuJK0C/oHQXE8syro7M8KuK71Ahg1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fdp8qOO%2FbtsEdBuJK0C%2FoHQXE8syro7M8KuK71Ahg1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;551&quot; height=&quot;36&quot; data-origin-width=&quot;551&quot; data-origin-height=&quot;36&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706696940341&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;pgrep -f *.jar&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 위처럼 많은 옵션을 달지않아도, &lt;b&gt;pgrep&lt;/b&gt;이라는 명령어로 쉽게 실행중인 jar파일 프로세스의 PID를 가져올 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1706697004420&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;vi spring-stop.sh&lt;/code&gt;&lt;/pre&gt;
&lt;pre id=&quot;code_1706697008741&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;echo &quot;Springboot Stop.....&quot;

SPRING_PID=$(pgrep -f *.jar)

echo $SPRING_PID

kill -9 $SPRING_PID&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 이를 활용해 스크립트를 짜줍니다. spring-stop이라는 sh파일을 만들어줍니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SPRING_PID에는 pgrep으로 가져온 PID값을 넣어줍니다. (&amp;amp;로 감싸줘야 명령어로 인식합니다.) 이후 해당 PID를 kill 해주도록 합니다. 중간중간에 echo로 현재 실행중인 작업을 터미널로 인식할 수 있도록 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;546&quot; data-origin-height=&quot;359&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/c1pdQZ/btsEbCt8kIF/Zk9VTTrzhS5lqsfrv97uBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/c1pdQZ/btsEbCt8kIF/Zk9VTTrzhS5lqsfrv97uBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/c1pdQZ/btsEbCt8kIF/Zk9VTTrzhS5lqsfrv97uBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc1pdQZ%2FbtsEbCt8kIF%2FZk9VTTrzhS5lqsfrv97uBK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;546&quot; height=&quot;359&quot; data-origin-width=&quot;546&quot; data-origin-height=&quot;359&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706697199136&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;chmod u+x spring-stop.sh
./spring-stop.sh&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 해당 스크립트 파일을 실행가능하도록 실행권한을 주고 현재 폴더에서 실행해 주도록 합니다. &quot;./&quot; 옵션을 줘서 현재 폴더에서 실행해도록 해야합니다. 안그러면 환경변수에서 설정된 파일을 실행할겁니다. 위처럼 정상적으로 현재 실행중인 프로젝트의 프로세스를 정상적으로 멈추게 해주었습니다.&amp;nbsp;&lt;/p&gt;</description>
      <category>Project/AWS 및 배포</category>
      <category>aws</category>
      <author>코딩하는너굴맨</author>
      <guid isPermaLink="true">https://chick-it.tistory.com/93</guid>
      <comments>https://chick-it.tistory.com/93#entry93comment</comments>
      <pubDate>Wed, 31 Jan 2024 19:36:22 +0900</pubDate>
    </item>
    <item>
      <title>AWS - 3-1. 베이직 하게 배포해보기 - 백그라운드 실행, 로그파일 분리</title>
      <link>https://chick-it.tistory.com/92</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;0. 개요&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;180&quot; data-origin-height=&quot;180&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/w9c3J/btsEhWqu6dB/G6P92fgwXHOrD8PQjvutY1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/w9c3J/btsEhWqu6dB/G6P92fgwXHOrD8PQjvutY1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/w9c3J/btsEhWqu6dB/G6P92fgwXHOrD8PQjvutY1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fw9c3J%2FbtsEhWqu6dB%2FG6P92fgwXHOrD8PQjvutY1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;220&quot; height=&quot;220&quot; data-origin-width=&quot;180&quot; data-origin-height=&quot;180&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에는 저번 포스팅에 이어서, 프로젝트를 배포하는데 고려해야할 문제들에 대해서 조금씩 고쳐보는 시간을 가져보고자 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;고려했던 문제가 몇개 있었습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;원격 터미널 창을 끄더라고 계속 실행이 되도록 백그라운드 실행이 되어야한다.&lt;/li&gt;
&lt;li&gt;프로젝트의 로그 파일을 보기 좋게 분리해야 한다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. nohup로 백그라운드 실행&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;868&quot; data-origin-height=&quot;801&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/yCxMN/btsEfsqdMRv/nimbSWe7auJSVS1MRgKgek/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/yCxMN/btsEfsqdMRv/nimbSWe7auJSVS1MRgKgek/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/yCxMN/btsEfsqdMRv/nimbSWe7auJSVS1MRgKgek/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FyCxMN%2FbtsEfsqdMRv%2FnimbSWe7auJSVS1MRgKgek%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;327&quot; height=&quot;302&quot; data-origin-width=&quot;868&quot; data-origin-height=&quot;801&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;nohup이라는 명령어를 통해서 백그라운드 실행을 하도록 합니다. nohup는 리눅스에서 프로세스를 실행한 터미널의 세션연결이 끊어지더라도 지속적으로 동작할 수 있게 해주는 명령어입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1706693929320&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;jar {
	enabled = false
}&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저번 포스팅에 언급을 안했는데, spring boot 프로젝트의 경우, build.gradle에 해당 옵션을 추가해줘야합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원래는 build를 실행하면 jar파일이 두 개가 생기게 됩니다. 모든 라이브러리와 소스코드가 포함된 jar파일, plain.jar라는 모든 의존성을 포함하지 않고 소스코드의 클래스파일과 리소스 파일만 존재하는 파일이 생성됩니다. plain.jar는 모든 의존성이 존재하지 않기 때문에 java -jar로 빌드시 오류가 발생합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위 옵션으로 plain.jar가 생성되지 않도록 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1706694078453&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;nohup java -jar *.jar* &amp;amp;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 nohup을 통해서 jar파일을 빌드해주록 합니다. 여기서 &quot;&amp;amp;&quot;이라는 옵션을 통해서 백그라운드 실행을 하게 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;425&quot; data-origin-height=&quot;146&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/et7SaT/btsEf77i4oS/w6Gqvl7GxvFKdsQokOPHe0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/et7SaT/btsEf77i4oS/w6Gqvl7GxvFKdsQokOPHe0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/et7SaT/btsEf77i4oS/w6Gqvl7GxvFKdsQokOPHe0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fet7SaT%2FbtsEf77i4oS%2Fw6Gqvl7GxvFKdsQokOPHe0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;425&quot; height=&quot;146&quot; data-origin-width=&quot;425&quot; data-origin-height=&quot;146&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 터미널을 꺼도 사이트에 접근이 계속해서 가능한 상태가 되었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1706694193053&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo apt install net-tools
netstat -nlpt&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;netstat이라는 명령어로 현재 실행중인 프로세스를 확인하기위해 net-tools를 다운받아서 netstat명령어를 사용해봅니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;694&quot; data-origin-height=&quot;81&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cXkWUb/btsEhm4juTF/qd0kUOax7NNlP8HiGXF9ak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cXkWUb/btsEhm4juTF/qd0kUOax7NNlP8HiGXF9ak/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cXkWUb/btsEhm4juTF/qd0kUOax7NNlP8HiGXF9ak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcXkWUb%2FbtsEhm4juTF%2Fqd0kUOax7NNlP8HiGXF9ak%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;694&quot; height=&quot;81&quot; data-origin-width=&quot;694&quot; data-origin-height=&quot;81&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이렇게 프로세스가 돌아가고 있는 것을 확인할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 로그파일 변경 및 분리&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;275&quot; data-origin-height=&quot;183&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ezU7Vz/btsEbGiSLiR/PSpIX5q61qiKTK2tt7Fci1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ezU7Vz/btsEbGiSLiR/PSpIX5q61qiKTK2tt7Fci1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ezU7Vz/btsEbGiSLiR/PSpIX5q61qiKTK2tt7Fci1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FezU7Vz%2FbtsEbGiSLiR%2FPSpIX5q61qiKTK2tt7Fci1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;275&quot; height=&quot;183&quot; data-origin-width=&quot;275&quot; data-origin-height=&quot;183&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 로그파일을 분리해보도록 합니다. 몇백줄이나 되는 기존의 프로젝트 로그를 보고 판단하는 것 보다, 에러가 있는지, 어떤 사용자가 접근하는지 등등의 로그파일을 분리해서 목적에 따라 확인하게 하는 것이 좋습니다. 로그파일을 변경하는 방법 이후에 로그파일을 분리해보도록 하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;로그파일 확인 및 변경&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;550&quot; data-origin-height=&quot;221&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/8lNfM/btsEhGVE2DI/cU7maPPRlyKf1KeT0MVOl1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/8lNfM/btsEhGVE2DI/cU7maPPRlyKf1KeT0MVOl1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/8lNfM/btsEhGVE2DI/cU7maPPRlyKf1KeT0MVOl1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F8lNfM%2FbtsEhGVE2DI%2FcU7maPPRlyKf1KeT0MVOl1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;550&quot; height=&quot;221&quot; data-origin-width=&quot;550&quot; data-origin-height=&quot;221&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706694565652&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ls
cat nohup.out&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;nohup으로 백그라운드 실행을 하게되면, nohup.out이라는 파일이 생성됩니다. 해당 파일을 cat으로 들어가보면, 내 프로젝트의 로그들이 모두 모여있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;469&quot; data-origin-height=&quot;93&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ASoK2/btsEf1MOU0i/ZvndKsXjVZLW1EWVRGy6Z1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ASoK2/btsEf1MOU0i/ZvndKsXjVZLW1EWVRGy6Z1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ASoK2/btsEf1MOU0i/ZvndKsXjVZLW1EWVRGy6Z1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FASoK2%2FbtsEf1MOU0i%2FZvndKsXjVZLW1EWVRGy6Z1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;469&quot; height=&quot;93&quot; data-origin-width=&quot;469&quot; data-origin-height=&quot;93&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706694676755&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;tail -f nohup.out&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만, 계속 들어오는 로그들을 위해서 tail 이라는 명령어로 로그의 변화를 계속 관찰할 수 있습니다. 사이트에 접근하면 실시간으로 로그가 들어오는 것을 확인할 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;360&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d6SojJ/btsEcq06hJK/KjnMzHk8L8h7zz8mrJKdDK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d6SojJ/btsEcq06hJK/KjnMzHk8L8h7zz8mrJKdDK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d6SojJ/btsEcq06hJK/KjnMzHk8L8h7zz8mrJKdDK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd6SojJ%2FbtsEcq06hJK%2FKjnMzHk8L8h7zz8mrJKdDK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;508&quot; height=&quot;336&quot; data-origin-width=&quot;544&quot; data-origin-height=&quot;360&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706694781006&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;ps -ef
kill -9 &quot;프로젝트 jar파일 프로세스 PID 번호&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 위처럼 실행중인 프로세스를 확인해서 PID를 알아내고 kill 명령어로 일단 실행중인 프로세스를 죽여주도록 합니다. netstat으로 종료된 것을 확인할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;682&quot; data-origin-height=&quot;214&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/oaktL/btsEdErn3pr/Kfcn9XyMfCZmXLqKHCB92K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/oaktL/btsEdErn3pr/Kfcn9XyMfCZmXLqKHCB92K/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/oaktL/btsEdErn3pr/Kfcn9XyMfCZmXLqKHCB92K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoaktL%2FbtsEdErn3pr%2FKfcn9XyMfCZmXLqKHCB92K%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;682&quot; height=&quot;214&quot; data-origin-width=&quot;682&quot; data-origin-height=&quot;214&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706694876200&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;nohup java -jar *.jar &amp;gt; mylog.out &amp;amp;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 nohup으로 프로젝트를 배포할 때, 옵션을 줘서 mylog.out이라는 파일로 로그가 모이도록 해줍니다. 이제 로그가 내가 원하는 이름의 파일로 모이게 됩니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;로그파일 분리&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1706695065601&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;nohup java -jar asasdq23adsd213da.jar &amp;amp;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;만약 위처럼 이상한 파일명으로 아무렇게나 nohup을 실행하더라도 실행되지는 않지만, nohup.out이라는 로그파일은 생성됩니다. 여기에 실패한 내용에 대한 에러 로그가 남습니다. 그럼 정상적인 로그와 에러로그를 따로따로 파일로 분리해서 저장하도록 해봅시다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1706695146036&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;nohup java -jar v1-0.0.1-SNAPSHOT.jar 1&amp;gt;log.out 2&amp;gt;err.out&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위처럼 명령어로 1 의 경우 정상적인 로그, 2의 경우 에러로그를 의미합니다 .이렇게 따로따로 원하는 파일의 이름으로 저장이 가능합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;692&quot; data-origin-height=&quot;138&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cydY9E/btsEbBorSpM/ZSKAobdm9kjodu8EmjknzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cydY9E/btsEbBorSpM/ZSKAobdm9kjodu8EmjknzK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cydY9E/btsEbBorSpM/ZSKAobdm9kjodu8EmjknzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcydY9E%2FbtsEbBorSpM%2FZSKAobdm9kjodu8EmjknzK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;692&quot; height=&quot;138&quot; data-origin-width=&quot;692&quot; data-origin-height=&quot;138&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;위처럼 프로젝트.jarr 처럼 잘못된 이름으로 배포를 시도하면, 위처럼 err.out에 에러 로그가 남게 됩니다. 반대로 정상적이라면 log.out에 남게 됩니다. 이제, 나중에 프로젝트를 배포했는데, 실행이 안되었다? err.out이라는 로그 파일만 확인하면 됩니다.&lt;/p&gt;</description>
      <category>Project/AWS 및 배포</category>
      <category>aws</category>
      <author>코딩하는너굴맨</author>
      <guid isPermaLink="true">https://chick-it.tistory.com/92</guid>
      <comments>https://chick-it.tistory.com/92#entry92comment</comments>
      <pubDate>Wed, 31 Jan 2024 19:02:12 +0900</pubDate>
    </item>
    <item>
      <title>AWS - 3. 베이직 하게 배포해보기 - EC2 서버에 프로젝트 배포하기</title>
      <link>https://chick-it.tistory.com/91</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;0. 개요&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;682&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beRzQC/btsEhHNEnN7/GHcQFora9AW0ziWlqSJzm1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beRzQC/btsEhHNEnN7/GHcQFora9AW0ziWlqSJzm1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beRzQC/btsEhHNEnN7/GHcQFora9AW0ziWlqSJzm1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeRzQC%2FbtsEhHNEnN7%2FGHcQFora9AW0ziWlqSJzm1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;331&quot; height=&quot;282&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;682&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;원래는 배포를 하면서 nginx를 사용해서 프록시 서버를 거치게 하거나, CI/CD 도구로써 Jenkins를 사용하거나, 혹은 docker를 사용해서 배포를 하게됩니다. 하지만 이번에는 AWS EC2서버만을 이용해서 베이직하게 배포를 하는 방법을 실습한 것을 정리해보는 시간을 가져보겠습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. EC2 환경 세팅&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bhxA1K/btsEdThorSz/0BZDRxlBCl2xZ3Mpsr1De0/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bhxA1K/btsEdThorSz/0BZDRxlBCl2xZ3Mpsr1De0/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bhxA1K/btsEdThorSz/0BZDRxlBCl2xZ3Mpsr1De0/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbhxA1K%2FbtsEdThorSz%2F0BZDRxlBCl2xZ3Mpsr1De0%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;225&quot; height=&quot;225&quot; data-origin-width=&quot;225&quot; data-origin-height=&quot;225&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;배포를 하기전에 사용하기위해 EC2 서버의 환경 세팅을 한 후, EC2 서버로 원격접속을 해서 우리가 Github에 올린 프로젝트를 다운받아 보는 것을 해보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;EC2 서버 고정 IP 설정&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;302&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1HZ7Z/btsEii1bJ6z/ft27nxc2T1FnXBqYIPowZ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1HZ7Z/btsEii1bJ6z/ft27nxc2T1FnXBqYIPowZ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1HZ7Z/btsEii1bJ6z/ft27nxc2T1FnXBqYIPowZ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1HZ7Z%2FbtsEii1bJ6z%2Fft27nxc2T1FnXBqYIPowZ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;620&quot; height=&quot;240&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;302&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;815&quot; data-origin-height=&quot;279&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9g5JD/btsEdMW2uGt/3QE9huTnpoHvNrOzoBa8s0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9g5JD/btsEdMW2uGt/3QE9huTnpoHvNrOzoBa8s0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9g5JD/btsEdMW2uGt/3QE9huTnpoHvNrOzoBa8s0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9g5JD%2FbtsEdMW2uGt%2F3QE9huTnpoHvNrOzoBa8s0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;619&quot; height=&quot;212&quot; data-origin-width=&quot;815&quot; data-origin-height=&quot;279&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;853&quot; data-origin-height=&quot;292&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cdL6gq/btsEdCAcNtE/NcTl6Q90avJH6NkSKCgrfK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cdL6gq/btsEdCAcNtE/NcTl6Q90avJH6NkSKCgrfK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cdL6gq/btsEdCAcNtE/NcTl6Q90avJH6NkSKCgrfK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcdL6gq%2FbtsEdCAcNtE%2FNcTl6Q90avJH6NkSKCgrfK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;637&quot; height=&quot;218&quot; data-origin-width=&quot;853&quot; data-origin-height=&quot;292&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전의 포스팅(&lt;a href=&quot;https://chick-it.tistory.com/89&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://chick-it.tistory.com/89)&lt;/a&gt;에서 한 내용처럼 인스턴스를 EC2에서 생성해줍니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;789&quot; data-origin-height=&quot;517&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cC1gjV/btsEhVkIOrh/IPNi5G6wApmgDqecoiBT8k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cC1gjV/btsEhVkIOrh/IPNi5G6wApmgDqecoiBT8k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cC1gjV/btsEhVkIOrh/IPNi5G6wApmgDqecoiBT8k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcC1gjV%2FbtsEhVkIOrh%2FIPNi5G6wApmgDqecoiBT8k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;678&quot; height=&quot;444&quot; data-origin-width=&quot;789&quot; data-origin-height=&quot;517&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전과 다른점이라면, 네트워크 설정에서 편집 버튼을 누르고 하단의 인바운드 보안 그룹 규칙에 들어가서 현재는 22포트 밖에 없지만 인바운드 보안그룹 규칙을 추가 버튼을 눌러서 8080포트를 추가해줍니다. 모든 사용자가 접근할 수 있도록 위치무관으로 유형을 정해주도록 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;456&quot; data-origin-height=&quot;142&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/beZhEu/btsEhV56UWy/I2N0Devb1eUt91WFckjR5k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/beZhEu/btsEhV56UWy/I2N0Devb1eUt91WFckjR5k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/beZhEu/btsEhV56UWy/I2N0Devb1eUt91WFckjR5k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbeZhEu%2FbtsEhV56UWy%2FI2N0Devb1eUt91WFckjR5k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;456&quot; height=&quot;142&quot; data-origin-width=&quot;456&quot; data-origin-height=&quot;142&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 위처럼 인스턴스가 생성될 텐데, 현재는 퍼블릭 IPv4포트 번호만 존재합니다. 우리는 AWS에서는 엘라스틱 ip(탄력적 ip)라고 부르는 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;고정 ip를 &lt;/span&gt;설정해주어야 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;877&quot; data-origin-height=&quot;642&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMm5SB/btsEcaRye4n/wOQXADbHwvCG1KhQKYk5Z0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMm5SB/btsEcaRye4n/wOQXADbHwvCG1KhQKYk5Z0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMm5SB/btsEcaRye4n/wOQXADbHwvCG1KhQKYk5Z0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMm5SB%2FbtsEcaRye4n%2FwOQXADbHwvCG1KhQKYk5Z0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;536&quot; height=&quot;392&quot; data-origin-width=&quot;877&quot; data-origin-height=&quot;642&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;보통 가정집의 IP는 유동적으로 사용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예를들어 위처럼 공유기에 여러집이 물려있고, 통신사에는 연결된 집들에게 인터넷을 사용하도록 IP주소를 할당해줍니다. 하지만 예를들어 연결된집이 3개라고 해서 3개의 IP주소를 할당해주지 않습니다. 개인적으로 인터넷을 사용하는 사람들은 사용하는 시간이 있고, 나머지 시간에는 사용하지 않습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;세 사람이 자동차를 각자 아침,점심,저녁에만 사용한다면 한개의 자동차로 3명이 공유해서 사용할 수 있습니다. 이처럼 개인적으로 사용하는 인터넷은 일정 갯수의 IP를 유동적으로 공유해서 사용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;779&quot; data-origin-height=&quot;800&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7lC7V/btsEfpz8pI2/q2uml1wVbEpkZul40wTJM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7lC7V/btsEfpz8pI2/q2uml1wVbEpkZul40wTJM0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7lC7V/btsEfpz8pI2/q2uml1wVbEpkZul40wTJM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7lC7V%2FbtsEfpz8pI2%2Fq2uml1wVbEpkZul40wTJM0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;222&quot; height=&quot;228&quot; data-origin-width=&quot;779&quot; data-origin-height=&quot;800&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만, 우리가 만들어서 배포할 웹서비스는 여러 사람이 하나의 IP로 사이트에 접속해서 서비스를 사용하게 됩니다. 이 주소가 계속 유동적으로 바뀐다면 서비스를 할 수 없습니다. 이를 위해서 비용은 조금 더 들지만, 고정 IP를 사용해서 서비스를 운영해야합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;782&quot; data-origin-height=&quot;287&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byC3fh/btsEdYQsCaw/kEK5KOkURs4OY6CLMLk1k0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byC3fh/btsEdYQsCaw/kEK5KOkURs4OY6CLMLk1k0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byC3fh/btsEdYQsCaw/kEK5KOkURs4OY6CLMLk1k0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyC3fh%2FbtsEdYQsCaw%2FkEK5KOkURs4OY6CLMLk1k0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;643&quot; height=&quot;236&quot; data-origin-width=&quot;782&quot; data-origin-height=&quot;287&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EC2에서 탄력적 IP 탭으로 가서, 탄력적 IP 주소 할당을 눌러서 주소를 할당 받습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;302&quot; data-origin-height=&quot;178&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/tl2Vt/btsEa9yH4Kr/Mh9T5CdvuksV6Nx4njPZ4k/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/tl2Vt/btsEa9yH4Kr/Mh9T5CdvuksV6Nx4njPZ4k/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/tl2Vt/btsEa9yH4Kr/Mh9T5CdvuksV6Nx4njPZ4k/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Ftl2Vt%2FbtsEa9yH4Kr%2FMh9T5CdvuksV6Nx4njPZ4k%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;302&quot; height=&quot;178&quot; data-origin-width=&quot;302&quot; data-origin-height=&quot;178&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;672&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bfMfyT/btsEdZV9fS1/ipEVTpjYetsZTB6loOAtQ0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bfMfyT/btsEdZV9fS1/ipEVTpjYetsZTB6loOAtQ0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bfMfyT/btsEdZV9fS1/ipEVTpjYetsZTB6loOAtQ0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbfMfyT%2FbtsEdZV9fS1%2FipEVTpjYetsZTB6loOAtQ0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;607&quot; height=&quot;480&quot; data-origin-width=&quot;850&quot; data-origin-height=&quot;672&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 탄력적 IP 주소 연결을 통해, 방금 만든 인스턴스를 연결해줍니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;482&quot; data-origin-height=&quot;154&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/EXyoC/btsEhJLxYAS/VxPUMuSmMkenkXBDBARox1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/EXyoC/btsEhJLxYAS/VxPUMuSmMkenkXBDBARox1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/EXyoC/btsEhJLxYAS/VxPUMuSmMkenkXBDBARox1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FEXyoC%2FbtsEhJLxYAS%2FVxPUMuSmMkenkXBDBARox1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;482&quot; height=&quot;154&quot; data-origin-width=&quot;482&quot; data-origin-height=&quot;154&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 우리가 만든 EC2 서버에 고정 IP가 할당됩니다. 이제 고정 IP를 통해서 MobaXterm으로 원격 접속을 하면 됩니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;247&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8aClU/btsEdEY72mb/bresUYUK6NmsHRTGX8laAK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8aClU/btsEdEY72mb/bresUYUK6NmsHRTGX8laAK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8aClU/btsEdEY72mb/bresUYUK6NmsHRTGX8laAK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8aClU%2FbtsEdEY72mb%2FbresUYUK6NmsHRTGX8laAK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;584&quot; height=&quot;247&quot; data-origin-width=&quot;584&quot; data-origin-height=&quot;247&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;잘 접속됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. JDK, Git clone, 빌드, 배포&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Git&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1706689506400&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;git --version
git clone &quot;내 프로젝트 깃허브 링크&quot;&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;git이 깔려져 있는지 버전을 확인합니다. 보통은 기본적으로 깔려있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 내 프로젝트를 가져와주도록 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;284&quot; data-origin-height=&quot;41&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/y5jjS/btsEhoOvyQl/jZ9K5Kk1md70hOkMcZfNkK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/y5jjS/btsEhoOvyQl/jZ9K5Kk1md70hOkMcZfNkK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/y5jjS/btsEhoOvyQl/jZ9K5Kk1md70hOkMcZfNkK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fy5jjS%2FbtsEhoOvyQl%2FjZ9K5Kk1md70hOkMcZfNkK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;284&quot; height=&quot;41&quot; data-origin-width=&quot;284&quot; data-origin-height=&quot;41&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ls명령어로 확인해보니 프로젝트가 잘 들어왔음을 확인할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;Build&lt;/b&gt;&lt;/h4&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;185&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MNYnP/btsEbzD2HFx/Ko507VKBf9LXae6eV7Rhq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MNYnP/btsEbzD2HFx/Ko507VKBf9LXae6eV7Rhq0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MNYnP/btsEbzD2HFx/Ko507VKBf9LXae6eV7Rhq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMNYnP%2FbtsEbzD2HFx%2FKo507VKBf9LXae6eV7Rhq0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;510&quot; height=&quot;185&quot; data-origin-width=&quot;510&quot; data-origin-height=&quot;185&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 빌드를 해서 다운받은 프로젝트 파일을 실행가능한 jar파일로 만들어 주겠습니다. 프로젝트 안으로 들어와서 ls로 내부를 확인해보면, gradlew이라는 파일이 있는 것을 확인할 수 있습니다. 이 실행파일로 프로젝트를 jar로 변환할 수 있습니다. 하지만 현재 권한이 -rw 로 x, 즉 실행권한이 없는 것을 확인할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;75&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zyp8J/btsEhVLQjDL/RkWA495J4Vz8dA7ieOqEI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zyp8J/btsEhVLQjDL/RkWA495J4Vz8dA7ieOqEI1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zyp8J/btsEhVLQjDL/RkWA495J4Vz8dA7ieOqEI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fzyp8J%2FbtsEhVLQjDL%2FRkWA495J4Vz8dA7ieOqEI1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;575&quot; height=&quot;75&quot; data-origin-width=&quot;575&quot; data-origin-height=&quot;75&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706689810585&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;chmod u+x gradlew&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;chmod로 gradlew에 실행권한을 주도록 합니다. 초록색 글자가 되어있는 걸 보니 실행할 수 있는 상태가 되었습니다.&amp;nbsp;이대로 빌드를 해야하지만, 제가 가져온 프로젝트의 경우 spring boot 프로젝트 입니다. 이를 위해서 java를 설치해야합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;pre id=&quot;code_1706689898722&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;sudo apt update
sudo apt-cache search jdk | grep openjdk-11
sudo apt install openjdk-11-jdk&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;한번 우분투 내의 라이브러리를 업데이트 해주고, java11로 만든 프로젝트 이므로 jdk 11을 다운받겠습니다. apt-cache search로 다운로드 가능한 jdk를 검색하는데 심각하게 많을 정도로 많은 파일이 검색될 것이므로 openjdk-11로 좁혀서 검색해서 원하는 jdk를 다운받아 줍니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h4 data-ke-size=&quot;size20&quot;&gt;&lt;b&gt;빌드&lt;/b&gt;&lt;/h4&gt;
&lt;pre id=&quot;code_1706690006330&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;./gradlew build&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 빌드를 해줍니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;628&quot; data-origin-height=&quot;169&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bK0YrX/btsEdCAgcUJ/HcuLSbrWtmhE98WyzvFggk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bK0YrX/btsEdCAgcUJ/HcuLSbrWtmhE98WyzvFggk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bK0YrX/btsEdCAgcUJ/HcuLSbrWtmhE98WyzvFggk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbK0YrX%2FbtsEdCAgcUJ%2FHcuLSbrWtmhE98WyzvFggk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;628&quot; height=&quot;169&quot; data-origin-width=&quot;628&quot; data-origin-height=&quot;169&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1706690270407&quot; class=&quot;java&quot; data-ke-language=&quot;java&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;cd build
cd libs
ls
java -jar v1-0.0.1-SNAPSHOT.jar&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;빌드에 성공하면 build라는 디렉터리가 생기는데, 여기에 들어가면 libs라는 디렉터리가 있습니다. 여기에 빌드로 만들어진 jar파일이 존재합니다. 이 파일을 실행하면 프로젝트가 실행됩니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;641&quot; data-origin-height=&quot;275&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ctuxlY/btsEhscdqFU/UoKVSeNtGByziPlpNocLo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ctuxlY/btsEhscdqFU/UoKVSeNtGByziPlpNocLo1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ctuxlY/btsEhscdqFU/UoKVSeNtGByziPlpNocLo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FctuxlY%2FbtsEhscdqFU%2FUoKVSeNtGByziPlpNocLo1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;641&quot; height=&quot;275&quot; data-origin-width=&quot;641&quot; data-origin-height=&quot;275&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;와우! 인텔리제이 에서나 보던 spring boot 프로젝트가 원격 컴퓨터에서 실행되고 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;497&quot; data-origin-height=&quot;202&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/PE45q/btsEcs5FuXM/2G3wEePixE22FNQ6HFWcE0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/PE45q/btsEcs5FuXM/2G3wEePixE22FNQ6HFWcE0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/PE45q/btsEcs5FuXM/2G3wEePixE22FNQ6HFWcE0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FPE45q%2FbtsEcs5FuXM%2F2G3wEePixE22FNQ6HFWcE0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;497&quot; height=&quot;202&quot; data-origin-width=&quot;497&quot; data-origin-height=&quot;202&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이제 고정IP:8080에 접근하면, 우리가 만든 프로젝트가 배포되어 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;673&quot; data-origin-height=&quot;72&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/STvhK/btsEfsKq4Hp/LkepmpEnXk3wKiBU7ydGu0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/STvhK/btsEfsKq4Hp/LkepmpEnXk3wKiBU7ydGu0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/STvhK/btsEfsKq4Hp/LkepmpEnXk3wKiBU7ydGu0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FSTvhK%2FbtsEfsKq4Hp%2FLkepmpEnXk3wKiBU7ydGu0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;673&quot; height=&quot;72&quot; data-origin-width=&quot;673&quot; data-origin-height=&quot;72&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;해당 페이지에 접근하면 로그를 띄우게 했는데, 위처럼 로그가 잘 뜨는 것을 확인할 수 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 현재 배포의 문제&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;730&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rcKXp/btsEhzhY0Cr/OneS0MKIXAkGxSbmzJJFxK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rcKXp/btsEhzhY0Cr/OneS0MKIXAkGxSbmzJJFxK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rcKXp/btsEhzhY0Cr/OneS0MKIXAkGxSbmzJJFxK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrcKXp%2FbtsEhzhY0Cr%2FOneS0MKIXAkGxSbmzJJFxK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;302&quot; height=&quot;276&quot; data-origin-width=&quot;800&quot; data-origin-height=&quot;730&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 지금은 날것 그 자체로 프로젝트를 배포한 것 뿐입니다. 현재 배포한 환경에는 문제가 많습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;1. 현재 MobaXterm에 열려있는 원격접속 창을 끄면, 서비스 또한 연결이 끊어집니다. 터미널 창이 꺼지더라도 계속 백그라운드로 실행이 되어야 합니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;2. 현재 배포를 하면, Spring boot 프로젝트가 돌아가고 있습니다. 하지만, 돌아가면서 여기에서 발생하는 로그나 다른 에러 메세지들을 따로 빼서 보는 것이 가시성에 훨씬 좋습니다. 로그파일을 분리해주어야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;3. 현재 임대 컴퓨터는 US로 시간대가 정해져 있어서 시간대 역시 한국으로 변경해야 하며, 프로젝트를 시작하거나, 프로젝트를 종료하는 것을 일일히 하지말고, 스크립트 코드를 작성해서 손쉽게 해주는 것이 좋습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;4. 빌드, 배포 자동화 : 현재 github에서 프로젝트를 가져오고 &amp;gt; JDK 설치 &amp;gt; 빌드 &amp;gt; 배포 프로세스를 진행중인데, 그러면 프로젝트를 새 기능을 추가해서 재 배포를 하려고 하면, 이 모든 과정을 다시 일일히 수동으로 해야하는가? 이 프로세스를 자동화 해주어야 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다음 포스팅부터 이런 문제들을 해결하는 방법을 알아보고자 합니다.&lt;/p&gt;</description>
      <category>Project/AWS 및 배포</category>
      <category>aws</category>
      <author>코딩하는너굴맨</author>
      <guid isPermaLink="true">https://chick-it.tistory.com/91</guid>
      <comments>https://chick-it.tistory.com/91#entry91comment</comments>
      <pubDate>Wed, 31 Jan 2024 17:51:41 +0900</pubDate>
    </item>
    <item>
      <title>AWS - 2. 키페어와 RSA</title>
      <link>https://chick-it.tistory.com/90</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;0. 개요&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;508&quot; data-origin-height=&quot;139&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dLUkNo/btsEbbia8TT/h22zX2VMX9inL9IVC0rKk1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dLUkNo/btsEbbia8TT/h22zX2VMX9inL9IVC0rKk1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dLUkNo/btsEbbia8TT/h22zX2VMX9inL9IVC0rKk1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdLUkNo%2FbtsEbbia8TT%2Fh22zX2VMX9inL9IVC0rKk1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;508&quot; height=&quot;139&quot; data-origin-width=&quot;508&quot; data-origin-height=&quot;139&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전의 포스팅에서 인스턴스를 생성할 때, 키페어라는 것을 생성했습니다. 그리고 키페어를 통해서 MobaXterm으로 임대 컴퓨터에 접속할 수 있었습니다. &quot;어떤 과정이 존재하는 것일까?&quot; 대해서 설명을 하려면 AWS의 EC2 서버의 방화벽에 대해서 알아볼 필요가 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. AWS EC2 서버의 방화벽&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1149&quot; data-origin-height=&quot;564&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3Z27A/btsEf5nff0g/aGlCwt7ZYOK14V412mS0lK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3Z27A/btsEf5nff0g/aGlCwt7ZYOK14V412mS0lK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3Z27A/btsEf5nff0g/aGlCwt7ZYOK14V412mS0lK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3Z27A%2FbtsEf5nff0g%2FaGlCwt7ZYOK14V412mS0lK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;711&quot; height=&quot;349&quot; data-origin-width=&quot;1149&quot; data-origin-height=&quot;564&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전 포스팅의 과정을 정리하자면, 인스턴스를 생성해서 22번 포트로 MobaXterm으로 접속했습니다. 22번 포트는 ssh로 접속합니다. 접속해서 shell명령으로 통해 우분투라는 OS가 받아서 번역해서 하드웨어를 컨트롤 할수 있게 됩니다. 우리는 AWS에서 인스턴스라는 하나의 컴퓨터를 받았으므로 여기에 shell명령으로 Java, 톰캣 등등을 설치해서 사용할겁니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하지만 AWS의 방화벽은 기본적으로 모든 포트를 차단합니다. 그러므로 인바운드 규칙 설정을 통해 원하는 포트를 개방해서 접속을 허용해야합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;ssh는 secure shell의 약자로,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;shell&amp;nbsp;:&amp;nbsp;사람이&amp;nbsp;하드웨어를&amp;nbsp;컨트롤&amp;nbsp;하기위해&amp;nbsp;OS에게&amp;nbsp;명령을&amp;nbsp;하는데&amp;nbsp;shell언어를&amp;nbsp;쓴다.&lt;/li&gt;
&lt;li&gt;secure : 민감한 정보를 보낼 때 노출 시를 대비해 데이터를 암호화한다,&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;정리하자면, SSH는 네트워크 상에서 안전하게 인터넷을 통해 다른 컴퓨터에 로그인하거나 원격시스템 명령을 실행하기위한 프로토콜 및 해당 프로토콜을 구현한 프로그램입니다. SSH로 원격 컴퓨터에 접속해서 원격으로 Shell명령이 가능해집니다.(CLI환경)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. RSA인증 방식&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/djAIwJ/btsEfqrsMKH/DRGeNzOPkWX2IE1kZNMX71/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/djAIwJ/btsEfqrsMKH/DRGeNzOPkWX2IE1kZNMX71/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/djAIwJ/btsEfqrsMKH/DRGeNzOPkWX2IE1kZNMX71/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdjAIwJ%2FbtsEfqrsMKH%2FDRGeNzOPkWX2IE1kZNMX71%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;406&quot; height=&quot;375&quot; data-origin-width=&quot;406&quot; data-origin-height=&quot;375&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이전 포스팅에서 인스턴스를 생성할 때, RSA라는 유형으로 키 페어를 생성했습니다. RSA가 뭔지 알아보겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;919&quot; data-origin-height=&quot;572&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXMkQz/btsEbyYBnJi/zBtdWo08Lr3clbd3SOFdX1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXMkQz/btsEbyYBnJi/zBtdWo08Lr3clbd3SOFdX1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXMkQz/btsEbyYBnJi/zBtdWo08Lr3clbd3SOFdX1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXMkQz%2FbtsEbyYBnJi%2FzBtdWo08Lr3clbd3SOFdX1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;622&quot; height=&quot;387&quot; data-origin-width=&quot;919&quot; data-origin-height=&quot;572&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;동식이와 춘배가 데이터를 주고받습니다. 하지만 여기서 중간에&amp;nbsp; 해커가 데이터를 탈취할 수 있습니다. 그러므로 비밀번호 같은 예민한 정보를 주고받게 되면 치명적일 수 있습니다. 그래서 비밀번호 데이터를 암호화하고, 동식이와 춘배는 k라는 공통된 키를 공유해서 암호를 풀게됩니다. 이렇게 공통된 키를 사용하는 방식을 대칭 키라고 합니다. 단점은 k라는 키를 주고 받는 과정이 번거롭습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;634&quot; data-origin-height=&quot;505&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/DXJay/btsEftuXqSh/YQ1UwGtkmrhgVqr94xU0L0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/DXJay/btsEftuXqSh/YQ1UwGtkmrhgVqr94xU0L0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/DXJay/btsEftuXqSh/YQ1UwGtkmrhgVqr94xU0L0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FDXJay%2FbtsEftuXqSh%2FYQ1UwGtkmrhgVqr94xU0L0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;418&quot; height=&quot;333&quot; data-origin-width=&quot;634&quot; data-origin-height=&quot;505&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RSA방식은 키를 두개를 사용합니다. A키로 잠긴 데이터를 B키를 통해 열 수 있고, B키로 잠긴 데이터는 A키로 열 수 있습니다. 이러한 방식을 공개 키 방식이라고 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;915&quot; data-origin-height=&quot;565&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cmnvQv/btsEfn9mDYy/Ddf79OcYBRpNevv54vZ5J0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cmnvQv/btsEfn9mDYy/Ddf79OcYBRpNevv54vZ5J0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cmnvQv/btsEfn9mDYy/Ddf79OcYBRpNevv54vZ5J0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcmnvQv%2FbtsEfn9mDYy%2FDdf79OcYBRpNevv54vZ5J0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;706&quot; height=&quot;436&quot; data-origin-width=&quot;915&quot; data-origin-height=&quot;565&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;공개 키 방식을 이용해 RSA에서는 상대방의 공개키로 데이터를 잠금니다. 동식이는 &quot;춘배의 공개 키&quot;로 암호화해서 춘배에게 비밀번호를 보내줍니다. 그럼 춘배는 자기가 가지고 있는 &quot;춘배 비밀 키&quot;로 데이터를 해석해서 사용하고, 춘배가 동식이에게 보내줄 때는 데이터를&amp;nbsp; &quot;동식이 공개 키&quot;로 암호화를 해서 보내주고, 동식이는 자신의 비밀키로 데이터를 확인합니다. 해커는 공개 키밖에 모르니 데이터를 탈취해도 사용할 수 없습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1085&quot; data-origin-height=&quot;610&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bZTVcO/btsEbAozZo6/7IDdvOp2izaJYaokeUCVIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bZTVcO/btsEbAozZo6/7IDdvOp2izaJYaokeUCVIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bZTVcO/btsEbAozZo6/7IDdvOp2izaJYaokeUCVIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZTVcO%2FbtsEbAozZo6%2F7IDdvOp2izaJYaokeUCVIk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;716&quot; height=&quot;403&quot; data-origin-width=&quot;1085&quot; data-origin-height=&quot;610&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;추가적으로, 중간에 해커가 데이터를 탈취해서 자신만의 방식으로 다시 암호화해서 상대방에게 계속 보내준다면, 상대방은 잘못된 방식으로 암호화된 데이터가 계속 들어오는 경우가 발생할 수있습니다 .&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이를 위해서 송신자의 비밀키로 한번더 잠금니다. 이러면 춘배 입장에서는 데이터가 잠겨있는걸 확인하고 공개키로 열어보는데, 만약 동식이의 공개키로 열리는 것을 확인하면, 송신자가 동식이라는 것을 알 수 있습니다. 이렇게 송신자를 알 수있도록 한번더 잠그면, 해커가 중간에 탈취한후 자신만의 암호화 방식으로 춘배에게 보내도 춘배 입장에서는 동식이의 공개키로 안열리는 것을 확인하고 송신자가 동식이가 아닌 것을 판단해서 막히게 됩니다. 이렇게 송신자가 누군지를 알기 위해 잠가서 전자서명으로 사용합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RSA방식을 정리하자면,&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;공개키, 비밀키 두 개의 키를 이용해서 데이터를 교환한다.&lt;/li&gt;
&lt;li&gt;송신자는 수신자의 공개키로 암호화를 하고, 자신의 비밀키로 전자서명을 통해 보안적으로 사용한다.&lt;/li&gt;
&lt;li&gt;수신자는 송신자의 비밀키로 잠긴 전자 서명을 송신자의 공개키로 열고, 수신자의 비밀키로 연다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;587&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/chUE9G/btsEaZbgkHQ/9yllukytRMYzDwp1UNANb0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/chUE9G/btsEaZbgkHQ/9yllukytRMYzDwp1UNANb0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/chUE9G/btsEaZbgkHQ/9yllukytRMYzDwp1UNANb0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FchUE9G%2FbtsEaZbgkHQ%2F9yllukytRMYzDwp1UNANb0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;734&quot; height=&quot;379&quot; data-origin-width=&quot;1138&quot; data-origin-height=&quot;587&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이러한 RSA방식을 AWS에서는 키 페어로 생성합니다. 위의 그림에서는 춘배가 받은 키페어를 춘배의 비밀 키라고 하겠습니다. 춘배가 AWS의 22번 포트로 비밀 키를 통해서 연결을 시도합니다. AWS 컴퓨터 내부에는 .ssh 폴더안에 Authorized-key라는 키가 존재하는데, 이 키는 접속하려는 클라이언트, 즉 춘배의 공개 키입니다. 해당 키로 접속으로 들어온 비밀 키에 대입해서 해제에 성공하면, 전자서명 인증완료로 세션이 생성됩니다. 이제 마음대로 원격 컴퓨터에 데이터든, 명령이든 할 수 있는 상태가 되었습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;참고 - 메타코딩 유튜브&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.youtube.com/@metacoding&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.youtube.com/@metacoding&lt;/a&gt;&lt;/p&gt;</description>
      <category>Project/AWS 및 배포</category>
      <category>aws</category>
      <author>코딩하는너굴맨</author>
      <guid isPermaLink="true">https://chick-it.tistory.com/90</guid>
      <comments>https://chick-it.tistory.com/90#entry90comment</comments>
      <pubDate>Tue, 30 Jan 2024 21:55:49 +0900</pubDate>
    </item>
    <item>
      <title>AWS - 1. AWS에 대해서</title>
      <link>https://chick-it.tistory.com/89</link>
      <description>&lt;h2 data-ke-size=&quot;size26&quot;&gt;0. 개요&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;628&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IVAkf/btsD9CmYPWp/KMy5HTBfl5YKkKsN4b9Sek/img.webp&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IVAkf/btsD9CmYPWp/KMy5HTBfl5YKkKsN4b9Sek/img.webp&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IVAkf/btsD9CmYPWp/KMy5HTBfl5YKkKsN4b9Sek/img.webp&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIVAkf%2FbtsD9CmYPWp%2FKMy5HTBfl5YKkKsN4b9Sek%2Fimg.webp&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;512&quot; height=&quot;268&quot; data-origin-width=&quot;1200&quot; data-origin-height=&quot;628&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;배포라는 말이 나오면 무조건 AWS에 대한 내용이 나오기 마련입니다. AWS가 도대체 뭐길래 이렇게 주목되고 있는 것일까? 이번에는 AWS에 대해서 제가 알아본 내용을 정리하고, 간단하게 컴퓨터를 임대하고, 접속해보는 시간을 가져보고자 합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;1. AWS??&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;602&quot; data-origin-height=&quot;504&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cKjho5/btsD9BBEK5j/9fkw8S8y4zSmtvZTt6R481/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cKjho5/btsD9BBEK5j/9fkw8S8y4zSmtvZTt6R481/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cKjho5/btsD9BBEK5j/9fkw8S8y4zSmtvZTt6R481/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcKjho5%2FbtsD9BBEK5j%2F9fkw8S8y4zSmtvZTt6R481%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;401&quot; height=&quot;336&quot; data-origin-width=&quot;602&quot; data-origin-height=&quot;504&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AWS(Amazon Web Service)는 2006년에&amp;nbsp;아마존닷컴(Amazon.com)에서&amp;nbsp;시작되었습니다.&amp;nbsp;아마존은&amp;nbsp;당시&amp;nbsp;자사의&amp;nbsp;IT&amp;nbsp;인프라를&amp;nbsp;효과적으로&amp;nbsp;활용하고자&amp;nbsp;하였고,&amp;nbsp;이를&amp;nbsp;다른&amp;nbsp;기업들과&amp;nbsp;공유함으로써&amp;nbsp;서버,&amp;nbsp;스토리지,&amp;nbsp;데이터베이스,&amp;nbsp;네트워크,&amp;nbsp;컴퓨팅&amp;nbsp;파워&amp;nbsp;등&amp;nbsp;다양한&amp;nbsp;IT&amp;nbsp;서비스를&amp;nbsp;제공하게&amp;nbsp;되었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1075&quot; data-origin-height=&quot;489&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b5rDej/btsEft2JA30/jYtoAFiGW4xw3PZCEWnOIk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b5rDej/btsEft2JA30/jYtoAFiGW4xw3PZCEWnOIk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b5rDej/btsEft2JA30/jYtoAFiGW4xw3PZCEWnOIk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb5rDej%2FbtsEft2JA30%2FjYtoAFiGW4xw3PZCEWnOIk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;702&quot; height=&quot;319&quot; data-origin-width=&quot;1075&quot; data-origin-height=&quot;489&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간단하게 배경을 설명하자면, 2000년 초반, pc를 사용하는 사람이 점점 늘어나기 시작했습니다. 그러면서 점점 감당이 안되기 시작하면서 이를 위한 컴퓨터 시스템을 만들기로 합니다. 미리 여러대의 컴퓨터를 구축해놓기로 합니다. 하지만 이렇게 되면, 사용자가 급증하는 기간에는 좋지만, 사용자의 사용이 감소하는 시기에는 사용하지 않는 컴퓨터가 늘어납니다. 이 컴퓨터들을 외부에 빌려주는 서비스를 하기 시작한 것이 &lt;u&gt;&lt;b&gt;클라우드 컴퓨팅의 시작&lt;/b&gt;&lt;/u&gt;입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;610&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bdQfqD/btsEfotCK3r/eYkdQ8hJMqOjLeqG4dOYe1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bdQfqD/btsEfotCK3r/eYkdQ8hJMqOjLeqG4dOYe1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bdQfqD/btsEfotCK3r/eYkdQ8hJMqOjLeqG4dOYe1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbdQfqD%2FbtsEfotCK3r%2FeYkdQ8hJMqOjLeqG4dOYe1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;313&quot; data-origin-width=&quot;780&quot; data-origin-height=&quot;610&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인이 이렇게 누군가가 구축해 놓은 컴퓨터를 입대해서 사용할 수 있게됩니다. 이러한 인프라를 제공하는 것을 IaaS(Infrastructure as a Service)라고 하며, 이런식으로 &lt;u&gt;&lt;b&gt;본인의 컴퓨터아닌 외부에서 제공하는 리소스를 사용하는 것&lt;/b&gt;&lt;/u&gt;을 &lt;u&gt;&quot;Off-premise&quot;&lt;/u&gt;라고 합니다. 이에 상반되는 개념으로 &lt;u&gt;&quot;On-premise&quot;&lt;/u&gt;가 있는데, 조직이 자체적으로 소유하는 하드웨어나 소프트웨어 인프라를 이용하는 것을 의미합니다. 이러한 인프라를 제공하는 서비스를 전세계에서 하는 것이 현재의 AWS입니다.&lt;br /&gt;&lt;br /&gt;AWS의&amp;nbsp;탄생은&amp;nbsp;기업들이&amp;nbsp;자사의&amp;nbsp;IT&amp;nbsp;인프라를&amp;nbsp;보다&amp;nbsp;효과적으로&amp;nbsp;운영하고&amp;nbsp;비용을&amp;nbsp;절감하고자&amp;nbsp;하는&amp;nbsp;요구에&amp;nbsp;부응하기&amp;nbsp;위한&amp;nbsp;것이었습니다.&amp;nbsp;클라우드&amp;nbsp;컴퓨팅&amp;nbsp;서비스는&amp;nbsp;기업들이&amp;nbsp;필요한&amp;nbsp;만큼의&amp;nbsp;컴퓨팅&amp;nbsp;리소스를&amp;nbsp;유연하게&amp;nbsp;이용할&amp;nbsp;수&amp;nbsp;있도록&amp;nbsp;하는&amp;nbsp;등의&amp;nbsp;혁신적인&amp;nbsp;개념을&amp;nbsp;도입하여&amp;nbsp;새로운&amp;nbsp;비즈니스&amp;nbsp;모델을&amp;nbsp;형성하게&amp;nbsp;되었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;2. 인스턴스 접속&lt;/h2&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style5&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;260&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bqPgX3/btsEbaXSMz7/hi3BdCja3UuMyPynjpbyd1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bqPgX3/btsEbaXSMz7/hi3BdCja3UuMyPynjpbyd1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bqPgX3/btsEbaXSMz7/hi3BdCja3UuMyPynjpbyd1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbqPgX3%2FbtsEbaXSMz7%2Fhi3BdCja3UuMyPynjpbyd1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;528&quot; height=&quot;260&quot; data-origin-width=&quot;528&quot; data-origin-height=&quot;260&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이번에는 간단하게 AWS를 직접 사용해보면서 임대한 인스턴스에 접속을 해보는 실습을 해보겠습니다. 사용할 서비스는 EC2를 사용하겠습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;1. 인스턴스 생성&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1853&quot; data-origin-height=&quot;778&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/25zVb/btsD7ncBm2l/6vYEQkdSEGJcygVrxnmEF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/25zVb/btsD7ncBm2l/6vYEQkdSEGJcygVrxnmEF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/25zVb/btsD7ncBm2l/6vYEQkdSEGJcygVrxnmEF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F25zVb%2FbtsD7ncBm2l%2F6vYEQkdSEGJcygVrxnmEF1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;698&quot; height=&quot;293&quot; data-origin-width=&quot;1853&quot; data-origin-height=&quot;778&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;구글에 AWS를 검색해서 AWS 사이트로 들어와서 가입을 해줍니다. 요구조건이라면, 해외 결제가 가능한 카드가 존재해야합니다. 그러므로 꼭 준비해주도록 합니다. 저도 처음 가입할 때는 기존의 카드가 안되서 토스카드를 부랴부랴 발급받았던 기억이 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;333&quot; data-origin-height=&quot;224&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/pBcQ5/btsEeHmETDe/5n0kXsu1Mfpoz3YNZPQfwK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/pBcQ5/btsEeHmETDe/5n0kXsu1Mfpoz3YNZPQfwK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/pBcQ5/btsEeHmETDe/5n0kXsu1Mfpoz3YNZPQfwK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpBcQ5%2FbtsEeHmETDe%2F5n0kXsu1Mfpoz3YNZPQfwK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;333&quot; height=&quot;224&quot; data-origin-width=&quot;333&quot; data-origin-height=&quot;224&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로그인을 한 후 홈에서 리전을 서울로 바꿔줍니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;735&quot; data-origin-height=&quot;406&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cCk4MN/btsEcaXtfKx/n9rYmEAVknHOg3yWZvvK2k/img.gif&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cCk4MN/btsEcaXtfKx/n9rYmEAVknHOg3yWZvvK2k/img.gif&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cCk4MN/btsEcaXtfKx/n9rYmEAVknHOg3yWZvvK2k/img.gif&quot; srcset=&quot;https://blog.kakaocdn.net/dn/cCk4MN/btsEcaXtfKx/n9rYmEAVknHOg3yWZvvK2k/img.gif&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;566&quot; height=&quot;313&quot; data-origin-width=&quot;735&quot; data-origin-height=&quot;406&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AWS는 전세계 적으로 서비스중인데, 아시아,미국,유럽 등등에 분포 되어 있습니다. 분포되어있는 곳을 리전이라고 합니다. 그래서 우리의 서비스가 원활하게 돌아가려면 한국에서 가장 가까운 리전을 선택해야합니다. 아시아 태평양(서울)을 선택해주도록합니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;756&quot; data-origin-height=&quot;229&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/BLmsR/btsEftn8Cdf/uYZ1DSHTrZurK5zcHCRvG0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/BLmsR/btsEftn8Cdf/uYZ1DSHTrZurK5zcHCRvG0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/BLmsR/btsEftn8Cdf/uYZ1DSHTrZurK5zcHCRvG0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FBLmsR%2FbtsEftn8Cdf%2FuYZ1DSHTrZurK5zcHCRvG0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;614&quot; height=&quot;186&quot; data-origin-width=&quot;756&quot; data-origin-height=&quot;229&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이후 검색을 통해 EC2를 선택해주도록 합니다. EC2(Elastic Compute Cloud)는 아마존에서 제공하는 클라우드 컴퓨팅 서비스로, 가상의 컴퓨터를 임대할 수 있습니다. 피시방 후불제 처럼 사용한 만큼 지불하기 때문에 탄력적이라는 의미인 Elastic이 붙었습니다. 원하는 만큼의 스펙은 커스텀할 수 있어 지불하는 비용이 달라집니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;329&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/IQVBN/btsEcpfT31u/GZ1Q708DOpgZuVXrhG25y1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/IQVBN/btsEcpfT31u/GZ1Q708DOpgZuVXrhG25y1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/IQVBN/btsEcpfT31u/GZ1Q708DOpgZuVXrhG25y1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FIQVBN%2FbtsEcpfT31u%2FGZ1Q708DOpgZuVXrhG25y1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;739&quot; height=&quot;245&quot; data-origin-width=&quot;992&quot; data-origin-height=&quot;329&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;EC2를 들어와서 인스턴스로 들어옵니다. 그리고 인스턴스를 생성해주겠습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;785&quot; data-origin-height=&quot;263&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cm6tPw/btsEeMIc0qx/AqKbIQrKhGKe12Tmgg1IWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cm6tPw/btsEeMIc0qx/AqKbIQrKhGKe12Tmgg1IWK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cm6tPw/btsEeMIc0qx/AqKbIQrKhGKe12Tmgg1IWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcm6tPw%2FbtsEeMIc0qx%2FAqKbIQrKhGKe12Tmgg1IWK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;540&quot; height=&quot;181&quot; data-origin-width=&quot;785&quot; data-origin-height=&quot;263&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AWS EC2 인스턴스를 생성한다는 것은 AMI를 토대로 운영체제, CPU, RAM 혹은 런타임 등이 구성된 컴퓨터를 빌리는 것을 의미합니다. AMI는 Amazon Machine Image의 약자로, EC2 인스턴스를 생성하는데 사용되는 가상머신 이미지 입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;606&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nuL1l/btsEaWeuz89/KkTNG8lHPKwlSjZkAF0FjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nuL1l/btsEaWeuz89/KkTNG8lHPKwlSjZkAF0FjK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nuL1l/btsEaWeuz89/KkTNG8lHPKwlSjZkAF0FjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnuL1l%2FbtsEaWeuz89%2FKkTNG8lHPKwlSjZkAF0FjK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;688&quot; height=&quot;505&quot; data-origin-width=&quot;826&quot; data-origin-height=&quot;606&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인스턴스의 이름은 대충 AWS-v1 이라고 지어주었습니다. 그리고 OS를 선택해주어야 하는데, Ubuntu를 선택하고, 최신버전인 22.04를 선택해주었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;789&quot; data-origin-height=&quot;262&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bHqF1v/btsEdWK8RLv/koYer5Q443RyH6XRljqQl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bHqF1v/btsEdWK8RLv/koYer5Q443RyH6XRljqQl0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bHqF1v/btsEdWK8RLv/koYer5Q443RyH6XRljqQl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbHqF1v%2FbtsEdWK8RLv%2FkoYer5Q443RyH6XRljqQl0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;566&quot; height=&quot;188&quot; data-origin-width=&quot;789&quot; data-origin-height=&quot;262&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;인스턴스 유형은 프리티어가 사용가능한 t2.micro를 선택해줍니다. 여기서 프리티어는 가입한지 1년내의 고객을 의미하며, AWS는 사용할때마다 요금이 나가는데, 프리티어유저는 어느 정도의 서비스를 무료로 이용할 수 있습니다. 이를 위해서 프리 티어용 옵션들을 선택해주겠습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;753&quot; data-origin-height=&quot;210&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/daUxbP/btsD9Bhoa9w/3NQvJGFRDKS60VrAWwELU1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/daUxbP/btsD9Bhoa9w/3NQvJGFRDKS60VrAWwELU1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/daUxbP/btsD9Bhoa9w/3NQvJGFRDKS60VrAWwELU1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdaUxbP%2FbtsD9Bhoa9w%2F3NQvJGFRDKS60VrAWwELU1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;516&quot; height=&quot;144&quot; data-origin-width=&quot;753&quot; data-origin-height=&quot;210&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;588&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/LAMdN/btsEdNHDMDP/faxZZ5kQ3pVOIHKhnmDUWk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/LAMdN/btsEdNHDMDP/faxZZ5kQ3pVOIHKhnmDUWk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/LAMdN/btsEdNHDMDP/faxZZ5kQ3pVOIHKhnmDUWk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FLAMdN%2FbtsEdNHDMDP%2FfaxZZ5kQ3pVOIHKhnmDUWk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;416&quot; height=&quot;422&quot; data-origin-width=&quot;580&quot; data-origin-height=&quot;588&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;특정 키를 이용해서 임대 컴퓨터에 접속이 가능합니다. 처음으로 AWS 서비스를 이용하면 없을테니 만들어줍니다. RSA유형, .pem의 형식으로 만들어줍니다. &quot;.pem&quot;형식으로 만든 이유는 이후에 임대 컴퓨터에 연결할 때 MobaXterm이라는 프로그램을 사용할건데 이 때, pem형식의 키가 필요합니다. 키페어에 대해서는 다음 포스팅에서 다루겠습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;817&quot; data-origin-height=&quot;448&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/blTqlq/btsD6vhpE9E/iir2ncKNwvxwOfk0VHKnHk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/blTqlq/btsD6vhpE9E/iir2ncKNwvxwOfk0VHKnHk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/blTqlq/btsD6vhpE9E/iir2ncKNwvxwOfk0VHKnHk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblTqlq%2FbtsD6vhpE9E%2Fiir2ncKNwvxwOfk0VHKnHk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;587&quot; height=&quot;322&quot; data-origin-width=&quot;817&quot; data-origin-height=&quot;448&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;네트워크 설정은 기본설정대로 사용하고, 스토리지 구성의 경우 하단의 경고창에서 나온 것 처럼 30GB 가지는 무료로 제공해줍니다. 그러므로 30GB로 설정해줍니다. 이후 인스턴스 시작을 눌러서 인스턴스를 생성해주면 됩니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;753&quot; data-origin-height=&quot;219&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/d4bN1V/btsEfrqk7h7/LrjogKYE5TBVqoWnhrfCYk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/d4bN1V/btsEfrqk7h7/LrjogKYE5TBVqoWnhrfCYk/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/d4bN1V/btsEfrqk7h7/LrjogKYE5TBVqoWnhrfCYk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fd4bN1V%2FbtsEfrqk7h7%2FLrjogKYE5TBVqoWnhrfCYk%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;753&quot; height=&quot;219&quot; data-origin-width=&quot;753&quot; data-origin-height=&quot;219&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼 이제 인스턴스가 생성된 것을 확인할 수 있습니다. 이제 해당 인스턴스, 즉 임대한 컴퓨터에 접속하기 위해서 mobaXterm을 사용하겠습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;2. 인스턴스에 접속하기&lt;/h3&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style6&quot; /&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://mobaxterm.mobatek.net/&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://mobaxterm.mobatek.net/&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1706610393174&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;MobaXterm free Xserver and tabbed SSH client for Windows&quot; data-og-description=&quot;The ultimate toolbox for remote computing - includes X server, enhanced SSH client and much more!&quot; data-og-host=&quot;mobaxterm.mobatek.net&quot; data-og-source-url=&quot;https://mobaxterm.mobatek.net/&quot; data-og-url=&quot;https://mobaxterm.mobatek.net/&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/t5UTs/hyVb47eX8p/pbgwIXNXLJn76xqTQIx6sK/img.png?width=764&amp;amp;height=489&amp;amp;face=0_0_764_489,https://scrap.kakaocdn.net/dn/cVpezY/hyVb3N249C/XEMriPooftmkp1mTEOKkhK/img.png?width=768&amp;amp;height=443&amp;amp;face=0_0_768_443,https://scrap.kakaocdn.net/dn/MUk8Y/hyVb8IyP1M/ONGxLGJIL4sCkMyF0YGYQ1/img.png?width=768&amp;amp;height=443&amp;amp;face=0_0_768_443&quot;&gt;&lt;a href=&quot;https://mobaxterm.mobatek.net/&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://mobaxterm.mobatek.net/&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/t5UTs/hyVb47eX8p/pbgwIXNXLJn76xqTQIx6sK/img.png?width=764&amp;amp;height=489&amp;amp;face=0_0_764_489,https://scrap.kakaocdn.net/dn/cVpezY/hyVb3N249C/XEMriPooftmkp1mTEOKkhK/img.png?width=768&amp;amp;height=443&amp;amp;face=0_0_768_443,https://scrap.kakaocdn.net/dn/MUk8Y/hyVb8IyP1M/ONGxLGJIL4sCkMyF0YGYQ1/img.png?width=768&amp;amp;height=443&amp;amp;face=0_0_768_443');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;MobaXterm free Xserver and tabbed SSH client for Windows&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;The ultimate toolbox for remote computing - includes X server, enhanced SSH client and much more!&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;mobaxterm.mobatek.net&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;MobaXterm을 설치해줍니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;661&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bQDIxF/btsEeHmEzwU/p4cjceRb4Kec5Mx5APAXl0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bQDIxF/btsEeHmEzwU/p4cjceRb4Kec5Mx5APAXl0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bQDIxF/btsEeHmEzwU/p4cjceRb4Kec5Mx5APAXl0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbQDIxF%2FbtsEeHmEzwU%2Fp4cjceRb4Kec5Mx5APAXl0%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;783&quot; height=&quot;518&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;661&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;설치 후 MobaXterm을 실행하면 위와같은 창이 뜹니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;Session 클릭&lt;/li&gt;
&lt;li&gt;SSH 클릭&lt;/li&gt;
&lt;li&gt;Remote host에는 AWS에서 생성한 인스턴스의 IP를 적어줍니다. 그리고 ubuntu로 OS를 정했으므로 name은 ubuntu로 해주었습니다.&lt;/li&gt;
&lt;li&gt;Advanced SSH settings 클릭 한 후 User private key에서 방금 인스턴스를 생성하면서 발급받은 키를 넣어줍니다.&lt;/li&gt;
&lt;li&gt;OK를 눌러 연결해줍니다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;857&quot; data-origin-height=&quot;375&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b7WvnB/btsEdITQUxZ/U3k6iqHHsLCzuVB345A0f1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b7WvnB/btsEdITQUxZ/U3k6iqHHsLCzuVB345A0f1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b7WvnB/btsEdITQUxZ/U3k6iqHHsLCzuVB345A0f1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb7WvnB%2FbtsEdITQUxZ%2FU3k6iqHHsLCzuVB345A0f1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;784&quot; height=&quot;343&quot; data-origin-width=&quot;857&quot; data-origin-height=&quot;375&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러면 이렇게 임대한 EC2 인스턴스에 접속을 할 수 있게 되었습니다. 여기서 프로젝트 파일을&amp;nbsp; jar파일로 빌드해서 배포를 진행하면 되겠습니다. 하지만 현재는 아무것도 설정하지 않았으므로 문제점이 많습니다. 이후의 실제 배포에 대한 내용은 이후에 포스팅 하도록 하겠습니다.&amp;nbsp;&lt;/p&gt;</description>
      <category>Project/AWS 및 배포</category>
      <category>aws</category>
      <author>코딩하는너굴맨</author>
      <guid isPermaLink="true">https://chick-it.tistory.com/89</guid>
      <comments>https://chick-it.tistory.com/89#entry89comment</comments>
      <pubDate>Tue, 30 Jan 2024 19:35:28 +0900</pubDate>
    </item>
  </channel>
</rss>