2-1. AWS RDS(MySQL) 인스턴스 생성
1. AWS RDS 서비스로 이동 . 검색 창에 RDS 입력, 서비스 목록에 RDS 클릭하면 Amazon RDS 대시보드 화면이 오픈됨
2. "데이터베이스 생성" 클릭하여 RDS MySQL 데이터베이스 생성 시작
3. 데이터베이스 생성 방식 및 MySQL 엔진 선택
4. 템플릿으로 프리티어 옵션 선택
5. 설정에서 DB 인스턴스 식별자, 마스터 사용자(admin)에 대한 암호 입력
. 자격 증명 관리는 "자체 관리" 선택
6. 프리티어 인스턴스 구성 선택 (db.t3.micro)
7. 연결 정보에서 컴퓨팅 리소스로 "EC2 컴퓨팅 리소스에 연결"을 선택
. EC2 인스턴스 정보에서 AP서버 용으로 생성한 EC2 인스턴스를 선택 합니다.
지금까지 순서 대로 따라 오셨으면 콤보박스를 클릭하면 앞에서 생성한 EC2 인스턴스를 목록에서 확인 할 수 있음.
EC2 인스턴스를 아직 만들지 않은 경우 지금 "EC2 인스턴스 생성"버튼을 클릭하여 생성할 수 있으며,
바로 생성하지 않을 경우 "EC2 컴퓨팅 리소스에 연결 안 함"을 선택 DRS 생성 진행하면 됩니다.
이 경우 DRS 생성 후 EC2 인스턴스 연결 정보를 별도로 설정해 주면 됩니다.
8. 데이터베이스 생성 완료 후 엔드포인트 확인
2-2. EC2에서 MySQL 접속 및 설정
CREATE DATABASE backend_db;
CREATE USER 'backend_user'@'%' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON backend_db.* TO 'backend_user'@'%';
FLUSH PRIVILEGES;
|

2-3. EC2 인스턴스에서 Spring Boot 기동시 RDS(MySQL) 연결 하기
1. EC2 인스턴스에 application.properties 파일을 복사하고 RDS 연결 정보를 수정 합니다.
- 로컬PC에 application.properties 파일을 EC2 서버로 복사 합니다.
아래 command에 sshkey.pem과 your-ec2-ip는 나의 EC2 인스턴스에 맞 게 수정하여 사용해야함.
scp -i ./sshkey.pem application.properties ubuntu@your-ec2-ip:/home/ubuntu/ |
- EC2 인스턴스로 복사될 파일에 RDS(MySQL) 연결 정보를 수정 합니다.
파란색 표기 부분을 내가 생성한 RDS MySQL서버에 맞게 수정하여 사용함.
<application.properties 파일>
spring.datasource.url=jdbc:mysql://your-rds-endpoint:3306/backend_db spring.datasource.username=backend_user spring.datasource.password=your_password spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver spring.jpa.hibernate.ddl-auto=update |
2. EC2 인스턴스에서 application.properties 파일을 사용하여 Spring boot를 기동합니다.
- 아래 command에서 myapp.jar과 application.properties는 내 jar파일과 properties 파일에 맞게 수정하여 사용해야함.
java -jar myapp.jar --spring.config.location=application.properties |
※ RDS생성시 " EC2 컴퓨팅 리소스에 연결 안 함"을 선택한 경우 EC2 연결 설정 하기


3. EC2와 Spring boot와 RDS mySQL이 정상 기동 후 curl 명령을 이용한 API 호출 테스트
스크립트는 curl 명령어를 활용하여 RESTful API를 호출합니다. curl은 HTTP 요청을 수행할 수 있는 명령어로, 다양한 API 테스트 및 서버와의 통신을 자동화할 수 있습니다.
(1) POST 요청 - 데이터 입력
curl -X POST -H "Content-Type: application/json" -d "{ \"value\" : \"테스트 입력\" }" http://your-ec2-ip:8080/api/data
- -X POST : POST 요청을 전송
- -H "Content-Type: application/json" : 요청의 데이터 형식을 JSON으로 지정
- -d "{ \"value\" : \"$value\" }" : JSON 데이터를 전송
(2) PUT 요청 - 데이터 수정
curl -X PUT -H "Content-Type: application/json" -d "{ \"value\" : \"테스트 수정\" }" http://your-ec2-ip:8080/api/data/1
(3) DELETE 요청 - 데이터 삭제
curl -X DELETE -H "Content-Type: application/json" -d "{ \"value\" : \"삭제\" }" http://your-ec2-ip:8080/api/data/1
(4) GET 요청 - 데이터 조회
curl -X GET http://your-ec2-ip:8080/api/data/0
※ 참고 : "curl 명령으로 RESTful API 테스트 호출하는 Shell 프로그램 개발하기"
https://junkcode.tistory.com/1