개발 etc
AWS Builders Online Series 후기
🚀 잡담하기 최근에 아마존의 AWS가 한국에 정말 많은 투자와 관심을 주고 있다는게 느껴졌다. 예전부터 한국어 자막이나 한국어로 된 강의를 찍어서 행사나 강의, 세미나 등 열어주었기 때문이다. 또 최근 뉴스 "AWS에서 2027년까지 7조 8500억원 한국 클라우드 시장 투자"였는데 정말 어마무시하다...;; AWS 말고도 클라우드 서비스를 하는 국내 기업은 NHN, Naver, Kakao, Samsung 등이 있다. (해외는 Oracle, Google, Microsoft 등) 네이버는 두 번째 데이터센터 세종을 오픈하고, 카카오 클라우드도 여러 세미나 참여하면서 홍보하고, NHN 클라우드도 올해 세미나 크게 열면서 엄청났죠. 그런데 저번에 갔던 "대한민국 디지털 미래혁신대전 2023" 컨퍼런스에서 삼..
분산환경에서 DB 기본키(PK)는 어떤 ID 생성 전략으로 만들어야할까? (UUID,ULID,TSID...)
보통 개발 편의성을 위해 Oracle의 Sequence, MySQL의 auto_increment 로 숫자를 1씩 증가시키는 것으로 만든다. 이것은 어떤 문제점이 있을까? 외부에서 해당 시스템 PK를 예측하기 쉬워져서 SQL Injection 문제 Sequence, auto_increment는 중앙 집중식으로 값을 생성하는 방식이므로 DB에 의존적이게 되어 확장성이 제한되는 문제 서비스 폭풍성장 시, ID 고갈되는 문제 (BIGINT 최댓값은 4,294,967,295 이고, unsigned BIGINT라면 18,446,744,073,709,551,615) 데이터베이스 변경의 어려움 DB가 2대 이상일 때 중복 문제 💡 MySQL 5.7 이하 버전에서는 AUTO_INCREMENT counter 값을 메모리에..
백엔드 아키텍처 기초 6 - DB 규모 확장
백엔드 아키텍처 기초 1 백엔드 아키텍처 기초 2 - 응답시간 개선 백엔드 아키텍처 기초 3 - 웹 계층 수평적 확장 백엔드 아키텍처 기초 4 - 데이터 센터 백엔드 아키텍처 기초 5 - 메시지 큐, 로그, 메트릭, 자동화 서비스 규모가 커지면 DB 부하도 같이 증가한다. 그렇기에 DB 확장에 대한 다음 2가지 방법을 생각해야 한다. 수직적 규모 확장 (scale up) 수평적 규모 확장 (scale out) 🚀 수직적 확장 기존 서버의 자원(CPU, RAM 등)을 고사양 or 더 많이 증설하는 방법 하드웨어의 한계로 무한 증설 X 서버 1대로 모든 트래픽 감당 X SPOF(Single Point of Failure) 위험성 증가 고성능 자원일수록 비용 증가 🚀 수평적 확장 DB의 수평적 확장은 샤딩(s..
백엔드 아키텍처 기초 5 - 메시지 큐, 로그, 메트릭, 자동화
백엔드 아키텍처 기초 1 백엔드 아키텍처 기초 2 - 응답시간 개선 백엔드 아키텍처 기초 3 - 웹 계층 수평적 확장 백엔드 아키텍처 기초 4 - 데이터 센터 백엔드 아키텍처 기초 6 - 데이터베이스 규모 확장 기초 4에서는 전 세계에서 사용할 때 나라별로 데이터센터를 두어 지리적 라우팅으로 요청 및 응답을 처리하였다. 하지만 데이터 센터마다 데이터 동기화 문제가 있을 수 있다. 이러한 문제를 해결하기 위해 메시지 큐를 사용해보자. 🚀 메시지 큐(message queue) 메시지 큐는 메시지의 무손실(durability)을 보장하는 비동기(asynchronous) 통신을 지원하는 컴포넌트 즉, 메시지 큐에 보관된 메시지는 꺼낼 때까지 안전히 보관된다는 특성을 지님 생산자(producer) or 발행자(p..
백엔드 아키텍처 기초 4 - 데이터 센터
백엔드 아키텍처 기초 1 백엔드 아키텍처 기초 2 - 응답시간 개선 백엔드 아키텍처 기초 3 - 웹 계층 수평적 확장 백엔드 아키텍처 기초 5 - 메시지 큐, 로그, 메트릭, 자동화 백엔드 아키텍처 기초 6 - 데이터베이스 규모 확장 기초 3에서는 무상태 웹 계층을 가지면서 유연하고 확장성 있는 아키텍처 구조를 살펴보았다. 이제는 전 세계에서 접속한다고 했을 때를 생각해보자. 전 세계에서 사용한다면? 🚀 데이터 센터 장애가 없는 상황에서 사용자는 가장 가까운 데이터 센터에서 처리됨 이를 지리적 라우팅(geoDNS-routing)이라고 함 한국 사용자는 Korea DC1, 미국 사용자는 USA DC1 으로 안내됨 만약 데이터 센터 하나가 장애 발생 시, 다른 데이터 센터로 모든 트래픽이 전송됨 ⚠️ 다중 ..
백엔드 아키텍처 기초 3 - 웹 계층 수평적 확장
백엔드 아키텍처 기초 1 백엔드 아키텍처 기초 2 - 응답시간 개선 백엔드 아키텍처 기초 4 - 데이터 센터 백엔드 아키텍처 기초 5 - 메시지 큐, 로그, 메트릭, 자동화 백엔드 아키텍처 기초 6 - 데이터베이스 규모 확장 백엔드 아키텍처 기초 1에서는 규모에 따른 웹 계층을 수평적 확장하는 방법을 알아봤다. 웹 서버를 Scale Out 하더라도 로드 밸런서를 통해 트래픽 분산을 시키는 방법이다. 하지만 사용자 상태 정보와 같은 점은 생각하지 않았다. 이번에는 그에 관해 고민하고 정리한다. 웹 서버끼리 상태 정보는 어떻게 하나요? 🚀 무상태(stateless) 웹 계층 상태 정보를 웹 계층에서 제거하고, DB 같은 지속성 저장소에 보관하고 필요할 때 가져오는 것 📚 상태 정보 의존적인 아키텍처 서버는 ..
백엔드 아키텍처 기초 2 - 응답시간 개선
백엔드 아키텍처 기초 1 백엔드 아키텍처 기초 3 - 웹 계층 수평적 확장 백엔드 아키텍처 기초 4 - 데이터 센터 백엔드 아키텍처 기초 5 - 메시지 큐, 로그, 메트릭, 자동화 백엔드 아키텍처 기초 6 - 데이터베이스 규모 확장 백엔드 아키텍처 기초1에서는 사용자 규모에 따른 시스템 설계를 알아봤다. 이제는 응답시간(Latency) 개선에 대해 알아보자. 응답 시간은 캐시(Cache)와 콘텐츠 전송 네트워크(CDN, Content Delivery Network)로 개선할 수 있다. 사용자는 어떻게 웹사이트의 응답을 빨리 받아볼 수 있을까? 🚀 캐시 비싼 연산 결과 or 자주 참조되는 데이터를 메모리에 올린 후, 메모리에서 응답하는 임시 저장소 DB에서 조회하는 것보다 메모리에서 조회하는 것이 매우 빠..
AWSome Day 온라인 컨퍼런스 후기
편하게 듣고 정리할 생각은 없었는데 메일을 보니 참석 증명서를 보내주길래 적게되었다. 받아보면 성취감과 AWS의 좋은 감정이 생겨서 글로써 남기고 싶어졌다. 클라우드 서비스를 제공하는 여러 회사들이 있다. AWS Azure Google Cloud Oracle Cloud 네이버 클라우드 ... 이 중 가장 많은 점유율을 가지고 있는 AWS가 궁금했었는데 마침 AWS 온라인 컨퍼런스 신청을 받고 있길래 냅다 신청하고 들었다. 온라인 강의처럼 3시간동안 듣는 형식이라 큰 부담이 없었다. AWS 클라우드 개념 AWS 핵심 서비스 설명 AWS 사용 사례 위와 같은 내용으로 이루어져 있어서 입문자가 듣기 아주 좋았다. 🚀 강연 목록 🚀 AWS 클라우드 소개 온프레미스는 데이터 센터를 직접 구축, 소유, 운영하는 것..