인프라 (Infra)

인프라 (Infra)

Spring에서 Alloy를 이용해 Loki로 로그 보내기

ELK스택과 LGTM 스택로그 수집과 시각화에 있어 가장 많이 언급되는 두 가지 스택은 ELK(Elasticsearch, Logstash, Kibana) 와 LGTM(Loki, Grafana, Tempo, Mimir) 입니다. ELK 스택은 로그를 중앙에서 수집하고 색인화하여 Kibana에서 시각화합니다. 그러나 리소스를 많이 사용하는 단점이 있습니다. LGTM 스택은 Grafana Labs에서 만든 스택으로, Loki를 통해 로그를 수집하고, Grafana에서 시각화합니다. Loki는 로그를 메타데이터 기반으로 저장하므로 리소스 사용이 적고, Prometheus와 잘 연동됩니다. Mimir은 메트릭 저장 시스템이고, Tempo는 분산 추적 시스템이라 사용하지 않고, 로그 저장 시스템인 Loki와 시각화..

인프라 (Infra)

장고 앱 CI/CD, 무중단 배포 구현기

개요AS-IS기존의 시스템은 다음과 같은 워크플로우로 CD를 진행했습니다.다음 구조에서는 다음과 같은 부분에서 아쉬움을 느꼈습니다.서버에서 직접 도커 이미지를 빌드서버 자원을 더 사용합니다도커 컨테이너 종료후 빌드와 재실행빌드하는 동안 시간이 많이 걸려 서버가 다운타운이 길어집니다빌드후 서버 종료-재실행을 진행해 중단 시간을 줄여도, 여전히 무중단은 아닙니다Nginx 관련Nginx가 같이 재시작하고 있어 무중단 배포가 어려운점그리고 도커에서 실행되고 있어 TLS 인증서 자동 갱신이 어려웠던 점그리하여 해당 구조를 개선하기 위한 작업을 하고자 합니다.TO-BE도커 이미지 저장소기존에 서버에서 도커 이미지를 직접 빌드했던 가장 큰 이유는 도커 이미지 저장소가 마땅하지 않았기 때문입니다.가장 디폴트로 사용할 ..

인프라 (Infra)

Azure 기본 IP 주소 vs. 표준 IP 주소

Basic(기본) IP vs. Standard(표준) IPAzure의 IP 주소 가격 정책을 보면 다음과 같이 기본과 표준으로 나누어져 있는 것을 볼 수 있습니다.QnA를 보면 다음과 같은 설명이 별첨되어 있습니다.Q. 표준 공용 IP와 기본 공용 IP는 어떻게 다른가요?A. 기본 공용 IP에 포함된 기능 외에도 표준 공용 IP는 영역 복원력을 제공합니다. 표준 Load Balancer와 함께 사용하면 표준 공용 IP는 고가용성과 영역 복원력을 제공합니다.이와 같이 전반적으로 표준 SKU가 기본 SKU 보다 더 최신의 기능을 제공하는 것을 알 수 있습니다.SKU란? SKU(Stock Keeping Unit)은 Azure에서 제공하는 각 서비스의 세부 유형을 나타내는 식별자입니다- 가상머신을 예로 들면 C..

인프라 (Infra)

컨테이너 레지스트리 비교

개요Docker Hub는 가장 널리 쓰이는 컨테이너 이미지 저장소이지만, 이 외에도 AWS의 ECR, Google의 GCR, Azure의 ACR, 그리고 GitHub와 GitLab 레지스트리 등 다양한 컨테이너 레지스트리 서비스들이 존재합니다.이번 글에서는 Docker Hub를 포함한 여러 컨테이너 레지스트리 서비스를 비교해, 어떤 옵션이 프로젝트에 적합한지 알아보겠습니다.서비스Docker HubDocker Hub는 Docker의 제작사인 Docker Inc.에서 제공하는 기본 컨테이너 이미지 레지스트리입니다.기본 설정으로 docker pull 명령어를 사용할 때 별도의 레지스트리를 지정하지 않으면, 자동으로 Docker Hub에서 이미지를 가져옵니다. 예를 들어, docker pull nginx와 같이..

인프라 (Infra)

HeadVer 버저닝 기반 Vercel 자동 배포 구현기

개요솔리드 커넥션의 웹 파트를 개발하며 HeadVer 버저닝을 기반으로 Github Actions와 Vercel을 사용해 CI/CD 자동화를 이루어낸 기록을 정리합니다.솔리드 커넥션 웹, 그리고 배포 방식솔리드 커넥션은 교환학생을 돕기 위한 서비스입니다. 웹 애플리케이션은 Next.js로 개발되었으며, 배포는 Vercel을 통해 이루어지고 있습니다.Vercel은 정말 편리한 기능들을 많이 제공하고 있습니다. 그 중 하나는 Github과 잘 연계하여 빌드/배포를 매우 편리하게 해주는 것인데요, Github에 올라온 커밋들을 모두 자동으로 빌드해주고, 지정된 배포 브랜치에 올라온 내용을 자동으로 배포해줍니다. 서비스 CD를 위해서 배포용 release 브랜치를 만들고, 해당 브랜치에 PR을 올리는 것으로 배..

