1단계: EC2 보안 그룹 및 DB 권한 확인
1. Security Group(SG) 22(SSH) 인바운드 규칙 열기
2. EC2 접근을 위한 pem키 설정
2단계: DataGrip에서 SSH 설정

SSH configuration 클릭
- Host: EC2 퍼블릭 or DNS 주소
- Port: 22
- Username: EC2 OS 사용자 이름(예: ubuntu)
- Authetication type: Key pair
- Private Key file: /~~주소~~~/~~.pem

3단계: Database 접속 정보 입력
다시 General 탭으로 돌아오기(이제부터는 Host를 EC2 내부의 시점으로, SSH 터널을 통과한 후에는 EC2 자신이 기준이 된다.)
Host: localhost
Port: DB 기본 포트
username: cowee
password: cowee

접속완료!
DB를 접근하기 위한 방법은 2개입니다.
3306 port
22 port
어떤 걸로 접속해야지?
EC2 DB, 왜 SSH 터널링으로 접속해야 할까?
DB 접속 방법은 2가지입니다.
1. 3306(MySQL): D
2. 22(SSH): SSH 프로토콜을 이용해서 인스턴스를 접근하여, 그 안의 DB를 접근
Q: 3306 외부 직접 노출은 22 보다 위험한가요?
A: 네 위험합니다. "해킹될 확률"이 문제가 아니라, 공격 표면(Attack Surface)의 성격과 보호 메커니즘 차이 때문입니다.
1. 프로토콜 설계 목적의 차이
SSH (22): "보안 접속"을 위한 프로토콜입니다.
DB (3306): "빠른 데이터 교환"과 "내부 네트워크 통신"을 전제로 설계되었습니다.
2. 인증 메커니즘과 Brute-forcing 공격
SSH는 fail2ban 같은 도구나 인증 시도 횟수 제한, 키 인증 방식을 통해 공격을 방어 가능
반면, DB는 애플리케이션과 잦은 연결과 세션 관리가 이루어지는데, 외부 노출 시 Bot 등의 끊임없는 로그인 시도 자체가
DB 엔진의 CPU와 메모리 자원을 고갈시켜요.
3. 데이터 직접 노출
22: 침투 성공하여도, DB 접속해야 함.
3306: 데이터 자산에 직접 접근