오늘은 RDS를 사용하지 않고도 데이터베이스 서버를 만들어 볼 것이다.
RDS는"Amazon Relational Database Service"의 약자로 aws에서 제공해주는 일종의
DB서버이다. 대부분의 사람들은 이 기능을 사용하다.장점으로는 aws에서 제공하는 기능이다보니
보안성으로는 뛰어나고 온프레미스 환경보단 싸다는 장점이 있다. 하지만 우리가 오늘 사용할
컨테이너 기반 DB서버는 EC2비용만 결제하면 사용할 수 있다는 장점이 있다.
먼저 어떻게 동작하는지를 알아보자 인스턴스 내부에 도커를 설치하여 mysql기반의 이미지로 컨테이너 생성 후
mysql에 로그인하고 거기서 테이블 생성을 하는 구조이다.
일단 먼저 탄력적 ip있고 22번 포트가 뚫려있는 보안그룹도 있는 인스턴스 하나를 생성해준다.
먼저 여기에 있는 1개의 파일을 다운로드 받는다.
-->> 바이너리 코드가 담긴 파일이다.(이 바이너리 파일은 데이터베이스의 것으로 데이터를 조회, 검색, 출력들을 하는 기능을 가진 코드가 담긴 파일이다.)
scp -i mac.pem customer ec2-user@<<public-IP4주소>>:/home/ec2-user/
-> 위에 있는 명령어를 치면 customer파일이 ec2 인스턴스로 전송된다
다운로드 받은 후 .env을 생성한다. .env파일이란? 깃헙의 private repository처럼 비밀번호들을
키와 벨류값으로 저장하는거다.

난 일단 이렇게 했다. 뭘 할지 모르겠다면 그냥 저자처럼 하면 될 것이다.
그럼 docker을 깐다.
sudo yum install docker -y
sudo yum systemctl start docker
sudo yum systemctl enable docker
<< 도커 설치 명령어
docker run -d --name local-db --env-file .env
-e MYSQL_ROOT_PASSWORD=Skill53##
-e MYSQL_DATABASE=wsc2024_db
-e MYSQL_USER=admin
-e MYSQL_PASSWORD=Skill53##
-p 3306:3306
mysql:8.0
이 명령어를 실행한 후 docker ps 명령어를 치면 container가 출력된다.

그러면 docker id를 복사한 후
docker exec -it <> mysql -u admin -p
입력하면 [Enter password: 라고 뜰 것이다. 그러면 아까 .env파일을 만들 때 사용했던
Skill53##(DB_PASSWORD)를 입력하면 mysql에 로그인된다.
로그인 한 후 아까 만들었던 MYSQL_DBNAME=wsc2024_db 를 DB이름으로 만들면
use wsc2024_db
CREATE TABLE customer (id VARCHAR(255), name VARCHAR(255), gender VARCHAR(255));
INSERT INTO customer (id, name, gender) VALUES ('1128', 'Lee jihan', 'male');를
입력한 후 SELECT * FROM customer;를 하면 밑에
mysql> SELECT * FROM customer;
+------+-----------+--------+
| id | name | gender |
+------+-----------+--------+
| 1128 | Lee jihan | male |
| 1128 | Lee jihan | male |
| 1128 | Lee jihan | male |
+------+-----------+--------+
3 rows in set (0.00 sec)
이런식으로 테이블이 나온다.