일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Terraform
- 필수 스크립트
- s3
- s3 sync
- sessionManager
- 안전하게 테이블 변경
- 마운트
- 리눅스
- performance스키마
- 도커
- mysql 구조
- BastianHost
- SessionManager 터널링
- 밑바닥부터 구현하는 컴퓨팅 시스템
- 밑바닥부터 만드는 운영체제
- mysql 엔진
- innodb 버퍼풀
- InnoDB
- MySQL
- x lock s lock
- 어뎁티브 해시 인덱스
- innodb구조
- mysql 아키텍쳐
- dff
- 운용 시 유용한 쿼리
- 온라인 ddl
- ec2
- ix is lock
- nandtotetris
- S3 private통신
- Today
- Total
목록전체 글 (82)
이것이 점프 투 공작소
Swap Memory란? 스왑 메모리란, 실제 메모리 Ram이 가득 찼지만 더 많은 메모리가 필요할때 디스크 공간을 이용하여 부족한 메모리를 대체할 수 있는 공간을 의미합니다. 하드웨어에서 대신 사용하게되는 일종의 가상 메모리 개념이다. 속도면에서는 실제 메모리가 아닌 하드디스크를 이용하는 것이기 때문에 메모리 속도는 떨어진다. 하지만 실제 운영환경에서 스왑 메모리를 사용하는것은 좋지않습니다. 스왑메모리가 아닌 실제 메모리를 올려서 사용하는게 더 좋은 방법입니다! Swap Memory 확인 리눅스에서 Swap Memory를 확인하는 명령어 $ free -h 리눅스 커널은 메모리에 올라와 있는 메모리 블록 중 당장 쓰이지 않는 것을 디스크에 저장하여 사용 가능한 메모리 영역을 확보한다. buff/cache..
NAT이란? 대부분의 네트워크는 모든 호스트 중 일부만이 인터넷 통신을 수행합니다. 따라서 대부분의 호스트는 PirvateIP를 이용해 통신하고있기에 인터넷 통신을 수행할때만 PublicIP를 사용하게된다면 외부에 노출되는 PublicIP수를 크게 줄일 수 있습니다. PrivateIP에서 인터넷으로 요청을 보낼때 해당 요청이 Nat을 제공하는 라우터를 통과하게되면 Nat 라우터는 주소 변환 테이블에 가지고있던 PrivateIP를 PublicIP로 IP를 변환하여 요청을 보내고 변환 내용을 Nat변환 테이블에 기록합니다. 이후 인터넷으로 보낸 응답이 도착하면 기록해두었던 Nat 변환 테이블을 참조하여 요청을 보낸 PrivateIP를 가진 호스트에게 응답을 반환합니다. NAPT란? 네트워크에서는 여러 호스트..
리눅스에서 환경변수 좀 수정했더니 발견한 에러 '/usr/bin:/bin'이 환경변수에 없다고 한다. /usr/bin 폴더는 리눅스의 실행파일이 모여있는 폴더다 echo $PATH 명령어로 환경변수들 확인해주고 진짜로 없던 export PATH=/usr/bin:/bin 로 환경변수 추가해주니 해결 그리고 에러난 김에 환경변수에 대해 정리해보자 리눅스의 환경변수 환경 변수는 크게 3가지로 나뉜다. 1. 로컬 환경 변수 현재 세션에서만 동작하는 환경변수다. 선언법 : 변수명='값' 환경변수를 삭제할 때는 unset 명령어를 사용해주면 된다. 2. 사용자 환경변수 터미널이나 원격 로그인 세션으로 접속 했을때 로드되는 환경 변수이다. 사용자의 home폴더에 존재하는 .bash_profile, .profile 또..
단순 라우팅 정책 (Simple Routing) 주로 단일 리소스(서버, 로드 밸런서 등)에 주로 사용되며, 동일 레코드 안에 여러 값(예: 다중 IP 주소)을 지정할 수 있습니다. 여러 IP를 지정한 경우 route53은 무작위로 그 값을 반환합니다. 가중치 기반 라우팅 정책 (Weighted) 가중치 기반 라우팅을 사용하면 다수의 리소스를 도메인과 연결하고 각 리소스로 라우팅되는 트래픽 비율을 선택할 수 있습니다. 리소스간의 성능이 다르거나, 실 데이터를 받아야하는 테스트용 리소스를 사용해야 될 때 적합합니다. 지리적 라우팅 정책 (Geolocation) 사용자의 위치(DNS 쿼리가 발생하는)를 기반으로 라우팅할 리소스를 지정할 수 있습니다. 각 위치마다 사용자들의 특성별로 서비스를 제공할 수 있어 ..
장고로 DB에 INSERT 시키는데 발생했던 에러.. MySQLdb._exceptions.OperationalError: (1366, "Incorrect string value: '\\xEC\\x83\\xB5\\xED\\x95\\x98...' for column '컬럼명' at row1 ) DB인코딩 문제로 발생한 에러이다 MySQL 컨테이너에 들어가서 status명령어로 확인해보니 characterset들이 모두 latin1으로 되어있었다. (MySQL 8버전 이하에서는 기본 인코딩이 latin1이라고 한다.) 컨테이너에 들어가 직접 명령어를 작성해도 괜찮지만 DockerFile파일에 추가해줬다 --skip-character-set-client-handshake 위 명령어는 뜻은 클라이언트의 문자셋을 ..
Multi AZ를 사용하면 RDS는 인스턴스를 자동으로 생성하고 다른 AZ에 있는 예비 인스턴스에 동기적으로 데이터를 복제합니다 Multi AZ를 사용하는 이유 인프라 장애가 발생하더라도 예비 인스턴스로 자동 장애 조치를 수행하여 장애 조치하고, 조치 후에도 DB 인스턴스의 엔드포인트는 그대로 유지되므로 관리자가 직접 개입할 필요 없이 애플리케이션에서 데이터베이스 작업을 재개할 수 있습니다. Replica Read-Replica (읽기전용) 원본 인스턴스를 복제하여 읽기전용 RDS를 생성 그 후 RDS가 인스턴스의 스냅샷을 생성하여 해당 스냅샷에서 읽기 전용 인스턴스를 생성합니다, 그러면 Amazon RDS가 기본 DB 인스턴스를 변경할 때마다 DB 엔진에 비동기식 복제 방법을 사용하여 읽기 전용 복제본..
SNI란? 하나의 로드 밸런서 리스너에서 각각 자체 TLS 인증서가 있는 다수의 보안 애플리케이션을 호스팅하도록 해주는 서비스 오직 ALB & NLB, CloudFront 에서만 동작함! 하나의 로드밸런서에 다중의 SSL을 가지고 각각 SSL에 해당하는 Target Group에 연결시켜줄 수 있음 CLB 하나의 SSL인증서 사용가능 다수의 인증서를 사용하려면 각각의 CLB가 존재해야함 ALB, NLB 다수의 SSL을 지원가능 SNI로 인증 가능
Connection Draining 기존 연결을 열린 상태로 유지하면서 Classic Load Balancer가 등록 취소 또는 비정상 인스턴스에 대한 요청 전송을 중지하도록 하려면 Connection Draining을 사용해라! Connection Draining은 ELB의 종류에 따라 명칭이 다릅니다 Connection Draining : CLB에서 부르는 이름 Deregistration Delay : ALB & NLB에서 부르는 이름 Connection Draining이 활성화하면 ELB가 인스턴스와 연결하는 최대 시간을 설정 할 수 있습니다. ( 1~3,600초 사이에서 설정가능 (기본값은 300초)) 즉, 헬스체크에 실패해도 인스턴스가 진행중인 요청에 대해서 시간을 주게됩니다. Connectio..
도커 설정파일, daemon.json을 건들다가 나타나버린 오류 Cannot connect to the Docker daemon at unix:///var/run/docker.sock. Is the docker daemon running? 찬찬히 읽어보면 unix:///var/run/docker.sock docker.sock의 도커 데몬에 연결 못하고있어 Is the docker daemon running? 도커데몬 돌아가고 있니? 도커데몬이란? dockerd is the persistent process that manages containers 컨테이너를 관리하는 도커의 백그라운드 프로세스이다. 도커데몬을 직접 실행하면 dockerd 를 입력하면 되고, 실행되면 로그 메세지가 계속 생성되며 백그라운드..
IAM이란? AWS의 리소스에 대한 접근을 관리 할 수 있게해주는 AWS사용자 및 그룹을 관리 하는 서비스 IAM은 크게 사용자(User)와 그룹(Group), 역할(Role)로 나뉘어집니다. AWS에 리소스에 대한 요청을 하게되면 aws-api를 내부적으로 사용합니다, 이 때 SigV4를 통해 헤더나 쿼리스트링 등 요청 데이터들은 암호화 됩니다. IAM사용자(User) 신규 생성된 사용자는 아무런 권한도 할당되지 않습니다. 따라서 IAM그룹에 추가하거나, IAM역할을 부여함으로서 권한 및 자격증명을 할당 할 수 있습니다. IAM 그룹(Group) IAM유저들의 집합입니다. 그룹을 활용하여 다수의 사용자에게 권한을 더 쉽게 부여 및 관리 할 수 있습니다. IAM 역할(Role) 롤도 정책들을 부여 받을 ..