최종 목표 내 PC에서 만들던 오너블리 쇼핑몰을 AWS 서버에서 누구나 접속 가능하게 만들기
1️⃣ WAR 파일 생성 ✅
2️⃣ AWS EC2 생성 ✅
3️⃣ EC2에 Java 설치 ✅
4️⃣ EC2에 Tomcat 설치 ✅
5️⃣ WAR 업로드 ✅
6️⃣ DB 연결 🔥실패
7️⃣ 외부 접속 확인 🔥
이전까지의 배포 상태는 "서버는 뜨지만 데이터 없는 상태"였다
DB 연결 후에는 로그인, 회원 조회, 상품 목록, 게시판이 작동하도록 만들 것이다
6️⃣ DB 연결은 “Oracle → AWS EC2” 연결 작업
을 해보도록 하겠습니다
지금부터 할 것
🍎 EC2 안에 Oracle DB 설치
🍎 내가 가진 .sql 파일 그대로 진행
🍎 Tomcat ↔ Oracle 연결
🍎 AWS에서 쇼핑몰 DB까지 완전체로 동
EC2에 Oracle 21c XE 설치
1. Windows PowerShell에 접속

ssh -i "C:\keys\ornably-key.pem" ec2-user@<EC2_PUBLIC_IP>
이렇게 명령어를 입력하고 성공하면 위와 같이 바뀐다
이 상태부터가 EC2 리눅스 안이다

sudo yum update -y
sudo yum install -y bc binutils elfutils-libelf \
gcc gcc-c++ glibc glibc-devel ksh libaio \
libaio-devel libgcc libstdc++ libstdc++-devel \
libXext libXtst make sysstat unzip wget
위에 sudo로 시작하는 명령어를 입력하면
필수 패키지가 설치된다
Complete! 되면 성공이다
✔ 에러 없이 끝나면 Oracle 설치 준비 완료
2. Oracle 21c XE 설치 명령어
cd /tmp
wget https://download.oracle.com/otn-pub/otn_software/db-express/oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm
다운로드 명령어
sudo yum install -y oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm
다운로드 끝났으면 다름 바로 실행 명령어
https://bobaejin.tistory.com/263
EC2 루트 볼륨 용량 늘리기
하다가 막혔다 ㅠㅠ 지금 왜 막혔냐Cannot write ... (No space left on device)EC2 기본 루트 볼륨(8GB) 이 Tomcat + Java + 로그 + Oracle 21c XE (2.2GB) 감당 안 됨그래서 볼륨 확장을 해야만 하는 상황이다 그래서 지
bobaejin.tistory.com
볼륨을 늘려왔다 하지만 RPM 파일 자체는 저장이 안됐다..
다시 시작하는 마음으로 해결해보기~
1. /tmp에 파일이 진짜 없는지 확인 : 아무것도 안나오면 정상. 다운로드 실패 상태
ls -lh /tmp | grep oracle
2. 디스크 여유 확인
df -h
디스크 여유를 확인해본 결과
나는 tmpfs 459M 0 459M 0% /tmp 이렇게 나왔는데
/tmp는 디스크가 아니고 메모리 459MB짜리 가상 공간이다
그런데 Oracle XE RPM 크기 : 2.2GB
즉, 2.2GB 파일을 459MB짜리 /tmp에 받으려다가 실패한 것이다
볼륨을 늘린 건 맞지만 /tmp는 EBS 용령이 아니라 RAM이라 의미가 없던 것이다
다시
1. 다운로드 위치 변경
cd /home/ec2-user
2. cd /home/ec2-user
wget https://download.oracle.com/otn-pub/otn_software/db-express/oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm

이번엔 100%까지 받아졌다
3. 파일 확인
ls -lh oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm

4. Oracle XE 설치
// oracle 유저 & 그룹 생성
sudo groupadd oinstall
sudo groupadd dba
sudo useradd -g oinstall -G dba oracle
sudo passwd oracle
// 필수 패키지 설치
sudo yum install -y \
bc binutils elfutils-libelf gcc gcc-c++ glibc glibc-devel \
ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel \
libXext libXtst make sysstat unzip
// 커널 파라미터 설정
sudo tee /etc/sysctl.d/99-oracle.conf <<EOF
fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmmni = 4096
kernel.shmall = 1073741824
kernel.shmmax = 4398046511104
kernel.sem = 250 64000 100 4096
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
EOF
// 적용
sudo sysctl --system
// limits 설정
sudo tee /etc/security/limits.d/oracle.conf <<EOF
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft stack 10240
oracle hard stack 32768
EOF
그리고 이제 rmp --nodeps 로 강제 설치
cd /home/ec2-user
sudo rpm -ivh --nodeps oracle-database-xe-21c-1.0-1.ol8.x86_64.rpm

🔥 인스턴스 스펙 문제 발생!!
Oracle Database 21c XE requires a minimum of 1GB of RAM
This system has 916 MB of RAM
이 부분을 보면
🔴 Oracle 21c XE 최소 요구 RAM: 1GB
🔴 현재 EC2 RAM: 916MB
→ 설치 스크립트 단계에서 강제로 중단
--nodeps로 패키지 의존성은 무시했지만
👉 메모리 체크는 %preinstall 스크립트라서 무조건 막힘
'🍏 개발일기' 카테고리의 다른 글
| EC2에서 JDBC 연결 확인 + Tomcat 배포 점검 가이드 (1) | 2026.01.22 |
|---|---|
| 무료 배포 환경 구성.... 이어서 계속 (0) | 2026.01.22 |
| EC2 루트 볼륨 용량 늘리기 (0) | 2026.01.21 |
| 로그인부터 Board 목록까지 출력 흐름 정리해보기 (0) | 2026.01.20 |
| 내 PC에서 만든 오너블리 쇼핑몰, AWS EC2에 배포하고 누구나 접속하기 (2) | 2026.01.20 |