분류 전체보기 1187

[Git] 특정 브랜치만 클론하기

개요 Git 레포지터리를 로컬로 클론 하면 기본적으로 초기 브랜치를 체크아웃한다. 클론 시 실제로 사용할 브랜치로 체크아웃하는 방법을 적어둔다. 방법 clone 명령어에 -b, --branch 옵션으로 클론할 브랜치를 지정한다. git clone -b # -b, --branch : 새로 생성되는 HEAD가 레포지터리의 HEAD 대신 name 브랜치를 가리킨다. # 베어 저장소가 아니면 해당 브랜치가 체크아웃되는 브랜치이다. 예시 다음과 같이 main 브랜치와, b20220627 브랜치 등이 존재하는 레포지터리가 존재하고, main 브랜치가 아닌 b202220627 브랜치에서 작업해야 한다고 가정하자. 이 경우 다음과 같이 브랜치를 지정해 클론할 수 있다. git clone -b b20220627 http..

Git | GitLab 2023.10.05

[Linux] SSH 접속 시 Server unexpectedly closed network connection 에러

현상 다른 서버실에서 동작하고 있던 서버를 옮겨왔다. 서버 설정을 대충 마무리하고 SSH 접속을 시도했더니 아래와 같은 에러가 발생하면 접속이 되지 않았다. # mobaXterm Server unexpectedly closed network connection # CMD kex_exchange_identification: read: Connection reset 원인과 해결 방법을 적어둔다. 원인 이번에 들여온 서버는 다른 조직에서 관리하고 있던 서버인데, 해당 조직에서는 사용자의 접근을 제한하고 관리하는 수단으로 hosts.allow 파일을 사용하고 있었다. 관련 개념을 아래에 간단히 적어둔다. TCP Wrapper 호스트 기반 네트워킹 ACL 시스템. 리눅스와 같은 운영 처제의 인터넷 프로토콜 서버에..

Linux 2023.10.04

[AWS] RDS - 엔드포인트 변경

개요 서비스 운영 중인 RDS 인스턴스를 교체해야 하는 작업이 있어 이슈가 될 만한 부분을 확인하던 중, 인스턴스 교체 작업 중에 신규 RDS의 엔드포인트를 기존과 동일하게 변경할 수 있다는 것을 알게 되었다. 즉, RDS 엔드포인트를 기존에 사용하던 것과 동일하게 유지할 수 있어 서비스 단에서 변경할 필요가 없다. RDS의 엔드포인트 변경 방법을 적어둔다. RDS 엔드포인트 RDS DB 인스턴스에 접속할 때 필요한 정보가 포함되어 있는 요소로, 간단히 말해 클라이언트나 사용자가 RDS DB에 접속하기 위한 주소라고 이해할 수 있다. RDS는 다중 AZ 배포 등의 옵션을 사용하면 하나의 RDS 인스턴스가 master/stanby로 구성되어 내부적으로 쓰기가 가능한 서버가 변경될 수 있다. RDS 엔드포인..

AWS 2023.10.03

[MySQL] mysql-client login-path 설정

개요 MySQL Client로 접속할 때 접속 정보를 지정해야 하는데 매번 접속 정보를 입력하는 건 번거로운 일이다. 특히 -p 옵션을 사용해 비밀번호를 입력한다면 민감 정보가 불필요하게 노출될 수 있다. 이러한 문제를 해결하기 위해 MySQL 접속 정보를 저장하는 mysql_config_editor을 사용할 수 있는데, 이 글에서는 mysql_config_editor를 이용해 mysql에 하는 방법을 적어둔다. 기존 접속 방법 2022.12.12 - [MySQL] 접속 명령어 기본적으로 mysql 클라이언트를 이용하면 다음과 같은 정보를 지정하여 접속한다. mysql -u -p -h -P 3306 mysql_config_editor 사용 mysql_config_editor은 mysql-client를 사..

Database 2023.10.02

[AWS] RDS MySQL - binlog 기반 인스턴스 간 복제

개요 RDS 백업 등을 위한 복제 방법은 여러 가지가 존재하는데, 이 글에서는 RDS 인스턴스 설정 변경 및 교체가 필요해 binlog 기반으로 서로 다른 RDS 간 복제 설정을 해보려고 한다. 진행 방식은 크게 다음과 같다. 1. 원본 인스턴스 binlog 사용 여부 확인 및 보존 기간 설정 2. 읽기 전용 복제본에서 복제 시작점 확인 3. 복제 인스턴스에서 원본 인스턴스 복제 설정 및 시작 binlog 기반 복제를 사용하면 교차 계정/교차 리전 간 복제, on-prem과 AWS 간 복제, mysql과 aurora 간의 복제 등등을 수행할 수 있다. 원본 인스턴스 설정 복제할 원본 인스턴스가 binlog를 사용하고 있는지 확인하고, 외부 인스턴스가 binlog를 사용할 수 있도록 관련 설정을 변경한다...

AWS 2023.09.29

[AWS] RDS - You are not using binary logging

