인프라

인프라

안전하게 분산 환경에서 Lock 잡기 (Redlock)

Redis를 활용한 Lock 관리하기 1. Lock 이란? Lock 은 동시성 문제를 해결하기 위한 방법 중 하나입니다. 동시성 문제란, 여러 개의 프로세스나 스레드가 동일한 자원에 동시에 접근하려고 할 때 발생하는 문제를 의미합니다. 이러한 문제는 데이터의 일관성과 무결성을 해치는 원인이 되므로, 동시성 문제를 해결하기 위한 다양한 방법들이 제안되고 있습니다. 이번에는 Redis 를 활용한 Lock 관리 방법에 대해 알아보겠습니다. 단일 인스턴스를 활용한 Lock 관리 Redis는 단일 스레드로 동작하는 인메모리 데이터베이스이므로, 단일 인스턴스에서도 Lock을 관리할 수 있습니다. 가장 쉽게 생각할 수 있는 구조는 다음과 같습니다. if(redisTemplate.opsForValue().setIfAb..

인프라

private 서브넷에 인스턴스를 외부와 연결할 때, public ip? private ip?

어떤 문제가 있었나요? 우아한테크코스에서 private 서브넷에 db 인스턴스를 두고, 보안을 위해 외부에서 접속을 차단하려고 했습니다. 이 과정에서 총 2가지의 문제점이 있었습니다. private 서브넷에 인스턴스가 인터넷에서 mysql을 설치할 수 없었습니다. public 서브넷에 있는 인스턴스에서 private 서브넷에 있는 인스턴스에 접속이 안되었습니다. 이 부분을 어떻게 해결했는지 알아보도록 하겠습니다. 아래의 모든 설명은 AWS 를 기준으로 합니다. private 서브넷에 인스턴스가 인터넷에서 mysql을 설치할 수 없었다. 해결 방법 public ip 자동할당을 해주지 않아서, 인터넷에 연결이 안 되었습니다. 이를 해결하기 위해 public ip 자동할당을 해주었습니다. 왜 public ip..

인프라

github 에 Self Hosted Runner 로 EC2 에 CD 구축하기

우아한테크코스 미션을 하던 도중에 있던 CI/CD 에서 CD를 구축한 과정을 정리하게 되었습니다 코드는 여기서 확인하실 수 있습니다 CI/CD 란? 아주 간단한 설명을 드리겠습니다 CI(Continuous Integratoin) 지속적 통합으로, 자주자주 메인 코드베이스에 머지가 되어야 한다는 부분을 다루고 있는 부분입니다 이때 체크를 위해서 테스트를 만든다던가, 하는 과정을 거치죠 CD(Continuous Deploy) 프로덕션 환경에 자동으로 배포를 할 수 있어야 한다는 부분입니다 왜 CI/CD 가 필요한가? 우아한테크코스 환경에서는 외부에서 SSH 연결을 하지 못하게 막아두었습니다 허용해 둔다면, 어떤 사용자든 원하는 대로 SSH 연결을 해버려서, ec2를 마음대로 사용할 수 있으니 사실 당연한 거..

be-student
'인프라' 카테고리의 글 목록