<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>inho-park.log</title>
        <link>https://velog.io/</link>
        <description>안녕하세요 언어에 구애 받지 않는 개발자가 되고 싶은 박준성입니다</description>
        <lastBuildDate>Thu, 07 Sep 2023 06:46:40 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>inho-park.log</title>
            <url>https://velog.velcdn.com/images/inho-park/profile/56b9f3c6-45d5-44cc-939d-3e378ee593f8/image.jpg</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. inho-park.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/inho-park" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[Typescript 란?]]></title>
            <link>https://velog.io/@inho-park/Typescript-%EB%9E%80-f8xtmk7u</link>
            <guid>https://velog.io/@inho-park/Typescript-%EB%9E%80-f8xtmk7u</guid>
            <pubDate>Thu, 07 Sep 2023 06:46:40 GMT</pubDate>
            <description><![CDATA[<h2 id="typescript-개요">TypeScript 개요</h2>
<ul>
<li>TypeScript 는 Microsoft 에서 개발한 자바스크립트의 확장 버전
⇒ 정적 타입 검사와 클래스 기반 객체 지향 프로그래밍을 추가한 언어</li>
<li>TypeScript 는 큰 규모의 애플리케이션 개발에 적합하며, 오류를 줄이고 가독성, 요지보수성 향상</li>
<li>TypeScript 는 결과적으로 JavaScript 언어로 바꿔서 실행하기 때문에 tsc 가 Typescript 를 기계언어 ( 저수준 언어 ) 가 아닌 JavaScript ( 고수준 언어 ) 로 변환하기 때문에 컴파일 언어라 하지 않고 트랜스파일 언어 라고 한다</li>
</ul>
<h2 id="typescript-javascript-차이점">TypeScript JavaScript 차이점</h2>
<ul>
<li>JavaScript 는 동적 타입 언어, 변수의 타입이 실행 시점에 결정, 변경 가능</li>
<li>TypeScript 는 정적 타입 언어, 변수의 타입이 선언 시점에 결정</li>
<li>TypeScript 는 클래스, 인터페이스, 제네릭 등 사용 가능</li>
</ul>
<h2 id="typescript-사용하는-이유">TypeScript 사용하는 이유</h2>
<ol>
<li>더 나은 에러 검출 ⇒ 컴파일 시점에 에러 확인 가</li>
</ol>
<pre><code class="language-jsx">function greeting(person) {
    return &#39;안녕하세요, &#39; + person.firstName;
}

// 이 함수는 person 객체가 null 이거나 undefined 일 경우 런타임에러 발생</code></pre>
<pre><code class="language-tsx">interface Person {
    firstName: string;
    lastName: string;
    age: int;
}

function greeting(person: Person) {
    return &#39;안녕하세요, &#39; + person.firstName;
}</code></pre>
<p>Person 인터페이스는 반드시 인터페이스에서 정의한 속성들을 가지므로 런타임 에러 방지 가능</p>
<ol>
<li>IDE 지원 향상</li>
<li>향상된 문서화 및 코드 가독성</li>
</ol>
<h2 id="typescript-를-배우기-전에-알아두면-좋은-지식">TypeScript 를 배우기 전에 알아두면 좋은 지식</h2>
<ul>
<li><p>Parameter 와 Argument</p>
<h3 id="parameter">Parameter</h3>
<ol>
<li><p>함수나 메서드의 정의부에 명시되는 변수</p>
</li>
<li><p>함수나 메서드가 호출될 때 값을 받아들이기 위한 ‘변수’ 역할</p>
<h3 id="argument">Argument</h3>
</li>
<li><p>함수나 메서드를 호출할 때 전달되는 실제 값</p>
</li>
<li><p>Ex ) const result = result(5, 2); ⇒ 파란색이 argument</p>
</li>
</ol>
</li>
<li><p>JSON ( Javascript Object Notation )</p>
<h3 id="장점">장점</h3>
<ol>
<li><p>데이터 전송시 용량이 XML 보다 적음</p>
<h3 id="단점">단점</h3>
</li>
<li><p>key : value 형식이 강제됨</p>
</li>
<li><p>주석 불가능</p>
</li>
</ol>
</li>
<li><p>ESLint</p>
<ul>
<li>같은 프로젝트 내에서 협업을 위한 서로간의 소스 작성 의전을 정해줌
⇒ 에어비엔비, 구글 룰이 자주 사용됨</li>
<li>Ex) if 와 ( ) 사이에 공백을 추가할 것인지, string 선언할 때 double quote 사용할 지 등</li>
</ul>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[TCP / IP (Internet Protocol Suite)]]></title>
            <link>https://velog.io/@inho-park/TCP-IP-Internet-Protocol-Suite</link>
            <guid>https://velog.io/@inho-park/TCP-IP-Internet-Protocol-Suite</guid>
            <pubDate>Tue, 25 Jul 2023 05:41:55 GMT</pubDate>
            <description><![CDATA[<p>TCP/IP 는 <strong>패킷 통신 방식의 인터넷 프로토콜인 IP</strong>와 <strong>전송 조절 프로토콜인 TCP</strong>로 이루어져있으며, IP는 <strong>패킷 전달 여부를 보증하지 않고</strong>, <strong>패킷을 보낸 순서와 받는 순서가 다를 수 있다</strong>. TCP 는 IP 위에서 동작하는 프로토콜로 IP 가 하지 못한 <strong>데이터의 전달 보증 역할을 해주며 전달된 패킷을 순서대로 받게 해준다.</strong></p>
<p><strong>HTTP, FTP, SMTP 등 TCP 를 기반으로 한 많은 수의 애플리케이션 프로토콜들이 IP 위에서 동작</strong></p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/fb7402eb-728b-4b34-8a4e-c2ba27feb4b2/image.png" alt=""></p>
<h2 id="application-layer--4-layer-">Application Layer ( 4 Layer )</h2>
<p>컴퓨터 네트워크 프로그래밍에서 인터넷 프로토콜 (IP) 컴퓨터 네트워크를 통하는 프로세스 간 통신 접속을 위해 설계되어 통신 프로토콜과 방식을 위해 보유된 추상 계층</p>
<p>⇒ 기반이 되는 전송 계층 프로토콜을 사용해 호스트 간 연결을 확립 ( Transport Layer )</p>
<p>Ex ) DNS, TLS/SSL, FTP, HTTP, POP3, SMTP, SSH, 텔넷, 비트토렌트 등</p>
<h2 id="transport-layer--3-layer-">Transport Layer ( 3 Layer )</h2>
<p>네트워크 구성요소와 프로토콜 내에서 송신자와 수신자를 연결하는 통신 서비스를 제공, 전송 계층은 연결 지향 데이터 스트림 지원, 신뢰성, 흐름 제어 등의 서비스 제공</p>
<p>⇒ Endpoint(사용자) 간의 연결을 생성하고 데이터의 전달 과정 확인</p>
<p>Ex ) TCP, UDP, DCCP, SCTP 등</p>
<h2 id="internet-layer--2-layer-">Internet Layer ( 2 Layer )</h2>
<p>네트워크 경계를 거쳐 호스트로부터 기원한 네트워크 패킷을 필요하면 IP 주소로 지정된 목적지 호스트로 전송하기 위해 사용, 게이트웨이를 통해 여러 네트워크를 연결하는 개념인 인터네트워킹을 용이하게 하는 기능에서 유래
⇒ 보통 인터넷 계층은 로컬 노트 간의 링크 상태를 관리하는 목적을 충족하는 프로토콜을 포함하지 않으며 링크 타입에 특화된 패킷 프레이밍에 기반한 프로토콜 ( Link Layer ) 을 사용</p>
<p>Ex ) IP ( IPv4, IPv6 )</p>
<h3 id="address-resolution-protocol--2---1-layer-를-이어주는-프로토콜-">Address Resolution Protocol ( 2 - 1 Layer 를 이어주는 프로토콜 )</h3>
<p>IP 는 네트워크 상에서 IP 주소를 물리적 네트워크 주소로 바인딩시키기 위해 사용되는 프로토콜</p>
<p>Ex ) IP ( IPv4, IPv6 ) ⇒ Ethernet ( 48bit Network Card Address )</p>
<h2 id="link-layer--1-layer-">Link Layer ( 1 Layer )</h2>
<p>Internet Protocol Suite 의 가장 낮은 계층으로 호스트가 물리적으로 연결되는 링크 상에서만 운용되는 메소드, 통신 프로토콜</p>
<p>⇒ 링크는 네트워크 상의 호스트나 노드를 상호 연결하기 위해 사용되는 물리, 논리, 네트워크 구성 요소이며 링크 프로토콜은 근거리 통신망 세그먼트나 광역 통신망 연결의 인접한 네트워크 노드 간에만 운용</p>
<p>Ex ) Ethernet, Wi - Fi, 토큰링, PPP, SLIP, FDDI, ATM 등</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[모터 ( Motor )]]></title>
            <link>https://velog.io/@inho-park/%EB%AA%A8%ED%84%B0-Motor</link>
            <guid>https://velog.io/@inho-park/%EB%AA%A8%ED%84%B0-Motor</guid>
            <pubDate>Tue, 25 Jul 2023 05:40:11 GMT</pubDate>
            <description><![CDATA[<h1 id="모터란">모터란?</h1>
<p><strong>모터는 전력 에너지를 받아 동력 에너지로 변환하는 전동기를 의미</strong></p>
<p>자기장 내에서 전류를 흐르게 함으로써 받게 되는 힘을 회전 동작으로  변환하는 것이 일반적이지만 linear 동작을 하는 경우도 있음 ( Stepping Motor )</p>
<h3 id="dc-직류-모터">DC (직류) 모터</h3>
<ul>
<li><p><strong>Brush 모터</strong></p>
<p>  일반적으로 많이 사용되는 모터, Brush (고정자측)이라고 불리우는 전극을 정류자 (전기자측)으로 순차 접속시킴으로써 전류를 전환하여 회전 동작하는 구조</p>
</li>
<li><p><strong>Brushless DC 모터</strong></p>
<p>  Brush와 정류자를 사용하지 않고 트랜지스터 등의 스위칭 기능을 통해 전기적으로 전류를 전환하여 회전 동작</p>
</li>
<li><p><strong>Stepping 모터</strong></p>
<p>  펄스에 동기하여 동작하는 모터로, 정확한 위치 제어 동작을 간단히 실현 가능</p>
</li>
</ul>
<h3 id="ac-교류-모터">AC (교류) 모터</h3>
<ul>
<li><p><strong>유도 모터</strong></p>
<p>  교류를 통해 고정자에 회전 자계를 발생시켜 회전자에 유도 전류 발생 ⇒ 회전</p>
</li>
<li><p><strong>동기 모터</strong></p>
<p>  교류가 만드는 회전 자계를 통해 자극을 지닌 회전자가 흡인, 추종하여 회전
  회전의 속도는 전원 주파수와 동기</p>
</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[서보모터와 스테핑모터]]></title>
            <link>https://velog.io/@inho-park/%EC%84%9C%EB%B3%B4%EB%AA%A8%ED%84%B0%EC%99%80-%EC%8A%A4%ED%85%8C%ED%95%91%EB%AA%A8</link>
            <guid>https://velog.io/@inho-park/%EC%84%9C%EB%B3%B4%EB%AA%A8%ED%84%B0%EC%99%80-%EC%8A%A4%ED%85%8C%ED%95%91%EB%AA%A8</guid>
            <pubDate>Tue, 25 Jul 2023 05:39:28 GMT</pubDate>
            <description><![CDATA[<h2 id="서보모터-servo-motor">서보모터 (Servo motor)</h2>
<h3 id="close-loop-system-피드백-o">Close-loop System (피드백 O)</h3>
<p>물체의 위치, 방위, 자세, 회전 속도 등을 제어량으로 하고 목표치의 변화에 뒤따르도록 구성된 자동제어계를 서보기구라고 하는데 Encoder (피드백 회로) 가 <strong>출력의 검출부</strong>, <strong>목표치와의 오차</strong> <strong>증폭부, 조작부,제어 대상</strong> 등으로 <strong>피드백이 구성됨</strong> ⇒ 이러한 서보계의 조작부에 사용되는 것 = <strong>서보모터</strong></p>
<p>*AC, DC 모두 서보모터가 있음</p>
<p><strong>속도가 증가시 토크가 떨어지지 않고 관성으로 회전 
⇒ 정확한 위치 및 속도 제어 힘듬 (돈으로 해결 가능)
⇒ Encoder 를 모터 뒤에 달아 회전수 알 수 있음
⇒ Encoder 로 인하여 Pulse 출력 (모터가 몇회전했는지 축이 몇도에 있는지 알 수 있음)
⇒ Encoder 에서 인풋으로 해당 값들을 보내 회전 값 보충 가능</strong></p>
<h2 id="스텝모터-stepping-motor">스텝모터 (Stepping Motor)</h2>
<h3 id="open-loop-system-피드백-x">Open-loop System (피드백 X)</h3>
<p>펄스로 인해 동작, <strong>Resolution(분해능)</strong>에 따라 다름 (비례)</p>
<p>*DC 중 BLDC (Brushless) 구조를 가진 모터로 한 바퀴의 회전을 많은 수의 스텝들로 어떤 피드백 장치 없이도 정확하게 조절이 가능함</p>
<p><strong>펄스로 인한 동작 
⇒ 회전 제어가 쉬워짐 (정해진 단위만큼만 움직임)
⇒ 그러나 토크가 작음 ⇒ 회전력이 약함
⇒ 탈조현상 우려 (모터의 속도는 빠른데 회전력이 약하면 모터가 기구에 영향을 주지 못하고 멈춤)</strong></p>
<h2 id="볼-스크류">볼 스크류</h2>
<p><img src="https://velog.velcdn.com/images/inho-park/post/b9546fef-395e-4d92-8b0e-9601329f8a65/image.png" alt="">
<strong>회전 운동을 직선 운동으로 변환하는 기계 요소</strong></p>
<p>볼 스크류는 축 방향만의 부하 하중을 받아 회전 운동을 직선 운동으로 변환하는 기계 요소이다
⇒ 이게 무슨 뜻이냐면 볼 스크류가 수직 하중이나 모멘트 하중을 지탱하는 역할을 하면 안되며 ( 가이드 레일의 존재 이유 )</p>
<p>즉 정리해보자면 <strong>모터의 회전 운동을 직선 운동으로 바꿔주는 기계 요소가 볼 스크류</strong>이며 직선 운동하는 과정에서 <strong>너트 및 하우징을 매개하여 나사축(직선 운동 방향) 으로 축 방향 하중</strong>이 가해진다.  그럼 <strong>하중을 지지해주는 기계 요소가 필요한데 이 역할을 볼 스크류가 하면 안된다</strong></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[DC 모터]]></title>
            <link>https://velog.io/@inho-park/DC-%EB%AA%A8%ED%84%B0</link>
            <guid>https://velog.io/@inho-park/DC-%EB%AA%A8%ED%84%B0</guid>
            <pubDate>Tue, 25 Jul 2023 05:36:45 GMT</pubDate>
            <description><![CDATA[<p><img src="https://velog.velcdn.com/images/inho-park/post/6fc252f6-df76-4dd8-8c39-2c2c7577a16f/image.png" alt=""></p>
<h3 id="고정자를-영구자석으로-사용하고-회전자전기자를-코일로-사용하여-구성">고정자를 영구자석으로 사용하고 회전자(전기자)를 코일로 사용하여 구성</h3>
<p>정류자를 통해 전기자에 흐르는 전류의 방향을 전환함으로써 자력의 반발, 흡인력으로 회전력을 생성</p>
<ol>
<li>기동 토크가 큼</li>
<li>인가전압에 대해 회전특성이 직선적으로 비례</li>
<li>입력전류에 대해 출력 토크가 직선적으로 비례, 출력 효율 양호</li>
<li>가격이 저렴함</li>
<li>속도 및 방향 제어 용이</li>
</ol>
<p><img src="https://velog.velcdn.com/images/inho-park/post/1d414ca0-19a9-41e2-8b29-59a64441ff49/image.png" alt=""></p>
<p><strong>T-I 특성 (토크 대 전류)</strong></p>
<p>흘린 전류에 대해 직선적으로 토크 비례</p>
<p><strong>T-N 특성 (토크 대 회전수)</strong></p>
<p>토크에 대해 회전수는 직선적으로 반비례(돌림힘이 증가하면 회전수가 줄어드는 것은 당연함)</p>
<h2 id="dc-모터의-단점">DC 모터의 단점</h2>
<ul>
<li>구조를 보면 정류자가 회전하며 브러쉬와 계속 마찰을 일으키면서 전류를 전달하는 구조이기 때문에 브러쉬가 마모되어 분진이나 흑연이 발생하거나</li>
<li>브러쉬를 통해 권선에 전류가 흐르면서 발생하는 스파크나 노이즈 발생 가능</li>
<li>브러쉬와 정류자의 마찰로 지속적인 유지보수 필요</li>
<li>위와 같은 이유로 회전속도에 한계 있음</li>
</ul>
<h2 id="bldc-모터-brushless-dc-motor">BLDC 모터 (Brushless DC Motor)</h2>
<p><img src="https://velog.velcdn.com/images/inho-park/post/0a1ab6fd-e8a3-4ed8-8bb3-b8eb8a46e37f/image.png" alt=""></p>
<ul>
<li>기존의 일반적인 DC 모터에서 정류자의 역할을 대신해주는 전자 정류 회로를 설치한 모터</li>
<li>기존의 DC 모터에서 정류자와 브러쉬의 마찰 문제를 해결한 모터
<br><br>
참고</li>
</ul>
<p><a href="https://m2plus.tistory.com/entry/%EB%AA%A8%ED%84%B0Motor-%EC%A0%95%EB%B3%B4-%EB%AA%A8%ED%84%B0%EC%9D%98-%EC%A2%85%EB%A5%981">https://m2plus.tistory.com/entry/모터Motor-정보-모터의-종류1</a></p>
<p><a href="http://www.ktechno.co.kr/pictech/motor01.html">http://www.ktechno.co.kr/pictech/motor01.html</a></p>
<p><a href="https://m2plus.tistory.com/entry/DC-%EB%AA%A8%ED%84%B0-DC-Motor-BLED-%EB%AA%A8%ED%84%B0-Brshless-Motor-%EC%9D%98-%EA%B8%B0%EB%B3%B8-%EC%A0%95%EB%B3%B4">https://m2plus.tistory.com/entry/DC-모터-DC-Motor-BLED-모터-Brshless-Motor-의-기본-정보</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Logging (log4net)]]></title>
            <link>https://velog.io/@inho-park/Logging-log4net</link>
            <guid>https://velog.io/@inho-park/Logging-log4net</guid>
            <pubDate>Tue, 25 Jul 2023 05:31:42 GMT</pubDate>
            <description><![CDATA[<h2 id="로깅이란">로깅이란</h2>
<p><strong>어떤 소프트웨어가 실행될 때 발생하는 이벤트를 추적하는 수단</strong></p>
<p>로깅은 소스를 짜는 도중 모든 내부적 예외든 외부적인 환경 요인이든 에러가 발생하는 경우를 대비하기 가장 좋은 방법은 구성해놓은 소스가 어느 부분에서 작동이 중단되는지 어느 과정들부터 우리가 원하는 처리 과정이 틀어지는 지 알 수 있는 가장 직관적인 방법이라고 생각한다.</p>
<p><a href="https://github.com/inho-park/LoggingProgram">https://github.com/inho-park/LoggingProgram</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[콜백 CallBack Method]]></title>
            <link>https://velog.io/@inho-park/%EC%BD%9C%EB%B0%B1-CallBack-Method</link>
            <guid>https://velog.io/@inho-park/%EC%BD%9C%EB%B0%B1-CallBack-Method</guid>
            <pubDate>Tue, 25 Jul 2023 05:25:49 GMT</pubDate>
            <description><![CDATA[<ol>
<li>피호출자가 호출자를 호출</li>
<li>시스템에서 특정 시점에 알림</li>
<li>콜백 구현의 필요성 : 주기 확인 VS 콜백</li>
</ol>
<p><strong>2가지 방식</strong></p>
<ul>
<li>interface 콜백 VS delegate 콜백</li>
</ul>
<h3 id="interface-콜백">Interface 콜백</h3>
<p>interface 를 통해 콜백 응답을 받음</p>
<h3 id="delegate-콜백">Delegate 콜백</h3>
<p>class 의 delegate 를 함수로 초기화하여 콜백
<br><br></p>
<p><a href="https://github.com/inho-park/C-Sharp-study/tree/main/CallBackEx">https://github.com/inho-park/C-Sharp-study/tree/main/CallBackEx</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[람다식 (Lambda)]]></title>
            <link>https://velog.io/@inho-park/%EB%9E%8C%EB%8B%A4%EC%8B%9D-Lambda</link>
            <guid>https://velog.io/@inho-park/%EB%9E%8C%EB%8B%A4%EC%8B%9D-Lambda</guid>
            <pubDate>Tue, 25 Jul 2023 05:24:34 GMT</pubDate>
            <description><![CDATA[<h2 id="목적">목적</h2>
<ol>
<li>간단하고 재활용이 필요 없는 함수를 만들 때 사용 - 함수 및 변수의 이름을 고민할 시간을 줄임</li>
<li>함수 안에서 호출해서 사용 ( 함수 추가 필요 X )</li>
<li>무명 (익명) 메서드에서 발전된 형태 (무명 메서드에서 선언 부분을 삭제)</li>
<li>함수의 인자 값이 메서드 형태일 경우 주로 사용</li>
</ol>
<pre><code>C#에서는 delegate 무명 메서드를 Generic 형태로 정의해 놓음

- Func&lt;T, T Result&gt; : 반환 형이 있는 delegate Type
- Action&lt;T&gt; : 반환 형이 없는 delegate Type ( Void )</code></pre><p>  <br><br>
  <a href="https://github.com/inho-park/C-Sharp-study/tree/main/LambdaEx">https://github.com/inho-park/C-Sharp-study/tree/main/LambdaEx</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[사용자 정의 컨트롤 ( User Control )]]></title>
            <link>https://velog.io/@inho-park/%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%A0%95%EC%9D%98-%EC%BB%A8%ED%8A%B8%EB%A1%A4-User-Control</link>
            <guid>https://velog.io/@inho-park/%EC%82%AC%EC%9A%A9%EC%9E%90-%EC%A0%95%EC%9D%98-%EC%BB%A8%ED%8A%B8%EB%A1%A4-User-Control</guid>
            <pubDate>Tue, 25 Jul 2023 05:23:41 GMT</pubDate>
            <description><![CDATA[<h2 id="목적">목적</h2>
<ol>
<li>Winform 에서 기본적으로 제공하는 Control 외 사용자가 원하는 형태의 Control 을 만들어서 사용할 수 있음</li>
<li>Code 를 분리 → 가독성 상승</li>
<li>Control 재사용 가능</li>
</ol>
<p><a href="https://github.com/inho-park/C-Sharp-study/tree/main/UserControlEx">https://github.com/inho-park/C-Sharp-study/tree/main/UserControlEx</a></p>
]]></description>
        </item>
        <item>
            <title><![CDATA[AWS IAM ( Identity and Access Management )]]></title>
            <link>https://velog.io/@inho-park/AWS-IAM-Identity-and-Access-Management</link>
            <guid>https://velog.io/@inho-park/AWS-IAM-Identity-and-Access-Management</guid>
            <pubDate>Sat, 15 Jul 2023 06:57:34 GMT</pubDate>
            <description><![CDATA[<h2 id="aws-iam--identity-and-access-management-">AWS IAM ( Identity and Access Management )</h2>
<ul>
<li>AWS 서비스와 리소스에 대한 액세스를 안전하게 관리 가능하게 해줌</li>
<li>AWS 사용자 및 그룹을 만들어 AWS 리소스 액세스 허용 및 거부</li>
<li>별다른 추가 비용 없음</li>
</ul>
<p>바로 사용해보자</p>
<p>S3 로 S3 버킷을 생성한 후</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/b8a88a98-a29c-41ab-90fa-5160b2135c9c/image.png" alt=""></p>
<p>체크한 후 계정 스냅샷 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/26829181-122b-47d3-9d06-d0c18430b8e8/image.png" alt=""></p>
<p>그러면 이런 화면이 나오며 거부함</p>
<p>그럼 검색창에 IAM 검색해서 대시보드로 들어온 후</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/47516e10-bc76-48b5-8e9b-99975a1ed3e7/image.png" alt=""></p>
<p>좌측의 사용자 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/866cc3aa-67db-4e08-b757-748ad3e68b42/image.png" alt=""></p>
<p>사용자 추가 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/95e83423-6b9a-473b-9d6a-04328fd2b106/image.png" alt=""></p>
<p>사용자 이름이랑 요런식으로 체크하고 다음 버튼 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/5420a889-ffa4-4cd7-a285-ffd4cdfa3633/image.png" alt=""></p>
<p>여기서 그룹 생성 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/36572572-5143-4f55-a375-dd7f95badb97/image.png" alt=""></p>
<p>그룹 이름을 지정한 후</p>
<p>권한 정책에 s3 를 검색하여 AmazonS3FullAccess 체크 후 사용자 그룹 생성 버튼 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/889f5fb7-d636-420a-b4df-043cf53facea/image.png" alt=""></p>
<p>그러면 그룹이 생성된 것을 확인한 후 다음 버튼 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/d8fc7512-f3c8-42e9-ae6a-5d361029b0cf/image.png" alt=""></p>
<p>여기서 사용자 생성 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/bac3589f-7bb4-4d7d-b1a3-36c31f2fd932/image.png" alt=""></p>
<p>요런 식으로 s3 접근 권한을 가진 사용자 계정 생성 가능</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/14a23859-63bb-4dd7-bb7b-d4df4c56e799/image.png" alt=""></p>
<p>사용자 생성 완료</p>
<p>이제 해당 계정과 비밀번호로 로그인해보자</p>
<p>콘솔 로그인 URL 을 복사하여 검색</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/3b5934d5-e588-4bce-8d3b-2aeb14095aeb/image.png" alt=""></p>
<p>그리고 사용자 이름과 콘솔 암호 붙여넣기 후 로그인 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/74e1520d-2adf-465b-9194-afb38ea21b30/image.png" alt=""></p>
<p>비밀번호를 내가 원하는대로 변경 후 비밀번호 변경 확인 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/f08d529d-49ff-47b8-81d9-a6df59bf072e/image.png" alt=""></p>
<p>루트 계정이 아닌 IAM 이 부여한 사용자 계정으로 접속한 것이므로</p>
<p>아까 부여한 S3FullAccess 권한 덕분에</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/ddf0918f-abf0-457e-aa37-3d022968304c/image.png" alt=""></p>
<p>S3 버킷으로 접근이 가능한 것을 확인할 수 있다</p>
<p>그러나 EC2 로 가보면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/09bc65e4-7509-40c9-8169-363e36354ede/image.png" alt=""></p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/6f6b394f-6ad9-4c61-9b95-3586af09127f/image.png" alt=""></p>
<p>수많은 오류들이 보인다 권한에서 걸러져 api 오류가 나는 것이다</p>
<p>즉 내가 설정한 권한대로만 사용자 계정의 권한이 부여가 되는 것이다</p>
<h3 id="별칭">별칭</h3>
<p>간략하게 말하면 IAM 콘솔 로그인을 위한 url 에 숫자들을 외우기 귀찮으니 사용하는 것</p>
<p>별칭 생성해보기</p>
<p>다시 루트 계정으로 로그인하여 IAM 대시보드로 들어가보면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/ddc539eb-6b22-483f-a767-8cccc3e70b72/image.png" alt=""></p>
<p>AWS 계정 사이드바 밑에 </p>
<p>계정 별칭 이라면서 숫자 써있고 생성 써있는 부분이 있는데 여기 생성 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/eb6fa74d-cdf2-4229-8595-3fc93c482f0b/image.png" alt=""></p>
<p>이렇게 별칭 생성한 후 변경 사항 저장 클릭 후</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/51cf068f-ce41-489a-9ec6-da958726ffbb/image.png" alt=""></p>
<p>우측의 사이트 보면 IAM 사용자를 위한 로그인 URL 에 숫자 대신 내가 만든 별칭이 들어간 것을 확인할 수 있다</p>
<p>로그인은 똑같이 사용자 계정과 콘솔 암호를 입력하여 로그인하면 된다 끝</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[AWS DynamoDB]]></title>
            <link>https://velog.io/@inho-park/AWS-DynamoDB</link>
            <guid>https://velog.io/@inho-park/AWS-DynamoDB</guid>
            <pubDate>Sat, 15 Jul 2023 06:33:54 GMT</pubDate>
            <description><![CDATA[<h3 id="nosql-db-의-장점">NoSQL DB 의 장점</h3>
<ol>
<li>스키마가 존재하지 않음 ⇒ 다양한 데이터를 효율적으로 저장 가능</li>
<li>데이터베이스를 수평적으로 확장 가능</li>
<li>대용량 로그 데이터 저장에 적합</li>
</ol>
<h2 id="aws-dynamodb">AWS DynamoDB</h2>
<p>Amazon DynamoDB 는 키-벨류 및 문서 데이터 구조를 지원하는 완전 관리형 독점 NoSQL DB서비스</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/42b7eb4d-7c8a-4a3b-9ce3-239b8a7653de/image.png" alt=""></p>
<p>테이블 생성</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/364eb9ed-64d1-4f1d-83eb-33c819da0389/image.png" alt=""></p>
<p>테이블이름과 파티션키 입력 후 우측 하단의 테이블 생성 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/644f0223-0f04-47b1-8665-139613aeb4a3/image.png" alt=""></p>
<p>여기서 테이블 이름 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/f56605ea-b023-40a8-80a0-4c42b89cf2a0/image.png" alt=""></p>
<p>표 항목 탐색 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/10984919-dd5c-41b9-90f8-28f21657fd66/image.png" alt=""></p>
<p>여기서 항목 생성 버튼 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/b8e3df58-168c-4bbf-95e9-659040f5faaf/image.png" alt=""></p>
<p>새 속성 추가에서 type 을 지정해주면 위 사진처럼 속성이 생성된다</p>
<p>예시로 저렇게 넣어봤다 본인이 넣고 싶은대로 넣은 다음 항목 생성 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/4f4594d6-7c1d-4420-a0b8-ba1fed733210/image.png" alt=""></p>
<p>이렇게 항목이 생기면 성공</p>
<p>다시 항목 생성으로 들어가서</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/103913bb-c104-4be5-9190-089b78582b81/image.png" alt=""></p>
<p>위와 같이 만들으면 </p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/7be8de4d-7a63-494f-be15-2b346f5b1ebb/image.png" alt=""></p>
<p>지금 보이는 것처럼 컬럼 명에 관계 없이 항목이 추가되는 것을 볼 수 있다</p>
<p>추가로 해당 테이블 페이지에서</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/32ddc102-9035-4c32-b5c2-8992a8ba3987/image.png" alt=""></p>
<p>이런식으로 바로 원하는 데이터 조건으로 스캔을 해볼 수 있다</p>
<p>삭제 또한 간단하다</p>
<p>테이블 리스트로 돌아가서</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/e490baa2-5d49-496d-9f6c-034322a1fac7/image.png" alt=""></p>
<p>해당 테이블 체크하고 삭제버튼 클릭 후</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/14fca637-8b30-42bf-8567-d6f4997affad/image.png" alt=""></p>
<p>확인 입력하고 삭제하면 된다 비상 시를 대비해서 백업 생성 또한 가능하니 알아두자</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[AWS RDS 스냅샷]]></title>
            <link>https://velog.io/@inho-park/AWS-RDS-%EC%8A%A4%EB%83%85%EC%83%B7</link>
            <guid>https://velog.io/@inho-park/AWS-RDS-%EC%8A%A4%EB%83%85%EC%83%B7</guid>
            <pubDate>Sat, 15 Jul 2023 06:25:28 GMT</pubDate>
            <description><![CDATA[<p>스냅샷을 사용하는 이유는 RDS 를 내가 원하는 상태의 실험용 DB 상태가 있을텐데 그 상태를 저장하여 후에 정보가 바뀌었을 때 다시 스냅샷을 통해 복원이 가능하다</p>
<h2 id="스냅샷-생성-후-스냅샷을-통해-rds-복원하기">스냅샷 생성 후 스냅샷을 통해 RDS 복원하기</h2>
<p>우선 내가 원하는 RDS 인스턴스를 체크박스를 클릭하여 작업 클릭 후 스냅샷 생성 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/36c1fc6a-6169-4be7-a1fe-721a282cf2a4/image.png" alt=""></p>
<p>후에 원하는 RDS 인스턴스 선택 후 이름 작성</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/38f296d0-450f-4511-82d0-13e39846c4a2/image.png" alt=""></p>
<p>스냅샷 생성 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/f2bf6b6d-5f74-41da-a49f-aa6bfd9e486f/image.png" alt=""></p>
<p>스냅샷이 생성된 것을 확인했으면 이제 스냅샷 이름을 클릭하자</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/efab430b-d79c-4295-8706-1c99d445d21b/image.png" alt=""></p>
<p>여기서 작업 클릭 후 스냅샷 복원 클릭</p>
<p>화면을 내리다 보면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/9ae13dd6-99d6-4fb7-94b9-914060ee1698/image.png" alt=""></p>
<p>설정에서 인스턴스 식별자를 지정해준 후</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/15b9150f-9aa7-4e86-ab94-9dcab358d59f/image.png" alt=""></p>
<p>인스턴스 구성에서 버스터블 클래스 클릭한 후 이전 세대 클래스 포함을 토글한 후 프리티어 사용 가능한 t2.micro 를 사용했다</p>
<p>또 더 내리다 보면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/6fe6abdf-74b3-4900-b69d-6997b16081b2/image.png" alt=""></p>
<p>연결에 들어가서 퍼블릭 엑세스를 ‘예’로 체크 해준 후 </p>
<p>좌측 하단의 DB 인스턴스 복원 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/f8b3645c-0f68-4363-90e6-0187cfc6542f/image.png" alt=""></p>
<p>스냅샷을 통해 복원된 RDS 인스턴스 확인 가능</p>
<p>RDS 접속하던 방법과 동일하게 접속하면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/7d3aa2a7-1c92-4035-91da-9423dafa38bd/image.png" alt=""></p>
<p>RDS_DB 가 만들어져있는 것을 확인 가능</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/47814300-1da3-423e-ae2a-a6ca41eb3b8a/image.png" alt=""></p>
<p>스냅샷 삭제하는 법도 간단하다 
여기서 스냅샷 삭제 누르고</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/49c3b3cf-51ff-4045-a291-8bf0677ee657/image.png" alt=""></p>
<p>확인용 모달에서 삭제 누르면 끝</p>
<p>이제 RDS 인스턴스 삭제하는 과정도 알아보자</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/642fb5ae-3186-487d-a139-957141532d23/image.png" alt=""></p>
<p>이렇게 바로 삭제 클릭 후</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/e43e2d20-77f7-4882-8cc6-6059dc9e4c9b/image.png" alt=""></p>
<p>여기서 아래에 delete me 를 입력하면 삭제 버튼이 활성화된다</p>
<p>근데 최종 스냅샷 생성에 체크되어 있는 것을 확인할 수 있는데 이는 RDS 를 실수로 삭제하는 것을 방지하기 위해 자동으로 스냅샷을 생성해주는 것이므로 확실하게 삭제해야하면 체크를 해제하고 삭제하면 된다</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[AWS RDS ( Relational Database ) ]]></title>
            <link>https://velog.io/@inho-park/AWS-RDS-Relational-Database</link>
            <guid>https://velog.io/@inho-park/AWS-RDS-Relational-Database</guid>
            <pubDate>Mon, 10 Jul 2023 16:14:11 GMT</pubDate>
            <description><![CDATA[<h2 id="rds-relational-database-service">RDS Relational Database Service</h2>
<ul>
<li>관계형 DB 서비스는 애플리케이션 내에서 관계형 데이터베이스의 설정, 운영, 스케일링을 단순하게 하도록 설계된 클라우드 내에서 동작하는 웹 서비스</li>
<li>DB SW 를 패치하거나 DB 를 백업하거나 시점 복구를 활성화하는 것과 같은 복잡한 관리 프로세스들은 자동 관리</li>
<li>스토리지와 연산 자원들을 스케일링하는 것을 하나의 API 호출로 수행 가능</li>
</ul>
<h2 id="rds-를-통한-mysql-생성-및-heidisql-을-통해-접속하기">RDS 를 통한 MySQL 생성 및 HeidiSQL 을 통해 접속하기</h2>
<p>일단 콘솔에서 rds 서비스 검색해서 들어오기</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/b7c24da9-c4e1-4ea1-b0cd-112d6c4f1c00/image.png" alt=""></p>
<p>여기서 데이터베이스 생성 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/d2e055d2-9142-40d7-a9f7-87f9cd4a3a5f/image.png" alt=""></p>
<p>나는 MySQL 로 사용할거라 MySQL 골라주고</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/91e412b1-572b-4f9b-9221-1ee3010acb7f/image.png" alt=""></p>
<p>프리티어 사용 가능한 버전을 고른 후 마스터 사용자 이름을 root 로 설정하고 암호를 설정해줌</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/e5a8a917-47d4-46ad-b8f0-e179c84448c0/image.png" alt=""></p>
<p>여기서 연결할 사용 가능한 볼륨을 t2.micro 로 제일 낮은 버전으로 골랐다</p>
<p>이외에는 기본 설정값들로 그대로 생성했다</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/768661ed-38ef-4720-a8b5-ebbc0ad91825/image.png" alt=""></p>
<p>이런 화면이 나오면 성공</p>
<p>여기서 인스턴스의 DB 식별자 이름을 클릭하자</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/d3499ce8-a906-4261-821c-e2384bb514e1/image.png" alt=""></p>
<p>여기서 VPC 보안 그룹 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/5d98f82c-e588-430a-8b0d-7735c94a1b30/image.png" alt=""></p>
<p>여기서 아래의 인바운드 규칙 클릭 후 인바운드 규칙 편집 클릭하면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/e65f1f4f-0ceb-4f1c-b676-75cf325cf736/image.png" alt=""></p>
<p>이런 화면 나오는데 저 규칙을 삭제한 후 규칙 추가 버튼을 누르자</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/d5bf6cbe-d22b-42d1-a3a6-e05a3542d37a/image.png" alt=""></p>
<p>그 다음 유형에 모든 트래픽 소스에 Anywhere 에 0.0.0.0/0 을 선택 후 규칙 저장 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/ead3eff5-bd6d-48f4-ba21-43f593b5ae7f/image.png" alt=""></p>
<p>이런 화면 나오면 성공</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/7248ef03-08a5-4a67-8cb7-cf73d7414798/image.png" alt=""></p>
<p>여기서 퍼블릭 엑세스 가능에 ‘아니요’ 라고 되있는 부분을 ‘예’ 로 바꿔야함</p>
<p>우선 여기서 수정 버튼을 클릭하자</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/d5798e10-25ee-40f7-b41e-405980d94116/image.png" alt=""></p>
<p>화면을 내리다 보면 연결 부분이 나오는데 여기서 추가 구성 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/479481d7-d6cc-4288-b39b-1074acb822cc/image.png" alt=""></p>
<p>퍼블릭 엑세스 가능으로 체크 후</p>
<p>좌측 하단에 계속 버튼 클릭 후 DB 인스턴스 수정 ( 주황색 ) 버튼까지 클릭하면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/403af960-7272-430f-82bc-f105ce8da696/image.png" alt=""></p>
<p>수정이 완료되었으며</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/d2a42963-649c-416e-96a9-0f50ee5626a2/image.png" alt=""></p>
<p>퍼블릭 엑세스 가능 에 ‘예’ 로 바뀐 것을 확인 가능</p>
<p>이제 이것을 Heidi SQL 로 접속해보려하는데 구글에 검색해서 다운받은 후</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/75b9f6ae-057d-4bf1-84d7-afc25fcdc136/image.png" alt=""></p>
<p>신규 버튼 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/dbea701a-f598-4545-8868-ba8d0ae2d292/image.png" alt=""></p>
<p>RDS 인스턴스의 엔드포인트를 복사하여 호스트명/IP 에 붙여넣고 Library 는 libmysql 로 바꿔준 후 </p>
<p>인스턴스 생성할 때 지정한 마스터 계정과 암호 입력</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/2de15b76-dae1-46f2-b4e8-e58f8675ba49/image.png" alt=""></p>
<p>열기 클릭하면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/74510bbf-5c14-4435-93a9-796e2536fd79/image.png" alt=""></p>
<p>접속 성공한 모습</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/ce326b9b-d9a6-4f22-9d41-95a75ea527e2/image.png" alt=""></p>
<p>쿼리문까지 작동이 잘된다 RDS 환경 설정 끝</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[AWS AMI ( Amazon Machine Images )]]></title>
            <link>https://velog.io/@inho-park/AWS-AMI-Amazon-Machine-Images</link>
            <guid>https://velog.io/@inho-park/AWS-AMI-Amazon-Machine-Images</guid>
            <pubDate>Mon, 10 Jul 2023 16:09:20 GMT</pubDate>
            <description><![CDATA[<p>AWS AMI ( Amazon Machine Images ) 는 OS와 기타 프로그램, 파일 등이 설치된 상태의 EC2 인스턴스를 의미 ( Marketplace ) 에서 적절한 AMI 를 선택해서 EC2 를 구성하거나 직접 만들어서 사용 가능</p>
<h2 id="ami-생성해보기">AMI 생성해보기</h2>
<p>바로 AMI 를 만들어 보자</p>
<p>인스턴스 화면으로 접속</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/484d5103-53db-4800-b505-5c0cc934177a/image.png" alt=""></p>
<p>실행 중인 인스턴스를 체크한 후 작업의 이미지 및 템플릿을 클릭 후 이미지 생성 버튼을 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/03db9668-3da2-4741-9dc3-bb6297e78308/image.png" alt=""></p>
<p>위와 같은 화면이 들어오면 이미지 이름을 정해준 후 ‘이미지 생성’ 버튼 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/cace5fbe-9198-43de-9f60-b6db104d4073/image.png" alt=""></p>
<p>이미지 카테고리의 AMI 로 들어오면 ami 가 생성되어있는 것을 확인할 수 있다. 처음엔 이름이 없으니 본인이 직접 입력해주면 편함</p>
<h2 id="ami-로-인스턴스-런칭하기">AMI 로 인스턴스 런칭하기</h2>
<p>인스턴스 시작 화면 들어온 후</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/c4361482-ddd8-4639-ba88-f039b6ec1bc8/image.png" alt=""></p>
<p>더 많은 AMI 찾아보기 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/2bbc16df-d4b8-4230-ba93-b5007196a0af/image.png" alt=""></p>
<p>AMI Marketplace AMI 도 있고 다양한 AMI 들을 확인할 수 있다</p>
<p>나는 직접 생성한 AMI 를 런칭하기 위해 ‘내 AMI’ 클릭했다</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/972174f5-2306-47a5-b8d2-8427e5fbe335/image.png" alt=""></p>
<p>선택 버튼 클릭한 후</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/78d7edc6-7f4d-4853-bca4-3eaf9151c83d/image.png" alt=""></p>
<p>나머지는 기본 프리티어 사용 가능 유형으로 두고 키 페어는 기존에 사용하던 리눅스 서버의 키페어를 골라줬다</p>
<p>화면을 보면 내가 만들었던 AMI 가 지정 되있는 것을 볼 수 있다</p>
<p>이제 인스턴스 시작 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/6d51cfa2-2150-45e1-9ee7-1580fe5caed8/image.png" alt=""></p>
<p>이름은 ami_generated 로 넣어줬다.. 이제 이 서버에 접속을 해보겠다</p>
<p>putty 로 기존의 사용하던 키페어로 접속을 하면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/ce07ebb3-fa16-4d62-ac98-77c6a3adb7a1/image.png" alt=""></p>
<p>이렇게 성공이 가능한데 중요한 점은 방금 접속했지만 기존의 리눅스 서버 인스턴스에 만들어뒀던 폴더와 파일 구조를 이 서버가 가지고 있을 것이란 점이다</p>
<p>확인해보자</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/cfd07bd9-963b-489c-b076-b403bf3b788e/image.png" alt=""></p>
<p>ls 를 입력해봤더니 내가 만든 적도 없던 test_folder 가 있다</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/1c04b764-0cd8-4695-9458-67826ae8f725/image.png" alt=""></p>
<p>test_folder 안에 만들어놓은 텍스트 파일도 그대로 유지된 것을 확인할 수 있다</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Elastic IP]]></title>
            <link>https://velog.io/@inho-park/Elastic-IP</link>
            <guid>https://velog.io/@inho-park/Elastic-IP</guid>
            <pubDate>Mon, 10 Jul 2023 16:05:58 GMT</pubDate>
            <description><![CDATA[<h2 id="elastic-ip">Elastic IP</h2>
<ul>
<li>인스턴스에 고정된 IP 주소를 할당해주는 서비스</li>
<li>Elastic IP 를 사용하지 않을 경우, 인스턴스를 시작하고 종료할 때마다 새로운 IP 가 할당되고 부여됨 ( IP 주소가 계속 바뀌는 것이 불편함 )</li>
<li>Elastic IP 사용 시 IP 주소를 할당받고 이를 인스턴스에 연결하지 않으면 요금이 부과됨 ( IP 주소 부족 문제를 해결하기위함으로써 사용하지 않는 Elastic IP 는 반환해서 요금이 부과되지 않도록 해야함 )</li>
</ul>
<h2 id="elastic-ip-를-사용하는-이유">Elastic IP 를 사용하는 이유</h2>
<p>우선 저번에 만들어둔 ec2 리눅스 인스턴스를 다시 시작시켜보겠다</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/553c0417-0a7a-4d6a-b677-a713c9273727/image.png" alt=""></p>
<p>퍼블릭 IPv4 주소에 주의하자</p>
<p>우리가 putty 를 통해 해당 인스턴스의 서버로 접근하려면 .ppk 키파일과 그에 일치하는 ip 주소로 접근해야 하는데 그 주소가 저 퍼블릭 IPv4 주소이다.. </p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/fa477149-ded6-4a37-8a2f-b9439f831830/image.png" alt=""></p>
<p>putty 를 통해 위와 같이 접근이 가능한데</p>
<p>만약 인스턴스를 중지했다가 다시 시작햅보면 어떻게 될까?</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/f1de547f-8856-40c0-80a2-2726a17ca3e6/image.png" alt=""></p>
<p>위 화면은 인스턴스를 중지 후 시작한 화면이다 즉 이렇게 인스턴스를 껐다가 킬 때마다 퍼블릭 IP 주소가 바뀌는데 이는 나중에 번거로워질 수 있다. 그래서 제공되는 것이 Elastic IP 이다</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/eb0c3bbd-4cbb-4073-905c-b139d73471d9/image.png" alt=""></p>
<p>EC2 사이드 바에 네트워크 및 보안 &gt; 탄력적 IP 를 클릭하자</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/3d3f5613-7bfc-402b-8c8c-4c9e050ad328/image.png" alt=""></p>
<p>탄력적 IP 주소 할당 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/de2a8eed-3bf2-47d0-b376-4462d545b742/image.png" alt=""></p>
<p>변경 없이 ‘할당’ 버튼 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/b5375337-601b-4df2-9bb3-4ff2c4097650/image.png" alt=""></p>
<p>생성 완료</p>
<p>이제 이를 인스턴스와 연결을 시켜줘야만 IP 주소를 사용함으로써 과금의 늪에서 빠져나올 수 있다 이를 방치하면 돈이 나가므로 주의하자 </p>
<p>우선 해당 아이피 주소를 클릭 후</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/39c61937-a2ee-4472-8d14-e6c27142f7b8/image.png" alt=""></p>
<p>탄력적 IP 주소 연결 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/b9efbacb-cc24-4e7b-bd6f-e78d736ca17f/image.png" alt=""></p>
<p>인스턴스 선택 후 현재 실행 ( running ) 중인 인스턴스는 자동으로 옵션에 나오므로 선택</p>
<p>그 다음에 연결 버튼 클릭하면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/69df28c3-d513-4667-80b4-01e99f38fd7f/image.png" alt=""></p>
<p>이렇게 Elastic IP 주소가 리눅스 서버 인스턴스에 할당된 것을 볼 수 있다</p>
<p>자 이제 인스턴스를 중지 후 다시 시작하고 퍼블릭 IP 가 바뀌는지 확인해보자</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/2a70e2ee-2aeb-45af-82a7-2f60aac7e233/image.png" alt=""></p>
<p>우선 보면 알겠지만 퍼블릭 IPv4 주소가 Elastic IP 주소로 바뀐 것을 확인할 수 있다</p>
<p>이제 인스턴스를 중지하고 다시 확인해보면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/3e460e68-c309-4436-894a-577c99a7d3bc/image.png" alt=""></p>
<p>인스턴스가 중지되면 퍼블릭 IPv4 주소가 사라져야하는데 남아있다</p>
<p>이를 통해 이제 서버를 접속할 때 고정된 퍼블릭 IPv4 주소를 통해 접속 가능하게 됐다</p>
<h2 id="elastic-ip-를-해제하고-릴리스하여-과금의-늪에서-벗어나보자">Elastic IP 를 해제하고 릴리스하여 과금의 늪에서 벗어나보자</h2>
<p>우선 탄력적 IP 로 돌아와 본인이 해제하고자 하는 Elastic IP 를 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/5838816c-b87d-42c5-9bd7-350f61447422/image.png" alt=""></p>
<p>작업 버튼 누른 다음에</p>
<p>탄력적 IP 주소 연결 해제 버튼을 클릭하면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/a0386a77-9ef6-4b76-aa8c-5eb33df10750/image.png" alt=""></p>
<p>이런 화면이 나오는데 연결 해제 클릭</p>
<p>그리고 다시 작업 클릭 후 탄력적 IP 주소 릴리스 버튼 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/e9d40ea7-e745-44b7-a66c-603e2d08d7d4/image.png" alt=""></p>
<p>릴리스 버튼 누르면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/73a021d1-0c27-4797-b777-10035b2293a2/image.png" alt=""></p>
<p>과금 해방</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[AWS S3 를 이용한 정적 웹사이트 만들기]]></title>
            <link>https://velog.io/@inho-park/AWS-S3-%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%A0%95%EC%A0%81-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0</link>
            <guid>https://velog.io/@inho-park/AWS-S3-%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%A0%95%EC%A0%81-%EC%9B%B9%EC%82%AC%EC%9D%B4%ED%8A%B8-%EB%A7%8C%EB%93%A4%EA%B8%B0</guid>
            <pubDate>Mon, 10 Jul 2023 16:01:35 GMT</pubDate>
            <description><![CDATA[<p>오늘은 어제 만든 s3 버킷을 이용해서 웹 사이트를 호스팅하거나 요청을 리디렉션하는 방법을 알아보려고 한다</p>
<p>우선 s3 버킷 페이지로 들어온 후 원하는 버킷 이름을 선택</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/da3e94ab-3aaa-4015-b520-2bde6e1ac2ac/image.png" alt=""></p>
<p>그 후 속성 카테고리에 들어와 맨 아래까지 페이지를 내려보면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/eaa1683d-6c59-4329-a726-6ca9df8e169f/image.png" alt=""></p>
<p>정적 웹 사이트 호스팅이 비활성화되있는 것을 볼 수 있다</p>
<p>그럼 편집을 눌른 후 </p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/92bea906-5c79-42f7-84e0-91d766081baa/image.png" alt=""></p>
<p>비활성화를 활성화로 바꾼 후 </p>
<p>인덱스 문서에 index.html 입력한 다음 변경 사항 저장</p>
<p>권한 카테고리 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/ef763673-2f3a-42d7-a491-f7d30bf9ca89/image.png" alt=""></p>
<p>버킷 정책의 편집 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/bc112d6a-4d96-401d-9366-08398e6f1d05/image.png" alt=""></p>
<p>여기서 정책 생성기 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/30486b77-5da8-4f22-99ca-dde260a0e848/image.png" alt=""></p>
<p>그러면 위와 같은 화면이 나오는데 천천히 보면</p>
<ol>
<li>Select Policy Type 에서 S3 Bucket Policy 선택</li>
<li>Add Statement(s) 에서 Effect 에 Allow</li>
<li>Principal 에 *</li>
<li>AWS Service 는 그대로 두고</li>
<li>Actions 에 All Actions 체크박스 클릭</li>
<li>Amazon Resource Name (ARN) 에 아까 버킷 정책 편집에 나오는 ARN 소스를 붙여넣고 /* 추가하기 ( 예시  arn:aws:s3:::inho-bucket-0608/* )</li>
<li>위처럼 했으면 Add Statement 버튼 클릭</li>
</ol>
<p><img src="https://velog.velcdn.com/images/inho-park/post/7b71489f-3219-4a4b-8d64-32d55aaeaad9/image.png" alt=""></p>
<p>여기서 Generate Policy 클릭 하면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/07c45a34-64f4-4a4a-afb1-ac8b1609fda9/image.png" alt=""></p>
<p>이런 화면이 나오는데 이 JSON 파일을 복사해서</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/75338aca-5a0b-4868-9640-17680dd77084/image.png" alt=""></p>
<p>요기다가 이렇게 집어넣고 변경 사항 저장 클릭하면 정책 권한 끝</p>
<p>그 다음에 index.html 파일 하나 임시로 만들고</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/d5f43802-d080-4eac-80ad-e6cf29d814c6/image.png" alt=""></p>
<p>s3 에 사진 업로드했던 것처럼 똑같이 index.html 을 s3 에 업로드하기</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/dd797f7b-009a-4d9f-a8d0-d10d6a07c5ad/image.png" alt=""></p>
<p>그 후 버킷의 속성 카테고리 클릭 후 맨 아래로 내려보면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/679b2521-45e1-4b84-9b7a-389a56ee1c97/image.png" alt=""></p>
<p>이 화면이 보일텐데 여기서 하단 링크 복사해서 브라우저에 검색해보면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/0a275575-c596-49c8-9436-7d066a3b842f/image.png" alt=""></p>
<p>이렇게 화면이 출력되는 것을 볼 수 있다</p>
<h2 id="s3-버킷-삭제하기">S3 버킷 삭제하기</h2>
<p>S3 버킷은 삭제하기 전에 스토리지에 저장된 데이터들을 먼저 비워줘야한다</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/fb754079-eeae-4c84-9bbc-d41a45a4a1ba/image.png" alt=""></p>
<p>이렇게 전부 체크한 다음에 삭제 버튼을 누르면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/3f2027b5-f210-4d38-9558-f1c975e4d03b/image.png" alt=""></p>
<p>객체를 영구 삭제하시겠습니까? 라는 질문이 나오는데 여기에 ‘영구 삭제’ 라고 입력하면 하단의 ‘객체 삭제’ 버튼이 활성화되면서 삭제가 가능해진다</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/58d3c7f5-0b07-423d-a52e-de9cd89a3925/image.png" alt=""></p>
<p>다음에 S3 &gt; 버킷 페이지로 간 후에</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/dce92ab4-eca1-464e-8554-f3af8091f6d4/image.png" alt=""></p>
<p>파일들을 삭제한 버킷을 체크한 후에 삭제 버튼 클릭한 후</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/c131db9b-1caa-4260-9060-86dedbfb673f/image.png" alt=""></p>
<p>버킷 이름을 입력하면 버킷 삭제 버튼이 활성화되고 이 버튼을 클릭하면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/a10c43f2-109c-46ae-a44a-02afe5087883/image.png" alt=""></p>
<p>버킷 삭제까지 완료 = 더 이상 비용이 부과되지 않는 상태</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[AWS S3 ( Simple Storage Service ) 사용하기]]></title>
            <link>https://velog.io/@inho-park/AWS-S3-Simple-Storage-Service-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@inho-park/AWS-S3-Simple-Storage-Service-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0</guid>
            <pubDate>Fri, 02 Jun 2023 15:07:30 GMT</pubDate>
            <description><![CDATA[<h2 id="s3--simple-storage-service--란">S3 ( Simple Storage Service ) 란</h2>
<ul>
<li>아마존 웹 서비스에서 제공하는 온라인 저장 서비스</li>
<li>다른 서비스에 비해 개발자 친화적이라 사용 난이도가 있지만 가격이 저렴한 편</li>
</ul>
<h2 id="s3-활용-용도">S3 활용 용도</h2>
<ul>
<li>데이터 백업 : 데이터의 유실 가능성을 생각해서 데이터를 백업해 놓는데 S3 사용 가능</li>
<li>빅데이터 저장 : 데이터양이 너무 많아서 일반 하드 드라이브에 저장하기 힘든 규모일 경우, 이를 S3 에 저장할 수 있음</li>
<li>재해복구 : 특정 지역의 데이터 센터에 문제가 생길 경우 S3 에 저장해 놓은 데이터를 통해 복구 가능</li>
</ul>
<h2 id="aws-s3-사용하기">AWS S3 사용하기</h2>
<p>바로 본론으로 가보자</p>
<p>우선 AWS 로그인 한 후 검색 창에 s3 검색 후 들어오면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/d73b5211-8a44-4ef0-9149-55df0aa9f3ad/image.png" alt=""></p>
<p>이런 화면이 나오는데여기서 버킷 만들기 버튼 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/98323daa-8936-4815-9f1c-183348930b35/image.png" alt=""></p>
<p>후에 버킷 이름 작성하고 지역은 서울로 했다 ( 가까우면 무조건 유리하므로 )</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/89c13240-af67-4acd-b8d3-5cab442e34c6/image.png" alt=""></p>
<p>여기가 중요한데 이 버킷의 퍼블릭 엑세스 차단 설정이처음에는 모든 퍼블릭 엑세스 차단에 체크가 되어있을텐데 나는 이 버킷을 다른 모듈들로 엑세스하는 과정이 필요하기에 차단 해제해줬다 ( 본인의 상황에 맞게 사용하면 될 것 같다 ) </p>
<p>아 참고로 저기 경고 표시에 있는 체크 박스 읽어보고 체크해야만 차단 해제가 된다</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/610daf90-b55d-4a3b-9a0f-fb78b8979601/image.png" alt=""></p>
<p>나머지는 기본 값으로 두고 버킷 만들기 버튼 클릭</p>
<p>아 하나 짚고 넘어가자면 버킷 이름은 전역적으로 사용되기 때문에 기존에 있는 버킷 이름일 경우 바꿔줘야 한다</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/23c5d30e-c49c-4bcd-a01f-06744a20c9b0/image.png" alt=""></p>
<p>이렇게 성공적으로 만들어지면 버킷 이름을 클릭해보자</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/f4fd77cf-36fd-4294-bd85-346fbedd3be3/image.png" alt=""></p>
<p>여기서 업로드를 하여 내 사진을 클라우드 스토리지에 올릴 수 있다</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/05d85da4-ab54-4048-b36e-1ae3a2000552/image.png" alt=""></p>
<p>파일 추가를 통해 파일을 찾은 후 업로드를 누르면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/98c09bf9-7668-49ac-8272-4bf2f0edaba9/image.png" alt=""></p>
<p>이렇게 업로드가 되는 것을 확인할 수 있다</p>
<p>여기서 업로드된 파일 이름을 누르면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/084d005b-303c-4a2d-9873-2611429dda21/image.png" alt=""></p>
<p>위와 같은 페이지가 따로 생성되며 다양한 정보들을 보거나 작업 처리를 할 수 있다</p>
<p>폴더도 생성할 수 있고 파일을 삭제하는 과정도 되게 단순하니 한번 해보자</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[AWS Linux 서버 생성 및 putty 접속]]></title>
            <link>https://velog.io/@inho-park/AWS-Linux-%EC%84%9C%EB%B2%84-%EC%83%9D%EC%84%B1-%EB%B0%8F-putty-%EC%A0%91%EC%86%8D</link>
            <guid>https://velog.io/@inho-park/AWS-Linux-%EC%84%9C%EB%B2%84-%EC%83%9D%EC%84%B1-%EB%B0%8F-putty-%EC%A0%91%EC%86%8D</guid>
            <pubDate>Tue, 30 May 2023 16:21:19 GMT</pubDate>
            <description><![CDATA[<h2 id="cli--command-line-interface-">CLI ( Command Line Interface )</h2>
<p>터미널 환경을 통해서 컴퓨터와 상호작용하는 환경</p>
<h2 id="putty---ssh--secure-shell--접속-클라이언트-프로그램">putty - ssh ( secure shell ) 접속 클라이언트 프로그램</h2>
<p>리눅스 인스턴스에 접속하기 위해 ssh 접속이 필요</p>
<p>우선 바로 아마존 리눅스 인스턴스를 만들어보자</p>
<p>EC2 에서 인스턴스 시작 누른 다음에</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/305087f5-3f50-4a5c-aa14-769a3fb4c15f/image.png" alt=""></p>
<p>요렇게 아마존 리눅스를 클릭하고</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/52df93e0-8f31-4838-816d-d3c24648f700/image.png" alt=""></p>
<p>인스턴스 유형은 프리 티어 사용 가능한 t2.micro 로 하고 키 페어도 rsa 로 만들어준다 ( 이전에 한 방식과 동일 )</p>
<p>그 다음에 시작하면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/f68dc9fd-14c1-43dd-978a-3e94e30505d3/image.png" alt=""></p>
<p>요렇게 실행 중 화면이 나와야 한다</p>
<p>그 다음에 putty 를 설치해줘야 하는데
아래 링크로 들어간 다음
<a href="https://www.putty.org/">https://www.putty.org/</a></p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/5e4d767e-d434-4cdd-bb10-da14b2122545/image.png" alt=""></p>
<p>요기서 Download PuTTY 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/f497b3c6-47b2-4e27-b337-6d5c00126887/image.png" alt=""></p>
<p>그럼 요런 화면이 나오는데 여기서</p>
<p>putty-64bit-0-78-installer.msi 설치해준 후</p>
<p>installer 실행 후 본인이 원하는 로컬위치에 install 한 다음</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/5c25307d-ff71-47ab-9f10-c36cccb10cd3/image.png" alt=""></p>
<p>요렇게 PuTTY 앱이 깔리면 </p>
<p>PuTTYgen 도 같이 설치돼있을텐데 실행하자</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/a0a4c23f-280d-4d72-951b-cf93c5fe1fc6/image.png" alt=""></p>
<p>Load 누른 다음에 선택항목에 ppk 로 되있으면 All files 로 바꾼다음에 찾으면 pem 파일 경로를 볼 수 있다</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/8d41961f-7573-4fdf-b549-e8742f27f055/image.png" alt=""></p>
<p>요런 화면이 나오면 성공
이제 저기서 Save private key 를 클릭해주면 드디어 리눅스에서 사용할 수 있는 .ppk 키파일이 생성된다</p>
<p>이제 putty 를 실행하자</p>
<p>그 다음에 Connection → SSH → Auth → Credentials 로 들어와서 private-key file for authentication 에 ppk 파일 등록</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/14a0201a-d669-45dd-9963-537fc729571c/image.png" alt=""></p>
<p>다시 처음에 Session 으로 돌아간 후</p>
<p>Host Name 에 ec2-user@{ public IPv4 주소 } 입력하기</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/e76b193e-537a-4fb2-91d4-7cf8a9fe139a/image.png" alt=""></p>
<p>접속 성공 ( 나갈 때는 그냥 X 누르면 됨 )</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/273eedd9-bf24-448d-957e-bcf584e46011/image.png" alt=""></p>
<h2 id="linux-기본-명령어">Linux 기본 명령어</h2>
<ul>
<li>pwd ( print working directory ) : 현재 작업중인 경로 반환</li>
<li>cd ( change directory ) : 다른 경로로 현재 작업 경로를 변경</li>
<li>ls ( list segments ) : 현재 경로의 모든 파일 리스트를 반환</li>
<li>mkdir ( make directory ) : 현재 경로에 새로운 디렉토리 생성</li>
</ul>
<h2 id="vi--visual-editor-">vi ( visual editor )</h2>
<ul>
<li>i - insert mode 로 변경 ( 현재 커서 위치에 내용 추가 )</li>
<li>a - append mode 로 변경 ( 현재 커서 위치 한칸 뒤에 내용 추가 )</li>
<li>o - open line mode 로 변경 ( 현재 커서 한라인 아래에 내용 추가 )</li>
<li>esc - normal mode 로 변경 ( 수정 작업 불가 read only 상태 )</li>
<li>:w - 파일 저장하기</li>
<li>:q - 종료</li>
<li>:q! - 강제종료</li>
<li>:wq - 저장하고 닫기</li>
<li>:wq! - 강제로 덮어쓰고 종료</li>
<li>h - 좌</li>
<li>j - 하</li>
<li>k - 상</li>
<li>l - 우</li>
<li>상하좌우 방향키도 가능</li>
</ul>
<p>git-bash ( Bourne-again shell ) 를 공부하면서 겹친 명령어들이 많아 조금 신기했는데 Linux 환경에 기본적으로 bash 가 탑재된다고 한다</p>
<p>아무래도 AWS가 구글에 정보가 많은 것도 사실인데 내가 원하는 완벽한 사이클의 ec2 리눅스 서버 생성 방법을 간략히 정리하고 싶었다..나를 위해서 작성한 글이긴하나 다른 사람들에게도 이 글이 도움이 됐으면 좋겠다
개인적으로 윈도우 먼저 접속하고 나서 리눅스 접속하니까 불쾌감이 조금 오지만 그래도 익숙해져야겠다</p>
<p>그래도 학교에서 리눅스 강의 들으면서 터미널을 많이 써봐서 그런지 엄청 어려울 것 같진 않고 차근차근 알아봐야겠다</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[AWS EC2 사용하기]]></title>
            <link>https://velog.io/@inho-park/AWS-EC2-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0</link>
            <guid>https://velog.io/@inho-park/AWS-EC2-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0</guid>
            <pubDate>Fri, 26 May 2023 08:53:48 GMT</pubDate>
            <description><![CDATA[<p>회원 가입 후에 왼쪽 상단에 서비스 버튼 클릭 후 컴퓨팅 카테고리에서 ec2 를 클릭해보자
<img src="https://velog.velcdn.com/images/inho-park/post/51cb0375-8348-4f25-9f48-887faef521e6/image.png" alt=""></p>
<p>인스턴스(실행 중) 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/45356856-02cc-4558-a425-2cd421bfb9d0/image.png" alt=""></p>
<p>인스턴스 시작 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/32caa7f7-c9b6-4c65-9c66-a6a1e4137194/image.png" alt=""></p>
<p>가볍게 프리티어 사용 가능한 windows 서버로 만들어보자</p>
<p>인스턴스 유형은 프리티어 사용 가능한 t2.micro 로 만들었으며 key pair 도 입력해주고 생성하면 끝</p>
<p>key pair 로 생성하는 과정에서 .pem 파일, rdp 파일을 하나 다운로드할텐데 나중에 쓸 일 있으니 잘 챙기자</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/974f489b-ffe4-431c-93d7-a07c39b30c89/image.png" alt=""></p>
<p>해당 인스턴스의 아이디로 들어와보면 정보들이 쫙 나오는데 여기서 연결 버튼 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/0b6a7a15-4f96-4c2c-9a4d-d23b8f1db059/image.png" alt=""></p>
<p>여기서 원격 데스크톱 파일 다운로드 누르면 .rdp 파일 하나 받는데 열면 관리자 계정의 암호가 필요한데 그걸 아래 화면에서 구할 수 있음</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/2a9ebc7f-6ea3-41b4-824c-bb1e06e0cb39/image.png" alt=""></p>
<p>여기 프라이빗 키 파일 업로드에서 아까 다운로드한 .pem 파일 업로드하고 암호 해독 누르면
암호가 나오는데 그거 붙이고 실행하면</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/c0b31b0b-83a5-4d4b-a580-ba6b0c2484c3/image.png" alt=""></p>
<p>window 서버용 컴퓨터 프리티어로 빌리기 성공</p>
<p><br><br></p>
<h2 id="사용한-인스턴스-중지하기">사용한 인스턴스 중지하기</h2>
<p>위에 x표시 눌러서 세션 로그온을 종료한 다음</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/cde87efc-6712-41ca-bae3-7c516b1f86c9/image.png" alt=""></p>
<p>위 화면에서 원하는 인스턴스 체크박스에 체크 후 인스턴스 상태를 눌러서 인스턴스 중지 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/5dbf4710-8bc0-4cf2-bee2-0fdf046a89a1/image.png" alt=""></p>
<p>인스턴스 중지됨 = 서버용 컴퓨터 껐다고 보면됨 ( 원격 데스크톱 연결 해보면 막힐 거임 )
<br><br></p>
<h2 id="인스턴스-종료하기">인스턴스 종료하기</h2>
<p>왼쪽 상단에 메뉴바 누르고 Elastic Block Store 카테고리의 볼륨을 확인해보면 아래와 같은 화면을 확인할 수 있는데</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/0ccbfc41-5517-49b8-b90c-8828f1ac919c/image.png" alt=""></p>
<p>이는 인스턴스를 종료하지 않는 이상 계속 하드를 사용중이게 하므로 내가 사용할 수 있는 하드의 볼륨이 있는데 이 중 일부를 ec2 인스턴스를 유지하는데 사용 중이라고 생각하면 편할 것 같다</p>
<p>즉 이 서버용 컴퓨터가 더 이상 필요 없어졌는데 종료하지 않으면 내 볼륨만 차지하는 꼴인 셈</p>
<p>아까 인스턴스 중지하던 화면으로 돌아가서 인스턴스 종료 클릭</p>
<p><img src="https://velog.velcdn.com/images/inho-park/post/73f6e3f0-f4fb-4906-8383-bdfa21a48305/image.png" alt=""></p>
<p>이런 화면이 나오면서 인스턴스 상태에 종료됨 이 나오면 인스턴스로 받은 서버용 컴퓨터가 완전히 삭제 완료</p>
<p><br><br>
뭔가 oracle virtual machine 사용해서 리눅스 실습할 때랑 비슷한 느낌이 드는데 다음에는 putty 를 통해 Linux 서버 생성하는 과정을 올려보고자 한다</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[AWS EC2 (Elastic Compute Cloud)]]></title>
            <link>https://velog.io/@inho-park/AWS-EC2-Elastic-Compute-Cloud</link>
            <guid>https://velog.io/@inho-park/AWS-EC2-Elastic-Compute-Cloud</guid>
            <pubDate>Fri, 26 May 2023 08:46:04 GMT</pubDate>
            <description><![CDATA[<p>AWS를 비롯한 클라우드 서비스들의 주된 아이템으로 독립된 컴퓨팅 환경을 임대해 주는 서비스</p>
<h2 id="ec2--elastic-compute-cloud-">EC2 ( Elastic Compute Cloud )</h2>
<ul>
<li>아마존닷컴의 클라우드 컴퓨팅 플랫폼 아마존 웹 서비스의 중앙부를 이루며, 사용자가 가상 컴퓨터를 임대 받아 그 위에 컴퓨터 애플리케이션들을 실행</li>
<li>사용자가 AMI ( Amazon Machine Image ) 로 부팅하여 아마존이 ‘인스턴스’라 부르는 가상 머신을 원하는 소프트웨어를 포함하여 구성할 수 있게 웹 서비스를 제공 ⇒ 스케일링이 가능한 애플리케이션 배치 ( deployment ) 를 장려</li>
<li>서버 인스턴스를 만들고 시작, 종료할 수 있으며 탄력적인( elastic ) 서버 ( 사용 시간 비례 ) 사용 가능, EC2는 사용자에게 레이턴시 최적화와 높은 수준의 다중화를 허용하는 지리학적 인스턴스 위치에 대한 통제 기능 제공</li>
</ul>
<h2 id="ec2-인스턴스-유형">EC2 인스턴스 유형</h2>
<ul>
<li>범용 : m ~</li>
<li>컴퓨팅 최적화 : c ~</li>
<li>스토리지 최적화 : i ~</li>
<li>GPU 최적화 : g ~</li>
<li>메모리 최적화 : r ~</li>
</ul>
<h2 id="ebs--elastic-block-storage-">EBS ( Elastic Block Storage )</h2>
<ul>
<li>EC2 에 연결하는 Storage</li>
<li>서버에 연결하는 하드디스크 개념 ( 범용 SSD 형태인 gp2 타입이 대표적으로 사용됨 )</li>
</ul>
<p><br><br>
다음 포스팅에는 직접 ec2 를 사용하여 구현해보는 과정을 구현해보자</p>
]]></description>
        </item>
    </channel>
</rss>