일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 | 31 |
- s3
- mysql 구조
- BastianHost
- S3 Gateway Endpoint
- 필수 스크립트
- 온라인 ddl
- mysql 아키텍쳐
- mysql 엔진
- performance스키마
- innodb구조
- Terraform
- InnoDB
- innodb 버퍼풀
- 안전하게 테이블 변경
- 어뎁티브 해시 인덱스
- 운용 시 유용한 쿼리
- ec2
- ix is lock
- SessionManager 터널링
- 밑바닥부터 구현하는 컴퓨팅 시스템
- MySQL
- s3 sync
- S3 private통신
- 마운트
- sessionManager
- x lock s lock
- 도커
- S3 Interface Endpoint
- 리눅스
- nandtotetris
- Today
- Total
목록분류 전체보기 (80)
이것이 점프 투 공작소
쿠버네티스에서 리비전을 지정하고 지정한 리비전으로 리소스를 롤백하는 방법을 정리하려합니다. 1. 배포할 리소스에 메세지 작성(yaml 파일) nginx를 배포하는 yaml파일입니다. metadata에 annotations의 kubernetes.io/change-cause값에 메세지를 작성 가능합니다. apiVersion: apps/v1 kind: Deployment metadata: name: app labels: app: app annotations: "kubernetes.io/change-cause": "initial deployment" # 배포사유 작성 spec: replicas: 3 selector: matchLabels: app: app strategy: type: RollingUpdate r..
cloudMap에 AWS리소스를 등록하고 만들어진 cloudMap 서비스를 Route53의 private-namespace에 도메인을 등록하여 ECS의 리소스들을 vpc 내에서 디스커버리를 하는법을 정리하려 합니다. 전체적인 흐름은 다음과 같습니다. 1. private-dns-namespace과 CloudMap 생성 -> 2.CloudMap 서비스 생성 3. CloudMap서비스에 Fargate 서비스 등록 -> 4. 동일 vpc내 bastian-host에서 디스커버리 dns 조회 1. pirvate dns namespace 생성 aws servicediscovery create-private-dns-namespace \ --name '생성될 네임스페이스이름' \ --vpc '네임스페이스를 생성할 vpc..
시스템 호출이란? 시스템 호출(SysCall)은 하드웨어와 사용자 공간 프로세스안에 존재하는 레이어(Layer)이고 장치파일이나 /proc 파일시스템을 호출할때도 시스템 호출을 통하게됩니다. 다음은 시스템 호출의 대표적인 역할입니다. 사용자 공간에 하드웨어 인터페이스를 추상화된 형태로 제공합니다. 시스템 보안 및 안정성을 제공합니다. 사용자공간과 시스템 사이 공간을 둠으로써 프로세스별 가상 시스템 환경을 제공 할 수 있습니다. 시스템 호출 번호 리눅스의 모든 시스콜은 고유의 번호를 가집니다. 사용자 공간 프로세스가 시스콜을 실행하고자 할때 시스콜 번호를 통해 실행할 시스템 호출을 찾아냅니다. 커널에 등록된 모든 시스템 호출 목록은 sys_call_table이라는 테이블에 저장합니다. 어쩌다 시스컬이 제거..
VPC란? Virtual Private Cloud의 약자로 AWS 계정에 종속되는 가상의 네트워크입니다. VPC의 요소들 Subnet vpc의 ip주소 범위를 말합니다. 보통 public, private 서브넷으로 나누게됩니다. Public Subnet의 경우 0.0.0.0/0 즉 Any Traffic 은 IGW(인터넷 게이트웨이)를 타도록 설정합니다. Public Subnet에 할당되는 EC2에는 Public DNS가 자동으로 할당되도록 할수도 있습니다. NAT G/W 또한 일반적으로 Public Subnet에 구성합니다. Private Subnet의 경우 0.0.0.0/0 의 트래픽을 NAT G/W으로 향하게 하거나 차단합니다. 기본적으로 인터넷을 통한 접속을 차단합니다. Routing Table 서..
ElasticSearch에서 노드란? ES에서 클러스터를 구성하는 하나의 인스턴스(instance)입니다. 물리적 서버 하나에 노드 하나를 구성하는 방식을 권장합니다. 노드의 종류 1. 마스터 노드 클러스터는 반드시 하나의 마스터 노드를 가집니다. 사용자는 마스터 후보 노드(master-eligible-node)를 지정 할 수 있습니다. 클러스터 유지에 필수적이기에 마스터는 사용자가 정할 수 없고 마스터 후보 노드들끼리의 투표를 통해 과반수 이상의 표를 받은 노드가 마스터노드로 선정됩니다. 투표 전용 노드도 존재합니다. (마스터 후보 노드끼리의 투표로 과반수가 넘지 못할 때를 대비하여 지정합니다) 클러스터의 상태만 관리합니다. 2. 데이터 노드 인덱싱한 도큐먼트를 샤드 형태로 저장합니다 (데이터의 CRU..
선점이란? 스케줄러에서 실행중인 프로세스의 상태를 모니터링하다 더 높은 우선순위의 프로세스가 실행되어야 할 때 현재 실행중인 프로세스를 중단시키는 행위를 말합니다. 운영체제에서 선점은 성능을 향상시키는데 큰 역할을 합니다. 선점이 동작하는 시점 선점되기 위해서는 기본적으로 스케줄러가 호출되어야 하기에 스케줄러가 호출되는 시점과 유사하며 따라서 스케줄러에 현재 실행중인 프로세스보다 높은 우선순위에 스케줄러가 없다면 선점이 일어나지 않습니다. 1. 인터럽트 발생 시 인터럽트가 발생하면 인터럽트 핸들러가 스케줄러를 호출하여 선점이 일어날 수 있습니다. 2. 시스템 콜 발생 시 시스템 콜이 호출되어 커널모드로 전환 될 때 다른 프로세스가 실행 될 수 있도록 스케줄러가 호출됩니다. 3. 타이머 인터럽트 발생 시 ..
CodePipeline이란? AWS에서 서버리스(serverless)로 제공하는 배포자동화 도구입니다. CodeCommit, CodeBuild, CodeDeploy 같은 서비스들과 함께 완전한 CICD파이프라인을 구성 할 수 있습니다. CodePipeLine의 구성요소 - Source 배포할 소스를 지정합니다. 소스의 리포지토리로 S3 , ECR, CodeCommit, CodeStartSourceConnection (Bigbucket, Github, Github Enterprise Server Actions) 를 사용 할 수 있습니다. - Build CodeBuild, Custom Jenkins 등을 사용해 코드를 빌드 할 수 있습니다. - Approval 사용자가 검토 및 승인하는 구간입니다. - D..
문맥교환(context-switching)이란? 문맥교환은 커널이 프로세스간 스위칭 할 때, 현재 실행 중인 프로세스의 상태를 저장하고, 다음 실행할 프로세스의 상태를 불러오는 과정입니다, 이를 통해 커널에서 여러 프로세스가 동시에 실행(멀티테스킹)하는 것 처럼 보여집니다. 문맥 교환은 멀티테스킹, 인터럽트 , 커널사용자모드 전환 시 발생됩니다. 프로세스의 문맥이란? 1. 하드웨어 문맥 (Hardware Context) CPU가 프로세스를 실행하기 위해 필요한 하드웨어 레지스터의 상태입니다. 하드웨어 문맥에는 아래와 같은 데이터가 존재합니다. 프로그램 카운터(Program Counter, PC): 다음에 실행할 명령어의 메모리 주소를 저장하는 레지스터입니다. 프로세서 레지스터: CPU에서 연산에 사용되는..
docker eventsdocker events도커에서 실시간 이벤트를 가져올 때 사용합니다.컨테이너, 이미지, 볼륨, 네트워크 등 전반적인 도커의 명령 실행에 대한 실시간 이벤트 로그를 확인 할 수 있습니다.추가로 우분투의 경우 journalctl -u docker 명령어로도 도커에 대한 로그를 확인 할 수 있습니다. 1. docker events 명령 실행2. 다른 터미널에서 도커 이벤트 발생3. docker events에서 실시간 로그 확인 docker dfdocker df리눅스의 df와 유사합니다.RECLAIMABLE은 docker데몬이 회수 할 수 있는 자원을 의미합니다.조금 더 자세한 데이터를 보고싶다면 -v 옵션으로 확인 할 수 있습니다. docker statsdocker stats각 컨..
Union Mount란? 여러개의 파일 시스템을 하나의 파일 시스템에 마운트하는 기법입니다. Union Mount는 아래와 같은 특징을 가집니다. 1. Image Layer 마지막 레이어를 제외하고는 읽기 전용 속성을 가집니다. 2. CoW(copy-on-write) 변경된 파일만 저장합니다. 중복되는 파일이 있을 경우 나중에 마운트된 파일로 덮어집니다. OverlayFS로 Union Mount sudo mount -t overlay \ -o lowerdir=:,upperdir=,workdir= lower dir : 레이어 가장 아래에 있는 읽기 전용 디렉토리 지정, lower 디렉토리에서 변경이 발생했을 경우 upper 디렉토리에 기록된다 upper dir : 수정,생성 및 삭제가 가능한 상위레이어 디..