인프라 (Infra)

EC2 T instance VS M instance 비용 비교

AWS EC2(Elastic Compute Cloud)에는 t2, t3, t4g처럼 t로 시작하는 T instance가 있습니다. 이런 T type instance는 공유 코어를 사용한다는 특징이 있는데요, 이로 인하여 항상 높은 CPU 사용률을 보이지 않는 경우 M instance에 비해 비용을 줄일 수 있습니다.하지만 어느정도 사용할 때 M instance보다 저렴한지 비교하기 어려운데요, 이를 정리해 보았습니다.시작하기 전에 알아둘 점1. T instance는 M instance 특정 종류와 동일한 프로세서를 사용합니다.T instanceM instance프로세서 종류T2M4#2.4GHz 인텔 제온: 하스웰 E5-2676 v3(2.4~3.0Ghz, 15Q4?) 브로드웰 E5-2686 v4(2.3~3..

인프라 (Infra)

AWS ELB 구조 간단 정리

AWS의 로드밸런서 서비스인 ELB는 L4 로드밸런서인 NLB와 L7 로드밸런서인 ALB 등을 지원합니다. ELB를 사용해 보며 경험한 ELB 아키텍처의 구조를 간단하게 정리해 보았습니다. 아래의 에시는 ALB를 기준으로 합니다. 아키텍처의 가장 앞단에는 ELB가 위치합니다. ELB에는 IP가 아닌 DNS 주소가 하나 할당되는데, 이를 Route 53등을 이용해서 연결해서 사용할 수도 있고, 해당 주소를 그냥 사용할 수도 있습니다. ELB에는 각 입력 방식마다 리스너를 설정해 줍니다. 예를 들면 HTTP 80번 포트에 Listner1, HTTP 81번 포트에 Listner2를 할당할 수 있는 방식입니다. 각 리스너에는 대상 그룹(Target Group)을 하나씩 연결해 줍니다. 타깃그룹의 종류는 인스턴스..

인프라 (Infra)

클라우드 서비스(Azure, AWS, GCP, Oracle) Freetier 비교

대표적인 클라우드 Azure, AWS, GCP, Oracle에서 제공하는 프리티어 서비스를 비교해 보았습니다. 지속적으로 추가 중입니다.일반 FreetierAzure은 아래 외에도 30일간 USD200 토큰을 지급합니다.GCP는 아래 외에도 90일간 USD300 토큰을 지급합니다.Oracle의 1oCPU는 1개의 실제 물리적 코어를 의미하며, x86에서는 1oCPU = 2vCPU, Arm에서는 1oCPU = 1vCPU가 됩니다. AzureAWSGCPOracleComputeAzure Virtual MachineAmazon EC2Compute EngineComputeB1s(1vCPU, 1GiB) Linux, Window용 각각 월 750시간 제공(12개월)t3.micro(0.2vCPU, 1GiB) 또는 t2..

인프라 (Infra)

AWS EC2로 code-server 생성하기

웹에서 vscode를 사용할 수 있도록 해주는 code-server를 AWS의 EC2를 이용하여 생성하는 방법을 소개합니다. 1. EC2 인스턴스 생성하기 AWS 계정 생성 등 이전의 절차는 완료된 상태에서, EC2 컨테이너를 생성하겠습니다. 이번에 사용할 컨테이너는 t2.micro로 free tier대상이기에 무료로 사용할 수 있습니다. 또한 code-server는 t2.micro로도 충분할 정도로 가벼운 사양을 가지고 있기에 단순 코딩용으로 이용하기 적합합니다. code-server의 권장 최소사양은 1 GB of RAM, 2 CPU cores 으로 실제로는 t2.micro의 다음 사양인 t2.small 이상의 인스턴스를 사용하는 것이 좋습니다 아시아 태평양 (서울)ap-northeast-2로 지역을..

인프라 (Infra)

EC2 인스턴스 볼륨 확장하기

EC2 인스턴스를 사용하다 보면 예상보다 용량이 더 필요하여 기존에 사용하던 인스턴스의 용량 확장이 필요한 경우가 있습니다. 이러한 경우에 용량을 늘리는 방법을 소개합니다. 콘솔에서 볼륨 확장 우선 AWS 웹에서 볼륨을 확장해 줍니다. EC2 서비스 -> Elastic Block Store -> 볼륨 -> 볼륨 선택 -> 수정 -> 크기 -> 수정 버튼 과정으로 EBS 볼륨의 크기를 늘일 수 있습니다. 최신의 인스턴트 종류들은 대부분 실시간 수정이 가능하나 구형 인스턴스는 안될 수 있습니다. 인스턴스에서 반영 콘솔에서 볼륨을 확장해주었다면, 인스턴스로 들어가 확장된 볼륨을 반영하여 파티션을 수정해주어야 합니다. 파티션 확인 lsblk 위의 명령어를 통하여 파티션을 확인해줍니다. 아래는 출력의 예시입니다...

Wibaek
'인프라 (Infra)' 카테고리의 글 목록