본문 바로가기

연재작/DevOps

(7)
Terraform 핵심 프로세스 지난번 글https://namucy.tistory.com/93 Terraform을 통한 Infrastructure Provisioning서비스를 제공할 Infrastructure를 구성, 구축하는 것을 Infrastructure Provisioning이라고 한다. 연차가 많이 쌓인 개발자들은 코웃음을 칠 수준이겠지만, 본격적으로 개발이라는 것에 손대기 시작한 8월namucy.tistory.com  Terraform을 IaC(Infrastructure as Code)라고 설명했듯이,Terraform은 코드, 프로그래밍 언어를 통해서 인프라를 구축하기 때문에 문법이 존재한다.Go 기반 HCL 선언형 언어로 관리되기 때문에 생소할 수는 있으나, 써본 경험에 의하면 JSON같은 느낌이다.  문법에 대한 설명은 ..
Terraform을 통한 Infrastructure Provisioning 서비스를 제공할 Infrastructure를 구성, 구축하는 것을 Infrastructure Provisioning이라고 한다. 연차가 많이 쌓인 개발자들은 코웃음을 칠 수준이겠지만, 본격적으로 개발이라는 것에 손대기 시작한 8월부터이에 대해 관심을 가져왔고, 본격적으로 인프라의 구성과 배포를 배우기 시작한 10월부터는 배포 환경을 끊임없이 만들어왔다. 처음에는 AWS EC2 단일 인스턴스 하나 + Docker 사용을 통한 것이 전부였다.아직도 사용하는 것은 AWS뿐 이지만 그 안에서도 차근 차근 내가 다루지 못했던 인스턴스들, 서비스를 사용하며 영역을 넓혀가고 있었다.  하면 할 수록 느끼는 것은 인프라를 구축하는 데는 시간이 꽤 걸리고, 손이 많이 간다는 것이다. 도중에 어떤 값을 사용했는지도 일일이..
MSA의 분산 트랜잭션, Saga 패턴 1. MSA(Microservice Architecture) Microservice Architecture 는 Monolithic Architecture와 달리,여러 개의 서비스로 나누어서 API 서비스의 책임분리를 한 아키텍쳐 이다.한 서비스의 장애가 다른 서비스에 영향을 주는 현상을 SPOF(Single Point Of Failure)라 하는데,MSA는 서비스가 독립적으로 실행되기에 특정 서비스가 다른 서비스에 주는 영향이 적다. 그렇지만, 이 서비스를 사용하기 위해서는 필연적으로 여러 서버를 유지해야 함과 동시에이를 중앙화할 API GW라는 추가적인 인스턴스의 사용도 필요하다.  2. 분산 트랜잭션 한편, 각 서비스에 대한 DB 운영 방식 또한 어떻게 해야할 지를 생각해봐야 한다.Monolithic..
EC2 Tomcat Server pipeline 구축 + S3 정적 웹서버와 연동 정적 웹페이지를 S3에 구축했지만, 여전히 페이지가 제대로 작동하지는 않는다.아직 API 요청에 응답해주는 서버를 구축하지 않았기 때문이다. 이번에는 EC2에 docker를 이용한 tomcat server를 만들고자 한다.일단은 public에 서버를 형성하고, 나중에 security 기능을 추가하는 것으로 생각중이다. 우선 기본 VPC 세팅은 지난번 글 https://namucy.tistory.com/47 AWS EC2 Private Instance 구축 (2) VPC, 서브넷, IGW, 라우터 테이블지난 번에 그려놨던 아키텍쳐를 토대로 VPC 및 서버(인스턴스) 설정의 절차를 소개하겠다. 1. Root 사용자 vs IAM 사용자일단 AWS "콘솔에 로그인" 을 누르면 IAM 사용자 로그인창이 먼저 뜨지..
AWS S3를 통한 React SPA의 CI/CD Pipeline 정적 리소스를 반환하는 웹서버를 구축하기 위해 S3를 사용해보기로 했다.동시에, github repository의 내 branch로부터 push 할 때 한번에 업데이트 되도록 하는 S3 를 통한 웹 서버 구축 방법과 이 과정에서 알게된 것들을 적어보고자 한다. 0. S3는 VPC에서 구축되지 않는다. 맨처음 S3를 구축하기 위해서 여러 가이드를 참고해보다가 알게 된 사실이다.VPC를 먼저 만들고, EC2처럼 그 위에 S3를 구축해야할 줄 알았는데S3는 VPC위에 형성되는 것이 아니였다.  1. S3 버켓 만들기 및 object 먼저 배포해보기S3는 선택한 AWS Region에 나만의 "bucket"이라는 웹 스토리지 서버를 구축해서 사용한다.그렇기에 Region의 선택은 필수이다. 이때 Region 선택..
SPA 기능을 구현하는 웹 페이지의 CI/CD Pipeline 여태까지 소개했던 배포 방식은 순수하게 Spring boot를 통해WAS나 정적 페이지 혹은 어떻게 API를 구축하고 배포할지에 대한 내용이었다. 이제 여기에 프론트엔드의 작업물인 CSR 웹 페이지를 반환하고,여기에 API 까지 같이 구축하는 CI/CD 다이어그램를 구축해보면 아래의 그림과 같다.   기본적인 CI/CD의 흐름은 지난번 글들에서 소개한 Github Action을 사용한 CI/CD 파이프라인을 구축한 것과동일한데, 몇 가지 추가 사항 및 변동 사항이 있다. 1. AWS S3의 사용AWS는 정적 데이터를 제공하는 S3라는 서비스를 제공한다.이를 통해 HTML, CSS, JS, 이미지, 영상, 폰트 등을 제공할 수 있다.React로 만들어낸 CSR페이지와 같은 경우에도, npm run buil..
Producer - Consumer 패턴 프로그래밍을 공부하다 보면 Producer와 Consumer라는 단어가 참 많이 보인다.그렇다면 Producer와 Consumer가 무엇이길래 이렇게 많이 등장하는 것일까?Producer - Consumer 패턴에 대해 알아보자. 1. Producer and Consumer Problem"The producer and consumer problem is one of the small collection of standard, well-known problems in concurrent programming. A finite-size buffer and two classes of threads, producers and consumers, put items into the buffer (producers)..