<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>JSCODE 박재성</title>
  <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@7lQe" />
  <author>
    <name>jscode</name>
  </author>
  <subtitle>많은 사람들에게 긍정적인 영향을 끼치기 위해 프로그래밍 교육을 진행하고 있다. 비전공자로 시작해 CTO까지 성장한 경험을 기반으로 제자들을 가르치고 있다.</subtitle>
  <id>https://brunch.co.kr/@@7lQe</id>
  <updated>2019-02-18T14:05:46Z</updated>
  <entry>
    <title>1.12 비용 나가지 않게 EC2 깔끔하게 종료하기</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@7lQe/33" />
    <id>https://brunch.co.kr/@@7lQe/33</id>
    <updated>2024-02-13T14:53:55Z</updated>
    <published>2024-02-13T14:53:55Z</published>
    <summary type="html">1. EC2 인스턴스 종료하기   2. 탄력적 IP 릴리스하기&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F7lQe%2Fimage%2FWSAJ0mlJnzaG7EOiEsl2X6oiYvw.png" width="400" /&gt;</summary>
  </entry>
  <entry>
    <title>1.11 Spring Boot 서버를 EC2에 배포하기</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@7lQe/32" />
    <id>https://brunch.co.kr/@@7lQe/32</id>
    <updated>2024-02-13T14:52:20Z</updated>
    <published>2024-02-13T14:52:20Z</published>
    <summary type="html">1. Ubuntu 환경에서 JDK 설치하는 법 Spring Boot는 3.x.x 버전을 사용할 예정이고, JDK는 17버전을 사용할 예정이다. 그에 맞게 환경을 설치해보자.     2. 잘 설치됐는지 확인하기     3. Github으로부터 Spring Boot 프로젝트 clone하기  https://github.com/JSCODE-EDU/ec2-sprin&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F7lQe%2Fimage%2FH2YsfzS2taKURuXeepaXs_Fq3Ac.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>1.10 Express 서버를 EC2에 배포하기</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@7lQe/31" />
    <id>https://brunch.co.kr/@@7lQe/31</id>
    <updated>2024-02-13T14:42:19Z</updated>
    <published>2024-02-13T06:29:55Z</published>
    <summary type="html">1. Ubuntu 환경에서 Node.js 설치하는 법 Ubuntu 환경에서 Express 서버를 실행시키려면 Node.js가 설치되어 있어야 한다. 그래서 Ubuntu에 우선 Node.js를 설치해보자.   https://github.com/nodesource/distributions     2. 잘 설치됐는지 확인하기    3. Github으로부터 Exp&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F7lQe%2Fimage%2FsZILU-9wn19j4Ls-qcT17ho04ns.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>1.9&amp;nbsp;탄력적 IP 연결하기</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@7lQe/30" />
    <id>https://brunch.co.kr/@@7lQe/30</id>
    <updated>2024-02-12T14:20:39Z</updated>
    <published>2024-02-12T12:28:15Z</published>
    <summary type="html">탄력적 IP가 왜 필요할까? EC2 인스턴스를 생성하면 IP를 할당받는다. 하지만 이렇게 할당받은 IP는 임시적인 IP이다.   EC2 인스턴스를 잠깐 중지시켰다가 다시 실행해보면 IP가 바뀌어있다. 이럴 때마다&amp;nbsp;IP가 바뀐다면 굉장한 불편함을 느낄 것이다.   그래서 중지시킨 후 다시 실행해도 바뀌지 않는 고정 IP를 할당받아야 한다. 그것이&amp;nbsp;바로 탄력적&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F7lQe%2Fimage%2F41laNXmR31WtRNVQi5TgoEqcQnY.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>1.8&amp;nbsp;EC2 접속하기</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@7lQe/29" />
    <id>https://brunch.co.kr/@@7lQe/29</id>
    <updated>2024-02-12T15:10:27Z</updated>
    <published>2024-02-12T12:18:24Z</published>
    <summary type="html">생성된 인스턴스 정보 해석하기 1. 세부 정보  세부 정보에서 눈여겨 봐야 할 부분은 2가지 밖에 없다. 퍼블릭 IPv4 주소와 인스턴스 상태이다.   퍼블릭 IPv4 주소는 EC2 인스턴스가 생성되면서 부여받은 IP 주소이다. EC2 인스턴스에 접근하려면 이 IP 주소로 접근하면 된다.   인스턴스 상태는 말그대로 EC2 인스턴스가 실행 중이라는 뜻은 컴&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F7lQe%2Fimage%2F_A6t7CRjiyiVlUjVmRDIXRSL4AA.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>1.7&amp;nbsp;EC2 셋팅하기 - 스토리지 구성</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@7lQe/28" />
    <id>https://brunch.co.kr/@@7lQe/28</id>
    <updated>2024-02-12T12:42:30Z</updated>
    <published>2024-02-12T12:00:26Z</published>
    <summary type="html">스토리지 구성  우리가 쓰고 있는 노트북이나 데스크톱 컴퓨터는 전부 하드디스크를 가지고 있다. 하드디스크는 컴퓨터에서 파일을 저장하는 공간이다. EC2도 하나의 컴퓨터이다보니 여러 파일들을 저장할 저장 공간이 필요하다.   이 저장 공간을 보고 EBS(Elastic Block Storage)라고 부른다. 즉, EBS란 EC2 안에 부착되어 있는 일종의 하드&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F7lQe%2Fimage%2FxnzPYJwT8cywvFhVmioRkBqdQwQ.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>1.6 IP와 Port의 개념</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@7lQe/27" />
    <id>https://brunch.co.kr/@@7lQe/27</id>
    <updated>2024-02-12T12:34:37Z</updated>
    <published>2024-02-12T11:47:50Z</published>
    <summary type="html">IP의 개념 한 줄 요약 : 네트워크 상에서의 특정 컴퓨터를 가리키는 주소 아래와 같은 값이 IP 주소이다. 13.250.15.132   IP는 특정 컴퓨터의 주소를 가리킨다. 예를 들면,&amp;nbsp;naver.com&amp;nbsp;이라는 서비스도 IP 주소를 가지고 있다. 저 IP 주소는 네이버가 운영하고 있는 컴퓨터의 주소이기도 하다.     Port의 개념 한 줄 요약 : 한</summary>
  </entry>
  <entry>
    <title>1.5 EC2 셋팅하기 - 보안그룹 설정</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@7lQe/26" />
    <id>https://brunch.co.kr/@@7lQe/26</id>
    <updated>2024-02-12T11:21:12Z</updated>
    <published>2024-02-12T09:23:32Z</published>
    <summary type="html">네트워크 설정 네트워크 설정 칸을 보면 VPC와 Security Groups(보안 그룹)가 보인다. 여기서 VPC라는 개념은 AWS를 입문하는 입장에서는 크게 중요하지 않으니 넘어가자. 나중에 AWS에 어느 정도 익숙해졌을 때 VPC를 학습하도록 하자. VPC를 몰라도 서버를 배포하는 데 아무 문제가 없다.   하지만 Security Groups(보안 그룹&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F7lQe%2Fimage%2F_LmHyGkKACk2owdwF3YbGIkA4Hw.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>1.4 EC2 셋팅하기 - 기본 설정</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@7lQe/25" />
    <id>https://brunch.co.kr/@@7lQe/25</id>
    <updated>2024-02-12T12:59:23Z</updated>
    <published>2024-02-12T09:10:01Z</published>
    <summary type="html">1. 이름 및 태그 EC2의 이름을 설정하는 곳이다.&amp;nbsp;이름을 지을 때는 이 컴퓨터가 어떤 역할을 하는지 알아볼 수 있게 작성한다. ex)&amp;nbsp;instagram-server   2. Application and OS Images (Amazon Machine Image) Ubuntu 22.04 LTS 선택  OS를 선택하는 단계이다. OS(운영체제)란 Mac, W&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F7lQe%2Fimage%2FmDsIteflSmu7P8NuvYe5HN7qbSo.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>1.3 리전(Region) 선택하기</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@7lQe/24" />
    <id>https://brunch.co.kr/@@7lQe/24</id>
    <updated>2024-02-12T12:18:05Z</updated>
    <published>2024-02-12T08:52:15Z</published>
    <summary type="html">AWS EC2 서비스로 들어가서 리전(Region) 선택하기  AWS EC2를 시작하기 위해서는 우선적으로 리전(Region)을 먼저 선택해야 한다.  리전(Region)이란?  리전(Region)이란 인프라를 지리적으로 나누어 배포한 각각의 데이터 센터를 의미한다.  말이 어렵다. 조금 더 쉽게 풀어서 EC2에 대입해서 생각해보자. 우린 EC2가 컴퓨터를&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0.fjpg/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F7lQe%2Fimage%2FWvYbVrG4xNeXrdpGs2ERtRdumvo" width="300" /&gt;</summary>
  </entry>
  <entry>
    <title>1.2 EC2란?</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@7lQe/23" />
    <id>https://brunch.co.kr/@@7lQe/23</id>
    <updated>2024-02-12T11:06:57Z</updated>
    <published>2024-02-12T08:18:56Z</published>
    <summary type="html">EC2(Elastic Compute Cloud)란? 한 줄 요약 : 컴퓨터를 빌려서 원격으로 접속해 사용하는 서비스이다. EC2를 쉽게 말하면 하나의 컴퓨터를 의미한다.   EC2(Elastic Compute Cloud)를 왜 배울까?  서버를 배포하기 위해서는 컴퓨터가 필요하다. 내가 가진 컴퓨터에서 서버를 배포해 다른 사용자들이 인터넷을 통해 접근할 수</summary>
  </entry>
  <entry>
    <title>1.1 배포(Deployment)란?</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@7lQe/21" />
    <id>https://brunch.co.kr/@@7lQe/21</id>
    <updated>2024-02-12T10:45:27Z</updated>
    <published>2024-02-12T08:03:42Z</published>
    <summary type="html">배포(Deployment)란?  개발자들은 &amp;ldquo;이제 기능 구현도 끝났고 테스트도 끝났으니 배포하자!&amp;quot;라는 말을 자주 한다.   여기서 배포란 무슨 뜻일까?   배포(Deployment)란 다른 사용자들이 인터넷을 통해서 사용할 수 있게 만드는 것을 의미한다. 쉽게 얘기해서 우리가 만든 웹 페이지나 서버를 다른 사람들이 사용하려면 인터넷 상에 배포가 돼있어야 &lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F7lQe%2Fimage%2FNmjVTSzFz9evX86kvuE5jCPsC9I.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>소프트웨어도 최대한 간결할수록 좋다.  - 복잡하다고 잘 만든 시스템이 아니다. 최대한 간결해야 한다.</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@7lQe/22" />
    <id>https://brunch.co.kr/@@7lQe/22</id>
    <updated>2024-02-12T08:02:13Z</updated>
    <published>2024-02-12T08:01:38Z</published>
    <summary type="html">SRE의 임무는 시스템의 신속함과 안정성&amp;nbsp;사이의 균형을 유지하는 것이다. 여기서 신속함과 안정성의 균형을 유지하려면 필수적인 요소가 간결함이다.   완벽함이란 더 이상 추가할 것이 없을 때가 아니라 더 이상 걷어낼 것이 없을 때 비로소 완성된다- 프랑스 시인 '생택쥐페리' -   소프트웨어의 디자인에서도 위의 말이 적용된다. 조금 더 정확히 표현하면, AP&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F7lQe%2Fimage%2FVY-MgkyDcRIqSGdAgpG-JhS9msY.jpg" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>모니터링 시스템은 최대한 단순하게 구성해라</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@7lQe/20" />
    <id>https://brunch.co.kr/@@7lQe/20</id>
    <updated>2024-01-28T13:56:01Z</updated>
    <published>2024-01-28T13:54:03Z</published>
    <summary type="html">모든 소프트웨어 시스템이 그렇겠지만, 모니터링 시스템 역시 복잡도가 증가하여 장애가 쉽게 발생하거나 변경 사항을 수용하기에 너무 복잡해져서 유지보수가 어려워진다. 그래서 모니터링 시스템을 디자인할 때는 최대한 간결함을 추구해야 한다.   모니터링 시스템을 개발하다보면 시스템의 상세 프로파일링, 단일 프로세스 디버깅, 예외 혹은 충돌에 대한 상세한 추적, 부&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F7lQe%2Fimage%2FCFmMiInN1MD8-Y5VI4vAbnP8keA.jpg" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>지표와 로그는 필요한 부분에 대해서만 수집해야 한다 - 많은 지표와 로그는 오히려 비용과 비효율성을 초래한다.</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@7lQe/19" />
    <id>https://brunch.co.kr/@@7lQe/19</id>
    <updated>2024-01-28T13:51:01Z</updated>
    <published>2024-01-28T13:51:01Z</published>
    <summary type="html">시스템의 지표와 로그를 측정할 때는 어느 정도로 세분화할 것인지 주의를 기울여야 한다. 예를 들어, CPU 부하를 초단위로 측정하면 유용한 데이터를 얻을 수도 있겠짐나, 수집하고 저장하고 분석하는 데 비용이 너무 많이 든다.&amp;nbsp;따라서 로깅, 모니터링 시스템을 구축할 때는&amp;nbsp;정말 필요한 지표와 로그에 대해서만 수집해야 한다.&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F7lQe%2Fimage%2FuJHe1KUGMKsdL9rRRer_ryDf7tQ.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>모니터링 시 가장 중요한 지표 4가지</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@7lQe/18" />
    <id>https://brunch.co.kr/@@7lQe/18</id>
    <updated>2024-01-28T13:46:41Z</updated>
    <published>2024-01-28T13:11:19Z</published>
    <summary type="html">모니터링에 있어서 가장 중요한 지표 4가지를 뽑으라고 하면 다음의 4가지를 뽑는다.  1. Latency (지연 시간)2. Traffic (트래픽)3. Error (에러)4. Saturation (포화 상태)  1. Latency (지연 시간) Latency는 요청이 응답을 받기까지 걸리는 시간을 의미한다. 이 때 응답 시간이 긴 요청에 대해 주의를 기울일&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F7lQe%2Fimage%2FdCuOT4ZRsWbLRzrSD5THmcJwEWk.png" width="318" /&gt;</summary>
  </entry>
  <entry>
    <title>모니터링 시스템의 가장 중요한 역할 1가지 - 모니터링 시스템은 OOO을&amp;nbsp;위해 존재한다.</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@7lQe/17" />
    <id>https://brunch.co.kr/@@7lQe/17</id>
    <updated>2024-01-28T13:07:13Z</updated>
    <published>2024-01-28T13:06:05Z</published>
    <summary type="html">백엔드 개발에 대해 공부하다보면 로깅, 모니터링에 대해 같이 배우게 된다. 생각보다 많은 사람들이 기술적으로만 로깅, 모니터링에 대한 시스템을 구축할 뿐, 어떠한 이유에서 구축을 하는 지, 어떤 목적으로 구축을 하는 지 명료하게 정의할 수 있는 사람들이 많이 없다.&amp;nbsp;모니터링을 왜 해야 하는 지, 어떤 걸 해결하기 위해서 해야 하는 지 천천히 이 글을 읽으며&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F7lQe%2Fimage%2FQrL-Lzgjg5diddbM7OLSqdgvC3c.jpg" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>운영하는 서비스에서의 가용성 측정법 - 시스템이 정상적으로 운영될 확률을 수치적으로 계산해보자!</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@7lQe/16" />
    <id>https://brunch.co.kr/@@7lQe/16</id>
    <updated>2024-01-28T10:52:24Z</updated>
    <published>2024-01-28T10:52:24Z</published>
    <summary type="html">왜 가용성을 측정할 수 있어야 할까? 서비스가 정상적으로 운영되지 않으면 사용자의 불편함, 브랜드 이미지, 사용자 이탈 등 여러가지의 손실이 발생한다. 그러다보니&amp;nbsp;서비스가 정상적으로 운영되어야 할 가용성을 수치적으로 표현함으로써 이러한 손실을 최소화할 수 있다.   만약&amp;nbsp;가용성을 수치적으로 표현하지 않는다면 직원들은 생각보다 서비스의 가용성을 크게 고민하지&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F7lQe%2Fimage%2F2ukfs3psvFjt0QvAr42LEDdgfzY.png" width="500" /&gt;</summary>
  </entry>
  <entry>
    <title>로깅, 모니터링을 공부하기 위한 책 추천</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@7lQe/15" />
    <id>https://brunch.co.kr/@@7lQe/15</id>
    <updated>2024-01-19T03:07:34Z</updated>
    <published>2024-01-19T00:17:39Z</published>
    <summary type="html">로깅, 모니터링을 처음 공부할 때는&amp;nbsp;Cloudwatch, Prometheus, ELK 등의 사용 방법에 초점을 맞춰서 공부하게 된다. 하지만 서비스를 운영하는 입장에서 기술의 사용법도 중요하지만, 이론적인 내용에 초점을 맞춰서 학습을 반드시 병행해야 한다.   예를 들어, CloudWatch로 CPU Utilization, Disk I/O, Memory 사&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0.fjpg/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F7lQe%2Fimage%2FFcaJI11W53v1cBf15UgSVny2OSw" width="300" /&gt;</summary>
  </entry>
  <entry>
    <title>무중단 배포에 목매지 마라 - 구글도 서비스가 중단될 때가 있다.</title>
    <link rel="alternate" type="text/html" href="https://brunch.co.kr/@@7lQe/14" />
    <id>https://brunch.co.kr/@@7lQe/14</id>
    <updated>2024-01-22T04:43:54Z</updated>
    <published>2024-01-18T15:58:16Z</published>
    <summary type="html">서비스의 안정성을 유지하면서 변화를 최대한 수용해라.  많은 개발자들이 무중단 배포, 에러 없는 서비스에 집착하는 경우가 있다.&amp;nbsp;안정성에 집착하다보면 서비스 안정성은 극도로 좋아지겠지만, 개발 생산성은 극도로 나빠지는 경우가 있다.   예를 들어, 서비스 중단 없이 기능 업데이트를 하기 위해 무중단 배포를 한다고 해보자. 이 때, 무중단 배포를 통해 서비스&lt;img src= "https://img1.kakaocdn.net/thumb/R1280x0/?fname=http%3A%2F%2Ft1.daumcdn.net%2Fbrunch%2Fservice%2Fuser%2F7lQe%2Fimage%2FOrBsd5b2mmhEmA6eHrUqBM1a5_k.png" width="500" /&gt;</summary>
  </entry>
</feed>
