🍏 개발일기

DB 연결 그리고 인스턴스 스펙 문제 | 오버블리 프로젝트 배포하기

보배 진 2026. 1. 21. 16:10

최종 목표 내 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 스크립트라서 무조건 막힘