<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>im_minji.log</title>
        <link>https://velog.io/</link>
        <description></description>
        <lastBuildDate>Fri, 22 Mar 2024 06:24:00 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <image>
            <title>im_minji.log</title>
            <url>https://velog.velcdn.com/images/im_minji/profile/989d9a0d-69d4-4980-8def-1a4961e7bb5b/social_profile.png</url>
            <link>https://velog.io/</link>
        </image>
        <copyright>Copyright (C) 2019. im_minji.log. All rights reserved.</copyright>
        <atom:link href="https://v2.velog.io/rss/im_minji" rel="self" type="application/rss+xml"/>
        <item>
            <title><![CDATA[Java스터디(3/24)]]></title>
            <link>https://velog.io/@im_minji/Java%EC%8A%A4%ED%84%B0%EB%94%942</link>
            <guid>https://velog.io/@im_minji/Java%EC%8A%A4%ED%84%B0%EB%94%942</guid>
            <pubDate>Fri, 22 Mar 2024 06:24:00 GMT</pubDate>
            <description><![CDATA[<h2 id="6강-접근제어자">6강 접근제어자</h2>
<h3 id="접근제어자">접근제어자</h3>
<p>&amp;nbsp자바에서 pulbic, private와 같은 접근 제어자를 사용하면 해당 클래스 외부에서 특정 필드나 메서드에 접근하는 것을 허용하거나 제한할 수 있다.</p>
<p>&amp;nbsp
<strong>접근제어자의 종류</strong></p>
<ul>
<li>private: 모든 외부 호출을 막는다.</li>
<li>default: 같은 패기지 안에서 호출은 허용한다.</li>
<li>protected: 같은 패키지 안에서 호출은 허용한다. 패키지가 달라도 상속 관계의 호출은 허용한다.</li>
<li>public: 모든 외부 호출을 허용한다.
<img src="https://velog.velcdn.com/images/im_minji/post/dd8f6fd6-f8ea-449e-a0cf-2eacf3bb0170/image.png" alt=""></li>
</ul>
<p>순서대로 private 이 가장 많이 차단하고, public 이 가장 많이 허용한다.
&amp;nbsp private -&gt; default -&gt; protected -&gt; public</p>
<p>&amp;nbsp</p>
<p>접근제어자가 필요한 이유!</p>
<blockquote>
<p>&amp;nbsp예를 들면 우리는 객체를 생성할 때 변수를 선언하곤 한다. 하지만 그 변수가 default나 public이라고 생각해보자.
 &amp;nbspA라는 개발자는 a라는 변수를 변경하기 위한 조건식 포함한 a-1메서드를 만들었다. 하지만 B라는 개발자는 a-1메서드를 사용하지 않고 변수 a에 직접 접근하여 a변수를 변경 시켜버렸다. 이 프로그램은 a-1조건식을 지키지 않으면 강제 종료시켜버린다. 
 B개발자가 a변수에 직접 접근하여 변수를 변경한 탓에 프로그램이 강제 종료되어 버렸다. 
&amp;nbsp이럴경우 우리는 a변수를 함부로 변경하지 못하도록 조치를 취해야 한다. 그럴때 사용하는 것이 <strong>접근 제어자</strong> 이다.</p>
</blockquote>
<p>&amp;nbsp</p>
<h3 id="접근-제어자-사용-위치">접근 제어자 사용 위치</h3>
<p>접근 제어자는 필드와 메서드, 생성자에 사용된다.</p>
<pre><code class="language-java">public class Speaker { //클래스 레벨
     private int volume; //필드

     public Speaker(int volume) {} //생성자

     public void volumeUp() {} //메서드
     public void volumeDown() {}
     public void showVolume() {}
}</code></pre>
<p>접근 제어자의 핵심은 <span style='background-color: yellow'><strong>속성</strong></span>과 <span style='background-color: yellow'><strong>기능</strong></span>을 <strong>외부로 부터 숨기는 것</strong>이다.</p>
<ul>
<li>private: 나의 클래스 안으로 속성과 기능을 숨길 때 사용, 외부 클래스에서 해당 기능을 호출할 수 없다.</li>
<li>default: 나의 패키지 안으로 속성과 기능을 숨길 때 사용, 외부 패키지에서 해당 기능을 호출할 수 없다.</li>
<li>protected: 상속 관계로 속성과 기능을 숨길 때 사용, 상속 관계가 아닌 곳에서 해당 기능을 호출할 수 없다.</li>
<li>public: 기능을 숨기지 않고 어디서든 호출할 수 있게 공개한다.</li>
</ul>
<p>&amp;nbsp</p>
<h3 id="접근-제어자-사용---필드-메서드">접근 제어자 사용 - 필드, 메서드</h3>
<pre><code class="language-java">package access.a;

public class AccessData {

    public int publicField;
    int defaultField;
    private int privateField;

    public void publicMethod() {
        System.out.println(&quot;publicMethod 호출&quot; + publicField);
    }

    void defaultMethod() {
        System.out.println(&quot;defaultMothod 호출&quot; + defaultField);
    }

    private void privateMethod() {
        System.out.println(&quot;privateMethod 호출&quot; + privateField);
    }

    public void innerAccess(){
        System.out.println(&quot;내부호출&quot;);
        publicField = 100;
        defaultField = 200;
        privateField = 300;
        publicMethod();
        defaultMethod();
        privateMethod();
    }
    //내부 호출일 경우는 AccseeData에 포함되어 있는 자신의 private필드와 메서드에 모두 
    접근 할 수 있다.
}</code></pre>
<p><code>마지막에 innerAccess() 가 있는데, 이 메서드는 내부 호출을 보여준다. 내부 호출은 자기 자신에게 접근하는 것이다. 따라서 private 을 포함한 모든 곳에 접근할 수 있다</code></p>
<p>외부에서 이 클래스에 접근해보았다.</p>
<pre><code class="language-java">package access.a;

public class AccessInnerMain {
    public static void main(String[] args) {

        AccessData data = new AccessData();

        data.publicField = 1;    
        data.publicMethod();
        // public은 같은 메서드 안에서 접근이 가능 하므로 필드 메서드 모두 접근이 가능했다.

        data.defaultField = 2;
        data.defaultMethod();
        //defalut는 같은 패키지에서 접근할 수 있다. 
        AccessInnerMain과 AccessData는 같은 패키지이지 때문에 default접근 제어자에 
        접근 할 수 있었다.

//        data.privateField = 3;
//        data.privatMethod();

        data.innerAccess();
        // private는 AccsccData내부에서만 접근 할 수 있다. 
         따라서 필드와 메서드 둘다 접근 불가다. 
         하지만 innerAccess()메서드는 public이기 때문에 외부에서 호출 할 수 있다.  
    }
}</code></pre>
<p>실행결과</p>
<pre><code class="language-java">publicMethod 호출 1
defaultMethod 호출 2
내부 호출
publicMethod 호출 100
defaultMethod 호출 200
privateMethod 호출 300</code></pre>
<p>&amp;nbsp 위의 경우는 <strong>같은 패키지</strong> 안에서 실행되었다 하지만 만약 다른 패키지에서 default접근 제어자의 변수나, 메서드에 접근하게 된다면 접근 할 수 없다. 당연히 private 접근 제어자의 경우도 접근 불가다.</p>
<p>&amp;nbsp 하지만 innerAccess의 경우는 public이기 때문에 접근 가능하고, 해당 메서드 안에서는 자신의 private필드와 메서드에 접근 가능하다.</p>
<p>&amp;nbsp</p>
<h3 id="접근-제어자-사용---클래스-레벨">접근 제어자 사용 - 클래스 레벨</h3>
<blockquote>
<p>클래스 레벨의 접근 제어자 규칙</p>
</blockquote>
<ul>
<li>클레스 레벨의 접근제어자는 public, default만 사용 가능하다.
&amp;nbsp ( private, protected는 사용할 수 없다. )</li>
<li>public 클래스는 반드시 파일명과 이름이 같아야 한다.<ul>
<li>하나의 자바 파일에 public클래스는 하나만 등장할 수 있다.</li>
<li>하나의 자바 파일에 default접근 제어자를 사용하는 클래스는 무한정 만들 수 있다.
<img src="https://velog.velcdn.com/images/im_minji/post/1a8625d9-2f19-4f61-9f52-b88aa16f0800/image.png" alt=""></li>
</ul>
</li>
</ul>
<p>&amp;nbsp</p>
<h3 id="캡슐화">캡슐화</h3>
<p><strong>캡슐화(Encapsulation)</strong>는 객체 지향 프로그래밍의 중요한 개념 중 하나다.
<strong>캡슐화(Encapsulation)</strong>는 데이터와 해당 데이터를 처리하는 메서드를 하나로 묶어서 외부에서의 접근을 제한하는 것을 말한다.
<strong>캡슐화(Encapsulation)</strong>를 통해 데이터의 직접적인 변경을 방지하거나 제한할 수 있다.</p>
<p><strong>캡슐화</strong>는 <span style='background-color: #fff5b1'>속성과 기능을 하나로 묶고, 외부에 꼭 필요한 기능만을 노출하고 나머지는 모두 내부로 숨기는 것이다</span></p>
<blockquote>
<p>숨겨야 하는 것과 노출해야 하는것?</p>
</blockquote>
<ul>
<li><strong>데이터를 숨겨라</strong>
객체에는 속성(데이터)과 기능(메서드)이 있다. 캡슐화에서 가장 필수로 숨겨야 하는 것은 <strong>속성(데이터)</strong>이다. 객체의 데이터는 객체가 제공하는 기능인 메서드를 통해서 접근해야 한다.</li>
<li><strong>기능을 숨겨라</strong>
객체의 기능 중에서 외부에서 사용하지 않고 내부에서만 사용하는 기능들이 있다. 이런 기능도 모두 감추는 것이 좋다. <strong>사용자 입장에서 꼭 필요한 기능만 외부에 노출하자.</strong> 나머지 기능은 모두 내부로 숨기자</li>
</ul>
<p><span style='background-color: #fff5b1'><strong>데이터는 모두 숨기고, 꼭 필요한 기능만 노출하는 것이 좋은 캡슐화이다.</strong></span></p>
<p>그래서 캡슐화를 해서 좋은점?!</p>
<ol>
<li>코드의 중복을 피할 수 있다.</li>
<li>객체에 대해 사용자가 알아야 할 지식의 양을 줄여준다.</li>
<li>외부에서의 조작으로 속성을 변경하는 일을 막을 수 있다.</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[Chapter 4. 스토리지 서비스]]></title>
            <link>https://velog.io/@im_minji/Chapter-4.-%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80-%EC%84%9C%EB%B9%84%EC%8A%A4</link>
            <guid>https://velog.io/@im_minji/Chapter-4.-%EC%8A%A4%ED%86%A0%EB%A6%AC%EC%A7%80-%EC%84%9C%EB%B9%84%EC%8A%A4</guid>
            <pubDate>Wed, 13 Dec 2023 04:26:22 GMT</pubDate>
            <description><![CDATA[<p> &amp;nbsp이번에는 AWS서비스 중 데이터 저장 장소인 스토리지 서비스에 대해 정리해 보려한다. AWS의 대표적인 스토리지 서비스에는 S3가 있다. S3서비스의 특징과 그 외의 스토리지 서비스에 대해 정리해 보겠다.</p>
<h2 id="🖥️amazon-s3는-데이터-저장-장소">🖥️Amazon S3는 데이터 저장 장소</h2>
<p> <code>Amazon S3(Simple Storage Service)란</code></p>
<h3 id="📖-객체스토리지">📖 객체스토리지</h3>
<p> <strong>Amazon Simple Storage Service(S3)</strong> : AWS에서 제공하는 객체 스토리지 서비스
 <strong>스토리지</strong> : 데리터를 저장하는 장소/ <strong>객체</strong> : 텍스트 파일이나 음성 파일 같은 데이터</p>
<p> <strong>객체 스토리지</strong> : 기존의 파일 스토리지 처럼 폴더 구조는 갖지 않고 객체 키로 데이터를 고유하게 식별해 데이터의 입출력과 관리를 수행. 키만으로 데이터를 관리하기 때문에 간편하게 대용량의 데이터를 저장하고 관리 할 수 있음.</p>
<h3 id="📖-s3의-특징">📖 S3의 특징</h3>
<ul>
<li><strong>용량 무제한</strong> : 객체당 5TB라는 제약이 있지만 객체 수나 데이터 용량에는 제한이 없다.</li>
<li><strong>높은 내구성</strong> : 일반적으로 데이터가 3개 이상의 AZ로 복사된다. 복사를 통해 데이터의 내구성을 높여주며 AWS에서는 99.999999%라는 높은 내구성 수치를 보여준다.</li>
<li><strong>저렴한 비용</strong> : 서울 리전의 표준 스토리지는 요금이 1개월당 0.025USD/GB다. 스토리지 클래스 변경을 통해 더욱 저렴한 요금으로 데이터를 저장할 수 있다.</li>
</ul>
<h3 id="📖-다른-서비스와-연계">📖 다른 서비스와 연계</h3>
<p>&amp;nbsp S3는 확장성과 내구성, 저렴한 비용이라는 큰 장점을 가지고 있어 AWS의 다른 서비서와 연계해서 사용하는 경우가 많다.</p>
<h2 id="🖥️-s3의-기본-용어-및-기본-조작">🖥️ S3의 기본 용어 및 기본 조작</h2>
<p><code>Amazon S3기본</code></p>
<h3 id="📖-s3에서-사용되는-중요-용어">📖 S3에서 사용되는 중요 용어</h3>
<ul>
<li><strong>버킷</strong> : 객체(데이터)를 저장하는 장소. 사용자는 버킷에 객체를 저장한다. 버킷의 이름은 전 세계(모든 리전)에서 고유해야 한다.</li>
<li><strong>객체</strong> : 버킷에 저장된 데이터의 본체. 버킷에는 객체를 무제한으로 저장할 수 있지만 한 객체의 최대 크기는 5TB를 넘을 수 없다.</li>
<li><strong>키</strong> : 객체의 저장 URL 경로이다. 버킷이름과 키이름, 객체 이름을 조합해 고유하게 설정된다. <h2 style='text-align:center'>://test-bucket/folder/object.txt</h2></li>
<li><blockquote>
<p>S3은 실제로는 폴더 구조가 아니지만 &#39;/&#39;라는 문자열을 구분자로 판단해 관리콘솔에는 폴더구조처럼 객체가 표시된다.</p>
</blockquote>
</li>
</ul>
<h3 id="📖-s3의-데이터를-브라우저나-프로그램에-조작">📖 S3의 데이터를 브라우저나 프로그램에 조작&#39;</h3>
<p> &amp;nbsp S3는 데이터를 등록하거날 삭제하는 API를 제공하므로 이를 호출해 S3의 객체를 조작할 수 있다. API는 조작을 받아들이는 창구와 같은 역할로 공통의 창구를 이용해 브라우저나 프로그램 등 다양한 곳에서 데이터를 조작할 수 있게 한다.</p>
<table>
  <tr>
    <td>GET</td>
    <td>S3에서 데이터(객체)를 다운로드</td>
  </tr>
  <tr>
    <td>PUT</td>
    <td>S3에 객체를업로드, 신규업로드, 갱신(업데이트)</BR>하나의 PUT작업은 최대 5GB까지이므로 더 많은 데이터를 업로드 하는 경우 <BR>멀티 파트 업로드 라는 기능을 이용해 여러 파트로 나눠 최대 5TB의 데이터를<BR> 업로드 할 수 있다.</td>
  </tr>
  <tr>
    <td>LIST</td>
    <td>S3브킷의 객체 목록을 표시. 데이터 추출도 가능</td>
  </tr>
  <tr>
    <td>COPY</td>
    <td>S3 내에서 객체를 복사. 다른 버킷과 리전 간에 복사 가능</td>
  </tr>
  <tr>
    <td>DELETE</td>
    <td>S3 내에 있는 임의의 객체를 삭제
    </td>
  </tr>
</table>

<h2 id="🖥️-s3-데이터를-적절하게-저장">🖥️ S3 데이터를 적절하게 저장</h2>
<p><code>Amazon S3 수명 주기 및 백업</code></p>
<h3 id="📖-사용하지-않는-객체는-저렴하게-저장">📖 사용하지 않는 객체는 저렴하게 저장</h3>
<table>
<thead>
<tr>
<th align="left">스토리지 클래스</th>
<th align="left">특징</th>
<th align="left">저장 AZ</th>
<th align="center">가용성</th>
</tr>
</thead>
<tbody><tr>
<td align="left">S3 Standard(표준)</td>
<td align="left">기본 스토리지</td>
<td align="left">3개이상</td>
<td align="center">99.99%</td>
</tr>
<tr>
<td align="left">S3 Intelligent-Tiering</td>
<td align="left">접근 빈도에 따라 4개의 접근 계층으로 자동으로 나눠 비용<br>절감.</td>
<td align="left">3개이상</td>
<td align="center">99.90%</td>
</tr>
<tr>
<td align="left">S3 Standard-IA</td>
<td align="left">표준보다 저렴하지만 데이터 검색 용량에 대한 요금 부과</td>
<td align="left">3개이상</td>
<td align="center">99.90%</td>
</tr>
<tr>
<td align="left">S3 One Zone-IA</td>
<td align="left">1AZ에만 데이터를 저장. 데이터 검색에 요금 발생</td>
<td align="left">1개</td>
<td align="center">99.50%</td>
</tr>
<tr>
<td align="left">S3 Glacier Instant Retrieval</td>
<td align="left">보존은 One ZONE-IA보다 저렴하지만 꺼내는 비용이 많이든다.</td>
<td align="left">3개이상</td>
<td align="center">99.90%</td>
</tr>
<tr>
<td align="left">S3 Glacier Fletible<br>Retrieval</td>
<td align="left">보존은 S3 Glacier Instant Retrieval보다 저렴하지만<br>꺼내는 비용이 발생하고 시간이 걸린다.(수분 또는 몇시간)</td>
<td align="left">3개이상</td>
<td align="center">99.99%</td>
</tr>
<tr>
<td align="left">S3 Glancier<br>Deep Archive</td>
<td align="left">S3 Glacier보다도 저렴하지만 꺼내는 데 많은 시간(반나절<br>이상)이 걸린다.</td>
<td align="left">3개이상</td>
<td align="center">99.99%</td>
</tr>
</tbody></table>
<p>- 거의 사용하지 않지만, 만약을 위해 보존하고 시픈 데이터가 있다면 S3 Glacier Deep Archive와 같은 저렴한 스토리지 클래스를 선택하는 것이 좋음.
- 언제든지 사용할 수 있어야 하는 데이터를 저장하려면 표준(STANDARD)을 선택.</p>
<p><strong>수명 주기 설정</strong> : 자동 스토리지 클래스 변경
<strong>S3용 액세스 분석기</strong> : 얼마나 접근이 있었는지 데이터의 접근 상황을 확인. </p>
<h3 id="📖-버전-관리-및-다른-리전으로-복사">📖 버전 관리 및 다른 리전으로 복사</h3>
<p>S3상의 데이터는 3곳 이상으로 복사되므로 AWS로 인해 데이터가 손실되는 경우는 거의 없다. 하지만 사용자의 실수로 데이터를 삭제하거나 의도하지 않은 데이터 변경 가능성이 있다. </p>
<p>S3의 <strong>버전 관리 기능</strong>을 활성화 하면 모든 세대의 객체에 대한 이력정보가 보존된다.</p>
<p><strong>교차 리전 복제</strong> : 해외 리전에 데이터를 복사하는 기능
<strong>재해복구</strong> : 시스템을 구축할 때 가용성을 위해 하나의 리전 전체가 재해를 당한 경우를 가정해 설계하는 경우</p>
<h2 id="🖥️-s3데이터를-안전하게-공개">🖥️ S3데이터를 안전하게 공개</h2>
<p><code>Amazon S3의 외부 공개 및 접근 제어</code></p>
<h3 id="📖-s3-버킷에-대한-접근-제어">📖 S3 버킷에 대한 접근 제어</h3>
<p>S3 버킷에는 개인 정보와 같은 중요한 정보도 저장될 수 있으므로 허가받은 사람이 허가받은 객체에 올바르게 접근할 수 있도록 <strong>접근제어</strong>를 하는 것이 중요하다.</p>
<p>S3 버킷의 접근제어 방법</p>
<ul>
<li>사용자 정책(IAM정책) : 데이터를 조작하는 쪽을 제어하는 설정.&#39;A는 S3 버킷의 데이터 검색만 가능하고 업로드는 불가&#39;라는 식으로 사용자에 대한 권한을 설정</li>
<li>접근 제어 목록(ACL) : 객체(데이터) 또는 버킷 단위로 설정할 수 있는 접근 제어다. &#39;데이터 A는 AWS계정 X에 접근 허용&#39;, &#39;데이터 B는 모든 사용자에게 접근 허용&#39;과 같이 데이터별로 상세한 설정을 할 수 있다.</li>
<li>버킷설정 : 버킷 단위로 설정하는 접근 제어다. 버킷 단위라고 해도 &#39;파일 이름이 logs로 시작하는 데이터에 접근 허용&#39;, &#39;IP 주소 xx.xx.xx.xx로부터 저금 허가&#39;와 같이 복잡한 설정을 할 수 있따. 설정은 JSON형식으로 기재한다.</li>
</ul>
<p>-&gt; S3에는 <strong>퍼블릭 액세스 차단</strong>이라는 기능이 있어 의도치 낳게 S3버킷이나 객체가 공개 상태가 되는 것을 방지할 수 있다.</p>
<h3 id="📖-s3를-이용해-웹-사이트-구축">📖 S3를 이용해 웹 사이트 구축</h3>
<p>S3의 웹사이트 호스팅 기능을 활성화 하면 &#39;http://버킷이름.s3-website-리전이름.amazon.com&#39;이라는 URL이 만들어지고, 브라우저에서 해당 URL로 접속 할 수 있다. 버킷 정책이나 객체단위의 ACL을 이용해 특정 사용자만 콘텐츠에 접근하게 제어할 수 있다.</p>
<p>민감한 정보가 포함된 사이트를 운영해야하는 경우 콘텐츠 전송 네트워크(CDN) 서비스인 Amazon CloudFront를 함께 사용해 HTTPS통신을 할 수 있게 구성한다.</p>
<h3 id="📖-데이터-암호화">📖 데이터 암호화</h3>
<p>&amp;nbsp<strong>데이터 암호화</strong>를 실시하면 데이터와 키 데이터를 조함해 데이터 내용을 타인이 볼 수 없게 한다. 
&amp;nbsp&amp;nbsp S3에서는 버킷의 기본 암호화 기능을 활성화 하면 객체를 저장할 때 AWS에서 자동으로 암호화를 수행한다. </p>
<h2 id="🖥️-가상-서버-데이터-저장을-위한-ebs">🖥️ 가상 서버 데이터 저장을 위한 EBS</h2>
<p><code>Amazon EC2 스토리지(EBS) 및 백업</code></p>
<h3 id="📖-서버-데이터를-저장하는-ebs">📖 서버 데이터를 저장하는 EBS</h3>
<p>Amazon Elastic Block Store(EBS)는 EC2와 함께 사용하는 스토리지 서비스이다. EC2의 HDD/SSD와 같은 역할을 하며 EC2에서 실행되는 응용 프로그램의 데이터, 로그 ,설정 정보 등을 저장하는 데 주로 사용한다.
-&gt; EC2 인스턴스를 생성할 때 기본적으로 하나의 EBS가 연결되며 추가 연결도 가능하다.</p>
<p>EBS에서는 필요한 속도에 따라 볼륨 유형을 선택할 수 있다.</p>
<table>
<thead>
<tr>
<th align="left">볼륨 유형</th>
<th align="left">개요</th>
</tr>
</thead>
<tbody><tr>
<td align="left">범용 SSD (gp2, gp3)</td>
<td align="left">균형 잡힌 범용 타입으로 일반적인 용도로 사용</td>
</tr>
<tr>
<td align="left">프로비저닝된 IOPS SSD<br>(io1,io2,io2 Block Express)</td>
<td align="left">고성능 스토리지가 필요한 경우 사용. 필요한 IOPS를 사용자 지정 가능</td>
</tr>
<tr>
<td align="left">처리량 최적화 HDD(st1)</td>
<td align="left">저비용 마그네틱 스토리지</td>
</tr>
<tr>
<td align="left">Cold HDD(sc1)</td>
<td align="left">st1보다 훨씬 저렴한 비용의 마그네틱 스토리지. 접근 빈도가 낮을 때 사용</td>
</tr>
</tbody></table>
<h3 id="📖-서버-백업-및-이미지-관리">📖 서버 백업 및 이미지 관리</h3>
<p>EBS도 장애가 발생해 데이터가 파손되거나 실수로 데이터르 삭제하는 등의 사고를 방지하기 위해 스냅숏 이라는 백업 기능 지원. 스냅숏에는 스냅숏을 만들 당시 EBS에 보존하고 있떤 모든 정보가 백업된다.</p>
<ul>
<li>EBS 보륨ㅇ으로 복수해 EC2에 다시 연결해 사용할 수 있고, 스냅숏과 몇 가지 설정 정보를 조합해 사용핮 전용 AMI를 생성할 수 있다.</li>
</ul>
<h2 id="🖥️-데이터-공유-백업-및-전송을-위한-서비스">🖥️ 데이터 공유, 백업 및 전송을 위한 서비스</h2>
<p><code>기타 스토리지 서비스</code></p>
<h3 id="📖-amazon-elastic-file-system">📖 Amazon Elastic File System</h3>
<p>EFS는 비교적 고속으로 데이터를 전송할 수 있는 NFS(Network File System)라는 프로토콜을 이용해 여러 EC2인스턴스가 함께 이용할 수 있는는 스토리지다.</p>
<ul>
<li>일반적인 NFS프로토콜을 사용하기 때문에 ACL 설정만 잘 돼 있다면 온프레미스 서버나 로컬 PC에서도 마운트 해서 사용할 수 있다.</li>
</ul>
<h3 id="📖-amazon-fsx">📖 Amazon FSx</h3>
<p><strong>Amazon FSx(FSx)</strong> : 파일 서버를구축하기 위한 서비스
<strong>Amazon FSx for Windows File Server</strong> : 주로 윈도우에서 사용되는 파일 공유 프로토콜인 SMB(Server Message Block)를 이용하는 서버
<strong>Amazon FSx for Lustre</strong> : 대규모 클러스터 컴퓨팅, 슈퍼컴퓨터 등에서 사용되는 Lustre라는 고성능 파일 시스템을 이용하는 Amazon FSx for Lustre.</p>
<p>-&gt; SMB는 윈도우 뿐만 아니라 리눅스 및 맥OS도 지원하므로 다른 OS에서도 공유 파일서버를 이용하고 싶다면 Amazon FSx for Windows File Server를 선택지로 할 수 있다.</p>
<p><strong>AWS Stroage Gateway(Stroage Gateway)</strong>는 온프레미스에 서버 기기 혹은 가상 서버에 설치ㅇ해서 온프레미스 기기와 AWS의 S3, FSx, EBS를 직접 연결하는 서비스.</p>
<h3 id="📖-aws-transfer-family">📖 AWS Transfer Family</h3>
<p><strong>AWS Transfer Family</strong> : SFTP(Secure File Transfer Protocol),FTP(File Transfer Protocol)와 같은 FTP 기반 프로토콜을 통신하기 위한 서버를 구축하는 서비스.</p>
<h3 id="📖-aws-backup">📖 AWS Backup</h3>
<p>AWS Backup은 AWS의 EBS, EFS, FSx와 같은 스토리지, RDS나 DynamoDB와 같은 데이터베이스의 데이터를 백업하는 서비스.</p>
<h3 id="aws-datasync">AWS DataSync</h3>
<p>AWS DataSync는 온프레미스와 AWS 혹은 AWS 스토리지 서비스 간 데이터 전송을 위한 서비스.
(통신 암호화 기능, 전송한 데이터의 무결성 체크 기능)</p>
<h3 id="aws-snow-family">AWS Snow Family</h3>
<p>데이터 전송을 최대한 빨리하기 위한 서비스
<strong>Snow Family</strong> : 물리 스토리지를 AWS에서 빌려 거기에 데이터를 저장하고 AWS로 반환하면 해당 데이터를 직접 AWS 내의 스토리지에 옮겨주는 서비스.
(최대 100PB(페타바이트. 1PB=1024TB)의 데이터를 몇 주만에 전송할 수 있다.)</p>
<ul>
<li>AWS Snow Family는 3가지 용량의 스토리지가 준비돼 있어 용도에 따라 선택할 수 있다.</li>
<li><strong>AWS Snowmobile</strong>은 14m길이의 트레일러에 적재된 대량의 스토리지에 100PB의 데이터를 저장해 수송할 수 있다. 중요한 데이터이므로 GPS추적과 24시간 촬영하는 감시 카메라를 설치하는 등 보안도 철저히 제공한다.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Chapter5. 네트워크 및 콘텐츠 전송 서비스 (1)]]></title>
            <link>https://velog.io/@im_minji/Chapter5.-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EB%B0%8F-%EC%BD%98%ED%85%90%EC%B8%A0-%EC%A0%84%EC%86%A1-%EC%84%9C%EB%B9%84%EC%8A%A4</link>
            <guid>https://velog.io/@im_minji/Chapter5.-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EB%B0%8F-%EC%BD%98%ED%85%90%EC%B8%A0-%EC%A0%84%EC%86%A1-%EC%84%9C%EB%B9%84%EC%8A%A4</guid>
            <pubDate>Thu, 07 Dec 2023 06:15:43 GMT</pubDate>
            <description><![CDATA[<p>&amp;nbsp AWS구조와 서비스 책을 읽고 정리해본 내용이다. 5장에서는 VPC와 관련된 네트워크 서비스에 대해 설명하고 있다. 내용이 많아 2개의 Part로 나눠 정리하겠다.
<br></p>
<h2 id="🖥️-네트워크-중요용어-익히기">🖥️ 네트워크 중요용어 익히기</h2>
<h3 id="📖ip주소address는-네트워크의-번지주소">📖IP주소(Address)는 네트워크의 번지(주소)</h3>
<p><code>IP주소</code> :웹 서버에 접근하기 위해 웹서버가 그곳에 있다는 특정 정보
-&gt; 웹 서버뿐만 아니라 pc, 스마트폰 등 네트워크가 연결된 모든 장치에는 IP주소가 할당된다. &amp;nbsp 일반적으로 IPv4가 표준으로 사용된다. (IPv6도 존재.)</p>
<h3 id="📖퍼블릭-ip-주소와-프라이빗-ip주소">📖퍼블릭 IP 주소와 프라이빗 IP주소</h3>
<p>IP주소는 두 가지로 구분된다.</p>
<p><code>퍼블릭 IP주소</code> : 한국 또는 전 세계에서 &#39;이 주소는 인터넷에서 이곳&#39;이라고 특정할 수 있는 주소.
<code>프라이빗 IP주소</code> : 닫힌 네트워크내에서만 식별할 수 있는 IP주소. (사설 IP라고도 함) 
-&gt; 프라이빗 IP주소로 사용 할 수 있는 범위는 다음과 같다</p>
<blockquote>
<p>10.0.0.0 ~ 10.255.255.255(10.0.0/8)
172.16.0.0 ~ 172.31.255.255(172.13.0.0/12)
192.168.0.0 ~  192.168.255.255(192.168.0.0/16)</p>
</blockquote>
<p>위의 주소를 제외한 나머지 주소는 퍼블릭 IP주소이다.</p>
<h3 id="📖cidr-블록으로-ip-주소-범위-결정">📖CIDR 블록으로 IP 주소 범위 결정</h3>
<p><code>CIDR 블록</code> : IP주소를 이용해 네트워크 범위를 정의하는 것</p>
<p>IP 주소를 나타내는 숫자열을 크게 <span style='background-color:#f7ddbe'><strong>네트워크</strong></span>부분과 <span style='background-color:#f7ddbe'><strong>호스트</strong></span>부분으로 나뉜다.</p>
<h1 style='text-align:center'>172 . 31 . 0 . 0 / 16</h1>
<h5 style='text-align:center'>10101100 . 00011111 . 00000000 . 00000000&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp&nbsp</h5>

<ul>
<li>Amazon VPC 기본 VPC의 CIDR블록이다.<br></li>
<li>서브넷 마스크는 2진수로 표기 한다.<br></li>
<li>/16 부분은 &#39;서브넷 마스크&#39;를 나타낸다. (10진수로 표기)</li>
<li>앞의 두 숫자는 네트워크 부분이다.</li>
<li>3번째로 오는 숫자는 호스트에 해당한다. 여기서는 0이 호스트이다.</li>
</ul>
<blockquote>
<p>172.31.0.0(호스트 부분이 모두 0인 주소)은 네트워크 주소, 172.31.255.255(호스트 부분이 모두 1인 주소)는 브로드캐스트 주소 라는 특별한 주소로, 할당이 불가능한 주소이다.
모든 네트워크에는 네트워크 주소와 브로드 캐스트 주소가 있으므로 할당 할 수 있는 주소 수는 &#39;네트워크 총 주소 수 - 2&#39;개다.</p>
</blockquote>
<h3 id="📖방화벽에서-허용된-통신만-통과">📖방화벽에서 허용된 통신만 통과</h3>
<p><code>방화벽</code> : 보안 위협으로부터 시스템을 지키기 위해 사용하는 것.
-&gt; AWS에서는 보안 그룹이나 네트워크 ACL같은 방화벽 기능을 가진 서비스가 있다.</p>
<h3 id="📖부하-분산을-위해-여러-서버에-접속을-분배">📖부하 분산을 위해 여러 서버에 접속을 분배</h3>
<p>&amp;nbsp&amp;nbsp시스템을 사용하는 사용자가 많아질수록 서버의 부담이 커지기 때문에 <strong>부하분산</strong>을 고려해야 한다.
&amp;nbsp&amp;nbsp서버가 느려지거나 멈추는 상황을 막기 위해 서버를 여러 대 구성하여 각 서버가 처리를 나워서 할 수 있게 구축을 해야하는데 부하를 분산시키기 위해 일반적으로 <span style='background-color:#f7ddbe'>로드 밸런서(Load Balancer)</span>라는 장치를 사용한다.</p>
<p><code>웹 서버를 이중화하여 &#39;로드밸런서&#39;를 이용하면 서버 한대가 정지된 경우에도 다른 서버가 계속 실행되므로 시스템 전체적으로는 문제없이 서비스를 제공 할 수있다.</code></p>
<h3 id="📖라우팅-및-라우팅-테이블">📖라우팅 및 라우팅 테이블</h3>
<p><code>라우팅</code> : 라우터가 IP주소까지 경로는 결정하는 것
<code>라우팅 테이블</code> : 경로의 정보 (AWS의 Amazon VPC의 라우팅 테이블 기능이 존재한다.)</p>
<br>
<br>

<h2 id="🖥️amazon-vpc로-가상-네트워크-만들기">🖥️Amazon VPC로 가상 네트워크 만들기</h2>
<h3 id="📖가상-네트워크-amazon-vpc">📖가상 네트워크 Amazon VPC</h3>
<p><code>Amazon Virtual Private Cloud (VPC)</code> : AWS에서 생성할 수 있는 프라이빗 가상 네트워크 공간이다. 이 네트워크에 EC2와 같은 AWS자원을 배치해 이용한다.</p>
<p>&amp;nbsp&amp;nbsp• VPC를 만들 때 CIDR블록(IP주소 범위)을 지정하고 지정한 CIDR블록 네트워크를 &amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp확보한다.
&amp;nbsp&amp;nbsp&amp;nbsp• VPC는 일반적으로 프라이빗 IP주소를 사용한다.
&amp;nbsp&amp;nbsp&amp;nbsp• 접속할 네트워크와 VPC의 CIDR블록이 중복되지 않게 주의한다.
&amp;nbsp&amp;nbsp&amp;nbsp• 호스트의  주소는 여유를 갖도록 가능한 한 많이 확보해 두는 것이 좋다.</p>
<h3 id="📖vpc-및-서브넷-생성">📖VPC 및 서브넷 생성</h3>
<p>VPC는 관리콘솔을 통해 생성할 수 있는데 화면에서 4가지 항목을 설정해야 한다.</p>
<ul>
<li>VPC이름(Name 태그)</li>
<li>CIDR 블록</li>
<li>IPv6 설정</li>
<li>테넌시(전용 하드웨어 사용 여부) : 라이선스 및 보안 요구 사항으로 하드웨어를 독점하려는 경우에만 독점 옵션을 지정한다.</li>
</ul>
<blockquote>
<p> ✏️ VPC만으로는 EC2와 같은 자원을 네트워크에 만들 수 없기 때문에 VPC안에 더 작은 네트워크 단위인 서브넷을 만들어야 한다.</p>
</blockquote>
<p> &quot; 서브넷은 하나의 AZ에 속해야 한다. &quot;<br>&amp;nbsp&amp;nbsp&amp;nbsp - 여러 AZ에 자원을 배치해 가용성을 높이려면 서브넷도 여러 개 만들어야 한다.</p>
<br>
<br>

<h2 id="🖥️amazon-vpc의-주용-기능-사용법">🖥️Amazon VPC의 주용 기능 사용법</h2>
<h3 id="📖라우팅-정보를-설정해-인터넷과-통신">📖라우팅 정보를 설정해 인터넷과 통신</h3>
<p><code>라우팅 테이블</code> : 네트워크의 경로 정보. </p>
<ul>
<li>VPC를 만들 때 기본적으로 하나의 라우팅 테이블이 만들어 진다.<ul>
<li>기본 상태에서는 VPC내의 라우팅 정보만 있으므로 VPC외부로의 통신 X</li>
<li>외부와 통신하려는 경우에는 외부 라우팅정보를 추가 해야한다.</li>
</ul>
</li>
</ul>
<p><code>인터넷 게이트웨이</code> : 서브넷 안에 있는 EC2와 같은 자원이 인터넷과 통신 할 수 있게 하기 위한 기능. 인터넷 게이트웨이를 생성하고 서브넷의 라우팅 테이블에 설정하면 인터넷과 VPC가 서로 통신할 수 있게된다.</p>
<ul>
<li>퍼블릭 서브넷 : 인터넷 게이트웨이로 가는 경로가 설정된 서브넷</li>
<li>프라이빗 서브넷 : 인터넷 게이트웨이를 통해 인터넷과 통신할 수 없는 서브넷</li>
</ul>
<h3 id="📖nat-게이트웨이">📖NAT 게이트웨이</h3>
<p><code>NAT 게이트웨이</code> : 프라이빗 서브넷에 있는 EC2와 같은 자원은 일반적으로 인터넷과 통신할 수 없는데 인터넷과 통신을 해야하는 경우 사용하는 것이다.</p>
<ul>
<li>인터넷 게이트웨이와 달리 인터넷에서 VPC로 통신할 수 없는 단방향 통신이므로 AWS 외부와 더 안전하게 통신할 수 있다.</li>
<li>외부 통신을 수행하는 서브넷의 라우팅 테이블에 경로 정보(라우팅 정보)를 등록해야한다.</li>
<li>VPC내에 퍼블릭 서브넷이 존재해야만 NAT게이트웨이를 사용할 수 있다.</li>
</ul>
<h3 id="📖vpc-접근-제어-및-통신-로그-확인">📖VPC 접근 제어 및 통신 로그 확인</h3>
<p>VPC에는 서브넷 단위로 접근 제어를 설정할 수 있는 네트워크 접근 제어 목록(네트워크 ACL)이라는 기능이 있다. 이 기능은 <strong>보안그룹</strong>과 조합해 접근 제어 설정이 가능한데 보안그룹과의 차이는 다음과 같다.</p>
<table>
<thead>
<tr>
<th align="center"></th>
<th align="center">네트워크 ACL</th>
<th align="center">보안그룹</th>
</tr>
</thead>
<tbody><tr>
<td align="center">설정단위</td>
<td align="center">서브넷 단위로 설정</td>
<td align="center">인스턴스(자원) 단위로 설정</td>
</tr>
<tr>
<td align="center">허용/거부 설정</td>
<td align="center">허용 및 거부 설정 가능</td>
<td align="center">허용만 설정 가능<br>(허용하지 않은 모든 것은 거부)</td>
</tr>
<tr>
<td align="center">상태 저장 여부</td>
<td align="center">상태 비저장(stateless),<br> 단일 패킷만 확인하므로 정보를 저장하지 않음</td>
<td align="center">상태저장(stateful),<br>패킷과 관련된 세션까지 확인하므로 정보를 저장</td>
</tr>
<tr>
<td align="center">규칙 우선 순위</td>
<td align="center">등록된 규칙의 번호순로 트래픽 허용 및 거부</td>
<td align="center">등록된 모든 규칙을 평가해 트래픽 허용</td>
</tr>
</tbody></table>
<ul>
<li>기본 설정 상태에서 네트워크 ACL은 모든 통신을 허용함.</li>
<li>서브넷 전체에서 네트워크 접근을 설정하려는 경우 보안 그룹에서 추가 설정을 할 수 있다.</li>
<li>네트워크 ACL이나 보안 그룹에서 허용되거나 거부된 통신 상황은 VPC흐름 로그라고 하는 VPC 내의 IP트래픽 상황을 로그로 저장할 수 있는 기능을 사용해 확인할 수 있다.<br>
<br>

</li>
</ul>
<h2 id="🖥️vpc에서-vpc-외부-서비스-온프레미스와의-연결">🖥️VPC에서 VPC, 외부 서비스, 온프레미스와의 연결</h2>
<h3 id="📖vpc와-외부-네트워크-연결">📖VPC와 외부 네트워크 연결</h3>
<p><code>VPC피어링</code> : 서로 다른 두 개의 VPC를 연결해 통신 할 수 있다. 피어링은 두 개의 VPC간에 수행되기 때문에 세 개의 VPC가 서로 통신하는 경우 각 VPC끼리 따로 피어링을 구성해야한다.</p>
<p><code>AWS Transit Gateway</code> : VPC 연결을 하나의 중앙 허브에서 관리할 수 있다. VPN과 같이 온프레미스 환경과의 연결에도 사용할 수 있으므로 <strong>AWS네트워크 연결을 중앙에서 관리</strong> 할 수 있다. (많은 VPC를 사용해야한다면 사용하는 것이 좋다.)</p>
<h3 id="📖vpc와-vpc-외-aws서비스를-연결">📖VPC와 VPC 외 AWS서비스를 연결</h3>
<p><code>VPC 엔드포인트</code> : 프라이빗 네트워크로 통신하게 할 수있는 기능. VPC엔드포인트를 설정한 VPC는 VPC엔드포인트를 통해 S3과 같은 다른 AWS서비스에 직접 접근 할 수 있다.
<code>게이트웨이 엔드포인트</code> : S3나 DynamoDB에서 사용하는 VPC 엔드포인트를 말하며 AWS서비스와의 통신은 퍼블릭 IP를 이용한다.
<code>인터페이스 엔드포인트</code> : AWS PrivateLink라는 기능 사용해 서브넷에 서비스 접속용 ENI(네트워크 인터페이스)를 생성해 프라이빗 IP로 통신한다.</p>
<h3 id="📖vpc와-온프레미스-네트워크-연결">📖VPC와 온프레미스 네트워크 연결</h3>
<p><code>AWS Site-to-Site VPN</code> : 온프레미스 환경의 네트워크와 VPC를 VPN으로 연결하는 기능이다. VPN에 접속하면 외부 네트워크와 프라이빗 IP 주소로 통신할 수 있다.</p>
<p><code>AWS Client VPN</code> : 온프레미스 환경의 단말(PC)와 VPN을 연결하는 기능. 온프레미스 환경 전체가 아니라 특정 단말과 비공개로 연결하고 싶은 경우</p>
<p><code>AWS Direct Connect</code> : 전용선으로 연결하는 기능
<BR>
<BR></p>
<h2 id="🖥️-다른-aws-서비스와-결합된-구성-예">🖥️ 다른 AWS 서비스와 결합된 구성 예</h2>
<h3 id="📖vpc-구성-예">📖VPC 구성 예</h3>
<ul>
<li>AWS서비스는 실행 위치에 따라 세가지 유형으로 나뉜다.</li>
</ul>
<ol>
<li>글로벌 서비스 : 특정 리전에 의존하지 않고 실행되는 서비스 </li>
<li>리전 서비스 : 리전 내 VPC외부에서 실행되는 서비스</li>
<li>AZ 서비스 : VPC내에서 실행되는 서비스</li>
</ol>
]]></description>
        </item>
        <item>
            <title><![CDATA[Chapter3. 컴퓨팅 서비스 (2)]]></title>
            <link>https://velog.io/@im_minji/Chapter3.-%EC%BB%B4%ED%93%A8%ED%8C%85-%EC%84%9C%EB%B9%84%EC%8A%A4-2</link>
            <guid>https://velog.io/@im_minji/Chapter3.-%EC%BB%B4%ED%93%A8%ED%8C%85-%EC%84%9C%EB%B9%84%EC%8A%A4-2</guid>
            <pubDate>Tue, 05 Dec 2023 15:30:02 GMT</pubDate>
            <description><![CDATA[<h1 id="h2서버-없이-프로그램-실행h2"><h2>서버 없이 프로그램 실행</h2></h1>
<p><code>AWS Lambda란</code></p>
<blockquote>
<h3>서버리스 컴퓨팅 서비스 Lamda</h3>
</blockquote>
<p><strong>AWS Lambda(Lambda)</strong> : 서버리스 컴퓨팅 서비스이다. </p>
<ul>
<li>서버리스란? 
- AWS에서 서비스가 실행될 인프라를 관리하므로 사용자가 관리할 서버가 없다는 것. 사용자는 인프라 관리를 AWS에 맡기고 코드 개발에만 집중하면 된다.</li>
</ul>
<p>Lamdba의 장점</p>
<ul>
<li>보안
- AWS에서 OS와 미들웨어 등의 기반 시스템을 모두 관리함. 장애와 보안 패치 등도 모두 AWS 소관 하에이루어지므로 이용자는 Lamdba로 사용할 코드만 관리하면 됨</li>
<li>비용
- EC2는 사용하지 않아도 기동하고 있는 시간만큼 요금이 발생하지만, Lambda에서는 코드가 실행될 때만 요금이 부과되므로 비용을 절감할 수 있다.</li>
<li>가용성
- AWS에는 물리적으로 독립된 여러 개의 가용영역(AZ)이 있으며 Lambda는 복수의 가용 영역에서 실행된다. 사용자가 설정하지 않아도 고가용성, 장애 대응성이 유지된다.</li>
<li>확장성
- Lambda는 동시에 다수의 처리를 해야하는 경우 자동으로 AWS가 관리하는 처리용 인스턴스가 시작되면서 확장된다. 서울 리전의 동시 실행 수는 최대 1000개이며 별도의 확장 신청을 통해 동시 실행 수를 늘리는 것도 가능하다.</li>
</ul>
<hr>
<p>Lambda와 비교한 EC2의 장점.</p>
<ol>
<li>온프레미스의 응용 프로글매을 AWS로 이전하는 경우 OS설정 등을 그대로 사용할 수 있다.</li>
<li>인스턴스 유형, OS, 네트워크 등을 자유롭게 설정할 수 있는 유연성이 있다.</li>
<li>대량의 트래픽이나 접속을 상시 처리하는 경우 EC2쪽이 저렴해질 수 있다.</li>
<li>서버에 프로그램을 배포한다는 기존 뱅식으로 개발을 진행할 수 있다. Lambda는 AWS의 독자적인 
설정방법과 개발 방법이 있으므로 초보자에게는 어려울 수 있다.</li>
</ol>
<hr>
<blockquote>
<h3>함수 생성 및 실행</h3>
</blockquote>
<p>Lambda에서는 함수의 단위로 프로그램 코드를 관리하고 처리한다. 함수를 화면상에서 생성해 프로그램 코드를 쓰는 것만으로도 실행할 수 있다. 단, 화면상에서 편집할 수 있는 코드는 파이썬이나 Node.js등 컴파일이 불필요한 일부의 언어만 해당한다.</p>
<h1 id="h2서버리스-활용법-이해h2"><h2>서버리스 활용법 이해</h2></h1>
<p><code>AWS Lambda의 실용적인 사용법</code></p>
<blockquote>
<h3>AWS Lambda는 다른 서비스와 연계해 사용</h3>
</blockquote>
<p>Lambda는 입력받은 데이터를 처리하기도 하지만 다른 AWS서비스와 연계해 사용자 접속이나 데이터 연동과 같은 처리를 자동으로 수행 할 수도 있다.</p>
<ul>
<li>사용자 요청에 따라 Lambda 함수 실행
Amaszon API Gateway(API Gateway) 서비스와 Lambda를 걸합해 사용자의 HTTP요청을 Lambda함수로 처리할 수 있다.</li>
</ul>
<p>**Amaszon API Gateway(API Gateway) - 서버리스 서비스이므로 사용자는 서버를 구축하지 않고도 웹 응용 프로그램을 만들 수있다. </p>
<ul>
<li><p>S3에 데이터를 저장할 때 자동 처리
Amazon S3(S3)에 데이터가 저장되면 저장된 데이터를 Lambda로 자동 처리할 수 있따.</p>
</li>
<li><p>주기적으로 Lambda 함수 실행 
&amp;nbsp&amp;nbsp 주기적으로 정해진 시간에 어떤 처리를 하고 싶다면 Amazon EventBridge(EventBridge)라는 서비스와 Lambda를 연계해 구형할 수 있다.
&amp;nbsp&amp;nbsp 매일 정해진 시간에 EC2를 중지하거나 시작하는 작업도 가능하다. </p>
</li>
</ul>
<blockquote>
<h3>AWS Lambda 추가 설정 및 모니터링</h3>
</blockquote>
<p>Lambda의 실행 환경은 일반적으로 AWS측에서 관리하므로 사용자는 특별히 서버 설정에 관여하지 않아도 되지만</p>
<ul>
<li>메모리 용량</li>
<li>타임아웃 시간</li>
<li>환경변수 : 함수에 사용하는 외부 변수와 같은 개념. 가령 개발 환경과 서비스 환경이 서로 다른 데이터베이스를 사용해야하는 경우, 환경 변수에 데이터베이스 접속 정보를 저장해두면 동일한 코드를 사용해도 서로 다른 데이터베이스를 이용할 수 있다. 
(= 환경마다 서로 다른 소스 코드를 만들지 않아도 됨.)</li>
</ul>
<p>위의 3가지는 사용자가 변경할 수 있다. </p>
<p>Lambda는 다른 AWS자원을 조작하기 위한 목적으로 사용되는 경우가 많지만, 처음 Lambda함수를 만들면 다른 서비스에 대한 조작 권함을 따로 부여해야 한다. </p>
<ul>
<li>Lambda 함수 실행 상태 모니터링
- Lambda함수를 만들어 배포하면 AWS 모니터링 서비스인 CloudWatch에 <strong>실행횟수</strong>, <strong>실행시간(최소/최대/평균)</strong>,<strong>오류 수와 실행 성공률</strong> 같은 정보가 자동으로 전송되므로 사용자는 Lambda 실행 상황을 확인 할 수있다.</li>
</ul>
<h1 id="h2컨테이너의-구조와-특징-이해h2"><h2>컨테이너의 구조와 특징 이해</h2></h1>
<p><code>컨테이너란</code></p>
<blockquote>
<h3>컨테이너란?</h3>
</blockquote>
<p><strong>가상서버 &amp;nbspVS&amp;nbsp    컨테이너</strong></p>
<ul>
<li><p>가상서버 
- 1대의 물리 서버에서 복수의 가상 서버가 동작한다.
- 가상 하드웨어 위에 OS, 미들웨어가 설치돼 그 위에서 프로세스가 실행된다.</p>
</li>
<li><p>컨테이너
- 1개의 물리 서버에 여러 컨테이너가 동작한다.
- 서버의 OS와 물리 자원은 각 컨테이너가 공동으로 이용한다.
- 각 컨테이너는 네트워크가 분리돼 있지만 외부 네트워크와읭 통신이나 컨테이너 간 통신을 할 때 컨테이너 런타임을 통해 이루어 진다.</p>
</li>
</ul>
<hr>
<p><strong>컨테이너 이미지</strong>: 어떤 응용 프로그램을 실행할지 미리 정의해두는 파일</p>
<hr>
<blockquote>
<h3>가볍고 빠른 컨테이너</h3>
</blockquote>
<p>컨테이너 내에 포함된 것이 적음.
가상 머신과 비교해 빠르게 시작됨. : 컨테이너 자체가 직접 응용 프로그램을 실행함.
OS에 대한 오버헤드가 없기 때문에 가상서버보다 처리 속도가 빠르다.</p>
<blockquote>
<h3>배포의 용이성</h3>
</blockquote>
<ul>
<li>컨테이너 이미지는 한번 생성하면 그 이미지를 다른 서버에서 바로 사용할 수 있다.</li>
<li>컨테이너 이미지는 바로 압축 파일 형태로 내보내거나 가져오기를 수행할 수 있다.</li>
<li>이미지 리포지토리를 이용해 이미지를 업로드 하거나 내려받을 수도 있다.</li>
</ul>
<p>** 컨테이너는 기본적으로 &#39;완성된 이미지&#39;이므로 컨테이너가 종료되면 안에 저장된 내용이 사라진다. 컨테이너가 실행될 포스트 서버의 디렉터리를 마운트해서 작업 내용을 저장하는 등의 처리를 해야한다.</p>
<blockquote>
<h3>컨테이너 오스트레이션</h3>
</blockquote>
<p>컨테이너 관리를 자동화해 운영부하를 줄일 수 있다.</p>
<h1 id="h2ecs로-누리는-컨테이너의-장점h2"><h2>ECS로 누리는 컨테이너의 장점</h2></h1>
<p><code>Amazon EC2란</code></p>
<blockquote>
<h3>AWS의 컨테이너 오케스트레이션 서비스</h3>
</blockquote>
<p> AWS에서 컨테이너 시스템을 구축하는 경우 </p>
<ul>
<li><p>Amazon Elastic Container Service(ECS) </p>
</li>
<li><p>Amazon Elastic Kuybernetes Service(EKS)</p>
<p>위의 둘 중에서 선택할 수 있다.</p>
</li>
<li><blockquote>
<p>두 서비스의 가장 큰 차이점은 컨테이너 오케스트레이션 기능을 AWS가 담당하느냐, 쿠버네티스(Kubernetes)가 담당하느냐다.</p>
</blockquote>
</li>
</ul>
<p><strong>ECS</strong>
: AWS의 관리형 컨테이너 오케스트레이션 서비스
: AWS에 오케스트레이션 도구를 구축하고 관리하는 것을 모두 맡길 수 있다.
-&gt; Amazon Elastic Container Registry(ECR)라는 컨테이너 이미지레지스트리 서비스도 제공한다.<br>-&gt; 사용자 정의된 컨테이너 이미지를 AWS에서 관리할 수 있고 ECS에도 쉽게 배포할 수 있다.</p>
<hr>
<p>&amp;nbsp&amp;nbsp&amp;nbsp <strong>ECS</strong>
&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp 컨테이너 배포, 상태 모니터링. 스케일링 관리, 작업 정의를 기반으로 설정된 컨테이너의 &amp;nbsp&amp;nbsp&amp;nbsp상태와 수를 유지한다.</p>
<p>&amp;nbsp&amp;nbsp&amp;nbsp <strong>ALB</strong>
&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp ALB(Application Load Balancer)와 연결된 태스크의 집합체를 서비스로 정의 한다.</p>
<blockquote>
<h3>EC2와 Fargate</h3>
</blockquote>
<p>ECS를 이용해 컨테이너를 기동할 떄 어떤 플랫폼에서 시작할지 선택할 수 있다.</p>
<ul>
<li><p>EC2 : 
- EC2 인스턴스 내에서 실행되는 컨테이너 런타임에서 컨테이너를 실행하는 타입. 
- 사용자가 컨테이너 런타임이 실치된 서버(EC2 인스턴스)를 관리해야함.
- CPU/메모리를 늘리고 싶다면 인스턴스 타입을 적절한 것으로 변경하고, 스토리지를 늘리고 싶다면 스토리지(EBS)의 볼륨 크기를 확장하면 된다.</p>
</li>
<li><p>AWS Fargate(Fargate) : AWS에서 관리하는서버에서 컨테이너를 실행함.
- 컨테이너 런타임, OS 버전업과 같은 서버 관리를 AWS에서 하므로 사용자는 컨테이너 이미지만 관리하면 된다.
- CPU와 메모리를 직접 할당 할 수 있다. 하지만 지정한 CPU값에 따라 할당할 수 있는 메모리 크기가 정해져 있따.
- 스토리지는 사전에 Fargate 태스크 스토리지로 태스크 실행 시 할당 되며 할당량은 PV에 따라 다르다.</p>
</li>
</ul>
<blockquote>
<h3>Fargate의 장점</h3>
</blockquote>
<p>주요특징 <strong>AWS에서 서버를 관리한다는 점</strong>
-&gt; 유지보수작업은 AWS에서 담당하므로 편하게 ECS를 사용할 수 있다.</p>
<blockquote>
<h3>쿠버네티스를 보다 쉽게 사용할 수 있는 서비스</h3>
</blockquote>
<h1 id="h2서버-지식-없이-사용할-수-있는-대표적인-서비스-5개h2"><h2>서버 지식 없이 사용할 수 있는 대표적인 서비스 5개</h2></h1>
<p><code>기타 컴퓨팅 서비스</code></p>
<blockquote>
<h3>AWS Lightsail</h3>
</blockquote>
<p>✔ 일반적으로 자주 사용되는 구성의 가상 서버를 수비고 빠르게 구축하기 위한 서비스
✔ 여러 인스턴스를 만들면 자동으로 로드 밸런싱을 해주거나 SSL/ TLS인증서를 통한 통신 암호화도 대응한다.</p>
<p>➖ EC2에서 구축할 때와 같이 미들웨어 버전을 고려해 설치하거나 ELB를 이용해 유연한 부하 분산을 설정하는 등의 자유도는 없다.</p>
<p>✔ Lightsail로 서버를 구축 후 조금 더 다양한 기능을 자유롭게 사용하고 싶다면 EC2로 마이그레이션을 하면 된다.</p>
<blockquote>
<h3>AWS Elastic Beanstalk</h3>
</blockquote>
<p>✔ JAVA, .NET, PHP, Python, Ruby, Go, Docker와 같은 주요 언어나 환경에서 개발된 응용 프로그램을 배포하기 위한 실행 환경을 자동으로 만들어주는 서비스다</p>
<blockquote>
<h3>AWS App Runger</h3>
</blockquote>
<p>✔ 컨테이너화된 응용 프로그램을 손쉽게 배포하는 서비스.</p>
<blockquote>
<h3>AWS Batch</h3>
</blockquote>
<p>✔ 지정된 프로그램을 EC2나 Fargate에서 실행하는 서비스다. </p>
<p>✔ Lambda와 똑같아 보이지만 실행 프로그램의 순서 관리나 다수 프로그램의 병렬 구동과 같은 <strong>복잡한 제어에 특화된</strong> 서비스다.</p>
<blockquote>
<h3>AWS OutPosts</h3>
</blockquote>
<p>✔ 사용자가 온프레미스 환경에서 AWS와 같은 서비스를 실행할 수 있또록 AWS가 물리 서버를 대여하는 서비스
-&gt; AWS를 프라이빗 클라우드와해서 제공하는 서비스</p>
<p>✔AWS Outposts를 AWS의 새로운 가용영역으로 사용 할 수 있다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Chapter3. 컴퓨팅 서비스 (1)]]></title>
            <link>https://velog.io/@im_minji/Chapter3.-%EC%BB%B4%ED%93%A8%ED%8C%85-%EC%84%9C%EB%B9%84%EC%8A%A4-1</link>
            <guid>https://velog.io/@im_minji/Chapter3.-%EC%BB%B4%ED%93%A8%ED%8C%85-%EC%84%9C%EB%B9%84%EC%8A%A4-1</guid>
            <pubDate>Tue, 05 Dec 2023 08:41:20 GMT</pubDate>
            <description><![CDATA[<p>&amp;nbsp 정리를 시작하기 전에 3장에서는 AWS의 대표적인 서비스들에 대한 설명이 있었다. 앞의 1,2장에 비해 내용적으로 조금 어렵게 다가와 여러번 읽은 것 같다.</p>
<p>3장의 경우 내용이 많아 2파트로 나누어 정리 하도록 하겠다.</p>
<h1 id="h2알아줘야-할-서버-기초-지식h2"><h2>알아줘야 할 서버 기초 지식</h2></h1>
<p><code>서버란</code></p>
<blockquote>
<h3>서버란</h3>
</blockquote>
<p><strong>서버</strong> : 네트워크에서 데이터나 서비스를 제공하는 컴퓨터
<strong>클라이언트</strong> : 그 서비스를 이용하는 프로그램</p>
<blockquote>
<h3>대표적인 서버 유형</h3>
</blockquote>
<ul>
<li><p>웹 서버:  웹 사이트를 구성하는 데 필요한 데이터를 저장하고 시스템을 제어하는 프로그램을 설치한 서버</p>
</li>
<li><blockquote>
<p>웹페이지 자체의 구조를 만드는 <strong>HTML</strong> + 디자인을 정의하는 <strong>CSS</strong></p>
</blockquote>
</li>
<li><p>데이터베이스 서버 : 시스템이 취급하는 데이터를 통합 관리하는 데이터베이스 관리 시스템이 설치된 서버</p>
</li>
<li><blockquote>
<p>클라이언트에서 특정 데이터를 참조하거나 수정, 삭제 등의 데이터 처리 요구를 요청으로 받아들이고 실행 결과를 응답으로 변환한다.
** RDS, DynamoDB - AWS관리형 서비스이면서 튜닝이 쉬움.</p>
</blockquote>
</li>
</ul>
<blockquote>
<h3>웹 서버 작동 방식</h3>
</blockquote>
<p>&amp;nbsp 웹서버는 사용자 측의 웹 브라우저를 클라이언트로, 웹 서버를 서버로 지정해 </br>클라이언트-서버 통신을 한다.</p>
<blockquote>
<h3>서버 OS란</h3>
</blockquote>
<p><strong>OS</strong> : 사람이 기기의 관리와 제어를 수행하기 위한 인터페이스와 하드웨어 관리 기능, 기기에서 동작할 소프트웨어가 공통적으로 이용할 기본기능을 구현한 소프트웨어.</p>
<ul>
<li>리눅스 
&amp;nbsp 윈도우나 맥OS와 달리 무료이며 오픈 소스 소프트웨어이므로 누구나 자유롭게 개발, 배포할 수 있다. 따라서 다양한 기업과 단체가 기본이 되는 리눅스 커널을 이용해 독자적으로 추가 개발한 OS를 <strong>리눅스 배포판(Distribution)</strong>으로 제공하고 있다.</li>
<li><blockquote>
<p>Red Hat Enterprise Linux(RHEL), CentOS, Devian Gun/Linux,<br> &amp;nbsp Ubuntu Linux</p>
</blockquote>
</li>
</ul>
<ul>
<li><p>윈도우 서버 
&amp;nbsp 마이크로소프트에서 출시한 서버용 OS이다. 리눅스와 달리 OS자체의 라이선스와 CAL(Client Access License)로 불리는 서버 이용 라이선스를 구매해야 한다.</p>
</li>
<li><blockquote>
<p>GUI로 조작하며 일반적으로 사용되는 데스크톱 윈도우와 사용법이 비슷하다. 또한 마이크로소프트 제품이므로 다른 마이크로소프트 제품과의 연계성과 AD(Active Directory)와의 연계, 충실한 지원을 받을 수 있다.</p>
</blockquote>
</li>
<li><p>OS별 비교</p>
</li>
</ul>
<table>
<thead>
<tr>
<th align="center">항목</th>
<th align="center">리눅스</th>
<th align="center">윈도우서버</th>
</tr>
</thead>
<tbody><tr>
<td align="center">도입비용</td>
<td align="center">기본무료이용<br>* 배포판에 따라 라이선스료가 있다.</td>
<td align="center">라이선스 수수료 외 CAL비용이 필요</td>
</tr>
<tr>
<td align="center">필요사항</td>
<td align="center">상대적으로 낮은 사양에서도 동작</td>
<td align="center">쾌적하게 사용하기 위해서는 고사양이 필요</td>
</tr>
<tr>
<td align="center">인터페이스</td>
<td align="center">주로 명령 중 인터페이스에서 명령어로 조작</td>
<td align="center">주로 데스크톱과 같은 마우스로 조작할 수 <br>있는 인터페이스</td>
</tr>
<tr>
<td align="center">전문지식</td>
<td align="center">명령어에 의한 조작이나 설정 파일 관리 등<br> 전제 지식이 필요</td>
<td align="center">데스크톱 윈도우와 비슷하므로 사용하기 전에 <br>필요한 지식은 상대적으로 적다.</td>
</tr>
<tr>
<td align="center">지원</td>
<td align="center">기본지원 없음<br>* 유료배포판은 지원이 있다.</td>
<td align="center">마이크로소프트 지원 시스템</td>
</tr>
<tr>
<td align="center">기타</td>
<td align="center">배포판이나 패키지를 자유롭게 선택할 수 있어<br>원하는 기능이나 특징을 구현할 수 있음.</td>
<td align="center">Active Directory 및 SQL 서버와 같은<br> 마이크로소프트 소프트웨어와 연계성이 우수</td>
</tr>
</tbody></table>
<blockquote>
<h3>서버 가상화</h3>
</blockquote>
<p><strong>서버가상화</strong> : 가상화 소프트웨어를 이용하여 하나의 하드웨어에서 여러 OS를 동작시키는 것.</p>
<blockquote>
<h3>AWS에서의 가상화</h3>
</blockquote>
<p><strong>Amazon Elastic Compute Cloud(EC2)</strong> : AWS의 대규모 서버에서 가상화를 수행. 사용자는 사용 용도에 따라 OS의 종류나 CPU, 메모리 크기를 자유롭게 선택해 인스턴스(가상서버)를 생성할 수 있다.</p>
<h1 id="h2ec2로-가상-서버를-손쉽게-생성h2"><h2>EC2로 가상 서버를 손쉽게 생성</h2></h1>
<blockquote>
<h3>Amazon EC2는 가상 서버 서비스</h3>
</blockquote>
<ul>
<li>EC2는 가상 서버를 <strong>인스턴스</strong> 단위로 관리한다. 사용자가 인스턴스 유형(가상서버 사양)을 결정해 생성하면 인스턴스 유형과 이용 기간에 따라 이용 요금이 발생한다.</li>
</ul>
<blockquote>
<h3>가상 서버 생성</h3>
</blockquote>
<p>EC2인스턴스(가상서버)를 생성하기 위해서는 </p>
<ul>
<li>Amazon 머신 이미지(AMI)</li>
<li>인스턴스 사양(인스턴스 유형)</li>
<li>배포할 네트워크</li>
<li>데이터를 저장할 스토리지 용량</li>
<li>사용 권한 설정(보안 그룹)</li>
</ul>
<p>설정들을 선택하면 된다.</p>
<p><span style=background-color:#f7ddbe><strong>Amazon 머신 이미지(AMI)</strong></span>: OS와 소프트웨어가 설정된 템플릿이다. AWS에서 미리 준비한 AMI가 제공되며 사용자는 제공된  AMI중 하나를 선택한다.</p>
<p><span style=background-color:#f7ddbe><strong>인스턴스 유형</strong></span>: 인스턴스 유형을 선택하면 서버의 성능이 결정된다. CPU와 메모리 용량이 함께 표시되므로 적잘한 유형을 선택한다. 생성 후 변경도 가능하다.</p>
<p>가상머신이 위치할 네트워크는 사용자가 생성한 VPC를 선택하고 스토리지 용량(EBS)을 설정한 후 마지막으로 접근 권한 설정을 위해 보안 그룹을 선택한다.</p>
<p>모든 설정을 선택하고 인스턴스를 생성하면 목록에 &#39;실행 중&#39; 상태로 표시된다.</p>
<p>인스턴스를 생성한 후에는 리눅스의 경우 SSH, 윈도우의 경우 원격 데스크톱 등 관리 시스템 기능을 이용해 연결할 수 있다. AWS Systems manager라는 EC2 인스턴스를 관리하는 서비스가 있으며 이 서비스를 이용해도 인스턴스에 연결할 수 있다.</p>
<blockquote>
<h3>인스턴스 유형으로 서버 성능 결정</h3>
</blockquote>
<p>인스턴스의 성능은 인스턴스 유형 이름으로 알 수 있다. </p>
<h2><u>m</u> <u>6</u> <u>g</u> . <u>medium</u></h2>

<p>m: 패밀리 : 메모리와 CPU중 어느 것을 우선시 하느냐와 같이 인스턴스의 특징에 따른 문자열이 있다.</p>
<p>6: 세대 : 숫자가 클수록 성능이 좋다. </p>
<p>g : 추가 기능 : Gravtion2(CPU이름)는 g, 네트워크 강화는 n이다. 추가 기능 문자가 없는 유형도 있다.</p>
<p>medium : 크기 : 크기가 클수록 고성능. 가격도 크기에 따라 높아진다.</p>
<hr>
<p>EC2 인스턴스 패밀리</p>
<table>
<thead>
<tr>
<th align="center">패밀리</th>
<th align="center">특징</th>
</tr>
</thead>
<tbody><tr>
<td align="center">T</td>
<td align="center">버스트 가능한 범용유형</td>
</tr>
<tr>
<td align="center">M</td>
<td align="center">균형 잡힌 범용 유형</td>
</tr>
<tr>
<td align="center">C</td>
<td align="center">컴퓨팅 최적화(vCPU 수가 많음)</td>
</tr>
<tr>
<td align="center">R</td>
<td align="center">메모리 최적화(메모리 탑재량이 많음)</td>
</tr>
<tr>
<td align="center">P</td>
<td align="center">고속 컴퓨팅</td>
</tr>
<tr>
<td align="center">I</td>
<td align="center">스토리지 최적화</td>
</tr>
</tbody></table>
<p>T유형 : 베이스라인이라는 정해진 CPU 사용률이 정의돼 있으며 정의 된 사용률을 초과해서(버스트) 이용할 수도 있다. 다만 일정량을 넘으면 베이스 라인 이하의 성능이 되거나 추가 요금이 발생하므로 서비스 환경과 같이 상시 사용이 예상되는 환경에서는 M유형의 인스턴스를 선택하는 편이 좋다.</p>
<hr>
<blockquote>
<h3>다양한 EC2 요금제</h3>
</blockquote>
<table>
<thead>
<tr>
<th align="center">구매유형</th>
<th align="center">특징</th>
<th align="center">이용용도</th>
</tr>
</thead>
<tbody><tr>
<td align="center">온디맨드</td>
<td align="center">일반 구매방법. 이용 상황에 따라 <br>요금이 변동</td>
<td align="center">이용 상황에 변화가 있고 사용 예정 일을<br> 모르는 경우</td>
</tr>
<tr>
<td align="center">예약,<br> 절감형 플랜</td>
<td align="center">1년 또는 3년간의 이용요금을 미리 지불,<br>온디맨드에 비해 최대 72% 할인</td>
<td align="center">프로덕션 가동 등 1년 이상 사용할 예정이<br> 있는 경우</td>
</tr>
<tr>
<td align="center">스팟</td>
<td align="center">이용하지 않는 부분을 이용, 예기치 않게<br>인스턴스가 정지될 수 있다. 온디맨드에<br> 비해 최대 90% 할인</td>
<td align="center">개발 환경과 같이 인스턴스를 중단해도<br>영향이 작은 경우</td>
</tr>
</tbody></table>
<blockquote>
<h3>그 밖의 EC2 관련 요금</h3>
</blockquote>
<p>인스턴스 요금 외에도 <strong>네트워크 외부로의 데이터 통신, 데이터를 저장하는 스토리지</strong> 등에서 요금이 발생한다.</p>
<h1 id="h2가상-서버를-안전하게-외부에-공개h2"><h2>가상 서버를 안전하게 외부에 공개</h2></h1>
<blockquote>
<h3>서버 외부 공개</h3>
</blockquote>
<p>EC2를 인터넷에 공개하려면 다음 조건을 충족해야한다.</p>
<ul>
<li>EC2를 퍼블릭 서브넷에 배치</li>
<li>퍼블릭 IP주소를 EC2에 부여</li>
<li>보안그룹에서 외부로부터의 접근을 허가</li>
</ul>
<blockquote>
<h3>서버 접근 제어</h3>
</blockquote>
<p>접속을 허가할지에 대한 접근 제어는 보안 그룹을 이용한다. 보안그룹은 온프레미스의 방화벽 기능을 수행한다.</p>
<hr>
<p>외부에서 EC2로의 통신 - 인바운드 규칙
EC2에서 외부로의 통신 - 아웃바운드 규칙</p>
<p>-&gt; 통신을 허용할 네트워크와 포트 번호를 지정한다.</p>
<hr>
<p>보안그룹에 지정하는 규칙은 <strong>허용만 할 수 있다</strong>.
특정 네트워크로 부터의 통신을 <strong>차단하도록 설정할 수 는 없다.</strong></p>
<p>** 보안 그룹은 불필요하다면 바로 삭제 해야 한다. 서비스가 많아지면 그만큼 공개해야 할 포트도 많아지고 많은 보안 그룹을 관리하다 보면 사고로 이어질 수 있기 때문이다.</p>
<h1 id="h2부하에-따라-서버를-자동으로-추가삭제h2"><h2>부하에 따라 서버를 자동으로 추가/삭제</h2></h1>
<blockquote>
<h3>서버 자동 추가 및 제거</h3>
</blockquote>
<p>Amazon EC2 Auto Scaling(Auto Scaling) 기능을 사용하면 서버 추가 및 제거를 부하 상황에 맞게 자동으로 수행할 수 있다.</p>
<ul>
<li>스케일 아웃(Scale-out) : 서버 추가</li>
<li>스케일 인(Scale-in) : 서버를 제거</li>
</ul>
<p>시작 템플릿에 Amazon 머신 이미지(AMI) 정보와 서버가 추가될 조건을 설정해두면 조건에 맞춰 서버가 자동으로 추가된다.</p>
<ul>
<li><strong>대상추적 조정 정책</strong>: 목표 사용률을 지정해 지정한 값을 유지하게끔 인스턴스 수를 자동으로 조절</li>
<li><strong>스케줄 스케일</strong>: 서버 자원의 부하가 아닌 사용자 접속 수와 같은 기준을 이용한 자동 추가 및 삭제 설정, 일정을 세워 인스턴스 수를 조절 </li>
<li><blockquote>
<p>주말이나 연휴 등 접속자 수가 늘어나거나 줄어드는 것을 예측할 수 있다면 유용하게 사용할 수 있다.</p>
</blockquote>
</li>
<li><strong>Auto Scaling</strong>: 지정된 인스턴스 수를 유지하는 기능이 있어 예기치 못한 장애가 발생해 인스턴스가 멈췄다면 자동으로 인스턴스가 새로 만들어진다.</li>
<li><strong>예측 스케일링 기능</strong>: 서버 수의 수요를 예측</li>
<li><strong>버전관리</strong>: 인스턴스를 시작할 때 템플릿이 될 부팅 설정 버전을 관리함.</li>
</ul>
]]></description>
        </item>
        <item>
            <title><![CDATA[Chapter2. Amazon Web Service 사용 시작]]></title>
            <link>https://velog.io/@im_minji/Chapter2.-Amazon-Web-Service-%EC%82%AC%EC%9A%A9-%EC%8B%9C%EC%9E%91</link>
            <guid>https://velog.io/@im_minji/Chapter2.-Amazon-Web-Service-%EC%82%AC%EC%9A%A9-%EC%8B%9C%EC%9E%91</guid>
            <pubDate>Sat, 02 Dec 2023 16:00:31 GMT</pubDate>
            <description><![CDATA[<h2 id="계정을-만들고-aws-이용-시작">계정을 만들고 AWS 이용 시작</h2>
<p><code>AWS 계정 생성 및 로그인</code></p>
<blockquote>
<h3>AWS 계정 생성</h3>
</blockquote>
<p>AWS 서비스응 이용하기 위해서는 사용자 고유 계정 즉, AWS계정을 등록 해야한다.
AWS계정을 등록 하기 위해서는</p>
<ol>
<li>메일주소</li>
<li>연착처 정보(이름, 전화번호, 주소)</li>
<li>신용카드 정보</li>
</ol>
<p>가 필요하다.</p>
<p>&amp;nbspAWS계정을 만들 때에는 <strong>해당 계정에서 사용할 수있는 AWS지원 플랜</strong>을 선택해야한다. 총 4가지의 플랜을 아래 표에서 알아보도록 하겠다.</p>
<table>
<thead>
<tr>
<th align="center">플랜</th>
<th align="center">주요용도</th>
<th align="center">이용료(월)</th>
<th align="center">요금 질문</th>
<th align="center">기술 질문</th>
<th align="center">기술문의 방법</th>
<th align="center">케이스 응답 시간</th>
</tr>
</thead>
<tbody><tr>
<td align="center">기본</td>
<td align="center">기본으로</br> 사용가능</td>
<td align="center">무료</td>
<td align="center">o</td>
<td align="center">x</td>
<td align="center">인스턴스 상태</br> 확인 실패 시에만</td>
<td align="center">-</td>
</tr>
<tr>
<td align="center">개발자</td>
<td align="center">학습, 테스트 </br>등 개인용</td>
<td align="center">최소:29USD</td>
<td align="center">o</td>
<td align="center">o</td>
<td align="center">메일(평일 9:00~ 18:00)</td>
<td align="center">일반문의</br>: 24시간 이내 </br> 시스템 장애</br>: 12시간 이내</td>
</tr>
<tr>
<td align="center">비즈니스</td>
<td align="center">실전 환경 </br>워크로드</br>사용자</td>
<td align="center">최소 :<br>100USD</td>
<td align="center">o</td>
<td align="center">o</td>
<td align="center">전화, 채팅, 메일</br>(24시간)</td>
<td align="center">일반문의</br>: 24시간 이내 </br>시스템 장애 </br>: 12시간 이내<br> 상용시스템 장애<br>: 4시간 이내<br>상용시스템 다운 <br>: 1시간 이내</td>
</tr>
<tr>
<td align="center">엔터프라이즈</td>
<td align="center">비즈니스 </br>및 중요한</br>워크로드 </br>사용자</td>
<td align="center">최소 :<br>15000USD</td>
<td align="center">o</td>
<td align="center">o</td>
<td align="center">전화, 채팅, 메일</br>(24시간)</td>
<td align="center">일반문의</br>: 24시간 이내 </br>시스템 장애</br>: 12시간 이내<br> 상용시스템 장애<br>: 4시간 이내<br>상용시스템 다운 <br>: 1시간 이내</br>비즈니스/</br> 미션 크리티컬 시스템 </br>다운: 15분 이내</td>
</tr>
</tbody></table>
<p>&amp;nbsp위 표에서 알 수 있듯이 무료 지원 서비스만 받을 수 있는 &#39;<span style='background-color:#f7ddbe'>기본(Basic)</span>&#39;, 유료로 AWS에서 직접 기술 지원을 받을 수 있는 &#39;<span style='background-color:#f7ddbe'>개발자(Developer)</span>&#39;, &#39;<span style='background-color:#f7ddbe'>비즈니스(Business)</span>&#39;, &#39;<span style='background-color:#f7ddbe'>엔터프라이즈(Enterprise)</span>&#39;가 있다.</p>
<blockquote>
<h3>AWS 계정 로그인</h3>
</blockquote>
<p>&amp;nbsp처음 개정을 생성하면 <strong>루트사용자</strong>만 존재하므로 루트 사용자를 선택해 로그인을 진행한다. 로그인 후 콘솔 홈(AWS Management Console)화면을 확인 할 수 있는데 여기서 AWS의 각종 서비스를 이용 할 수 있다.</p>
<p><strong><span style='background-color:#f7ddbe'>루트 사용자</span></strong> 
:  AWS 계정 자체의 구성변경, 계약 해지, 계약 변경 등 &#39;무엇이든 할 수 있는 가장 큰 권한을 가진 사용자 
: 모든 권한을 가진 사용자.</p>
<hr>
<p>&amp;nbsp보안을 위해서는 IAM 계정을 만들고 각 <span style='background-color:#f7ddbe'><strong>IAM사용자</strong></span>에게 적절한 권한을 부여해 서비스를 사용한다. </p>
<hr>
<p>-&gt; 기본적으로 처음 로그인 했을 때 IAM계정을 생성한 뒤 IAM계정만 사용하는 것이 좋다. 루트 사용자는 AWS계정 전체에 관련된 설정 변경과 같이 반드시 루트 사용자로 해야하는 작업을 할 때외에는 사용하지 않는 것이 좋다.</p>
<h2 id="aws서비스를-사용하는-세가지-방법">AWS서비스를 사용하는 세가지 방법</h2>
<p><code>AWS조작</code></p>
<blockquote>
<h3>웹 브라우저에서 AWS조작</h3>
</blockquote>
<p><strong>관리 콘솔 이용</strong>
: 마우스와 같은 장치를 이용해 직관벅으로 AWS를 조작하는 방법.</p>
<blockquote>
<h3>명령줄 도구로 AWS조작</h3>
</blockquote>
<p><strong>AWS Command Line Interface(AWS CLI - 명령줄 도구)</strong>
: 사용하는 OS에 맏는 AWS CLI도구를 내려받아 설치한다.
: 명령어를 이용한 조작이기 때문에 웹 브라우저에서 작업하는 것보다는 어려워 보이지만, 같은 명령을 실행했을 때 언제나 같은 결과를 얻을 수 있다.(<strong>재현성이 높다.</strong>)</p>
<blockquote>
<h3>프로그램 방식으로 AWS 조작</h3>
</blockquote>
<p>프로그램을 이용해서 조작하는 방법 </br>: 각 개발 언어에 AWS SDK라는 개발 키트를 설치해야 한다.</p>
<p>-&gt; SDK를 활용하여 응용 프로그램과 AWS 서비스를 연결해 보다 복잡하고 유연한 서비스를 구현 할 수 있다</p>
<h2 id="aws-서비스-이용료-시각화">AWS 서비스 이용료 시각화</h2>
<p><code>AWS 이용료 관리</code></p>
<blockquote>
<h3>AWS 비용관리</h3>
</blockquote>
<p>&amp;nbspAWS 서비스의 요금 체계는 <span style='background-color:#f7ddbe'><strong>종량과금제</strong></span>이다. 즉, <strong>사용한 만큼</strong> 매월 이용료가 부과된다.</p>
<p>&amp;nbsp거대하고 복잡한 시스템은 AWS의 많은 서비스를 이용하게 되므로 전체 요금의 관리가 어려워 질 수 있다. 그리고 AWS계정이 탈취당하거나 시스템이 해킹 당해 고액의 요금이 청구 될 가능성도 있다.</p>
<blockquote>
<h3>AWS Biling and Cost Management란 </h3>
</blockquote>
<p><strong>AWS Biling and Cost Management</strong>
: 청구 및 비용 관리를 위한 몇가지 기능을 제공, 이를 통해 서비스 이용 및 비용 정보를 시각화 할 수 있다.</p>
<hr>
<p>&amp;nbspAWS Biling and Cost Management는 관리 콘솔의 사용자 계정을 틀릭해 &#39;결제 대시보드&#39;를 선택하여 이용 할 수 있다.</p>
<p>&amp;nbsp대시보드의 <strong>상단</strong>에는  AWS이용 요약이나 서비스별 비용 추세 등이 정리되어 있어 해당 계정에서의 서비스 이용 상황을 간단하게 파악할 수 있다.
&amp;nbsp 그리고 <strong>메뉴</strong> 에서 자세한 청구 정보 및 비용 관리 기능을 사용 할 수 있다. <br> &amp;nbsp AWS Biling and Cost Management에서 제공하는 주요기능은 아래의 표와 같다.</p>
<table>
<thead>
<tr>
<th align="center">카테고리</th>
<th>기능</th>
<th>설명</th>
</tr>
</thead>
<tbody><tr>
<td align="center">결제(Biling)</td>
<td>청구서</td>
<td>- 각 달의 계정 전쳬의 청구, 청구의 서비스별 명세를 확인<br> - 청구 정보는 CSV파일로 다운로드 가능</td>
</tr>
<tr>
<td align="center"></td>
<td>Cost &amp; usage reports</td>
<td>- 계정의 청구 정보나 이용 금액을 비롯해 더욱 상세한 제품 속성, 요금 속성 등을 정리한 보고서를 자동 작성 <br> - AWS서비스별 이용량을 보고서로 작성 가능</td>
</tr>
<tr>
<td align="center">Cost Management</td>
<td>Cost explorer</td>
<td>-  각 서비스의 비용 및 자원 사용량을 그래프로 시각화해 분석 및 예측 가능</td>
</tr>
<tr>
<td align="center"></td>
<td>Budgets</td>
<td>- 이용 서비스의 자원 상황, 비용을 감시해 설정한 예산을 넘었을 경우 경고 알람을 실시 <br> - 설정 예산별 상황 확인, 관리가 가능</td>
</tr>
</tbody></table>
<blockquote>
<h3>비용 관리 정책</h3>
</blockquote>
<p>비용 관리를 하는 데 있어서는 다음 2가지를 알아두어야 한다.</p>
<ul>
<li><strong>Cost explorer</strong>에서 올바르게 현황을 파악하고 방침을 수립할 것</li>
<li><strong>Budgets</strong>에서 예산을 설정하고 이용량을 감시할 것</li>
</ul>
<p>&amp;nbspCost exploerer는 AWS 비용 상황을 파악하는 데 도움이 된다. 서비스별 비용을 확인하게 되면 어디에서 비용이 발생하는지 확인 할 수 있으므로 서비스 비용 감소를 포함해 비용 최적화를 실시 할 수 있다.</p>
<p>&amp;nbspBudgets에서 예산을 설정하면 월 이용 요금이 설정한 금액을 초과할 때 이를 감지하고 사용자에게 알림을 보낸다. 예상하지 못한 비용 증가에 바로 대응 할 수 있도록 대첵을 수립해 두는 것이 좋다.</p>
<h2 id="aws시스템이-구축되는-위치-선택">AWS시스템이 구축되는 위치 선택</h2>
<p><code>리전과 가용성 영역</code></p>
<blockquote>
<h3>리전은 세계에 존재하는 지역</h3>
</blockquote>
<p>&amp;nbsp AWS는 전 세계 각 지역에 <strong>리전</strong>이라고 하는 지리적으로 떨어진 영역이 존재하고 각 리전은 AWS의 사설 네트워크로 연결되어 있다.</p>
<p>세계 각지에 리전에 존재함의 장점</p>
<ul>
<li>세계 각지의 사용자가 이용하는 글로벌 시스템을 구축할 수 있어 사용자의 통신 지연을 줄일 수 있다.</li>
<li>법적 요구 사항으로 특정 국가에 시스템을구축해야하는 경우 특정 리전을 사용해서 요건을 충족할 수 있다.</li>
<li>큰 재난이 발생해 특정 리전에서 시스템을 사용할 수 없게 된다고 해도 다른 리전에서 시스템을 가동할 수 있다.</li>
</ul>
<p>- 리전별로 분리하여 자원을 관리할 수도 있다.</p>
<blockquote>
<h3>가용성 영역은 리전 내의 독립적인 위치</h3>
</blockquote>
<p>&amp;nbsp 각 리전에 있는 복수의 가용영역(AZ)은 하나 이상의 데이터 센터로 구성되며 모두 독립적이다. 때문에 특정 AZ에서 발생한 장애는 다른 AZ에 영향을 미치지 않는다. </p>
<p>각 AZ는 독립적이지만 AZ끼리는 고속의 네트워크로 연결돼 있고 암호화된 통신을 이용한다.</p>
<hr>
<p>AZ에는 <strong>AZ이름</strong>과 <strong>AZ ID</strong>가 있다
<span style='font-size: 30px'><u>ap-northeast-2</u> <u>a</u></span>
&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbspAZ이름&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp+&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbspAZID</p>
<p> &amp;nbspAZ이름과 AZID는 일대일로 대응하지만, AWS계정마다 AZ이름에 대응하는 AZ ID가 다르다. 따라서 어딘가의 AZ에 장애가 발생하면 AZ이름이 아닌 <span style='background-color: #f7ddbe'>AZ ID</span>를 확인해야 한다.</p>
]]></description>
        </item>
        <item>
            <title><![CDATA[Chapter 1. Amazon Web Services 기초지식]]></title>
            <link>https://velog.io/@im_minji/Chapter-1.-Amazon-Web-Services-%EA%B8%B0%EC%B4%88%EC%A7%80%EC%8B%9D</link>
            <guid>https://velog.io/@im_minji/Chapter-1.-Amazon-Web-Services-%EA%B8%B0%EC%B4%88%EC%A7%80%EC%8B%9D</guid>
            <pubDate>Thu, 30 Nov 2023 12:00:55 GMT</pubDate>
            <description><![CDATA[<p>&amp;nbsp앞으로 AWS구조와 서비스라는 책을 읽고 단원별로 정리를 해보려한다. 2023년도가 지나기 전에 반드시 끝까지 읽어보고 정리해 보도록 하겠다.</p>
<h1 id="h2aws를-시작하기-위한-첫-걸음"><h2>AWS를 시작하기 위한 첫 걸음</h1>
<p>   <code>&gt; AWS(Amazon Web Services) 란?</code></p>
<blockquote>
<h3>대표적인 클라우드 서비스, Amazon Web Services<br> </h3>
</blockquote>
<p>  &amp;nbsp<strong>Amazon Web Services (AWS)</strong>란?
  &amp;nbsp&amp;nbsp -  Amazon.com에서 운영하는 클라우드 서비스
  &amp;nbsp&amp;nbsp -  응용 프로그램을 실행하는 컴퓨팅, 데이터베이스, 스토리지, 모바일, IoT, 기계학습 등 &amp;nbsp&amp;nbsp다양한 서비스를 제공한다.<br>
   &amp;nbsp<strong>클라우드</strong>란?
  &amp;nbsp&amp;nbsp -  컴퓨터와 데이터베이스와 같은 기능을 인터넷을 통해 이용할 수 있게 해주는 서비스</p>
<blockquote>
<h3>점유율이 높은 AWS</h3>
</blockquote>
<p>  미국의 정보기술 연구 및 자문 회사인 가트너(Gartner)의 조사 결과에 따르면 <u><strong>개방형 클라우드</strong></u>의 시장 점유율은 AWS가 38%로 다른 클라우드 서비스 보다 높다고 한다.</p>
<p>  &amp;nbsp<strong>개방형 클라우드</strong>란?
  &amp;nbsp - 누구나 사용할 수 있는 클라우드</p>
<p>  &amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp &gt; 개방형 클라우드
  &amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp - GCP(Google Cloud Platform)
  &amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp - Microsoft Azure
  &amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp - CloudLink
  <br></p>
<h1 id="h2클라우드-용어-알아두기h2"><h2>클라우드 용어 알아두기</h2></h1>
<p>  <code>클라우드와 온프레미스</code></p>
<blockquote>
<h3>온프레미스란</h3>
</blockquote>
<p>   &amp;nbsp<strong>온프레미스</strong> 란?
  &amp;nbsp&amp;nbsp - 사용자가 관리하는 시설 내에 서버 등의 기기를 설치해 운용하는 환경</p>
<p>   &amp;nbsp &amp;nbsp &amp;nbsp장점
   &amp;nbsp &amp;nbsp &amp;nbsp &amp;nbsp&gt; 기기는 사용자가 자유롭게 이용할 수 있고, 이용 헝태에 맞게 자유롭게 구성할 수 &amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp있음.
   &amp;nbsp &amp;nbsp &amp;nbsp &amp;nbsp&gt; 이후에 들어가는 운용 비용의 비율이 비교적 낮음.</p>
<p>  &amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp단점
   &amp;nbsp &amp;nbsp &amp;nbsp &amp;nbsp&gt; 초기투자 비용이 많이 들고 설치나 시간등 정보 시스템을 구축하기 위한 준비기간이 &amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp길어짐.
   &amp;nbsp &amp;nbsp &amp;nbsp &amp;nbsp&gt; 기기 고장 등 예측하지 못한 상황이 발생해 추가 비용이 발생 하는 때도 있음
<br></p>
<blockquote>
<h3>클라우드란</h3>
</blockquote>
<p>   - <strong>클라우드 컴퓨팅</strong>(Cloud computing)
  &amp;nbsp&amp;nbsp&amp;nbsp&gt; 보이지 않는 컴퓨팅 자원을 활용함.</p>
<p>  &amp;nbsp&amp;nbsp &gt; 클라우드 서비스 제공자가 서버 등의 기기를 준비하고 거기에 구축된 가상 서버나 응용 &amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp프로그램 등을 사용자에게 제공하여 이용료를 받는 형태</p>
<p>  ** <h4> &quot; 사용자는 바로 정보 시스템을 구축 할 수 있다. &quot; </h4> ** <br></p>
<p>   &amp;nbsp &amp;nbsp &amp;nbsp장점
   &amp;nbsp &amp;nbsp &amp;nbsp &amp;nbsp&gt; 사용자는 하드웨어 장애에 대해 신경쓰지 않아도 됨.
   &amp;nbsp &amp;nbsp &amp;nbsp &amp;nbsp&gt; 기기 노후화나 고장 걱정 없이 안정적으로 컴퓨팅 자원을 사용할 수 있음.</p>
<p>  &amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp단점
   &amp;nbsp &amp;nbsp &amp;nbsp &amp;nbsp&gt; 사용자는 제공되는 서비스 범위 내에서만 시스템을 이용할 수 있으므로 시스템 구성 &amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp 자유도가 낮음.</p>
  <br>

<blockquote>
<h3>가상화</h3>
</blockquote>
<p>  <strong>클라우드 서비스에서 사용자는 서버를 임대하여 사용</strong></p>
<pre><code>  사용자가 사용하고 싶은 사양으로 서버를 선택하면 가상화 기술을 이용해 해당 사양으로 서버를 
  선택하면 가상화 기술을 이용해 해당 사양의 서버를 가상으로 생성해 사용함.

  가상서버는 하나 또는 클러스터링 된 물리 서버 내에 만들어짐.</code></pre><blockquote>
<h3>서버리스</h3>
</blockquote>
<p>  - <strong>서버리스</strong>(Serveless) 시스템
   &amp;nbsp&amp;nbsp &gt; &#39;서버가 없다&#39;라는 의미
   &amp;nbsp&amp;nbsp &gt; 서비스가 이용될 때만 서버를 가동하는 방식</p>
<blockquote>
<h3>개방형 클라우드와 폐쇄형 클라우드</h3>
</blockquote>
<p>   &amp;nbsp<strong>폐쇄형 클라우드</strong> 란?
  &amp;nbsp &gt; 기업 내부의 비밀을 유지하기 위해 외부에 공개하지 않도록 기업 내부에 구축하는 형태 <br>
  &amp;nbsp<strong>개방형 클라우드</strong> 란?
  &amp;nbsp &gt; 모든 사람이 쓸 수 있게끔 공개된 형태
  &amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp&amp;nbsp<code>AWS는 모든 사람이 사용할 수 있는 개방형 클라우드 서비스임.</code></p>
<pre><code>  혼합형 클라우드(Hybrid Cloud)도 존재함.</code></pre><blockquote>
<h3>서비스 제공 형태에 따른 클라우드 분류</h3>
</blockquote>
<p>  <strong>Saas (Software as a Service)</strong> : 응용 프로그램을 서비스로 제공하는 형태 
  &amp;nbsp ex) Gmail, Dropbox, Office365, Zoom
  <strong>Paas (Platform as a Service)
  Iaas (Infrastructure as a Service)</strong> : 응용프로그램을 만들기 위한 기능을 서비스로 제공</p>
<pre><code>  Paas : 클라우드 서비스 제공자는 OS 및 미들웨어까지 관리, 필수기능만 사용자에게 제공  
  Iaas : 서버 및 네트워크 기능만 제공, 설정과 관리는 사용자의 몫</code></pre><h1 id="h2aws를-이해하기-위한-6가지-특징h2"><h2>AWS를 이해하기 위한 6가지 특징</h2></h1>
<blockquote>
<h3>AWS 와 사용자 간의 책임 공유</h3>    
</blockquote>
<p>  - <strong>공동책임 모델(Shard Responsibility Model)</strong> : 하드웨어나에 문제가 발생하면 AWS가 책임을 지고 복구 함. </br>
  &amp;nbsp <code>책임범위는 이용하는 서비스에 따라 다르며 사용자는 자신의 책임범위만 운용, 관리하면 되므로 업무 부하가 줄어든다.</code></p>
<blockquote>
<h3>글로벌 시스템 구축 가능</h3>    
</blockquote>
<p>  AWS에서 관리하는 데이터 센터는 전 세계에 존재함.
   &amp;nbsp&gt; 지역별로 <strong>리전</strong> 이라는 단위로 분리되어 있음.</p>
<p>   <strong>리전</strong>
   :  각 리전에는 가용영역(Available Zone, AZ)이 여러 개 존재, 하나 이상의 데이터 센터로 구성됨.
   : 각 AZ는 서로 다른 위치에 있으므로 데이터 센터 장애와 같은 대규모 장애가 발생하더라도 다른 AZ에서 서비스를 제공함.</p>
<p>   &amp;nbsp&amp;nbsp&gt; 사용자는 자신이 이용한 리전만 선택하면 되므로 간단히 글로벌 서비스를 구축할 수 있음.</p>
<blockquote>
<h3>사용한 만큼만 이용료 지불</h3>    
</blockquote>
<p>  AWS는 <strong>종량 과금제</strong> 이다.</p>
<p>  &gt; 대부분의 서비스는 시간당 요금이 부과 되도록 설정되어 있음. (요금 x 이용시간)</p>
<p>  <code>온프레미스는 하드웨어 구매등 초기 비용이 많이 발생하지만 AWS에서는 사용한 만큼 비용이 발생하므로 소규모의 서비스를 시작할 때 유리함.</code></p>
<p>  &gt; 실제 요금은 사용하는 인스턴스의 종류와 스토리지에 따라 증가함.</p>
<blockquote>
<h3>서버의 자원과 수를 설정에서 쉽게 변경</h3>    
</blockquote>
<p>  &gt; AWS에서 생성한 서버는 자원이나 수를 쉽게 변경할 수  있으며 구축된 서비스의 사용자가 증가했을 때 서버 수를 늘리거나 사양을 높이는 등 유연하게 대응할 수 있음.</p>
<blockquote>
<h3>장애를 예상한 설계</h3>    
</blockquote>
<p>  &quot; AWS는 장애는 언제라도 발생할 수 있다는 전제로 설계함. &quot;</p>
<p>  &gt; 서버를 여러 AZ에 배포해 한 개 이상의 AZ에 장애가 발생하더라도 중단 없는 서비스를 제공할 수 있게 함.
  &gt; 시스템을 중단 없이 계속해서 실행할 수 있는 능력을 <strong>가용성</strong>이라고 함.</p>
<blockquote>
<h3>설계의 모범이 되는 프레임 워크</h3>    
</blockquote>
<p>  &#39; Well-Architected &#39;라는 아키텍처 관련 모범 사례를 모아 사용자가 안전하고 효율적인 인프라를 구축할 수 있게 지원하는 프레임워크를 제공함.</p>
<p>  - <strong>&#39; Well-Architected 프레임 워크 &#39;</strong>의  6가지 원칙</p>
<ul>
<li><p>운영우수성</p>
</li>
<li><p>보안</p>
</li>
<li><p>안정성</p>
</li>
<li><p>성능 효율성</p>
</li>
<li><p>비용 최적화</p>
</li>
<li><p>지속 가능성</p>
<br>
#   <h2>서비스 분류 및 대표적인 서비스</h2>

</li>
</ul>
<blockquote>
<p>AWS 서비스 분류</p>
</blockquote>
<p>&amp;nbsp&amp;nbsp<code>AWS를 파악 할 때애는 서비스의 특성별로 분류해 이해하는 것이 좋다.</code></p>
<blockquote>
<p>대표적인 서비스 </p>
</blockquote>
<p>&amp;nbsp컴퓨팅 서비스
&amp;nbsp&amp;nbsp&gt; 가상 서버 : EC2</p>
<p>&amp;nbsp컨테이너 서비스
&amp;nbsp&amp;nbsp&gt; ECS</p>
<p>&amp;nbsp스토리지
&amp;nbsp&amp;nbsp&gt; EBS, S3</p>
<p>&amp;nbsp데이터베이스 
&amp;nbsp&amp;nbsp&gt; RDS, DynamoDB</p>
<blockquote>
<p>관리형 서비스, 비관리형 서비스</p>
</blockquote>
<p>- <strong>&#39; 관리형 서비스 &#39;</strong> 란?
&amp;nbsp&amp;nbsp &gt; 서비스를 이용하기 위한 관리나 운영(시스템 운영)을 클라우드 서비스 제공자가 수행하는 것. </p>
<p>- <strong>&#39; 비관리형 서비스 &#39;</strong> 란?
&amp;nbsp&amp;nbsp &gt; 사용자가 직접 OS 설정을 관리하거나 장애 대응을 해야하는 서비스</p>
<p>- <strong>&#39; 완전관리형 서비스 &#39;</strong> 란?
&amp;nbsp&amp;nbsp &gt; 사용자가 직접 관리할 필요가 없는 서비스 </p>
]]></description>
        </item>
    </channel>
</rss>