ssh-keygen -t rsa
| 항목 | 비유 | 역할 |
|---|---|---|
| EC2 생성 시 받은 .pem | EC2 문을 열 수 있는 열쇠 (당신만 가짐) | 당신 → EC2 접속 |
| EC2 내부에서 ssh-keygen 생성 키 | EC2가 다른 집(서버)에 놀러갈 때 필요한 열쇠 | EC2 → 다른 서버 접속 |
대충 ec2 내부에서 다른 서버에게 연결될 수 있는 .pem 파일을 생성하는 코드임.
cat ~/.ssh/authorized_keys

authorized_keys: 로컬에서 .pem으로 ec2에 접속할 때 생성되는 흔적?
cat >> ~/.ssh/authorized_keys < ~/.ssh/id_rsa.pub

아까 생성한 .pem 파일의 내용을 기존의 authorized_keys에 추가함.
ssh localhost
yes

authorized_keys에 우리가 만든 .pem파일 등록했으니까 .pem 파일로 접근이 가능할거임.
아래 명령어 입력하면 .pem 파일로 나 자신에게 접속해 볼 수 있음.
ssh localhost
대충 이미지 하나 만들어줄거임.





도구 - 키 입력 보내기 - 모든 세션
하면 모든 세션에 같은 명령어를 입력하고 실행할 수 있음.
집 주소 등록할거임.
sudo vim /etc/hosts

cat /etc/hosts
이제 IP주소는 보기 힘드니까 호스트 이름으로 보기 쉽게 해주는 작업해줄거임.
ec2-mysql. 즉, 서버에서 설정 몇 개 해줄거임.
sudo hostnamectl set-hostname ec2-mysql
hostname
exit
ec2-mysqlclient. 즉, 클라이언트에서 설정 몇 개 해줄거임.
sudo hostnamectl set-hostname ec2-mysqlclient
hostname
exit
ec2-mysql, ec2-mysqlclient 같은 이름들은 /etc/hosts에 적어놓은 이름으로 설정해야함.

다시 접속해보면 내가 설정한 이름으로 shell이 실행된것을 확인할 수 있음.
ec2-mysql에서 ec2-mysqlclient으로 접속해볼거임.
ssh ec2-mysqlclient
yes
ec2-mysql에서 ec2-mysqlclient으로 접속해볼거임.
ssh ec2-mysql
yes

서버 -> 클라이언트, 클라이언트 -> 서버 접속을 테스트 해본거임.
네트워크 통신이 잘 되고 있음.
아직까지 mysql을 설치하지는 않고 그냥 ec2끼리 서로 네트워크 통신이 가능하도록 설정해준거임.

서버 shell에서 아래 명령어 실행하면 mysql 레파지토리가 설치됨.
sudo yum install https://dev.mysql.com/get/mysql84-community-release-el9-1.noarch.rpm -y
레파지토리 있니? | mysql 이라는
sudo yum repolist enabled | grep mysql.*

레파지토리에서 mysql 설치
sudo yum install mysql-community-server -y
mysql 서버 시작 및 상태 확인
sudo systemctl start mysqld
sudo systemctl status mysqld

임시 비밀번호 확인
sudo grep 'temporary password' /var/log/mysqld.log
임시 비밀번호로 방금 생성한 mysql 서버에 접속.
mysql -u root -p
비밀번호 안바꾸면 아무것도 못함.
ALTER user 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'Qwer1234!';
FLUSH PRIVILEGES;
exit
다시 접속하고 테스트해보면 잘 됨.

유저 목록 살짝 확인
select user, host from mysql.user;

클라이언트가 사용할 계정하나 만들어줄거임.
create user 'ec2'@'%' identified by 'Qwer1234!';
select user, host from mysql.user;

sudo vim /etc/my.cnf

port = 3306
bind-address = 0.0.0.0
mysqlx-bind-address = 0.0.0.0
설정 바뀌었으니까 mysql 서버 restart 해줄거임.
sudo systemctl restart mysqld
sudo systemctl status mysqld
실제로 모든 IP주소가 뚫렸는지 확인.
sudo netstat -ntlp | grep mysqld
현재 컴퓨터의 IP 정보를 보여주세요~
ifconfig

mysql에 ec2라는 u(user)의 172.31.35.9라는 h(host)의 3306 P(Port)로 비밀번호 p(password) 입력해서 접속할거야.
mysql -u ec2 -h 172.31.35.9 -P 3306 -p
관리자 계정이 아니기 때문에 계정관련 DB가 조회되지 않음.
show databases;