개요 바이너리 로그에는 테이블 생성 작업이나 테이블 데이터 변경과 같은 데이터베이스 변경을 설명하는 이벤트가 포함된다. RDS 복제 등의 작업을 하고자 바이너리 로그를 확인하려고 했더니, 다음과 같이 수행되지 않았다. 바이너리 로그 파일 확인 SHOW BINARY LOGS; -- 또는 SHOW MASTER LOGS; 실행 결과 어떻게 하면 binlog를 활성화할 수 있을까? 확인해 본다. 해결 찾아보니 AWS RDS는 biglog 활성화 방식을 자동 백업의 활성화 여부로 제한하고 있는 것 같다. 공식 문서에 따르면 자동 백업 기능은 MySQL에 대해 바이너리 로깅을 설정할지 아니면 해제할지를 결정한다고 한다. 백업 기능을 활성화해 보고 정말 binlog이 확인되는지 살펴본다. 백업 기능 활성화 1. 작업..

AWS 2023.09.28

[AWS] RDS - 암호화되지 않은 RDS 암호화

개요 RDS는 DB 인스턴스를 암호화할 수 있는데, 유휴 시 암호화되는 데이터는 DB 인스턴스의 기본 스토리지, 자동 백업 파일, 읽기 전용 복제본, 스냅샷이 포함된다. 암호화된 DB 인스턴스는 AES-256 알고리즘을 사용하여 암호화되며, 암호화가 성능에 미치는 영향을 최소화한 상태에서 데이터 접근 및 암호 해독을 처리한다. 이번에 RDS 내 데이터의 보안을 강화하기 위해 암호화되어 있지 않은 RDS 스토리지를 암호화하려고 한다. 하지만 RDS 스토리지 암호화 설정은 RDS를 생성할 때만 가능하다! 단, 암호화된 스냅샷을 사용하여 스냅샷 복원 작업을 수행하면 암호화된 RDS 인스턴스로 복원할 수 있다. ❗ 암호화 되지 않은 스냅샷을 복원하면 암호화된 RDS 인스턴스는 생성할 수 없다. 반대로 암호화된 ..

AWS 2023.09.27

[AWS] RDS - 스냅샷으로 RDS 복원

개요 2023.09.25 - [AWS] RDS - 스냅샷 생성/삭제에서 RDS의 스냅샷을 생성하고 삭제했는데, 이 글에서는 스냅샷을 이용해 RDS를 새로 만들어보려고 한다. 즉, 스냅샷으로 RDS를 복원하여 해당 RDS의 사본을 생성한다. 스냅샷 복원 1. 복원할 스냅샷 선택 > 작업 > 스냅샷 복원 2. 스냅샷 복원 페이지에서 생성할 RDS 정보를 지정한다. 지정할 정보에는 배포 옵션(다중 AZ, 단일 DB), RDS ID, 인스턴스/스토리지 타입, 네트워크, 인증 방식 및 암호화 여부 등이 포함된다. 신규 RDS 생성과 아주 다르지 않아보인다. 예시로 설정 값을 첨부한다. 2-1) 배포 옵션 및 식별자 지정 2-2) 인스턴스 타입, 스토리지 타입/용량 이 글에서는 t 타입, GP3로 지정한다. 2-3..

AWS 2023.09.26

[AWS] RDS - 스냅샷 생성/삭제

AWS RDS 스냅샷 RDS는 스냅샷을 통해 데이터베이스 단위가 아니라 인스턴스 전체를 백업할 수 있다. 인스턴스 스토리지 볼륨의 스냅샷을 생성하는 것으로, 인스턴스의 크기 및 클래스에 따라 소요 시간이 달라질 수 있다. 스냅샷 생성 중에는 디스크 I/O가 중지된다. 따라서 단일 AZ 인스턴스에서는 I/O가 중지되며, 다중 AZ 배포에서는 예비 복제본에서 스냅샷 생성이 수행되므로 I/O가 중단되지 않는다. 생성한 스냅샷은 RDS 사본을 생성하는데 사용하거나, S3로 내보내 백업을 해두는 등의 용도로 사용할 수 있다. 이 글에서는 간단하게 AWS 콘솔을 사용해 RDS 스냅샷을 생성해보려고 한다. 스냅샷 생성 1. 스냅샷을 생성할 RDS 인스턴스를 선택 > 작업 > 스냅샷 생성 2. 네이밍 규칙에 맞게 스냅..

AWS 2023.09.25

[AWS] Route53 란?

Route53 AWS에서 제공하는 DNS(Domain Name Service) 웹 서비스 DNS 서버가 53 포트에서 쿼리에 반응하여 사용자를 인터넷 상 애플리케이션으로 경로를 지정해 준다는 의미에서 유래한 이름이다. 가용성과 확장성이 뛰어나고 AWS 또는 온프레미스에서 실행되는 인터넷 애플리케이션을 연결할 수 있는, '신뢰할 수 있는 DNS' 시스템이다. 주요 기능 1. DNS Route53를 통해 도메인을 구매할 수 있고, 다른 도메인 등록 기관에서 구매 및 생성한 도메인을 등록할 수 있다. 등록한 도메인은 퍼블릭 호스팅 영역(Pubilc Hosted Zone)으로 구성하여 인터넷에서 트래픽을 라우팅 할 수 있고, 프라이빗 호스팅 영역(Private Hosted Zone)으로 구성하여 AWS VPC에..

AWS 2023.09.22