JSCODE Logo
프로그래밍 과외블로그후기멘토진
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호
학원 명칭 : 제이에스코드(JSCODE)원격학원학원설립ㆍ운영 등록번호 : 제6063호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2025 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침
← 블로그 목록으로 돌아가기

[실습] 3-2. S3를 활용해 Spring Boot 서버에 이미지 업로드 기능 구현하기

JSCODE 박재성
JSCODE 박재성
2025-11-30
author
JSCODE 박재성
category
AWS
createdAt
Nov 30, 2025
series
비전공자도 이해할 수 있는 AWS 입문
slug
springboot-s3-image-upload
type
post
updatedAt
Nov 30, 2025 04:56 AM
❗
리눅스와 Spring Boot에 대한 수업이 아니므로, 리눅스 명령어나 Spring Boot 코드에 대한 자세한 설명은 생략한다.
 

✅ 1. EC2 인스턴스에서 Spring Boot 서버 clone하기

aws-s3-springboot
JSCODE-BOOK • Updated Sep 17, 2024
$ git clone https://github.com/JSCODE-BOOK/aws-s3-springboot.git
 

✅ 2. application.yml 파일 수정하기

스프링 부트에서 참조하는 AWS 자원의 정보를 설정하기 위해 application.yml 파일을 엽니다.
$ cd aws-s3-springboot/src/main/resources $ vi application.yml
 
application.yml
server: port: 80 spring: datasource: url: jdbc:mysql://_________:3306/instagram # RDS 인스턴스 엔드포인트 username: ______ # RDS 마스터 사용자 이름 password: ______ # RDS 마스터 암호 driver-class-name: com.mysql.cj.jdbc.Driver jpa: hibernate: ddl-auto: create show-sql: true cloud: aws: credentials: access-key: _________ # IAM 통해서 발급받은 액세스 키 secret-key: _________ # IAM 통해서 발급받은 비밀 액세스 키 s3: bucket: _______ # 생성한 S3 버킷명 region: static: ap-northeast-2
이 실습에서는 편의를 위해 application.yml 파일을 리포지토리에 업로드했습니다. 만약 자신의 스프링 부트 프로젝트를 퍼블릭 깃허브 리포지토리에 업로드한다면 .gitignore를 활용하여 application.yml 파일을 제외해야 합니다.
 

✅ 3. 스프링 부트 서버 실행하기

$ sudo lsof -i:80 # 80번 포트에서 실행되는 프로세스 확인 $ sudo kill {PID 값} # 80번 포트에서 실행되는 프로세스가 있다면 종료 $ cd ~/aws-s3-springboot $ ./gradlew clean build -x test # 스프링 부트 프로젝트 빌드 $ cd build/libs $ sudo nohup java -jar aws-s3-springboot-0.0.1-SNAPSHOT.jar & # JAR 파일 실행
 

✅ 4. 스프링 부트 서버 상태 확인하기

$ sudo lsof -i:80
notion image
 

✅ 3. S3에 파일 업로드가 잘 되는 지 확인하기

notion image
notion image
 

✅ 4. S3에 저장된 URL로 이미지 잘 조회되는 지 확인

방법 1) HTML에서 확인하기
index.html
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> </head> <body> <h1>이미지 테스트</h1> <img src="______"/> </body> </html>
 
방법 2) 주소창에 주소 쳐보기
notion image
 
author
category
AWS
createdAt
series
비전공자도 이해할 수 있는 AWS 입문
slug
type
series-footer
updatedAt
Jan 12, 2026 12:03 AM
📎
이 글은 비전공자도 이해할 수 있는 AWS 입문/실전 강의의 수업 자료 중 일부입니다.