일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- nandtotetris
- innodb구조
- mysql 구조
- BastianHost
- SessionManager 터널링
- MySQL
- performance스키마
- 리눅스
- s3 sync
- 필수 스크립트
- mysql 엔진
- 어뎁티브 해시 인덱스
- innodb 버퍼풀
- 마운트
- Terraform
- InnoDB
- ix is lock
- 도커
- 밑바닥부터 만드는 운영체제
- 안전하게 테이블 변경
- mysql 아키텍쳐
- S3 private통신
- 밑바닥부터 구현하는 컴퓨팅 시스템
- 온라인 ddl
- dff
- x lock s lock
- 운용 시 유용한 쿼리
- sessionManager
- ec2
- s3
- Today
- Total
목록분류 전체보기 (82)
이것이 점프 투 공작소
MySQL과 InnoDB의 Lock에 대해 알아보자서비스를 운영하다보면 서비스의 기능들이 갑자기 멈춰버리는 순간들이 찾아오게됩니다.그럴 때 사무실에서는 '일단 Lock 걸린거 찾아봐' 라는 말을 먼저 듣게되는데,실제로 서비스에 Lock이 걸려있었다면 Lock을 풀자마자 서비스가 정상적으로 동작하게되는데처음 이러한 현상을 보았을때 세삼 놀랐던 기억이 있습니다.백엔드 개발자들이 일하다보면 한번쯤은 꼭 보게되는 RDB의 Lock에 대해 알아보려고 합니다.트랜잭션이랑 Lock이랑 뭐가 달라?트랜잭션은 '테이터베이스의 상태 변경 작업 완정성을 보장해주는 것' 입니다 논리적인 작업을 모두 완벽하게 처리(COMMIT)하도록 하거나, 처리하지 못할 경우(ROLLBACK) 원 상태로 복구되어 작업의 일부만 적용되는 현..
OOP(object-oriented programming)란?OOP란 '현실 세계에 가까운 방식으로 프로그램을 만드는 프로그래밍 방법론'입니다.OOP를 통해 현실 세계의 개념들을, 프로그램 내에서 '객체'로 바라보며객체들간의 상호작용을 통해 프로그램이 동작하도록 합니다.이러한 객체들의 상호작용을 '협력'이라고 하며,각 객체들은 '협력'안에서 '메세지'를 보내 서로 소통하면서 자신의 '역할'을 '책임'을 가지고 수행해야합니다.OOP방식으로 프로그램을 설계하면 유지보수와 확장에 유리한 프로그램을 만들 수 있습니다. OOP의 철학 (협력, 역할, 책임 그리고 메세지)앞서 OOP를 설명하며 중요한 키워드들을 따옴표 안에 넣어서 언급하였습니다.키워드의 의미를 보다 쉽게 이해하기 위하여 현실 세계의 상황 커피주문을..
1. 동시성(Concurrency)과 병렬성(Parallelism)동시성과 병렬성은 cpu의 작업 처리방식입니다. 동시성은 싱글코어 프로세서에서 멀티 스레드 환경을 구성하여 프로그램이 '동시에 실행되는 것 처럼'(논리적) 보이게 하는 방법이고,병렬성은 멀티코어 프로세서에서 여러개의 스레드, 프로세스를 병렬로 돌려 프로그램을 '실제로 동시에 실행'(물리적) 시키는 방법입니다. 동시성으로 작업하는걸 멀티 태스킹, 병렬성으로 작업하는걸 멀티 프로세싱이라고도 합니다. 위에서 동시성은 싱글코어, 벙렬성은 멀티코어에서 사용되는 것 처럼 이야기 했지만,실제로 운영체제는 두 방법 중 하나를 선택하여 사용하는것이 아닌 섞어서 사용합니다.예를들어 6코어 12쓰레드의 프로세서가 있다면 6개의 프로세스를 병렬로 실행함과 동시..
다른 AWS 계정에서 사용하는 S3 데이터를 옮겨야하는 상황이 발생했습니다. 약 5개 정도의 S3를 옮기면 되어서, 간단하게 AWS CLI를 통해 데이터를 옮기는게 좋다는 생각이 들었습니다. AWS CLI S3 API를 활용한 데이터 이전 흐름도 오른쪽 : 계정 A (목적지 버킷) 왼쪽 : 계정 B (소스 버킷) 1. 계정 A에서 S3에 대한 정책 생성 계정A에서 목적지 버킷에 대한 GET,PUT,LIST 권한, 소스버킷에 대한 LIST, GET 권한이 존재하는 정책을 생성 후 계정 A의 사용자에게 부여합니다. s3-migration-policy라는 정책을 생성 아래 JSON을 이용해 생성하였습니다. 아래 JSON은 해당 S3 정책에 대한 예시입니다. { "Version": "2012-10-17", "S..
일반적으로 DB는 Private Subnet 즉 인터넷 엑세스가 불가능한 서브넷에 생성합니다. 하지만 로컬에서 Private Subnet에 있는 DB에 대한 엑세스가 필요하기에 Session Manager와 Bastian Host 이용하여 DB에 접속하는 방법을 정리하려 합니다. EC2 Session Manager 연결 1. EC2 UserData에 스크립트 추가 Bastian Host UserData에 Session Manager 설치 스크립트를 추가합니다. #!/bin/bash yum update -y yun install -y https://s3.amazonaws.com/ec2-downloads-windows/SSMAgent/latest/linux_amd64/amazon-ssm-agent.rpm y..
S3는 기본적으로 Public리소스라서 Private하게 접근하려면 VPC엔드포인트를 이용하여 접근해야합니다. Gateway Endpoint, Interface Endpoint 2가지 방법으로 Private하게 접속 할 수 있습니다. Interface Endpoint 와 Gateway Endpoint 2가지 방법으로 S3와 private한 연결을 만들 수 있습니다. 두 Endpoint모두 S3와 Private하게 통신을 할 수 있는 방식이지만 몇가지 차이점이 있습니다. 대표적으로는 Interface Endpoint는 On-Prem등 외부 접속을 허용하고, Gateway Endpoint는 허용하지 않는 차이점이 있습니다. Interface Endpoint란? 예전에는 S3에 private하게 접속하려면 G..
S3 안의 데이터에 대한 백업이나 동기화가 필요한 순간이 있습니다 그럴때 S3 Replication과 S3 Batch 작업을 통해 구현 가능합니다. 즉 S3 Batch와 S3 Replication 을 이용하면 S3에 대한 복제와 지속적인 동기화가 가능합니다. AWS S3 복제 (Replication) 란? S3 복제를 사용하면 CRP (교차 리전 복제) 와 SRR (동일 리전 복제) 두가지 방법으로 S3 데이터를 복제 할 수 있습니다. 다른 계정간 S3 복제 또한 가능합니다. 데이터의 백업을 생성하거나, 더 효율적인 S3 스토리지 클래스를 사용하는 등 다양한 목적을 위해 사용됩니다. S3 Replication 생성 S3 복제를 하기 위해선 원본 버킷에 복제 규칙을 생성해야합니다. S3 -> 관리 -> 복..
DNS Zone이란? DNS Zone은 도메인 네임스페이스라고도 합니다. DNS는 트리구조로 되어있는데 최상위에 root 도메인, TLD(Top Level Domain), 서브 도메인으로 이루어져있습니다. 각 도메인 영역마다 별도의 Zone을 만들어서 관리 할 수 있습니다. 예를 들어 TLD인 google.com, 서브도메인 a.google.com , b.google.com 마다 각각의 Zone을 가질 수 있습니다. 영역에 대한 모든 정보는 DNS 영역 파일이라는 이름으로 저장됩니다. 네임서버와 DNS 레코드란? 사용자가 도메인을 질의하거나, 도메인을 통해 통신할때, 도메인의 네임서버에 질의를 하여 설정된 값을 찾아 통신을 하게 합니다. 이때, 네임서버에 설정된 값들을 DNS레코드라고 합니다. 각 DNS..
업무중 AWS VPC와 On-Prem사이 DX를 통해 전용선 연결이 필요하게 되었습니다. DX를 연결하며 진행하였던 방법을 공유하려합니다. Direct Connect (DX)란? on-prem의 리소스와 AWS 내의 VPC를 전용선으로 연결하기 위한 AWS의 서비스입니다. 전용선으로 연결하기에 인터넷을 통한 연결보다 안전하게 통신 할 수 있습니다. AS와 ASN AWS DX를 이해하기 위해서는 AS와 ASN, BGP프로토콜을 알아야합니다. AS (Antonomous System) Antonomous System의 약자로 인터넷에서 라우팅을 관리하고 제어하는 단위이며, 네트워크의 도메인입니다. ISP, 기업의 on-prem 네트워크, 클라우드 제공자 (AWS,GCP)등이 AS를 가집니다. 각 AS는 ASN..
업무 중 application.yml에 붙어있던 prefix를 특정 api에서는 제거해야하는 상황이 생겼습니다. 그래서 서블릿을 사용해야 할 것 같아, prefix를 제거하고 새로 서블릿을 만들어 라우팅을 하여 해결하였지만 이해가 부족한 것 같아 서블릿에 대하여 다시 공부하고 정리하려합니다서블릿이란?웹 어플리케이션에서 HTTP 요청과 응답 처리를 위한 스프링에서 제공하는 핵심 기능입니다. 스프링 부트에서는 HttpServlet클래스를 상속을 받아 사용하며, Servlet Container에 의해 실행됩니다. doGet, doPost, doPut, doDelete 등의 메서드를 사용하여 요청을 처리하며 스프링 부트에서는 어노테이션과 HttpServlet 상속을 이용하여 간단하게 생성 할 수 있습니다. 아래..