<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>dev_96.log</title>
        <link>https://velog.io/</link>
        <description>공부일기 -&gt; 내일도 공부하는 내가 되자🔥🔥🔥</description>
        <lastBuildDate>Sun, 07 May 2023 08:57:35 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>dev_96.log</title>
            <url>https://velog.velcdn.com/images/dev_96/profile/deaa9fa3-645d-4a4c-9009-ba7ea54b6707/image.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. dev_96.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/dev_96" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[3 Tire 구성 -1]]></title>
            <link>https://velog.io/@dev_96/3-Tire-%EA%B5%AC%EC%84%B1-1</link>
            <guid>https://velog.io/@dev_96/3-Tire-%EA%B5%AC%EC%84%B1-1</guid>
            <pubDate>Sun, 07 May 2023 08:57:35 GMT</pubDate>
            <description><![CDATA[<p>먼저 첫 번째로, 필자는 CMS에서 <strong>WEB, WAS, DB</strong>로 연결하는  <strong>Iptables를 이용한 포트포워딩</strong>을 하겠다.</p>
<pre><code>npm install iptables.service --&gt; iptables.service 설치
systemctl start iptables --&gt; iptables start
systemctl status iptables</code></pre><p><img src="https://velog.velcdn.com/images/dev_96/post/97b54180-d774-485d-bb4e-6c26a3879ccf/image.png" alt="">
정상적으로 iptables 실행이 되었다.
✔ 이제부터 <strong>포트포워딩 설정</strong>을 시작해보자!!
<img src="https://velog.velcdn.com/images/dev_96/post/7293db2e-087f-4cf6-a8fa-b38bace8f39b/image.png" alt=""></p>
<pre><code>net.ipv4.ip_forward = 0 -&gt; 1 로 변경</code></pre><p>포트포워딩을 허용하겠다 -&gt; 이런 의미??</p>
<p><img src="https://velog.velcdn.com/images/dev_96/post/ffb00128-c9dd-4be9-a519-cb0f6fb66822/image.png" alt=""></p>
<blockquote>
<h4 id="❗-eth0-인터페이스를-통해-10021으로-목적지-주소로즉-내-web-ip로--22번-포트로-접속하겠다">❗ eth0 인터페이스를 통해 10021으로 목적지 주소로(즉, 내 WEB IP로 ) 22번 포트로 접속하겠다.</h4>
</blockquote>
<pre><code>service iptables restart - 서비스 재시작</code></pre><h4 id="telnet으로-web으로-접속-확인">telnet으로 WEB으로 접속 확인!!</h4>
<p><img src="https://velog.velcdn.com/images/dev_96/post/b7bd29ba-ccee-4fbe-afc4-9351b1627851/image.png" alt="">
여기까지 CMS -&gt; WEB으로 포트포워딩이 성공되었다.</p>
<p>그럼, WEB 설치 해서 홈페이지를 열어보자!!</p>
<h2 id="1-web-패키지-설치">1. WEB 패키지 설치</h2>
<blockquote>
<p>✅ PCRE ( Perl Compatible Regular Expressions)
✅ Httpd
✅ apr  ( APache Portable Runtime)
✅ apr-util</p>
</blockquote>
<h4 id="c-및-c-compiler-설치-xml-parser-라이브러리-설치">C 및 C++ Compiler 설치 XML parser 라이브러리 설치</h4>
<pre><code>yum install –y gcc-c++ prce-devel expat-devel</code></pre><h3 id="pcre-설치">PCRE 설치</h3>
<pre><code>wget https://sourceforge.net/projects/pcre/files/pcre/8.45/pcre-8.45.tar.gz/download -- pcre 설치
tar xvfz download -- 압축해제</code></pre><h3 id="apache-설치--압축해제">Apache 설치 &amp; 압축해제</h3>
<pre><code>wget https://dlcdn.apache.org//httpd/httpd-2.4.52.tar.gz -- apache 설치
tar xvfz httpd-2.4.52.tar.gz --압축해제</code></pre><h3 id="apr-설치--압축해제">APR 설치 &amp; 압축해제</h3>
<pre><code>wget https://mirror.navercorp.com/apache//apr/apr-1.7.0.tar.gz -- apr 설치
tar xvfz apr-1.7.0.tar.gz -- 압축해제</code></pre><h3 id="apr-util-설치--압축해제">APR-util 설치 &amp; 압축해제</h3>
<pre><code>wget https://mirror.navercorp.com/apache//apr/apr-util-1.6.1.tar.gz -- apr-util 설치
tar xvfz apr-util-1.6.1.tar.gz --압축해제</code></pre><p>필자는 압축을 푼 4개 디렉터리를 /usr/local로 이동 할 것이다.</p>
<pre><code>mv apr-1.7.0 apr-util-1.6.1 httpd-2.4.52 pcre-8.45 /usr/local/</code></pre><h3 id="apr-설치">APR 설치</h3>
<pre><code>./configure --prefix=/usr/local/src/apr-1.7.0 

make &amp;&amp; make install</code></pre><h3 id="apr-util-설치">APR-Util 설치</h3>
<pre><code>./configure --prefix=/usr/local/src/apr-util-1.6.1 --with-apr=/usr/local/src/apr-1.7.0

make &amp;&amp; make install</code></pre><h3 id="pcre-설치-1">pcre 설치</h3>
<pre><code>./configure --prefix=/usr/local/src/pcre-8.45 \
--with-apr-util=/usr/local/src/apr-util-1.6.1 \
--with-apr=/usr/local/src/apr-1.7.0

make &amp;&amp; make install</code></pre><h3 id="httpd-설치">httpd 설치</h3>
<pre><code>./configure --prefix=/usr/local/apache2.4.52 \
--enable-modules=most --enable-mods-shared=all --enable-so \
--with-apr=/usr/local/src/apr-1.7.0 \
--with-apr-util=/usr/local/src/apr-util-1.6.1 \
--with-pcre=/usr/local/src/pcre-8.45

make &amp;&amp; make install</code></pre><h3 id="서버-설정">서버 설정</h3>
<p>vim /usr/local/apache2.4/conf/httpd.conf</p>
<blockquote>
<p>Require all granted: 무조건 허용
Require all denied: 무조건 금지
Require ip xx.xx.xx xx.xx.xx.xx : 특정 아이피만 접근 허용.</p>
</blockquote>
<h3 id="apache-실행">Apache 실행</h3>
<pre><code>cd /usr/local/apache2.4.52
./bin/apachectl start</code></pre><p>필자는 포트포워딩을 이용하여 10022으로 80번 포트로 접속하였다.
결과적으로, it works! 화면이 뜬 모습을 볼 수 있다.
<img src="https://velog.velcdn.com/images/dev_96/post/64d4b742-0ffa-4d9a-9906-745a600f1949/image.png" alt=""></p>
<h2 id="2-was-인터넷-환경-구성하기">2. WAS 인터넷 환경 구성하기</h2>
<p>Tomcat 설치 하기 전, WAS는 Private 환경이기 때문에, 인터넷 환경이 안된다.
<img src="https://velog.velcdn.com/images/dev_96/post/23c36b03-e85b-4ead-a0a9-f9a38968aa2f/image.png" alt=""></p>
<blockquote>
<p> ✅ &quot;Squid&quot;는 프록시 서버 프로그램 </p>
</blockquote>
<blockquote>
<p>프록시 서버는 인터넷 사용자들이 웹사이트에 접속할 때 요청(request)을 받아서 대신 해당 웹사이트로 요청(request)을 보내주는 중개자 역할을 합니다. Squid 서비스는 이러한 프록시 서버 기능을 제공합니다.</p>
</blockquote>
<p>그 전에,** Squid 서비스<strong>를 이용해서 **WAS 서버에 인터넷 환경</strong>을 구성해보겠다.</p>
<pre><code>CMS Server

yum -y install squid -- Squid 설치
systemctl start squid -- Squid 실행</code></pre><pre><code>vim /etc/squid/squid.conf
http_access allow localhost

systemctl restart squid</code></pre><pre><code>WAS Server

vim /etc/yum.conf
proxy=http:// CMS 서버 IP : 3128

vim /etc/wgetrc
http_proxy=CMS 서버 IP : 3128
https_proxy=CMS 서버 IP : 3128</code></pre><p>성공적으로 WAS에서 인터넷 환경이 구성되었다.
<img src="https://velog.velcdn.com/images/dev_96/post/b25524c1-8fbc-4a3b-bcf7-ff62d9b87394/image.png" alt=""></p>
<h2 id="3-tomcat-설치">3. Tomcat 설치</h2>
<p>그럼 이제, WAS Tomcat 설치를 진행해보겠다.</p>
<h4 id="설치-진행-전-java-설치">설치 진행 전, java 설치</h4>
<pre><code>yum list java*jdk-devel -- java 설치 진행
yum install java-1.8.0-openjdk-devel.x86_64  -- java-1.8.0 버전을 설치
java --version -- 자바 버전 확인</code></pre><pre><code>readlink -f /bin/javac -- java 원본 파일 위치 확인</code></pre><h4 id="java_home이-될-경로">JAVA_HOME이 될 경로</h4>
<pre><code>/usr/lib/jvm/java-11-openjdk-11.0.11.0.9-1.el7_9.x86_64/jre</code></pre><h4 id="환경변수-설정">환경변수 설정</h4>
<pre><code>vi /etc/profile

export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-11.0.11.0.9-1.el7_9.x86_64/jre</code></pre><h4 id="설정-후-명령어-입력">설정 후 명령어 입력</h4>
<pre><code>source /etc/profile -- 설정
echo $JAVA_HOME -- 결과 확인</code></pre><h4 id="tomcat-설치">Tomcat 설치</h4>
<pre><code>wget http://archive.apache.org/dist/tomcat/tomcat-8/v8.5.27/bin/apache-tomcat-8.5.27.tar.gz
tar zxvf apache-tomcat-8.5.27.tar.gz --압축 해제</code></pre><h4 id="압축-해제한-톰캣을-usrlocal-경로로-이동">압축 해제한 톰캣을 /usr/local/ 경로로 이동</h4>
<pre><code>mv apache-tomcat-8.5.27 /usr/local/</code></pre><h4 id="환경변수-등록">환경변수 등록</h4>
<pre><code>export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.362.b08-1.el7_9.x86_64/jre
export CATALINA_HOME=/usr/local/apache-tomcat-8.5.87
export CLASSPATH=$JAVA_HOME/jre/lib:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib-jsp-api.jar:$CATALINA_HOME/lib/servlet-api.jar
export PATH=$PATH:$JAVA_HOME/bin:/bin:/sbin
export JAVA_HOME PATH CLASSPATH CATALINA_HOME
source /etc/profile
</code></pre><h4 id="serverxml-설정">server.xml 설정</h4>
<pre><code>vi /usr/local/apache-tomcat-8.5.87/conf/server.xml
&lt;Connector port=&quot;8080&quot; protocol=&quot;HTTP/1.1&quot;
           connectionTimeout=&quot;20000&quot;
           redirectPort=&quot;8443&quot;
           URIEncoding=&quot;UTF-8&quot; /&gt;</code></pre><h4 id="tomcat-실행">Tomcat 실행</h4>
<pre><code>/usr/local/apache-tomcat-8.5.87/bin/startup.sh</code></pre><h4 id="8080포트가-열렸는지-확인">8080포트가 열렸는지 확인</h4>
<pre><code>netstat -ntl</code></pre><p><img src="https://velog.velcdn.com/images/dev_96/post/1a26f1e7-a82c-4a34-819c-deb3d3ede4d3/image.png" alt=""></p>
<h4 id="was-tomcat-실행-모습">WAS Tomcat 실행 모습</h4>
<p>성공적으로 냥이가 떴다.
<img src="https://velog.velcdn.com/images/dev_96/post/a2aa1382-7bab-41d6-84e9-668be311ce3f/image.png" alt=""></p>
<p>오늘은, CMS 서버에서 WEB, WAS 포트포워딩, WEB 패키지 설치와 WAS 패키지 설치에 대해서 진행해보았다. CMS에서 포트포워딩을 하니 서버 관리도 되고, 편리했다. 이렇게 좋은 줄 알았으면, <del>진작에 해볼걸..</del>
포트포워딩 서비스와 squid 서비스까지 다양한 서비스를 알아가니 내 자신이 스킬업되는 기분이다.😁</p>
<p>다음에는, WEB과 WAS 연동에 대해서 실습을 진행해보겠다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[3 Tire 구성]]></title>
            <link>https://velog.io/@dev_96/3-Tire-%EA%B5%AC%EC%84%B1</link>
            <guid>https://velog.io/@dev_96/3-Tire-%EA%B5%AC%EC%84%B1</guid>
            <pubDate>Sat, 06 May 2023 15:35:10 GMT</pubDate>
            <description><![CDATA[<p>오늘은 클라우드의 3 Tire의 구성에 대해 블로그를 작성하겠다.
클라우드를 하는 사람들에게는 3 Tire 구성에 대해 짜는 것은 기본이라고 한다. 
하지만, 필자는 3 Tire 구성하는데 일주일이나 걸렸다,,, 허허 
아무튼, 3 Tire에 대해 파헤쳐보쟈</p>
<blockquote>
<h2 id="3-tire">3 Tire</h2>
</blockquote>
<p>일반적으로 소프트웨어 시스템이나 웹 애플리케이션 등에서 사용되는 용어로, 세 개의 계층으로 이루어진 아키텍처를 의미합니다.</p>
<h4 id="일반적으로-3-tiers-아키텍처는-다음과-같이-구성됩니다">일반적으로 3 tiers 아키텍처는 다음과 같이 구성됩니다:</h4>
<h4 id="1️⃣-프레젠테이션-계층-presentation-tier">1️⃣ 프레젠테이션 계층 (Presentation Tier):</h4>
<p>사용자 인터페이스(UI)와 관련된 부분으로, 사용자가 시스템과 상호작용하는 부분입니다. 일반적으로 웹 브라우저나 애플리케이션 클라이언트 등이 해당됩니다.</p>
<h4 id="2️⃣-비즈니스-계층-business-tier">2️⃣ 비즈니스 계층 (Business Tier):</h4>
<p>비즈니스 로직을 처리하는 부분으로, 데이터 처리, 알고리즘, 데이터베이스 연결, 보안 등의 기능을 수행합니다. 일반적으로 서버 애플리케이션이 해당됩니다.</p>
<h4 id="3️⃣-데이터-계층-data-tier">3️⃣ 데이터 계층 (Data Tier):</h4>
<p>데이터를 저장하고 관리하는 부분으로, 데이터베이스나 파일 시스템 등의 저장소를 포함합니다.</p>
<p><strong>이러한 3계층 구조는 각 계층이 독립적으로 작동하여, 시스템의 확장성, 유지보수성, 보안성 등을 향상시키는데 도움을 줍니다. 또한 각 계층은 다른 계층과 인터페이스를 통해 서로 연결되어 작동하므로, 시스템 내부의 변경이나 업그레이드를 용이하게 합니다.</strong>
<del>역시 인공지능 챗봇이 짱이다. 챗봇이 다 알려준다.</del></p>
<h4 id="3-tire-구성도">3 Tire 구성도</h4>
<p><img src="https://velog.velcdn.com/images/dev_96/post/b5c73ab5-4b06-4d86-a024-207280d4d43a/image.png" alt="">
이건 챗봇이 안 짰고, 필자가 짠 3 Tire 구성도이다. 아직 부족해서 잘 못 짰지만, 이런 구도이다. 다음 장에 진행한 실습을 보여드리겠다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[WEB / WAS 연동 - 1]]></title>
            <link>https://velog.io/@dev_96/WEB-WAS-%EC%97%B0%EB%8F%99-1</link>
            <guid>https://velog.io/@dev_96/WEB-WAS-%EC%97%B0%EB%8F%99-1</guid>
            <pubDate>Fri, 10 Mar 2023 16:15:00 GMT</pubDate>
            <description><![CDATA[<p><del><em>하루에 포스팅을 2개 작성하니,, 정신적으로 힘들구만,,</em></del>
WEB / WAS 연동에 대해서 바로 들어가보겠다. </p>
<h3 id="mod_jk-란">mod_jk 란?</h3>
<blockquote>
<p>아파치와 톰캣을 연동하기 위한 모듈로써 AJP 프로토콜을 이용하여 아파치에 들어온 요청 중 톰캣이 처리할 요청을 AJP 포트(일반적으로 8009)를 통해 톰캣에 전달하고 그에 대한 응답을 받는 역할을 수행한다.</p>
</blockquote>
<p>아파치와 톰캣을 연동하는 방법은  mod_jk(tomcat connector)를 이용한 방법, mod_proxy를 이용한 방법, mod_proxy_ajp를 이용한 방법 크게 3가지가 있다.
그 중에 mod_jk 이 방식을 이용하여 연동하겠다.</p>
<p>Apache와 Tomcat을 연동하기 위해서는 Apache, Tomcat가 필수적으로 필요하다.</p>
<p>첫번쨰로, <strong>Apache</strong>를 설치해보겠다.</p>
<p><img src="https://velog.velcdn.com/images/dev_96/post/b1f1e668-88df-4e7c-9362-319babab13b8/image.png" alt=""></p>
<pre><code>yum install -y httpd
systemctl enable httpd -- 서비스 등록
systemctl start httpd  -- 서비스 시작
</code></pre><p>Apache port 80 이다. 필자는 포트포워딩을 해서 공인 포트로 접속하였다.
또한, 클라우드 서비스를 이용해서 서버에 접속했기 때문에 방화벽에 대해서 설정하고 왔다.
Apache 설치 끝!!
<img src="https://velog.velcdn.com/images/dev_96/post/ae81ca9e-f169-4e04-b75d-fc8cbb53953b/image.png" alt=""></p>
<p>두번째로 <strong>Tomca</strong>t 에 대해서 설치하겠다.
Tomcat을 설치하기 위해서는 <strong>JDK</strong>가 필수적으로 필요하다.
JDK 설치는 쉬우기 떄문에, 설치과정을 요약하겠다.
<strong>JDK 설치</strong></p>
<pre><code>yum list java*jdk-devel
java-1.8.0-openjdk-devel.x86_64 --최신버전으로 해도 된다.
yum install -y java-1.8.0-openjdk-devel.x86_6
java -version</code></pre><p>*<em>JDK 설치 끝 *</em></p>
<h3 id="tomcat-설치">Tomcat 설치</h3>
<h4 id="1-tomcat-사이트에서-링크-복사">1. Tomcat 사이트에서 링크 복사</h4>
<pre><code>wget http://archive.apache.org/dist/tomcat/tomcat-10/v10.0.6/bin/apache-tomcat-10.0.6.tar.gz</code></pre><p>최신 버전으로 해도 된다.
<img src="https://velog.velcdn.com/images/dev_96/post/39393ef6-d46e-49cd-abe8-2c433aa08761/image.png" alt=""></p>
<h4 id="2-압축-풀기">2. 압축 풀기</h4>
<pre><code>tar zxvf apache-tomcat-10.0.6.tar.gz</code></pre><p><img src="https://velog.velcdn.com/images/dev_96/post/0faf8c36-b1cf-4e29-b3a4-ae182295c83d/image.png" alt=""></p>
<h4 id="3-톰캣-설치한-경로-👉-bin-👉-startupsh-입력">3. 톰캣 설치한 경로 👉 bin 👉 ./startup.sh 입력</h4>
<p><img src="https://velog.velcdn.com/images/dev_96/post/254b83ad-a540-4786-a93a-0a60c1c11be2/image.png" alt=""></p>
<h4 id="4-tomcat-실행">4. Tomcat 실행</h4>
<p><img src="https://velog.velcdn.com/images/dev_96/post/fe6fc8ea-8c36-40cc-8319-412308e073fc/image.png" alt=""></p>
<h4 id="5-tomcat-실행-페이지">5. Tomcat 실행 페이지</h4>
<p><img src="https://velog.velcdn.com/images/dev_96/post/ca21025c-9d3b-4340-8152-ab227e7ede06/image.png" alt=""></p>
<p>Tomcat port 8080 이다. 필자는 포트포워딩을 해서 공인 포트로 접속하였다.
Apache 와 Tomcat 설치가 끝났다. 마찬가지로 방화벽도 확인!!
이제 연동만 남았다. <strong>가자고</strong> <del>~</del></p>
<h3 id="web--was-연동">WEB / WAS 연동</h3>
<h4 id="1-tomcat-connector-다운">1. tomcat-connector 다운</h4>
<pre><code>wget http://ftp.tsukuba.wide.ad.jp/software/apache/tomcat/tomcat-connectors/jk/tomcat-connectors-1.2.48-src.tar.gz</code></pre><p><img src="https://velog.velcdn.com/images/dev_96/post/d5ccd1c7-52ef-4ecb-bed0-f9821114105e/image.png" alt=""></p>
<h4 id="2-압축-풀기-1">2. 압축 풀기</h4>
<pre><code>tar zxvf tomcat-connectors-1.2.48-src.tar.gz</code></pre><p><img src="https://velog.velcdn.com/images/dev_96/post/c22f53bc-2409-4bbd-8a91-33742406dab2/image.png" alt=""></p>
<h4 id="3-gcc-gcc-c-httpd-devel-설치-연동하는데-필요한-라이브러리라고-생각하면-된다">3. gcc, gcc-c++, httpd-devel 설치 (연동하는데 필요한 라이브러리라고 생각하면 된다.)</h4>
<pre><code>yum -y install gcc gcc-c++ httpd-devel</code></pre><p><img src="https://velog.velcdn.com/images/dev_96/post/63d9b57a-27ee-478e-8549-8129218a576b/image.png" alt=""></p>
<h4 id="4-tomcat-connector-설치한-경로-👉-native">4. tomcat-connector 설치한 경로 👉 native</h4>
<p><img src="https://velog.velcdn.com/images/dev_96/post/631db21f-5dff-43f1-9840-14a12a2bc153/image.png" alt=""></p>
<h4 id="5-configure---with-apxsusrbinapxs-입력">5. ./configure --with-apxs=/usr/bin/apxs&#39; 입력</h4>
<pre><code>./configure --with-apxs=/usr/bin/apxs</code></pre><p><img src="https://velog.velcdn.com/images/dev_96/post/90e119ab-91e7-4aa3-b06c-6abbe2e17795/image.png" alt=""></p>
<h4 id="6-make">6. make</h4>
<pre><code>make</code></pre><p><img src="https://velog.velcdn.com/images/dev_96/post/7e7e9ab0-5045-4649-925f-7ef0b655b9b2/image.png" alt=""></p>
<h4 id="7make-install">7.make install</h4>
<pre><code>make install</code></pre><p><img src="https://velog.velcdn.com/images/dev_96/post/146f18b1-b8b4-4cd3-ae4e-495a83500cc6/image.png" alt=""></p>
<h4 id="8-apache-conf에서-vi-httpdconf-맨-아래에-구문-추가">8. Apache /conf&#39;에서 &#39;vi httpd.conf&#39; (맨 아래에 구문 추가)</h4>
<pre><code>LoadModule jk_module modules/mod_jk.so
&lt;IfModule mod_jk.c&gt;
    JkWorkersFile conf/workers.properties
    JkShmFile run/mod_jk.shm
    JkLogFile logs/mod_jk.log
    JkLogLevel info
    JkLogStampFormat &quot;[%y %m %d %H:%M:%S] &quot;
&lt;/IfModule&gt;

&lt;VirtualHost *:80&gt;
    JkMount /* tomcat
    ServerName localhost
&lt;/VirtualHost&gt;</code></pre><p><img src="https://velog.velcdn.com/images/dev_96/post/746d315a-a68c-4411-8b1b-bd3b5879672c/image.png" alt=""></p>
<h4 id="9-apache-conf에서-vi-workersproperties">9. Apache /conf에서 &#39;vi workers.properties&#39;</h4>
<pre><code>worker.list=tomcat
worker.tomcat.port=8009
worker.tomcat.host=localhost
worker.tomcat.type=ajp13
worker.tomcat.lbfactor=1</code></pre><p><img src="https://velog.velcdn.com/images/dev_96/post/34e2d85b-b1b9-4d6b-bc96-ef29bf6c7c16/image.png" alt=""></p>
<h4 id="10-tomcatconf에서-vi-serverxml">10. Tomcat/conf&#39;에서 &#39;vi server.xml&#39;</h4>
<pre><code>&lt;!--
&lt;Connector port=&quot;8080 protocol=&quot;HTTP/1.1&quot;
                    ========
                    ========
                    redirectPort=&quot;8443&quot; /&gt;
--&gt;
이 부분 주석처리 꼭 해야함
&lt;Connector protocol=&quot;AJP/1.3&quot;
   address=&quot;0.0.0.0&quot;
   secretRequired=&quot;false&quot;
   port=&quot;8009&quot;
   redirectPort=&quot;8443&quot;/&gt;
</code></pre><p><img src="https://velog.velcdn.com/images/dev_96/post/887bcee3-8e31-4e9d-88a0-2be3d2338598/image.png" alt=""></p>
<h4 id="10-tomcatbin에서--startupsh-입력">10. &#39;Tomcat/bin에서  &#39;./startup.sh&#39; 입력</h4>
<pre><code>./startup.sh</code></pre><h4 id="11-apache-재-가동">11. Apache 재 가동</h4>
<pre><code>systemctl restart httpd</code></pre><h4 id="12-연동-완료-">12. 연동 완료 !!!</h4>
<p><img src="https://velog.velcdn.com/images/dev_96/post/81ba7e0c-f3f4-4b80-b544-c3347ce6a4c9/image.png" alt=""></p>
<p>80번 포트를 입력했을 떄, 톰캣 페이지가 나오면 연동이 된 것이다.
WEB / WAS 연동이 끝이 났다. 하면서 오류 투성이었고, 잘 안 되어서 서버를 몇 개나 삭제했는지 모르겠다. 그래도 IT 지식인들의 도움으로 해결 되었고, 다른 사람들 블로그를 보면서 공부를 많이 한 것 같다. 난 아직 그분들에 비해서...아직 우물안의 개구리다ㅎㅎㅎㅎ 이분들이 있어 공부자료가 많고 다양해서 고맙다.
더 열심히 하는 내가 되자!!!</p>
<p>참고 : <a href="https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&amp;blogId=tawoo0&amp;logNo=221587063882">https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&amp;blogId=tawoo0&amp;logNo=221587063882</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[WEB / WAS 연동]]></title>
            <link>https://velog.io/@dev_96/WEB-WAS-%EC%97%B0%EB%8F%99</link>
            <guid>https://velog.io/@dev_96/WEB-WAS-%EC%97%B0%EB%8F%99</guid>
            <pubDate>Fri, 10 Mar 2023 15:05:05 GMT</pubDate>
            <description><![CDATA[<p>오늘은 WEB / WAS 연동에 대해서 글을 작성하겠다.
뜬끔없이 WEB / WAS 라고 생각 할 수 있다. 하지만, 나는 많은 분야를 폭넓게 배워보고 싶은 마음이 있어 이번 포스팅을 작성한다.</p>
<h2 id="web--was-란">WEB / WAS 란?</h2>
<h3 id="web-server">Web Server</h3>
<p><img src="https://velog.velcdn.com/images/dev_96/post/55827e88-0bd9-4b87-a209-ba9427c58a3a/image.png" alt="">
<em>(출처 : <a href="https://story.pxd.co.kr/">https://story.pxd.co.kr/</a>)</em></p>
<h3 id="was">WAS</h3>
<p><img src="https://velog.velcdn.com/images/dev_96/post/88611252-6739-4f93-8cae-2f17f2bafd74/image.png" alt="">
<em>(출처 : <a href="https://story.pxd.co.kr/">https://story.pxd.co.kr/</a>)</em></p>
<p>간단히 정리만 하겠다.</p>
<p><strong>웹 서버</strong>란 HTTP 프로토콜을 기반으로 클라이언트가 웹 브라우저에서 어떠한 요청을 하면 그 요청을 받아 정적 컨텐츠를 제공하는 서버이다. 
✔ 정적 컨텐츠란 단순 HTML 문서, CSS, 이미지, 파일 등 즉시 응답 가능한 컨텐츠이다. </p>
<p>동작 구조 : 웹 서버가 정적 컨텐츠가 아닌 동적 컨텐츠를 요청받으면 WAS에게 해당 요청을 넘겨주고, WAS에서 처리한 결과를 클라이언트에게 전달하는 역할도 해준다.</p>
<p>이러한 웹 서버에는 <strong>Apache, NginX</strong> 등이 있다.</p>
<p><strong>WAS</strong>란 DB 조회 혹은 다양한 로직 처리를 요구하는 동적 컨텐츠를 제공하기 위해 만들어진 Application 서버이다. 
HTTP 프로토콜을 기반으로 사용자 컴퓨터나 장치에 애플리케이션을 수행해주는 미들웨어로서, 주로 데이터베이스 서버와 같이 수행된다.</p>
<p><strong>WAS</strong>는 JSP, Servlet 구동환경을 제공해주기 때문에 서블릿 컨테이너 혹은 웹 컨테이너로 불린다.</p>
<p>사용적인 대표 예시 : <strong>Tomcat, JBoss, WebSphere</strong></p>
<blockquote>
<p><strong>차이점</strong> : 웹 서버는 정적인 데이터를 처리하는 서버입니다. WAS 만을 이용할 때보다 빠르고 안정적으로 기능을 수행하고, WAS는 동적인 데이터를 위주로 처리하는 서버입니다. DB와 연결되어 사용자와 데이터를 주고받고, 조작인 필요한 경우 WAS를 활용합니다.</p>
</blockquote>
<p>따라서, 단순한 정적 컨텐츠는 웹 서버에게 맡기고, 기능을 분리해 서버 부하를 방지해야 한다.</p>
<p>이러한, 개념을 바탕으로 왜 Web 와 was를 연동해서 써야하는지 알꺼 같다.
이번 포스팅을 Web, was의 기능과 개념을 간단하게 적어보았고, 다음 포스팅에는 Web, WAS 연동에 대해서 실습을 해 보겠다.</p>
<p>홧이팅 🔥🔥🔥</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[쿠버네티스( Kubernetes ) ?]]></title>
            <link>https://velog.io/@dev_96/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-Kubernetes</link>
            <guid>https://velog.io/@dev_96/%EC%BF%A0%EB%B2%84%EB%84%A4%ED%8B%B0%EC%8A%A4-Kubernetes</guid>
            <pubDate>Mon, 27 Feb 2023 12:10:13 GMT</pubDate>
            <description><![CDATA[<p>난 항상 뭔가 해보고 싶은 욕심이 있다.
<del>언제는 aws , ubuntu..</del> 오늘은 쿠버네티스가 하고 싶어 블로그를 작성하겠다.
IT 분야는 트랜드가 하품만 해도 매일 바뀌는 추세라서 나도 트랜드에 맞게 바꿔나가야 하는 분야이다. 공부는 계속 해야 한다. 나한테는 좋은 일이다!!</p>
<blockquote>
<h2 id="쿠버네티스--kubernetes-">쿠버네티스 ( Kubernetes )</h2>
</blockquote>
<p> <img src="https://velog.velcdn.com/images/dev_96/post/4f142e4a-30c9-427c-bbe4-969467133616/image.png" alt=""></p>
<h4 id="개념">개념</h4>
<p>쿠버네티스 (k8s, Kubernetes, 큐브, kube)는 컨테이너화된 애플리케이션을 배포, 관리, 확장할 때 수반되는 다수의 수동 프로세스를 자동화하는 오픈소스 컨테이너 오케스트레이션 플랫폼이다.</p>
<h4 id="쿠버네티스-필요성-및-의의">쿠버네티스 필요성 및 의의</h4>
<p>예를 들어 컨테이너가 다운되면 다른 컨테이너를 다시 시작해야 한다. 이 문제를 시스템에 의해 처리한다면 더 쉽지 않을까?</p>
<p>이러한 문제를 쿠버네티스는 분산 시스템을 탄력적으로 실행하기 위한 프레임 워크를 제공한다. 애플리케이션의 확장과 장애 조치를 처리하고, 배포 패턴 등을 제공한다. </p>
<h4 id="쿠버네티스의-장점">쿠버네티스의 장점</h4>
<p><img src="https://velog.velcdn.com/images/dev_96/post/e034fc72-457e-40fb-a989-1573ac2e7fd0/image.png" alt=""></p>
<p>⭕ <strong>서비스 디스커버리와 로드 밸런싱</strong> 쿠버네티스는 DNS 이름을 사용하거나 자체 IP 주소를 사용하여 컨테이너를 노출할 수 있다.</p>
<p>⭕ <strong>스토리지 오케스트레이션</strong> 쿠버네티스를 사용하면 로컬 저장소, 공용 클라우드 공급자 등과 같이 원하는 저장소 시스템을 자동으로 탑재 </p>
<p>⭕ <strong>자동화된 롤아웃과 롤백</strong> 쿠버네티스를 사용하여 배포된 컨테이너의 원하는 상태를 서술할 수 있으며 현재 상태를 원하는 상태로 설정한 속도에 따라 변경</p>
<p>⭕ <strong>자동화된 빈 패킹(bin packing)</strong> 컨테이너화된 작업을 실행하는데 사용할 수 있는 쿠버네티스 클러스터 노드 제공, 각 컨테이너가 필요로 하는 CPU와 메모리(RAM)를 쿠버네티스에게 지시</p>
<p>⭕ *<em>자동화된 복구(self-healing) *</em> 쿠버네티스는 실패한 컨테이너를 다시 시작하고, 컨테이너를 교체하며, &#39;사용자 정의 상태 검사&#39;에 응답하지 않는 컨테이너를 죽이고, 서비스 준비가 끝날 때까지 그러한 과정을 클라이언트에 보여주지 않는다.</p>
<p>⭕ <strong>시크릿과 구성 관리</strong> 쿠버네티스를 사용하면 암호, OAuth 토큰 및 SSH 키와 같은 중요한 정보를 저장하고 관리</p>
<p>개념과 장점을 보았을 때, 가장 완벽한 시스템이다.
쿠버네티스를 한번 이용해보고 싶다는 생각이 든다. 얼마나 편리한 시스템이 아닌가..
역시 대세인 이유가 있다.
실습하러 고고~</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Ubuntu란?]]></title>
            <link>https://velog.io/@dev_96/Ubuntu%EB%9E%80</link>
            <guid>https://velog.io/@dev_96/Ubuntu%EB%9E%80</guid>
            <pubDate>Sun, 26 Feb 2023 12:21:29 GMT</pubDate>
            <description><![CDATA[<p>오늘은 서버 Ubuntu에 대해 글을 작성하겠다.
클라우드 서비스는 서버, 네트워크, 스토리지 등 기본적인 지식을 갖추어야 클라우드 서비스를 잘 이용할 수 있다. <strong>개인적인 내 생각이다.</strong></p>
<p><em><strong>Cloud 서버</strong>는 가상화 소프트웨어(하이퍼바이저라고 함)를 사용하여 물리적 서버를 여러 가상 서버로 나눈다. 하이퍼바이저는 서버의 처리 기능을 추출하고 함께 풀을 만들어 <strong>가상 서버</strong>를 만든다.</em></p>
<p>말 그대로 <strong>Cloud 서버</strong>는 제공 기능을 실행하는데 필요한 소프트웨어를 이용하여 컴퓨팅 제공 모델을 제공한다.</p>
<p>Ubuntu에 대해 설명하겠다.</p>
<blockquote>
<h1 id="ubuntu">Ubuntu</h1>
</blockquote>
<p><img src="https://velog.velcdn.com/images/dev_96/post/e753f398-6d17-4e08-a540-864712ee18ec/image.png" alt=""></p>
<h3 id="📍-ubuntu">📍 Ubuntu</h3>
<p>1.다양한 Linux 배포판이 있다.
2.Ubuntu Server는 클라우드 및 서버에 적합하고 Ubuntu Core는 IoT (Internet of Things) 기반 장치를 개발하는 데 적합하다.
3.우분투는 또한 Linux 배포판이다.
4.우분투에는 그래픽 사용자 인터페이스 (GUI)와 명령 행 인터페이스 (CLI)가 있다.
5.우분투 데스크톱 버전은 개인용 컴퓨터에 적합하다.
6.Ubuntu는 보안으로 인해 사용자들 사이에서도 인기가 있다.</p>
<p><strong>장점를 요약해서 작성했지만, 사실은 더 많은 장점들이 있다.</strong>
🔥 <em>사실 서버는 명령어가 제일 중요하다.</em></p>
<p>📋알아두면 편리한 명령어 목록📋</p>
<blockquote>
<p><strong>gksu nautilus</strong>: ALT+F2에서 입력, 관리자 권한으로 탐색기 열기.
<strong>im-switch -c</strong>: 터미널에서 입력, 한글 입력기 변경, 주로 nabi를 사용.
<strong>gconf-editor</strong>: ALT+F2에서 입력, GNOME의 전반적인 환경설정. 레지스트리 편집기
<strong>(sudo) apt-get</strong>: 터미널에서 입력, 터미널에서 프로그램을 설치(install)하거나 제거(remove)하거나 설치파일을 깔끔하게 지울 때.
<strong>(sudo) chmod</strong>: 파일의 실행 권한을 설정하는 명령어
<strong>(sudo) chown</strong>: 파일의 소유권을 설정하는 명령어로 sudo 계정명(UID). 그룹명(GID) &#39;파일 또는 디렉터리&#39; 형태로 사용
<strong>(sudo) ln -s</strong>: 특정 파일이나 폴더에 대한 심볼릭 링크를 거는 명령어, 윈도우의 바로가기 아이콘 생성 기능
<strong>fsck</strong>: 파티션 복구 명령어다. 우분투를 강제종료하면 오류를 뿜는데 fsck -fv -y &lt;파티션&gt; 형식으로 사용하는 것을 추천</p>
</blockquote>
<p>서버는 명령어의 이해와 네트워크도 잘 이용해야 한다. 그래서 서버 분야도 공부를 해야 한다.
오늘은, 클라우드의 서버 우분투에 대해서 공부를 했다.</p>
<p>항상 공부하는 내가 되자 🔥🔥</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[NHN Cloud 서비스에 대해]]></title>
            <link>https://velog.io/@dev_96/NHN-Cloud-%EC%84%9C%EB%B9%84%EC%8A%A4%EC%97%90-%EB%8C%80%ED%95%B4</link>
            <guid>https://velog.io/@dev_96/NHN-Cloud-%EC%84%9C%EB%B9%84%EC%8A%A4%EC%97%90-%EB%8C%80%ED%95%B4</guid>
            <pubDate>Thu, 23 Feb 2023 12:16:35 GMT</pubDate>
            <description><![CDATA[<p>오늘은 NHN Cloud 서비스에 대해 파헤쳐보겠다.
어떤 서비스가 있고, 어떤 기능을 하는지 알아야 NHN Cloud 서비스를 이용 할 수 있기 떄문이다.</p>
<p><strong>1. NHN Cloud 홈페이지에 들어가면 console 버튼이 있다. 👉 눌러보자!</strong>
<img src="https://velog.velcdn.com/images/dev_96/post/dd3d4888-d2b5-4cfc-98d8-708f25f68735/image.png" alt=""></p>
<p><strong>2. 이렇게 보면 콘솔 옆에 조직을 만들고, 그 조직 안에 팀을 만들 수가 있다.</strong></p>
<p><img src="https://velog.velcdn.com/images/dev_96/post/7b28c5f4-1111-4f52-9c8f-9ea010c447c2/image.png" alt=""></p>
<blockquote>
<p> ⭕ 장점: 조직을 만들고 팀프로젝트 할떄 매우 유용하다. 그룹성이 있기 떄문이다. <del>내 생각</del></p>
</blockquote>
<p><strong>3. 다양한 서비스가 있다.</strong>
<img src="https://velog.velcdn.com/images/dev_96/post/c75a7037-4ed0-4e19-9f12-726c4fab33c4/image.png" alt=""></p>
<p>Network 목록을 보면 다양한 Network에 관한 서비스가 있다.</p>
<p><img src="https://velog.velcdn.com/images/dev_96/post/be329370-82cf-4bd4-9a48-50814e97a820/image.png" alt="">
오늘은 VPC에 대해 설명하겠다. 
말 나온 김에, NHN VPC 구성도를 설계해보았다.
<del>미흡하지만, 잘 봐주세요</del>
<img src="https://velog.velcdn.com/images/dev_96/post/709b7652-6e13-4713-b62c-8218a114d475/image.png" alt=""></p>
<p>여기서 <strong>Public Subnet &amp; Private Subnet</strong> 이란? </p>
<p>VPC내에는 보통 <strong>Public Subnet과 Private Subnet</strong>으로 구성되어 있다.</p>
<p><strong>Public Subnet</strong>:  Public Subnet의 특징은 Internet Gateway, ELB, 그리고 Public IP/Elastic IP를 가진 인스턴스를 내부에 가지고 있다. 특히, Public Subnet 내에 있는 Nat Instance를 통하여 Private Subnet내에 있는 instances이 인터넷이 가능하게 한다.</p>
<p><strong>Private Subnet</strong>: 기본적으로 외부와 차단되어 있다. Private Subnet내의 인스턴스들은 private ip만을 가지고 있으며 internet inbound/outbound가 불가능 하고 오직 다른 서브넷과의 연결만이 가능하다.</p>
<p><strong>Routing table</strong>: VPC에 있는 각 서브넷을 라우팅 테이블과 연결해야 한다. 인터넷 게이트웨이, NAT Gateway 및 VPC의 라우팅을 보여준다.</p>
<p><strong>Internet Gateway</strong>: 인터넷 게이트웨이는 수평 확장되고 가용성이 높은 중복 VPC 구성 요소로, VPC와 인터넷 간에 통신할 수 있게 해준다. </p>
<p>서브넷이 인터넷 게이트웨이로 향하는 라우팅이 있는 라우팅 테이블과 연결되는 경우, 이를 <strong>퍼블릭 서브넷</strong>이라고 합니다. 서브넷이 인터넷 게이트웨이로 향하는 라우팅이 없는 라우팅 테이블과 연결되는 경우 이를 <strong>프라이빗 서브넷</strong> 이라고 한다.</p>
<p>즉 , 그리고 프라이빗 서브넷은 <strong>NAT GATEWAY</strong>를 통해 <strong>인터넷 게이트웨이</strong>로 흐르기 떄문에 인터넷이 된다.</p>
<blockquote>
<p>📍 프라이빗의 서브넷은 라우팅 테이블에 인터넷 게이트웨이에 대한 경로가 없기 때문에 프라이빗 서브넷에 해당합니다.</p>
</blockquote>
<p><strong>NAT gateway</strong> : 프라이빗 서브넷의 인스턴스가 VPC 외부의 서비스에 연결할 수 있지만 외부 서비스에서 이러한 인스턴스와의 연결을 시작할 수 없도록 NAT 게이트웨이를 사용할 수 있다. </p>
<p>즉, 외부 서비스에서 프라이빗 서브넷의 인스턴스로 접근할 수 없게 하되, 프라이빗 서브넷의 인스턴스에서는 외부 서비스로 접근할 수 있게 해주는 서비스이다.</p>
<p>이렇게 해서 vpc 설계가 끝났다. 설명도 정리되고, 나한테는 또 공부할 수 있는 기회였다.
서비스를 하나씩 익혀보면서, 실습에 들어가야겠다.</p>
<p>오늘도 공부하는 내가 되었다.
내일도 공부하는 내가 되야지 🔥🔥🔥</p>
<p>참고한 자료: <a href="https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/VPC_Internet_Gateway.html">https://docs.aws.amazon.com/ko_kr/vpc/latest/userguide/VPC_Internet_Gateway.html</a>
<a href="https://kimjingo.tistory.com/180">https://kimjingo.tistory.com/180</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[NHN Cloud에 대해]]></title>
            <link>https://velog.io/@dev_96/NHN-Cloud%EC%97%90-%EB%8C%80%ED%95%B4</link>
            <guid>https://velog.io/@dev_96/NHN-Cloud%EC%97%90-%EB%8C%80%ED%95%B4</guid>
            <pubDate>Wed, 22 Feb 2023 12:06:35 GMT</pubDate>
            <description><![CDATA[<p>오늘은 NHN 클라우드에 대해 알아보겠다.
난 국내 클라우드는 Never, kt 클라우드만 있는 줄 알았는데, <del>우물 안에 개구리였다...</del>
해외 AWS, GCP, Azure 에 관심만 있었다. 
실제로 NHN 클라우드에 대해 어떤 서비스가 있는지, 어떤 기능이 있는지, 유망한 클라우드인지에 대해서 의문점이 생겼다.</p>
<p>앞으로, 클라우드 시장에 스타트를 할 예정이니, 클라우드에 대한 이해라고 생각하면서
블로그를 작성해보겠다.</p>
<h3 id="nhn-클라우드">NHN 클라우드?</h3>
<p><img src="https://velog.velcdn.com/images/dev_96/post/48976150-0000-40ef-8dbb-1fb42fddc99c/image.png" alt=""></p>
<p>NHN Cloud는 <strong>오픈스택 기반</strong> 클라우드 서비스로 <strong>유연한 클라우드 인프라</strong>를 제공한다. 개발에 전념할 수 있도록 편리한 인프라와 플랫폼을 제공하는 것은 물론 합리적인 비용으로 서비스를 이용할 수 있다. </p>
<p>웹 브라우저상에서 간단한 클릭만으로 서비스를 사용할 수 있어 누구나 쉽게 사용할 수 있는 클라우드 서비스로 평가받고 있다.</p>
<p>또한 판교에 제1데이터센터(NHN Cloud Center 1, NCC1)를 두고 있으며, 김해와 광주에 신규 데이터센터를 준비 중이다.</p>
<blockquote>
<p>나무위키 참조 : <a href="https://namu.wiki/w/NHN%20Cloud">https://namu.wiki/w/NHN%20Cloud</a></p>
</blockquote>
<p><strong>NHN의 강점으로는</strong></p>
<p>✔ 다양한 서비스 구성
✔ 플랫폼 중심 클라우드
✔ 합리적인 가격
✔ 강력한 기술 지원
✔ 글로벌 클라우드</p>
<p>이렇게 5가지가 있다. 그 중에서 눈에 띄었던 강점으로는 <strong>기업이 클라우드에서 쉽게 개발할 수 있는 생태계</strong>이라는 점이다. 많은 기업들이 온프레미스에서 클라우드로 넘어가는 추세이다. 그래서 기업들은 클라우드 서비스가 필요한 시점인데, NHN 클라우드의 이러한 강점이 
<strong>행정*공공기관 클라우드 점유율 47%</strong>라는 결과를 초래하였다.</p>
<p>아, 그리고 NHN 클라우드의 좋은 점이 <strong>NHN cloud 교육 센터</strong>가 있다는 점이다.
NHN Cloud의 전문가가 온/오프라인으로 교육 세션을 진행하며 클라우드가 처음인 사용자는 물론 사전에 참가 신청하면 무료로 교육에 참가할 수 있다.</p>
<p><strong>선착순이다.</strong> 배워보고 싶은 자는 얼른 신청하길 바란다.🔥🔥</p>
<blockquote>
<p>👉👉 <a href="https://www.nhncloud.com/kr/edu">https://www.nhncloud.com/kr/edu</a></p>
</blockquote>
<p>NHN이 가장 자랑하는 점은 토스트 클라우드가 ‘<strong>오픈스택</strong>’ 기반이라는 점이다. 오픈스택은 오픈소스 클라우드 운영체제다. 서버, 스토리지, 네트워크 등 자원을 할당하고 관리하는 역할을 한다. 오픈스택은 전 세계에서 가장 유명한 클라우드 플랫폼이지만, 주로 프라이빗 클라우드 구축에 활용된다. </p>
<p>또한, TOAST가 페이코(금융), 고도몰(쇼핑), 한게임(게임) 등 다양한 IT 서비스 경험을 통해 검증된 만큼, 금융과 쇼핑 분야를 중심으로 한 엔터프라이즈 시장에서 충분히 선택 받을 수 있을 것”이라고 말했다.</p>
<blockquote>
<p>기사 참조 : <a href="https://byline.network/2019/01/22-36/">https://byline.network/2019/01/22-36/</a></p>
</blockquote>
<p>정말로, NHN 클라우드가 이렇게나 좋은 서비스를 제공하는 지 몰랐다.
<del>나는 우물안의 개구리가 아닌 올챙이다..</del>.</p>
<p>그리고, NHN 클라우드에 들어가보면, 생각보다 많은 서비스가 있어 놀라웠다. 
서비스를 차차 익혀가면서 한 번 실습을 해봐야겠다.
<strong>내일도 공부하는 내가 되자</strong>!!!!!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[AWS] AWS CI/CD 구축 (CodeBuild, CodeDeploy, CodePipeline)]]></title>
            <link>https://velog.io/@dev_96/AWS-AWS-CICD-%EA%B5%AC%EC%B6%95-CodeBuild-CodeDeploy-CodePipeline</link>
            <guid>https://velog.io/@dev_96/AWS-AWS-CICD-%EA%B5%AC%EC%B6%95-CodeBuild-CodeDeploy-CodePipeline</guid>
            <pubDate>Mon, 30 Jan 2023 14:40:07 GMT</pubDate>
            <description><![CDATA[<p>오늘은 AWS <strong>CI/CD pipeline</strong>를 구축해서 자동배포 환경을 구성하겠다.</p>
<blockquote>
<h3 id="구성도">구성도</h3>
</blockquote>
<p><del>허접하지만 이해해주셨으면 좋겠다..</del>
<img src="https://velog.velcdn.com/images/dev_96/post/368786fa-8503-40e8-8ac8-6bd6b7c74336/image.png" alt=""></p>
<p>간단하게 설명하자면, Github에 소스 코드가 푸쉬되면 자동으로 배포하도록 구성하였으며, 그림과 같은 형태로 진행된다.</p>
<ol>
<li>개발자가 깃 허브에 코드를 푸쉬 👉 CodePipeline에서 인식</li>
<li>소스 코드를 Code Build에서 빌드 한 뒤, 아티팩트를 s3에 저장</li>
<li>Deploy에서 배포 준비</li>
<li>준비가 완료되면 Elastic Beanstalk으로 배포</li>
</ol>
<p>이렇게 순서대로 진행된다.</p>
<p>실습으로 바로 넘어가겠다.</p>
<h3 id="elastic-beanstalk">Elastic Beanstalk</h3>
<p>JAVA, PHP , Node.js 같은 친숙한 서버에서 개발된 웹 애플리케이션 및 서비스를 간편하게 배포하고 조정할 수 있는 서비스이다.</p>
<p>말 그대로 개발자에게 굉장히 편리한 서비스이다. AWS에 기초만 있어도 사용 할 수 있다는 장점이 있다.</p>
<p>코드를 업로드 하기만 하면, 로드 밸런싱, 오토 스케일링, 모니터링 , 배포를 자동으로 처리하도록 구성 할 수 있다.</p>
<blockquote>
<p>Elastic Beanstalk 생성 👉 <a href="https://yatyat2.tistory.com/59">https://yatyat2.tistory.com/59</a></p>
</blockquote>
<h3 id="codebuild-생성">CodeBuild 생성</h3>
<p>첫번째로, CodeBuild 프로젝트를 생성하겠다.
필자는 <strong>GitHub</strong>를 연동하였기 때문에 GitHub 프로젝트를 사용할 예정이다.
<img src="https://velog.velcdn.com/images/dev_96/post/bbaa7869-8d92-43de-880c-3c181ffdc611/image.png" alt=""></p>
<p>환경 이미지 중에서는 <strong>관리형 이미지</strong>와 <strong>사용자 지정 이미지</strong>가 있다.
만약, <strong>Docker</strong>를 사용한다고 하면 <strong>사용자 지정 이미지</strong>를 사용하면 된다.
필자는 관리형 이미지를 사용할 것이다. 
<img src="https://velog.velcdn.com/images/dev_96/post/2fa61c51-604c-4d90-88cb-d02024157a0c/image.jpg" alt=""></p>
<p>✔ <strong>Buildspec 편집</strong>
YAML 형식의 빌드 명령 및 관련 설정의 모음이다. CodeBuild 은 빌드를 실행하는 데 사용된다. 소스 코드의 일부로 buildspec을 포함하거나, 빌드 프로젝트를 생성할 때 buildspec을 정의할 수 있다.</p>
<p>필자는 Node.js 빌드해야 하기 떄문에, 사전에 Node, npm를 설치하고 빌드작업을 했다. </p>
<blockquote>
<p>참고: <a href="https://docs.aws.amazon.com/ko_kr/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html">https://docs.aws.amazon.com/ko_kr/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html</a></p>
</blockquote>
<pre><code>phases:
    install:
      commands:
         - npm install
  build:
    commands:
      - npm i --save
</code></pre><p><img src="https://velog.velcdn.com/images/dev_96/post/f5475c20-7c7d-4faf-b8fd-bb63b84487a9/image.png" alt=""></p>
<blockquote>
<h4 id="buildspec-소소한-설명-📍">Buildspec 소소한 설명 📍</h4>
<p><img src="https://velog.velcdn.com/images/dev_96/post/ee99968e-32d3-4b89-b911-acf6104d0e0b/image.png" alt=""></p>
</blockquote>
<p>생성이 ✔ 완료되었다.
<img src="https://velog.velcdn.com/images/dev_96/post/9b1b1b8d-5ca1-42a4-be89-740e6767591f/image.png" alt=""></p>
<p>빌드 시작을 누르자!! 고맙게도 성공함이 떴다.</p>
<p><img src="https://velog.velcdn.com/images/dev_96/post/3cb2e130-e2af-4ef1-a81d-4d5fd5dee2b2/image.png" alt=""></p>
<h3 id="codepipeline-생성">CodePipeline 생성</h3>
<p>codepipeline은 GitHub에 변경된 코드가 푸시되면 감지하고, codebuild를 통해 소스 코드를 빌드 한 뒤 , Elastic Beanstalk로 배포를 실행하는 단계로 통로 같은 역할은 한다.</p>
<p><strong>CodePipeline</strong> 검색창에 입력한다.
<img src="https://velog.velcdn.com/images/dev_96/post/ea45591d-2f53-4394-84f7-ce290940c3c0/image.png" alt="">
파이프라인 설정에서 이름을 입력하고, 새 서비스 역할은 클릭한다.
<img src="https://velog.velcdn.com/images/dev_96/post/6a41c914-e182-429f-b82c-cb3ecb7c622e/image.png" alt="">
🌟 아티팩트
<strong>필자는 아티팩트 떄문에 삽질을 많이 했다..</strong>
<img src="https://velog.velcdn.com/images/dev_96/post/30347875-4d76-452c-8862-8726938485a9/image.png" alt=""></p>
<p>GitHub에 연결
<img src="https://velog.velcdn.com/images/dev_96/post/8081185b-7d9b-4666-8ad4-4d078f855a0d/image.jpg" alt=""></p>
<p>연결 준비 완료 👉 리포지토리 👉 브랜치 이름
<img src="https://velog.velcdn.com/images/dev_96/post/2fe63ad6-2961-40a0-986c-5b70449c9796/image.png" alt=""></p>
<h4 id="빌드-스테이지-추가">빌드 스테이지 추가</h4>
<p>아까 만들었던 빌드 프로젝트를 등록하면 된다.
<img src="https://velog.velcdn.com/images/dev_96/post/1981fbdd-1d3c-4230-bc5d-a8fe3925d013/image.png" alt=""></p>
<p>Elastic Beanstalk으로 배포할 것이다.
<img src="https://velog.velcdn.com/images/dev_96/post/ef40f2ef-3b4e-486e-a80d-3bc97005b7cc/image.png" alt=""></p>
<p>Source ✔  Build ✔
<img src="https://velog.velcdn.com/images/dev_96/post/a21e96f7-2dbe-491c-b043-f56885464089/image.jpg" alt="">
Deploy ✔ 
<img src="https://velog.velcdn.com/images/dev_96/post/7b1e7896-543c-47e7-85cd-6b9210eac3a6/image.jpg" alt=""></p>
<p>모든 작업이 완료되었다. </p>
<p>아래 그림과 같이 Elastic Beanstalk 구성으로 이동하면 URL이 바뀐 모습을 볼 수 있을 것이다. URL을 클릭하면 프로젝트의 메인화면이 나온다.
<img src="https://velog.velcdn.com/images/dev_96/post/6eceb37c-af03-4e5a-9f69-e330822cfce7/image.png" alt=""></p>
<p>📍 참고: 처음에 포트번호 3000으로 했을 때 bad request라는 500의 nginx 에러 발생!!  포트 번호는 8080으로 해주어야 한다. </p>
<blockquote>
<p>프록시 서버 구성 : <a href="https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/nodejs-platform-proxy.html">https://docs.aws.amazon.com/ko_kr/elasticbeanstalk/latest/dg/nodejs-platform-proxy.html</a></p>
</blockquote>
<p>자동 배포 환경 완료 ✔</p>
<p>오늘은 AWS CI/CD 환경에 대해 구축을 해보았다.
AWS 인프라 이용해야 할 경우나 GitHub 이외의 다른 리포지토리를 이용 할 경우, 편리성과 유용성이 보장되는 방법이다. AWS CodePipeline은 많은 툴을 통해 빌드를 하고, 배포할지에 대해서 서비스가 편리했다. Codedeploy 서비스 같은 경우에는 배포를 하기 위해서 AWS cli 환경 세팅을 위한 IAM 있어야 해서 처음 하는 사람한테는 어려웠다.
<del>필자가 Codedeploy 서비스 이용해보았다. 물론 삽질은 어마무시하게 했다.</del>
배포 서비스는 배포 할 수 있는 옵션이 많았고, 각종 글마다 다르게 소개되는 옵션들이 많다 보니 오래 걸렸다. S3 저장소를 이용해서 작업도 해봤고, AWS Codedeploy 이용해서 작업도 해봤다. 정리를 얼른 해야겠다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[AWS] 웹 서버 ]]></title>
            <link>https://velog.io/@dev_96/AWS-%EC%9B%B9-%EC%84%9C%EB%B2%84</link>
            <guid>https://velog.io/@dev_96/AWS-%EC%9B%B9-%EC%84%9C%EB%B2%84</guid>
            <pubDate>Sat, 28 Jan 2023 14:56:12 GMT</pubDate>
            <description><![CDATA[<p>오늘은 <strong>웹 서버 만들기</strong>에 대해 정리하겠다.
웹 서버 만들기 전에 필수 조건으로** EC2 인스턴스**가 있어야 한다.</p>
<blockquote>
<p> EC2 : <a href="https://velog.io/@dev_96/AWS-AWS-EC2">https://velog.io/@dev_96/AWS-AWS-EC2</a> 참고하자!</p>
</blockquote>
<p>일단, 인스턴스에 보안그룹 <strong>SSH/HTTP 접속 허용</strong>을 해야하니 주의하자.</p>
<h3 id="1-ec2-ssh-접속">1. EC2 SSH 접속</h3>
<p><strong>root 권한</strong>으로 작업하는게 좋다.
<img src="https://velog.velcdn.com/images/dev_96/post/dd090e45-4548-4dbf-965a-4861fd3311e0/image.jpg" alt=""></p>
<h3 id="2-apache2-설치">2. apache2 설치</h3>
<p>웹 서버 엔진에는 <strong>apache2, Nginx *<em>등 종류가 다양하다.
우리는 오늘 *</em>apache2</strong>에 대해 이용할 예정이다.
2.1 <strong>yum</strong>을 업데이트 해준다.</p>
<pre><code>yum update -y</code></pre><p>2.2 <strong>apache2</strong> 설치</p>
<pre><code>yum install -y httpd</code></pre><p><img src="https://velog.velcdn.com/images/dev_96/post/878bd1e3-209f-451f-95d8-52b7f5931455/image.png" alt=""></p>
<h3 id="3-apache2-실행">3. apache2 실행</h3>
<pre><code>systemctl start httpd
systemctl status httpd</code></pre><p><img src="https://velog.velcdn.com/images/dev_96/post/1e99a642-26db-4159-868d-edafd3c799df/image.png" alt=""></p>
<h3 id="4-indexhtml-만들기">4. index.html 만들기</h3>
<pre><code>cd /var/www/html
vi index.html </code></pre><p><strong>화면과 같이 입력</strong>
<img src="https://velog.velcdn.com/images/dev_96/post/b73ec5fa-0bfc-4f81-bbd5-c7cc7cdfed47/image.jpg" alt=""></p>
<h3 id="5-웹-페이지-실행">5. 웹 페이지 실행</h3>
<p>화면과 같이** ip 주소를 입력**하면 웹 페이지가 실행된다.
<img src="https://velog.velcdn.com/images/dev_96/post/60fcd38d-7bb4-4d56-9eb4-95f2394157b9/image.png" alt=""></p>
<p>오늘은 머리 좀 식힐 겸, 간단한 웹 페이지 실행을 해보았다.
처음 웹 페이지를 실행 할 떄, <del>신기했었던 적이 엊그제 같은데...</del>
이제는 사이드 프로젝트까지 할 줄이야.. 차근차근 성장했다.
더 열심히 하자!!</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[AWS] VPC]]></title>
            <link>https://velog.io/@dev_96/AWS-VPC</link>
            <guid>https://velog.io/@dev_96/AWS-VPC</guid>
            <pubDate>Thu, 26 Jan 2023 13:32:06 GMT</pubDate>
            <description><![CDATA[<p>오늘은 AWS VPC에 대해 정리하겠다.</p>
<blockquote>
<h3 id="✔-vpc-이란">✔ VPC 이란?</h3>
</blockquote>
<p> <img src="https://velog.velcdn.com/images/dev_96/post/e656ecb0-9143-49dc-a03c-f98f0494f395/image.png" alt=""></p>
<p><strong>VPC</strong>란 Virtual Private Cloud(VPC)의 약자로 데이터 센터에서 운영하는 기존 네트워크와 아주 유사한 <strong>가상 네트워크</strong>이다.</p>
<p>따라서, <strong>AWS VPC</strong>란 AWS 계정 전용 가상 네트워크이다. VPC는 AWS 클라우드에서 다른 가상 네트워크와 논리적으로 분리되어 있다. VPC의 IP 주소 범위를 지정하고 서브넷과 게이트웨이를 추가하고 보안 그룹을 연결할 수 있다.</p>
<p>오늘은 바로 실습에 들어가겠다.</p>
<h3 id="1-aws-네트워킹-및-콘텐츠-전송으로-들어가면-맨-아래에-vpc가-있다-vpc를-✔-클릭">1. AWS <strong>네트워킹 및 콘텐츠 전송</strong>으로 들어가면, 맨 아래에 VPC가 있다. VPC를 ✔ 클릭</h3>
<p><img src="https://velog.velcdn.com/images/dev_96/post/b41f26bf-b14d-47a4-882f-6247ba536bac/image.jpg" alt=""></p>
<h3 id="2-vpc-대시보드에-들어가보면-vpc가-있다-vpc-생성-✔-클릭">2. VPC 대시보드에 들어가보면 VPC가 있다. VPC 생성 ✔ 클릭</h3>
<p><img src="https://velog.velcdn.com/images/dev_96/post/1bb5999b-962d-4ce0-90f7-cbf7acb79112/image.jpg" alt=""></p>
<h3 id="3-vpc-설정">3. VPC 설정</h3>
<p>   VPC 설정에 들어가보면, <strong>이름 태그, IPv4 CIDR 블록, IPv4 CIDR 설정</strong>이 있다.
⭕ CIDR는** 네트워크 클래스**를 대체하는 주소 범위다.</p>
<p><img src="https://velog.velcdn.com/images/dev_96/post/24cbe784-7313-4c53-ac6a-d09d4b7ba563/image.jpg" alt=""></p>
<h3 id="4-vpc-생성">4. VPC 생성</h3>
<p><img src="https://velog.velcdn.com/images/dev_96/post/94a47a8f-2627-4f42-ac0a-1589a7abcc3b/image.jpg" alt=""></p>
<h3 id="5-생성-완료">5. 생성 완료</h3>
<p><img src="https://velog.velcdn.com/images/dev_96/post/eee9380c-d465-4ebf-8950-37f6e9794153/image.jpg" alt=""></p>
<p>VPC를 만들었다. 이제 <strong>서브넷,라우팅 테이블 설정</strong>과 외부 통신을 위해 <strong>인터넷 게이트웨이</strong>도 설정해줘야 한다.</p>
<blockquote>
<p><strong>서브넷 👉 라우팅테이블 👉 인터넷 게이트웨이</strong></p>
</blockquote>
<h3 id="6-서브넷-생성">6. 서브넷 생성</h3>
<p> 프로젝트를 하면서 서브넷을 많이 생성하였다. 정리하는 겸 서브넷을 또 생성해보겠다.
<strong>서브넷 생성 ✔클릭</strong>
<img src="https://velog.velcdn.com/images/dev_96/post/2ffd93bd-2547-4ae5-8b12-faebdba0dbc5/image.jpg" alt=""></p>
<h3 id="6-1-서브넷-생성--1">6-1. 서브넷 생성 -1</h3>
<h4 id="아까-만든-vpc-선택">아까 만든 VPC 선택</h4>
<p><img src="https://velog.velcdn.com/images/dev_96/post/c5450f73-b537-425e-acfa-1c219b1163cc/image.jpg" alt=""></p>
<p>VPC 선택 한 뒤, 밑에 <strong>서브넷 생성</strong> 칸이 나온다.
<strong>서브넷 이름</strong>과 <strong>가용 영역</strong>, <strong>IPv4 CIDR 블록</strong>을 설정한다.
<img src="https://velog.velcdn.com/images/dev_96/post/31afda31-4040-404b-acd9-6dcf2aee6fe3/image.jpg" alt="">
<strong>서브넷 생성 완료 ✔</strong>
<img src="https://velog.velcdn.com/images/dev_96/post/5fbc88f0-bf66-4d1c-a17d-08b41f12a912/image.jpg" alt="">
이제 서브넷을 생성했으니, 라우팅 테이블을 설정할 차례다.</p>
<h3 id="7-라우팅-테이블-생성">7. 라우팅 테이블 생성</h3>
<p><strong>라우팅 테이블 생성 클릭</strong> ✔
<img src="https://velog.velcdn.com/images/dev_96/post/0b34e6ee-5485-40bf-b4a4-2ad82a304db8/image.jpg" alt=""></p>
<h3 id="7-1-라우팅-테이블-생성--1">7-1 라우팅 테이블 생성 -1</h3>
<p><strong>이름과 아까 만든 VPC 선택을 한다.</strong>
<img src="https://velog.velcdn.com/images/dev_96/post/588fa930-8830-41f3-b891-6f98f24c36d3/image.jpg" alt="">
<strong>라우팅 테이블 설정 완료 *<em>✔
이번에 *</em>인터넷 게이트웨이</strong>를 설정하겠다.</p>
<h3 id="8-인터넷-게이트웨이-생성">8. 인터넷 게이트웨이 생성</h3>
<p><strong>인터넷 게이트웨이 생성 클릭✔</strong>
<img src="https://velog.velcdn.com/images/dev_96/post/3072c050-6143-4e91-9905-9b37846f5627/image.jpg" alt="">
이름만 설정하면 생성이 된다.
<img src="https://velog.velcdn.com/images/dev_96/post/aa8fb370-1874-4ec4-8789-adbe693f11e5/image.jpg" alt=""></p>
<blockquote>
<h4 id="📍-주의할-점-내가-방금-만든-인터넷-게이트웨이를-보면-상태가-detached라고-되어-있는데-방금-만든-인터넷-게이트웨이를-attached-상태로-바꿔야-한다">📍 주의할 점: 내가 방금 만든 인터넷 게이트웨이를 보면 상태가 Detached라고 되어 있는데, 방금 만든 인터넷 게이트웨이를 Attached 상태로 바꿔야 한다.</h4>
</blockquote>
<h4 id="detached-👉-attached">Detached 👉 Attached</h4>
<p><img src="https://velog.velcdn.com/images/dev_96/post/3812f405-b48a-45fc-a59e-bb35214193be/image.jpg" alt="">
<strong>인터넷 게이트웨이 클릭 👉 작업 👉 VPC에 연결</strong>
<img src="https://velog.velcdn.com/images/dev_96/post/3840c9e5-6002-4d9d-b541-d6933540547e/image.jpg" alt="">
방금 만든 VPC를 클릭하고 <strong>연결 버튼 클릭</strong>✔
<img src="https://velog.velcdn.com/images/dev_96/post/6a7a9c23-adeb-4b57-9900-32beb703d3bb/image.jpg" alt="">
Detached 👉 <strong>Attached</strong> 상태로 확인 완료
<img src="https://velog.velcdn.com/images/dev_96/post/3dc21793-f76d-4d2d-a741-d7e80823335a/image.jpg" alt=""></p>
<p>서브넷과 라우팅 테이블, 서브넷을 설정을 한뒤, 이번에 <strong>추가 작업</strong>을 해야 한다.</p>
<h3 id="9-추가-작업">9. 추가 작업</h3>
<p><strong>서브넷</strong>으로 들어가 작업 👉 <strong>라우팅 테이블 연결 편집</strong>
<img src="https://velog.velcdn.com/images/dev_96/post/f42f112e-8444-4f2b-8f14-ef9711d119f6/image.jpg" alt="">
라우팅 테이블이 기본 값으로 설정되어 있는데, <strong>방금 만든 라우팅 테이블로 변경</strong>
<img src="https://velog.velcdn.com/images/dev_96/post/a106300d-0f15-40c5-b335-0296b6a57441/image.jpg" alt="">
<strong>라우팅 테이블</strong>로 들어가 작업 👉 <strong>라우팅 편집 클릭</strong>✔
<img src="https://velog.velcdn.com/images/dev_96/post/4be79807-d721-40bc-8059-672c99b2cc31/image.jpg" alt="">
<strong>라우팅 추가</strong> 👉 <strong>0.0.0.0/0</strong>으로 설정 한 후, <strong>방금 만든 인터넷 게이트웨이 설정</strong>
<img src="https://velog.velcdn.com/images/dev_96/post/181d2b9a-48b7-47fe-a1af-c8969051d42a/image.jpg" alt=""></p>
<p>나만의 VPC 설정이 완료되었다. 이제 내가 만든 VPC를 인스턴스에 적용해보자.</p>
<blockquote>
<p>** EC2 포스터**를 참고해보자.  <a href="https://velog.io/@dev_96/AWS-AWS-EC2">https://velog.io/@dev_96/AWS-AWS-EC2</a></p>
</blockquote>
<h4 id="📍-참고-인스턴스를-만들-떄-내가-만든-vpc으로-설정을-해야-한다">📍 참고: 인스턴스를 만들 떄 내가 만든 VPC으로 설정을 해야 한다.</h4>
<p><img src="https://velog.velcdn.com/images/dev_96/post/9537d7d7-5c7c-4c3d-b848-af9e218f79e8/image.jpg" alt=""></p>
<h4 id="이제-접속을-해보자">이제 접속을 해보자.</h4>
<p><img src="https://velog.velcdn.com/images/dev_96/post/6585722f-d6fe-4fb9-81f7-9a6a886e0128/image.jpg" alt=""></p>
<p><strong>다운로드 완료 ✔</strong>
<img src="https://velog.velcdn.com/images/dev_96/post/8aed3f4b-0e44-4135-9fcf-c0eae7bf2e0f/image.jpg" alt="">
<strong>외부와의 통신도 완료 ✔</strong>
<img src="https://velog.velcdn.com/images/dev_96/post/645c65b5-490e-437e-97d9-92e47dfeed40/image.jpg" alt=""></p>
<p>내가 만든 VPC 확인 결과: <strong>다운로드 완료✔ 외부와의 통신도 완료✔</strong></p>
<p>이렇게 다운로드도 완료했고, 외부와의 통신도 완료했다.
VPC는 생각보다 간단했다.
더 나아가, VPC끼리 통신하는** VPC Peering**도 있다.
오늘은 여기서 마치겠다. </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[AWS] 젠킨스(Jenkins) - 2]]></title>
            <link>https://velog.io/@dev_96/AWS-%EC%A0%A0%ED%82%A8%EC%8A%A4Jenkins-2</link>
            <guid>https://velog.io/@dev_96/AWS-%EC%A0%A0%ED%82%A8%EC%8A%A4Jenkins-2</guid>
            <pubDate>Tue, 24 Jan 2023 19:20:54 GMT</pubDate>
            <description><![CDATA[<p>설날에  Jenkins 작업하느라 보내지 못했다..🤣
그래도 살이 안 쪄서 다행이다. 😁
서론은 됐고, 오늘은 ** Jenkins + Node.js + GitHub**를 이용한 자동배포 구축에 대해 정리하겠다.</p>
<h3 id="1jenkins-nodejs-설치">1.Jenkins NodeJS 설치</h3>
<p><strong>Jenkins 관리</strong> 👉 <strong>플러그인 관리</strong>에 들어간다.
<img src="https://velog.velcdn.com/images/dev_96/post/3542584c-5eae-4c0c-a345-327447665ced/image.jpg" alt=""></p>
<h3 id="2-plugins">2. Plugins</h3>
<p><strong>NodeJS</strong> 검색을 한 뒤, <strong>Download now and install after restart</strong> 설치를 진행한다.</p>
<p><img src="https://velog.velcdn.com/images/dev_96/post/3fa45323-c239-48ad-92db-811c2ccb0ddc/image.jpg" alt=""></p>
<h3 id="3-global-tool-configuration">3. Global Tool Configuration</h3>
<p><strong>Jenkins 관리</strong> 👉 <strong>Global Tool Configuration</strong> 에 들어간다.
<img src="https://velog.velcdn.com/images/dev_96/post/1d1127ad-1657-42e4-b0e9-c5116cfd6381/image.jpg" alt="">
NodeJS 플러그인을 찾아 Name과 버전을 입력한다. <strong>Nodejs 최신 버전</strong>도 있으니 걱정마라!! 필자는 16.4.21으로 진행하겠다.
<img src="https://velog.velcdn.com/images/dev_96/post/a0ab8a7e-66a1-4867-954b-426b422927e5/image.jpg" alt="">
저번 포스트에 Github 연동하면서 만들었던 <strong>프로젝트 👉 Configure 👉 빌드 Steps 👉 NodeJS 플러그인 설정</strong>
<img src="https://velog.velcdn.com/images/dev_96/post/af539787-6ac3-491c-a3aa-8522468f46cf/image.jpg" alt=""></p>
<p>📍 <strong>사전 필수</strong>
✔ <strong>반드시 GitHub 연동과 git Webhook 설정이 되어야 한다.</strong></p>
<blockquote>
<p>** 링크를 참조하자.** 
👉 <a href="https://velog.io/@dev_96/AWS-%EC%A0%A0%ED%82%A8%EC%8A%A4Jenkins-1">https://velog.io/@dev_96/AWS-%EC%A0%A0%ED%82%A8%EC%8A%A4Jenkins-1</a></p>
</blockquote>
<p>사전 준비가 되었으면, 다음으로는 젠킨스에서 노드 서버로 전송하기 위해서는 ssh를 이용해야 하는데, 젠킨스에서는 플러그인으로 제공한다. <strong>Publish Over SSH</strong> 플러그인을 설치해야 한다.</p>
<p>필자는 <strong>Publish Over SSH</strong>를 설치하였다.
👉 <a href="https://dbjh.tistory.com/68?category=839984">https://dbjh.tistory.com/68?category=839984</a> </p>
<p><img src="https://velog.velcdn.com/images/dev_96/post/14835f15-90a7-40fc-8cbe-05c613b4c690/image.jpg" alt=""></p>
<p>Node.js 서버를 배포하는 방식은 여러가지이지만, 그 중 하나인 <strong>PM2</strong>를 이용할 것이다.</p>
<pre><code>npm install -g pm2
pm2 -v ✔ 버전 확인</code></pre><p>이렇게 큰 <strong>PM2 로고</strong>가 나오면 성공 ‼
<img src="https://velog.velcdn.com/images/dev_96/post/f579f444-2449-4aa2-ac90-79299af37285/image.jpg" alt=""></p>
<p>PM2를 설치 한 뒤, EC2에 <strong>Node.js</strong> 설치를 해야 한다.
Node.js 설치는 간단하다.</p>
<p>이렇게 친절하게** Amazon** 에서 설명을 해준다. 역시 <strong>GOD 아마존</strong> 🌟
👉 <a href="https://docs.aws.amazon.com/ko_kr/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html">https://docs.aws.amazon.com/ko_kr/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html</a></p>
<h3 id="4-자동-스크립트-구성">4. 자동 스크립트 구성</h3>
<p>이제 중요한 <strong>자동 업데이트 스크립트 구성</strong>을 해야한다.
자동배포를 구성하기 전에 젠킨스에 의해 실행될 스크립트를 작성하자.
<strong>스크립트 파일</strong>은 깃허브에서 클론한 폴더 내부에 작성하자.</p>
<pre><code>git clone 내 허브 주소</code></pre><p><img src="https://velog.velcdn.com/images/dev_96/post/da7a7323-9c84-4217-abfb-dfd9ff8c0503/image.jpg" alt=""></p>
<pre><code>#!/bin/bash
git pull
npm install
npm start</code></pre><p><img src="https://velog.velcdn.com/images/dev_96/post/a8c163ca-89d1-4681-beae-e29bbcd45145/image.jpg" alt=""></p>
<p>필자는** start.sh** 이름으로 저장했고, 권한을 주자‼</p>
<pre><code>chmod 755 start.sh </code></pre><p><img src="https://velog.velcdn.com/images/dev_96/post/afaf4777-8055-4708-996c-25f8cb876279/image.jpg" alt=""></p>
<p> start.sh가 실행이 잘 된다.  기분이 좋구만!!</p>
<p> 이제 젠킨스 서버에서 쉘 스크립트를 작성하자.</p>
<p> <img src="https://velog.velcdn.com/images/dev_96/post/1b4861bc-3536-4beb-bc6f-f525714bfcaf/image.jpg" alt=""></p>
<h3 id="5배포-서버-설정">5.배포 서버 설정</h3>
<h4 id="1이제-젠킨스-서버로-ssh-접속해서-젠킨스-사용자로-유저를-변경">1.이제 젠킨스 서버로** SSH 접속**해서 젠킨스 사용자로 유저를 변경</h4>
<pre><code>ssh-keygen -t rsa </code></pre><p><strong>ssh 키를 발행</strong>하고 엔터 누르고 진행</p>
<p> <img src="https://velog.velcdn.com/images/dev_96/post/832f1db5-49eb-4df6-89fa-27dab336332d/image.jpg" alt=""></p>
<p> ssh키를 복사한 것을 <strong>붙여넣기</strong> 한다.</p>
<pre><code> vi ~/.ssh/authorized_keys
</code></pre><p> <img src="https://velog.velcdn.com/images/dev_96/post/8aea9b3d-9860-40dd-b327-2161e9365d3d/image.jpg" alt=""></p>
<pre><code>chmod 700 ~/.ssh
chmod 600 ~/.ssh/*
✔ ssh 권한을 준다.</code></pre><h3 id="✔-ssh-접속-성공">✔ ssh 접속 성공</h3>
<p><img src="https://velog.velcdn.com/images/dev_96/post/d381115b-3caa-4724-9467-e9490db9f248/image.jpg" alt=""></p>
<pre><code>ssh 사용자명@node.server ip
✔ ssh 접속 성공</code></pre><h3 id="🔥-마지막으로-테스트">🔥 마지막으로 테스트</h3>
<p>연동된 리포지토리에 소스코드를 <strong>push</strong> 해보고 젠킨스 서버에 문제없이 작동되는지 확인하자</p>
<h4 id="1-기존에-있던-글을-지우고-dev-dev96블로그입니다-작성">1. 기존에 있던 글을 지우고, dev, dev.96블로그입니다. 작성</h4>
<p><img src="https://velog.velcdn.com/images/dev_96/post/0e4d0f93-b53e-4627-ad30-c2ca6a541da2/image.jpg" alt=""></p>
<h4 id="2-깃-허브에-push">2. 깃 허브에 push</h4>
<p><img src="https://velog.velcdn.com/images/dev_96/post/cb3caaba-c88a-4d87-8aeb-626f5ff63c00/image.jpg" alt=""></p>
<h4 id="3-깃-허브-push-완료">3. 깃 허브 push 완료!!</h4>
<p><img src="https://velog.velcdn.com/images/dev_96/post/7d34dfe3-468e-45d7-99b8-745292408fc1/image.jpg" alt=""></p>
<h4 id="4-연동된-리포지토리에서-git-pull">4. 연동된 리포지토리에서 git pull</h4>
<p><img src="https://velog.velcdn.com/images/dev_96/post/57203f77-db96-4255-b995-53f5f2bc4722/image.jpg" alt=""></p>
<h4 id="5-젠킨스에서-buildnow-✔">5. 젠킨스에서 Buildnow ✔</h4>
<p><img src="https://velog.velcdn.com/images/dev_96/post/48d0a449-e064-4e44-ab05-967c99b07dc0/image.jpg" alt=""></p>
<h4 id="6-서버-ip-입력👉--자동배포-서버-구축-완료✔">6. 서버 ip 입력👉  자동배포 서버 구축 완료✔</h4>
<p><img src="https://velog.velcdn.com/images/dev_96/post/63c47f49-9884-496d-89e6-dd4166795b3a/image.jpg" alt=""></p>
<p>이로써  <strong>Jenkins + Node.js + GitHub</strong> 를 이용한 자동배포 구축이 완료되었다.
서버에서 SSH 접속 후, Bulid된 파일을 서버로 모두 전송했다.
다시 Jenkins를 실행함으로써 수정한 파일이 배포가 마무리 되었다.</p>
<p>기회가 된다면,** GitLab** 을 통해 배포를 해보고 싶다는 생각이 들었다.
아니면 AWS 서비스에서 <strong>파이프라인과 배포 서비스</strong>를 이용해보고 싶다.
다음 포스트가 기대된다. </p>
<h4 id="⭕-예외">⭕ 예외:</h4>
<p><strong>git pull</strong> 오류가 났다.
<img src="https://velog.velcdn.com/images/dev_96/post/7cfb480e-efcb-4f69-b30b-4bf18fa3f1ea/image.jpg" alt=""></p>
<p>또 구글 박사님한테 물어보던 중, 참고할만한 글이 있어 링크를 남긴다.
👉 <a href="https://insapporo2016.tistory.com/53">https://insapporo2016.tistory.com/53</a> </p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[AWS] 젠킨스(Jenkins) - 1]]></title>
            <link>https://velog.io/@dev_96/AWS-%EC%A0%A0%ED%82%A8%EC%8A%A4Jenkins-1</link>
            <guid>https://velog.io/@dev_96/AWS-%EC%A0%A0%ED%82%A8%EC%8A%A4Jenkins-1</guid>
            <pubDate>Sun, 22 Jan 2023 12:48:14 GMT</pubDate>
            <description><![CDATA[<p>오늘은 젠킨스(Jenkins)를 EC2에 <strong>설치과정</strong>과 <strong>깃허브 연동</strong>에 대해서 정리하겠다.</p>
<h3 id="1-ec2-인스턴스에-접속">1. EC2 인스턴스에 접속</h3>
<p><img src="https://velog.velcdn.com/images/dev_96/post/177e5dd4-9eaa-4ede-bcd8-98f86b433906/image.jpg" alt=""></p>
<blockquote>
<p>*<em>접속 방법은 포스트를 확인하자 ✔ *</em>
👉  <a href="https://velog.io/@dev_96/AWS-AWS-EC2">https://velog.io/@dev_96/AWS-AWS-EC2</a></p>
</blockquote>
<p>📍  <strong>추가적으로 보안그룹을 셋팅해야 한다. Jenkins는 8080번 포트이기 떄문에 8080번 포트는 설정한다.</strong>
<img src="https://velog.velcdn.com/images/dev_96/post/7e2cbad1-c1ac-4496-9d6a-1c6b58170d42/image.jpg" alt=""></p>
<h3 id="2-젠킨스jenkins-설치-코드">2. 젠킨스(Jenkins) 설치 코드</h3>
<pre><code>wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key

amazon-linux-extras install -y java-openjdk11 Installing java-11-openjdk
👉 젠킨스는 JAVA로 돌아간다. 그러므로 JAVA를 설치해야한다.

yum install -y jenkins 
systemctl start jenkins.service

systemctl enable jenkins 👉인스턴스 접속이 끊어지면 다시 젠킨스 시작을 해야 하는데,
이 코드를 입력하면 자동적으로 젠킨스가 시작된다.
</code></pre><h3 id="3-젠킨스-실행-완료">3. 젠킨스 실행 완료</h3>
<p><strong>Systemctl status jenkins.service</strong> 명령어를 입력할 때 아래 사진처럼 나오면 정상적으로 젠킨스 설치가 되었다.
<img src="https://velog.velcdn.com/images/dev_96/post/9fe5af37-297c-4b7d-a469-d392e0e99310/image.jpg" alt=""></p>
<h3 id="4-젠킨스-홈페이지-접속">4. 젠킨스 홈페이지 접속</h3>
<p><strong>퍼블릭ip:8080</strong>으로 접속을 하면, 다음과 같은 웹페이지 화면이 나오는데, 계정의 암호를 입력을 해야한다. 화면에 보이는 파일에 암호가 적혀있다.
<img src="https://velog.velcdn.com/images/dev_96/post/e8294093-68e2-48a9-8291-3e5eb53f7ac7/image.jpg" alt=""></p>
<pre><code>cat /var/lib/jenkins/secrets/initialAdminPassword</code></pre><p>해당 명령어를 입력하면 암호 확인이 가능하다.</p>
<h3 id="5-플러그인-설치">5. 플러그인 설치</h3>
<p>아래의 화면과 같이 두 개의 선택 설치 화면이 나온다. 필자는 ✔ 추천 플로그인을 설치하겠다.</p>
<p><img src="https://velog.velcdn.com/images/dev_96/post/6e20b9f5-bc02-401d-a1b1-65b83a4c641c/image.jpg" alt=""></p>
<h3 id="6-계정-생성">6. 계정 생성</h3>
<p>계정을 생성해준다.
<img src="https://velog.velcdn.com/images/dev_96/post/1efb95f8-07fb-45f3-8708-32397af300ad/image.jpg" alt=""></p>
<h3 id="7-정상적으로-설치-확인-완료">7. 정상적으로 설치 확인 완료</h3>
<p>젠킨스가 정상적으로 ✔ 설치 완료 되었다.
<img src="https://velog.velcdn.com/images/dev_96/post/7668dcdf-0b9a-4955-9369-0fed93b898e1/image.jpg" alt=""></p>
<p>젠킨스가 설치가 되었고, 이번에 깃허브 연동에 대해서 설명하겠다.</p>
<h3 id="jenkins와-github-연동">Jenkins와 Github 연동</h3>
<h4 id="1-깃허브에-접속할-ssh키-생성">1. 깃허브에 접속할 SSH키 생성</h4>
<pre><code>mkdir /var/lib/jenkins/.ssh
ssh-keygen -t rsa -f /var/lib/jenkins/.ssh/ 만들고자 하는 키 이름
</code></pre><h4 id="2-깃허브-👉-settings-👉-deploy-keys-👉-add-deploy-key">2. 깃허브 👉 Settings 👉 Deploy keys 👉 Add deploy key</h4>
<p>생성한 SSH키를 복사붙여넣기 하면 된다.
<img src="https://velog.velcdn.com/images/dev_96/post/47878fe7-7de6-4cd2-ad10-5d1fbc2db38d/image.jpg" alt=""></p>
<blockquote>
<p>⭕ <strong>주의해야 할 점</strong>:  
   Github에다 등록해야 하는 키는 public 키이다. 
   pub 파일 형식인 키를 등록하면 된다.
   <del>필자는 이거 해결하느라 죽을 뻔..</del></p>
</blockquote>
<p>✔ <strong>key 키 확인 방법</strong></p>
<pre><code>cd /var/lib/jenkins/.ssh
cat 만들고자 하는 키 이름.pub</code></pre><h4 id="3-jenkins-manage-credential-등록">3. Jenkins Manage Credential 등록</h4>
<p>대시보드 👉 Jenkins 관리 👉 Manage Credential</p>
<p><img src="https://velog.velcdn.com/images/dev_96/post/42f35533-483a-4232-9c5f-326d85cc93d4/image.jpg" alt=""></p>
<p>add credentials 클릭
<img src="https://velog.velcdn.com/images/dev_96/post/51fe5263-42b6-4a09-9915-cfd740c1538f/image.jpg" alt=""></p>
<p>kind 👉 SSH Username with private key
ID 입력 👉 Username 입력 👉 Private key 등록</p>
<p>📍 <strong>Private key</strong></p>
<pre><code>cd /var/lib/jenkins/.ssh
cat 만들고자 하는 키 이름</code></pre><p><img src="https://velog.velcdn.com/images/dev_96/post/552418a9-930a-41e6-b403-1dacf1893b65/image.jpg" alt=""></p>
<h4 id="4-생성-완료">4. 생성 완료</h4>
<p>Jenkins Manage Credential이 ✔ 완료되었다.
<img src="https://velog.velcdn.com/images/dev_96/post/83c053b9-e58f-4348-ad66-abcca1ec01e9/image.jpg" alt=""></p>
<p><del>드디어 반까지는 왔다. 좀만 더 힘내보자.</del></p>
<h3 id="젠킨스jenkins-item-생성">젠킨스(Jenkins) ITEM 생성</h3>
<h4 id="1-item-생성">1. ITEM 생성</h4>
<p>대시보드 👉 새로운 ITEM 👉 Freestyle project
<img src="https://velog.velcdn.com/images/dev_96/post/77649aa8-f727-4099-8288-7a5137c784bc/image.jpg" alt=""></p>
<h4 id="2-소스코드-관리">2. 소스코드 관리</h4>
<p>소스 코드 관리 👉 git 👉 Repositort URL ✔ <strong>내 깃허브 주소 입력</strong>
Credential ✔ <strong>아까 만들었던 Credential 등록</strong></p>
<p><img src="https://velog.velcdn.com/images/dev_96/post/bc0a766f-31d3-4940-8b5c-f9d4a6b9d76a/image.jpg" alt=""></p>
<h4 id="3-github-webhook-설정">3. Github Webhook 설정</h4>
<p>Payload URL 설정에 📍 <strong>젠킨스 IP:포트/github-webhook</strong> 입력한다.
Content type에 <strong>application.json</strong>으로 설정한다.
<img src="https://velog.velcdn.com/images/dev_96/post/31eee6ab-23c4-4959-be62-67ea43b38133/image.jpg" alt=""></p>
<p>🌟🌟 해당 Github 저장소에서 푸쉬가 일어나면 젠킨스를 호출한다. 🌟🌟</p>
<h3 id="jenkins와-github-연동-완료">Jenkins와 Github 연동 완료</h3>
<p>👏 결과적으로 젠킨스에 Github 파일이 빌드업 되었다. 👏
<img src="https://velog.velcdn.com/images/dev_96/post/dd02bcc8-e2a1-492b-9523-47e02cff7fdb/image.jpg" alt=""></p>
<p><img src="https://velog.velcdn.com/images/dev_96/post/05079f20-59af-4dbb-a93b-d0c4be23e6b5/image.jpg" alt=""></p>
<p>드디어 끝이 났다. 처음 해보는 CI/CD 였는데, 하는 동안 재미있었고, 과정에 대해 많이 이해했다. CI/CD에 대해서 공부를 더 해야겠다.
<del>이만..오늘은 여기까지</del></p>
<h3 id="🔥-추가적으로-troubleshooting">🔥 추가적으로 Troubleshooting</h3>
<p>빌드업 성공하기 전에 실패가 2번 있었다.
아래화면과 같이 로그를 확인해보니 branch를 찾을수 없다는 이야기인것 같다.
<img src="https://velog.velcdn.com/images/dev_96/post/92fafb73-015b-4e2c-b1bf-c608e2d7f45c/image.jpg" alt=""></p>
<p>구글박사에 물어보던 중, 요즘 원인이 github 브랜치의 경우 <strong>master</strong>가 아닌** main<strong>이 주 브랜치로 쓰이는 것 같다는 글을 ✔ 발견
빛의 속도로 *</strong>/master** 👉 <strong>*/main</strong> 으로 변경하니 에러가 해결되었다. 휴우.. 
🏆 <strong>성공했다.</strong>
<img src="https://velog.velcdn.com/images/dev_96/post/9afbfbb7-70ee-4758-98eb-69e9dc56ca5e/image.jpg" alt=""></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[AWS] 젠킨스(Jenkins) ]]></title>
            <link>https://velog.io/@dev_96/AWS-%EC%A0%A0%ED%82%A8%EC%8A%A4Jenkins</link>
            <guid>https://velog.io/@dev_96/AWS-%EC%A0%A0%ED%82%A8%EC%8A%A4Jenkins</guid>
            <pubDate>Sun, 22 Jan 2023 11:11:54 GMT</pubDate>
            <description><![CDATA[<p>오늘 블로그를 작성하던 중, CI/CD 서비스를 봤다. 얼른 글을 다 쓰고, CI/CD에 대해서 파헤쳐 볼 것이다.</p>
<blockquote>
<h2 id="cicd">CI/CD</h2>
</blockquote>
<p><img src="https://velog.velcdn.com/images/dev_96/post/806541ba-0b3f-4519-b233-243721e536d7/image.png" alt=""></p>
<p> <strong>CI/CD란 (Continuous Integration/Continuous Delivery)</strong>는 자동화하여 애플리케이션을 짧은 주기로 제공하는 방법이다. </p>
<h3 id="기본적인-개념-">기본적인 개념 ‼</h3>
<p>✔ ** 지속적인 통합 **
✔  *<em>지속적인 서비스 제공 *</em>
✔  *<em>지속적인 배포 *</em></p>
<blockquote>
<h3 id="ci-지속적-통합">CI (지속적 통합)</h3>
</blockquote>
<p>개발자를 위한 <strong>자동화 프로세스</strong>를 통해 <strong>새로운 코드 개발</strong>과 <strong>코드의 변경 사항</strong>이 <strong>정기적으로 빌드 및 테스트</strong> 되고, 공유 레포지토리에 병합되어 여러 명의 개발자가 동시에 <strong>어플리케이션 개발과 관련된 코드를 작업</strong>할 경우에도 서로 <strong>충돌없이 원하는 개발 작업</strong>을 수행하고 문제 해결한다.</p>
<blockquote>
<h3 id="cd-지속적인-서비스-제공-및-배포">CD (지속적인 서비스 제공 및 배포)</h3>
</blockquote>
<p> 개발자가 지속적인 서비스 전달과 배포를 통해 <strong>새로운 코드에 대한 배포를 자동화</strong>할 수 있으며, 신속한 어플리케이션을 제공할 수 있도록 도움을 주는 역할은 한다.</p>
<p><strong>CI를 통한 빌드의 자동화 및 유닛의 통합 테스트 수행</strong> 이후 이어지는 CD 프로세스는 <strong>유효한 소스코드를 레포지토리에 자동으로 전달</strong>한다. 따라서 개발 파이프라인 CI가 먼저 구축되어야 한다.</p>
<p><del><strong>서론이 길어졌다. 젠킨스에 대해서 글을 써야겠다.</strong></del></p>
<blockquote>
<h3 id="젠킨스jenkins">&quot;젠킨스(Jenkins)&quot;</h3>
</blockquote>
<p>앞서 설명하다시피 CI/CD에 대해서 환경을 구축하기 위한 도구가 바로 <strong>&quot;젠킨스(Jenkins)&quot;</strong>이다.</p>
<p><img src="https://velog.velcdn.com/images/dev_96/post/febb5ef6-2c7e-41d3-8a84-7b13aaf69913/image.png" alt=""></p>
<blockquote>
<p>✔ <strong>편리한 설정</strong>
✔ *<em>안정적인 빌드/배포 환경 *</em>
✔  ** 다양한 활용 및 손쉬운 확장 **</p>
</blockquote>
<p>이 세 가지가 모두 포함되어 있다. 나는 위 세가지 이유로 젠킨스를 도입하였다.
오늘은 여기까지 설명 하고, 다음 포스트에서는 EC2에 젠킨스 설치와 깃허브 연동에 대해서 기본 환경 및 설치 과정을 정리해보겠다. :)</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[AWS] AWS EC2]]></title>
            <link>https://velog.io/@dev_96/AWS-AWS-EC2</link>
            <guid>https://velog.io/@dev_96/AWS-AWS-EC2</guid>
            <pubDate>Sun, 22 Jan 2023 06:45:00 GMT</pubDate>
            <description><![CDATA[<p>처음 시작할 때, AWS는 매우 복잡했다는 느낌을 받았다.
그래서 AWS에 직접 가입을 해서 홀로 실습을 하였다.</p>
<p>유튜브 강의는 보면서 가장 도움이 됐었다.
<a href="https://youtu.be/Wus-fC15elM">https://youtu.be/Wus-fC15elM</a> 👍 동빈나님 채널</p>
<h4 id="첫번째로-소개한-서비스는-aws-ec2-이다">첫번째로 소개한 서비스는 AWS EC2 이다.</h4>
<p><img src="https://velog.velcdn.com/images/dev_96/post/07ef977b-83c2-483e-afa6-9bffc7eca19e/image.jpg" alt=""></p>
<h4 id="ec2--elastic-compute-cloud-이란-🔍">EC2 ( Elastic Compute Cloud) 이란 🔍</h4>
<p>• <strong>AWS EC2</strong>는 Elastic Compute Cloud의 약자로 독립된 가상의 컴퓨터를 임대해 주는 웹 서비스이다.
• AWS에서 제공하는 클라우드 <strong>컴퓨팅 서비스</strong> = <strong>클라우드 가상 서버</strong>
• EC2 클라우드 가상 서버를 <strong>&quot;인스턴스&quot;</strong> 라고 부른다.
• 인스턴스 유형: 인스턴스를 위한 <strong>CPU, 메모리, 스토리지, 네트워킹 용량</strong>의 여러 가지   구성 제공
• <strong>키 페어</strong>를 사용하여 인스턴스 로그인 정보 보호</p>
<p>말 그대로 PC방과 같이 돈을 내고 우리가 PC를 이용하는 것처럼 EC2도 사용한 만큼 비용을 지불한다.</p>
<blockquote>
<p>📍 <strong>요약 : EC2 서비스는 AWS에서 비용,성능,용량에서 클라우드 컴퓨팅을 제공하는 서비스이며, 네트워크, 스토리지가 구성된 서버를 OS만 선택하여 제공하는 서비스이다.</strong></p>
</blockquote>
<p>이제 AWS EC2 인스턴스를 생성해보자.</p>
<p><strong>1. AWS EC2 인스턴스 생성</strong>
AWS 검색창에 EC2를 입력하고, 결과 내에 <strong>EC2 서비스</strong>를 클릭한다.
<img src="https://velog.velcdn.com/images/dev_96/post/2288eedd-0bd0-4695-9285-ec2cb18f430d/image.jpg" alt=""></p>
<p><strong>2. 인스턴스 이름 설정</strong>
<strong>인스턴스 이름</strong>을 설정
<img src="https://velog.velcdn.com/images/dev_96/post/84ac2d62-624b-488f-baf6-a00d996c8fa0/image.jpg" alt=""></p>
<p><strong>3. 인스턴스 유형 선택</strong>
인스턴스 OS, 성능을 선택, <strong>AWS Linux에서 프리티어 사용 가능한 인스턴스 유형</strong> 선택
<img src="https://velog.velcdn.com/images/dev_96/post/55ce7edf-6e6b-4c09-a6b2-9afbcdeef3df/image.jpg" alt=""></p>
<p><strong>4. 키 페어 생성</strong></p>
<blockquote>
<p><strong>키 페어</strong>는 <strong>보안 인증서</strong>이기 때문에, 안전한 곳에 보관을 해야 한다. 만약 잃어버린다고 하면, 보안 취약에 너무나도 큰 문제이다.</p>
</blockquote>
<p>키 페어 이름을 입력하고, 나는 <strong>Putty</strong> 프로그램을 활용하여 인스턴트에 원격접속을 할 예정이기 떄문에 키 파일 형식은** ppk**로 하였다.
<img src="https://velog.velcdn.com/images/dev_96/post/94a49790-c8dc-479a-b2dc-7c5b716a8247/image.jpg" alt=""></p>
<p><strong>5. 네트워크 설정</strong>
<strong>보안 그룹 생성</strong>과 <strong>기존 보안 그룹 선택</strong>이 있다. 필자는 보안 그룹을 생성하고 추후에 보안 그룹에 대해 따로 설정할 예정이다. <strong>SSH 트래픽 허용 0.0.0.0</strong>은 모든 IP에 대해 SSH로만 접속하면 모든 허용한다는 소리다.
<img src="https://velog.velcdn.com/images/dev_96/post/638f763c-ace8-4818-b2f5-8b4db0251624/image.jpg" alt=""></p>
<p><strong>6. 스토리지 설정</strong>
<strong>인스턴스 스토리지</strong>를 설정한다. 필자는 스토리지 용량이 충분하기 떄문에 기본으로 하겠다.
<img src="https://velog.velcdn.com/images/dev_96/post/74eab347-a412-4f3a-9a10-934b871b5dff/image.jpg" alt=""></p>
<p><strong>7. 대망의 인스턴스 생성 완료</strong>
드디어 <strong>인스턴스 생성이 완료</strong>되었다. AWS를 공부하면서 아마 EC2를 가장 먼저 접하고, 가장 많이 이용할 것이다.
<img src="https://velog.velcdn.com/images/dev_96/post/d556789c-16a4-43c7-803b-8185af3f45b3/image.jpg" alt=""></p>
<p><strong>이제 인스터스를 생성하였으니, 접속해보자</strong> ✨
<strong>PUTTY라는 프로그램이 있다. 접속 방법에 대해서는 링크를 참조하자.</strong></p>
<blockquote>
<p><a href="https://m.blog.naver.com/jeonsr/221792705148">https://m.blog.naver.com/jeonsr/221792705148</a></p>
</blockquote>
<p><strong>1. PUTTY 접속해서, HOST NAME에 EC2 인스턴스 IP를 입력한다.</strong>
<img src="https://velog.velcdn.com/images/dev_96/post/2db6af42-8ebb-4ce6-bcc4-844d9fcdd1e8/image.jpg" alt=""></p>
<p><strong>2. 아까 다운로드 받았던 키 페어를 인증받는다.</strong>
<img src="https://velog.velcdn.com/images/dev_96/post/410edabe-9171-4d57-ae9c-f91a2b44c93a/image.jpg" alt=""></p>
<p><strong>3. 대망의 PUTTY 인스턴스 접속</strong>
<img src="https://velog.velcdn.com/images/dev_96/post/b6ef0a07-31f9-43b8-a150-89c43b33425e/image.jpg" alt=""></p>
<p>이렇게 인스턴스를 생성하고, 접속해보았다.
AWS 공부를 하면 인스턴스 생성, 접속은 수없이 할 것이다.
오늘도 이렇게 EC2 개념 정리와 생성,접속을 정리해보았다.
하나하나 차근차근 정리해보자 🔥🔥</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[[AWS] AWS (Amazon Web Serivces)]]></title>
            <link>https://velog.io/@dev_96/AWS-AWS-Amazon-Web-Serivces</link>
            <guid>https://velog.io/@dev_96/AWS-AWS-Amazon-Web-Serivces</guid>
            <pubDate>Sat, 21 Jan 2023 12:08:51 GMT</pubDate>
            <description><![CDATA[<p>내가 학원을 다녔을 떄, 강사님이 하신 말씀이 아직도 생각난다.
AWS가 <strong>클라우드의 시작과 끝</strong>이라고 말씀해주셨다.</p>
<p><img src="https://velog.velcdn.com/images/dev_96/post/7e53c5de-b7d6-445a-8aa8-3f036ecc8d2c/image.jpg" alt=""></p>
<p>국내 클라우드 시장 점유 순위가 나왔다. 점유율 1위는 아마존 웹서비스, 2위는 마이크로소프트,
3, 4위는 구글, 네이버가 차지했다.
(<a href="https://zdnet.co.kr/view/?no=20221228091202">https://zdnet.co.kr/view/?no=20221228091202</a>) 📄 <strong>기사 참조</strong></p>
<p>이렇게 클라우드 시장의 대장이었던 아마존은 사실 시작은 아주 작았다. 계획은 이러했다.
만약 서버를 만들어야 한다고 참조하자.</p>
<blockquote>
<ol>
<li>하드웨어 </li>
<li>네트워킹 장비</li>
<li>전원공급장치</li>
<li>환경 제어장치</li>
<li>백업 발전기</li>
<li>운영 인력 등등</li>
</ol>
</blockquote>
<p>사실상 서버를 운영하는게 비용도 많이 들고 힘들다.
하지만, 클라우드의 출현으로 데이터센터 구축 비용과, 서버 구매 비용을 확 줄일 수 있었다.
이것이 AWS가 클라우드 끝판왕이라는 소리를 듣는 이유다.</p>
<blockquote>
<ol>
<li>AWS 계정 생성</li>
<li>EC2 생성</li>
<li>VPC 생성</li>
<li>Internet Gateway, ROUTER53 -&gt; VPC 연결</li>
</ol>
</blockquote>
<p>클릭 몇 번으로 서버를 구축 및 운영 할 수 있다. 또한 AWS를 인터넷만 있으면 언제든지 접속 할 수 있다는게 큰 장점이다. 그래서 많은 기업들이 서버에서 클라우드로 전환하는 <strong>마이그레이션</strong> 서비스를 한다.</p>
<pre><code>✨TMI : 데이터 센터 및 기타 인프라에서 호스팅 되는 데이터를 laaS PaaS 클라우드 배포로 전송하는 것이다. (클라우드 마이그레이션)</code></pre><p>이것이 <strong>AWS (아마존 웹 서비스)</strong>이다.</p>
<p>소프트웨어공학 전공자였던 나는 Front 위주로 공부를 하였고, 개발 분야에서도 프로젝트를 만들었었다. 다른 분야도 공부하고 싶은 욕심에 클라우드 분야에도 흥미를 느꼈고, 블로그를 작성하면서 내 공부 지식을 정리할 생각이다.</p>
<p>잘 해보자!!! 🔥🔥🔥</p>
]]></description>
        </item>
    </channel>
</rss>