본문 바로가기

DevOps6

[GCP] Instance Template과 Instance Group을 통한 VM 서버 생성과 블루-그린 배포 개요 웹사이트 개편 작업 이후 도입된 외부 API는 요청 헤더값에 우리 웹사이트의 vm 인스턴스 정보가 담긴다. 이러한 VM 인스턴스 IP 주소는 유동 IP로 설정되어있어서, IP가 변경될 때마다(배포할 때마다 - 블루∙그린배포) 매번 VM 인스턴스의 IP를 화이트리스트에 업로드해야 한다. 이러한 수동 업데이트 방식은 문제의 소지가 다분하다. 이 문제를 해결하기 위한 개편작업을 담당하였다. 그 과정을 시리즈로 블로그에 정리해보려 한다. 이 포스팅은 그 시작점인 Instance Template의 설정과 MIG이다. Instance Template Instance Template은 MIG를 통해 서버를 운영하기 위해서 가상머신 생성을 위한 일종의 규칙 사항들을 정리해 놓은 것이다. GCP의 Instance .. 2024. 1. 29.
[Redis] Redis 4편. 운영 방식과 호스팅 개요 SpringBoot와 Redis사용법을 redis-cli을 통해 로컬 환경에서 익혔다면, 호스팅 방법과 운영 방식에 대해 공부하고, 결정해보자. 데이터 관리 방식 Redis의 장점은 인메모리 방식으로 모든 데이터를 RAM에 저장하여 입출력 성능을 끌어올리는 것이다. 이러한 장점을 잘 사용하려면 어떤 데이터를, 어떻게 사용할지에 대해 잘 정의하고 이를 관리하는 방식에 대한 정의가 필요하다. 캐싱 전략 레디스 캐싱 전략은 크게 4 가지이다. 보통 읽기/쓰기 패턴을 고려하여 4 가지 전략 중 한 가지를 택하거나 2 가지 이상의 전략을 결합하여 사용한다. 레디스 DB에 쓰기 작업을 진행할 때 주의할 점은 인메모리 데이터베이스 특성상 영속성이 보장되지 않는다는 점이다. 따라서 이러한 데이터의 휘발성을 보완하.. 2024. 1. 8.
[Redis] Redis 3편. Spring Boot와 Redis | Lettuce, RedisTemplate, RedisRepository 개요 Redis는 다양한 언어와 함께 사용할 수 있다. 이번 포스팅에서는 spring boot 프로젝트에서 사용하는 Redis에 대해 알아보도록 한다. 현재 개발 운영 방식에 알맞은 방법으로 Redis를 도입할 수 있도록 각각의 라이브러리와 방식을 공부하는 것이 목적이다. 전체 코드는 깃허브에서 확인 가능하다. Lettuce와 Jedis 스프링 프로젝트에서 사용하는 레디스는 두 가지 종류가 있다. Lettuce Lettuce는 Netty 기반 라이브러리로 Asynchronous & Non-blocking으로 구현되어 있다. Netty란? 네트워크 애플리케이션 개발을 위한 오픈소스 자바 프레임워크로, 비동기 이벤트 기반의 네트워크 애플리케이션을 쉽게 개발할 수 있도록 관련 도구와 라이브러리를 제공한다. 자.. 2024. 1. 8.
[Redis] Redis 2편. 기본 자료형 개요 인프런 실전! Redis 활용 강의를 듣고 정리한 포스팅이다. redis의 자료형에 대해 알아보고 익숙해지기 위해 예시 코드를 작성해보도록 한다. Redis 자료형 특징 데이터 타입에 따라 명령어가 다르다. 대소문자 구별을 하지 않기 때문에 명령어를 대문자/소문자 구분없이 작성 가능하다. Strings 문자열, 숫자, serialized object(JSON) 등 여러 자료형을 저장하는 Strings Type이다. 레디스는 int, Integer 등 별도의 숫자 관련 자료형 없이 모두 strings로 저장한다. strings로 저장되어도 사칙 연산이 가능하다. (Java를 가장 많이 쓰는 입장에서 이 점이 젤 신기했다.) Strings 명령어 SET lecture라는 변수에 “inflearn-red.. 2024. 1. 4.
[Redis] Redis 1편. 개념과 특징, 설치 및 간단한 사용법 개요 인프런 실전! Redis 활용 강의를 듣고 정리한 포스팅이다. Redis의 개념과 특징, 설치, 간단한 사용법에 대해 정리한다. 해당 강의는 특정 프로그래밍 언어에 종속되는 것이 아니기에, spring boot에 redis를 사용하는 것은 후속편에서 포스팅할 예정이다. Redis 알아보기 Remote Dictionary Server의 약자로, 다수의 서버가 공유하는 해시 테이블이다. Remote: Redis 서버는 각각의 서버 안에 로컬하게 존재하는 것이 아니라, 개별적인 원격상 존재해서 다수의 서버가 공통으로 사용할 수 있다. Dictionary: key-value 쌍으로, 상수의 시간 복잡도로 사용이 가능하다. Redis 특징 표준 C로 작성된 오픈소스 인메모리 데이터 저장소이다. 백업을 제외한.. 2024. 1. 4.
[Docker] 도커 기본, 가상화(Virtualizaion)와 컨테이너 가상화(Virtualization)와 Container 가상화란 컴퓨터 자원을 가상 환경으로 분리하여 프로그램들이 상호 충돌없이 실행 가능하도록 하는 아키텍처 기술이다. 가상화의 종류 OS 수준 가상화 - (docker) 하나의 OS 커널을 여러 개의 공간으로 격리하여 각각의 컨테이너가 마치 독립된 것처럼 사용하는 가상화이다. 따라서 OS를 새로 설치하지 않고 host OS의 커널을 공유한다. 이러한 방식으로 실행 속도가 빠르고 성능 상의 손실이 적다. 사용자에게는 가상머신처럼 보인다. 개발 환경 가상화 anaconda, venv 등 특정 폴더를 가상환경으로 만들어서 라이브러리나 소스코드를 관리하는 방식이다. 머신 가상화 다수의 OS를 동시에 실행하는 플랫폼을 말한다. 하이퍼바이저에 OS를 설치하여 운영.. 2023. 3. 29.