Oracle Cloud 이용 배포
1. menu → Compute → instaces
2. Create instance
3. 이름 원하는 대로 설정
4. Image → Change image ( Image = 운영체제 ) → Ubuntu 선택
5. 아래 쪽 내려 버전선택 → Canonical Ubuntu 24.04 버전
6. Shape - Next
7. Security - Next
8. Networking - Next
만약, 처음 생성인 경우 → Create new virtual cloud network
9. 아래쪽 SSH Key - key download (2개 ) → Next
* key는 한번만 down 가능
10. Storage - Next
11. Review - Create
12. 완료 후 instance 생성 확인
*만약 삭제하고싶은 경우 - 선택 후 Actions:Stop
수신규칙 설정
1. 생성된 instance 선택 (2개 중 아무거나)
2. Networking → subnet 클릭
3. Security - Default Security List for vcn 선택
4. Security rules - Add Ingress Rules
5.Ingress Rule 생성 - Source CIDR - 0.0.0.0/0 (모든 외부IP 허용) → 오른쪽 맨 아래 완료
- Destination.Port.Range - 80,8080,443,22
6. 완료 후 설정 확인
고정 Ip 설정 하기
1. instances → Ip 설정 원하는 instance 선택 - Networking - 오른쪽아래 ... → View Details
2. Ip administration - ... → Edit
3. No public → Update
4. Edit
5. Reserved public IP → Create new Reserved IP Adress → Oracle → Update
6. 고정 IP 생성 완료 - 계정당 하나만 무료로 가능
원격 접속프로그램 PuTTY
: PuTTY은 개발자들에게 매우 유용한 기능을 포함한 무료 및 오픈 소스 Windows 프로그램
1. 링크 접속
https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html
Download PuTTY: latest release (0.83)
This page contains download links for the latest released version of PuTTY. Currently this is 0.83, released on 2025-02-08. When new releases come out, this page will update to contain the latest, so this is a good page to bookmark or link to. Alternativel
www.chiark.greenend.org.uk
2. 64-bit x86 다운로드 (window 운영체제 기준)
3. PuTTYgen 실행 → Load (다운받은 키파일 중 .key 선택)
4. save private key
5. key이름 설정(여기선 oracleTestKey) → 저장 후 창 닫기
6. PuTTY 실행 - Connection → SSH → Auth → Credenial.. → Browser 클릭: 전자지갑 파일 선택
7. Oracle Cloud에서 받은 Ip 입력해주고 - Open
8. 이 창이 뜨면 Accept
9. login as 옆에 ubuntu 입력 → 맨 아래 ~$ 표시 뜨면 됨 / linux 운영체제 설정
★ 명령어 순서대로 입력
1. sudo apt update (리눅스 최신버전으로 서버 업데이트) 2. sudo apt install openjdk-17-jdk (jdk 17버전 설치) - 중간에 [Y/n] 물어보면 Y입력 3. sudo apt install tomcat10 (Tomcat서버 10버전 설치) - 중간에 [Y/n] 물어보면 Y입력 4. sudo systemctl status tomcat10 (톰캣서버10의 구동 여부 확인 - 초록색 active runnig 뜨면 ok (선택 사항)) → 확인후 서버 상태 확인 빠져나오기 : ctrl + c 5. curl localhost:8080 (톰캣 서버의 기본 화면 페이지를 소스로 출력 (선택 사항)) 6. sudo apt install ufw (방화벽 설정을 위한 설치) - 중간에 [Y/n] 물어보면 Y입력 7. sudo ufw allow 8080/tcp (8080포트 방화벽 해제) 8. sudo ufw allow 80/tcp (80포트 방화벽 해제) 9. sudo apt install net-tools (네트워크 기능을 위환 툴 설치) 10. netstat -atn (포트 확인) - listen : 잘열려있는것 11. sudo iptables -F (iptables 규칙을 초기화) 12. sudo timedatectl set-timezone Asia/Seoul (우분투의 시간대를 아시아/서울로 변경) 13. sudo chmod 777 /var/lib/tomcat10/lib (폴더의 접근 권한 퍼미션 777 설정) 14. sudo chmod 777 /var/lib/tomcat10/webapps (배포할 톰캣서버의 루트 폴더 접근 권한 퍼미션 777 설정) + 추가) timedatectl (현재 인스터스 원격 웹서버의 시간대 확인) sudo chmod -R 777 /var/lib/tomcat10/webapps/board(설정이름) (board 하위 폴더들의 퍼미션도 함께 설정) |
10. 웹브라우저 창 → '내IP주소:8080' 입력→ 연결 확인
Oracle DB생성
1. Oracld Cloud - Oracle Database → Autonomous Database → Create Autonomous Database
2. Display name , Database name 설정 → Transaction Processing 선택
* database name= db이름
3. Alway Free 체크(중요) → choose datebase version : 19c
4. DB 비밀번호설정 → Create
5. 완료 후 무료확인, 사용가능 확인
전자 지갑 설정
1. 생성한 DB 선택 → Database Connection
2. wallet type : Instance wallet → Download wallet
3. 전자지갑 비밀번호 설정 → (자동)파일 다운로드 되는것 확인 (원하는 위치로 옮겨놓기)
Oracle : 접속 새로 만들기
* 구성파일(전자지갑 zip파일 선택)
STS 프로그램
1. build.gradle : 오라클 시큐리티 의존설정 추가
//오라클 클라우드 DB 연결 설정
implementation "com.oracle.database.jdbc:ojdbc11:23.5.0.24.07"
// Wallet 지원용
implementation "com.oracle.database.security:oraclepki:23.5.0.24.07"
//implementation "com.oracle.database.security:osdt_core"
//implementation "com.oracle.database.security:osdt_cert"
* 이미 있던 oracle11버전은 주석처리
//runtimeOnly 'com.oracle.database.jdbc:ojdbc11'
2. application.properties (원격 설정)
# Cloud Oracle Datasource config
spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:@만든DB이름_high?TNS_ADMIN=전자지갑경로
spring.datasource.username=admin
spring.datasource.password=설정한비밀번호
* 전자지갑 ZIP파일은 쉬운경로로 압축 미리 풀어준다(위에 경로 적어야함)
3. 설정 후 서버 켜서 서버 작동 확인
#서버 충돌 오류 나는 경우
→ cmd창 관리자모드로 열고 중복 포트번호 꺼주기
netstat -an -o 8888 포트 찾아서 점유한 pid 확인 taskkill /f /pid 해당 pid 번호 |
FTP 프로그램 (파일 질라)
1. 페이지 접속 - 다운로드
https://filezilla-project.org/
2. 다운파일 실행 →next 해주다가 이 화면 나오면 Decline (백신프로그램) → 이후 그냥 next, install 해서 설치
3. 사이트 관리자 - 새 사이트 → 이름 설정 → 호스트 : instance ip 주소
사용자 : ubuntu
키파일 : 다운받은 key 선택
(선택 해야할 키파일)
4. / -> var -> lib -> tomcat -> webapps → Root : 파일 확인 / 경로 확인
5. 전자지갑 올리기
var - lib - tomcat10 - lib 파일 안 → 전자지갑 압축푼 파일 복사
# 오류
lib파일의 퍼미션 그룹 권한(쓰기), 공개 권한(쓰기) 선택되어있지 않음 = 권한 제한
→ 모든 접근 권한 풀어준다(but, ftp 프로그램에서 사진처럼 체크해도 안됨)
→ PuTTY 실행해서 입력해서 설정해주기 (다른 설정 할 때 미리 하면 편함)
sudo chmod 777 /var/lib/tomcat10/lib (폴더의 접근 권한 퍼미션 777 설정) sudo chmod 777 /var/lib/tomcat10/webapps (배포할 톰캣서버의 루트 폴더 접근 권한 퍼미션 777 설정) |
6. 전자지갑 파일 복사해준다 → var - lib - tomcat10 - lib 파일
STS 설정
1. port번호 변경, DB경로 바꿔주기(FTP 프로그램에서 복사한 전자지갑위치)
2. root처리 (원하는대로 작명)
3. bulid.gradle
1. id 'war' 추가
2. war 배포파일명 추가 → archiveBaseName = 'root처리할때 작명한이름'
build.gradle에 배포시 추가내용 plugins { id 'java' id 'org.springframework.boot' version '3.5.5' id 'io.spring.dependency-management' version '1.1.7' id 'war' //추가!! } bootWar{ //war 배포파일명 추가!! archiveBaseName='root작명' archiveFileName = 'root작명.war' archiveVersion = "0.0.0" } |
오버라이딩 - source
Gradle Tasks - build bootWar 확인 → 새로고침 후 에러없다면 → Run Gradle Tasks
workspace 폴더 - 해당 프로젝트 폴더 - build - libs → .war파일 생성 확인
/var/lib/tomcat10/webapps 폴더로 .wat파일 복사(드래그)
+ 새로고침 후 파일 생긴것 확인
톰캣 서버 재시작(PuTTY)
15. sudo systemctl stop tomcat10 (톰캣 서버 정지) 16. sudo systemctl start tomcat10 (톰캣 서버 재시작) |
웹 브라우저 주소창 - IP주소:8080/root설정이름/question/list 입력 해보기
# 오류가 난다면?
navbar.html 파일 - href 경로 변경 (root에 설정했던 이름)
<a class="navbar-brand" href="/kmii">QA Board</a> 변경
MainController - root : "/"로 변경
@GetMapping(value="/") // cloud용 root 요청 처리
public String root() {
return "redirect:/question/list";
}
Gradle Tasks - build bootWar → Run Gradle Tasks
만들어진 폴더(kmii) 지우기
→ 안지워지면 PuTTY에서 sudo chmod 777 /var/lib/tomcat10/webapps 입력하고 폴더 삭제 시도
→ war 파일 다시 드래그해서 넣어주기
PuTTY - 톰캣서버 재시작
sudo systemctl stop tomcat10 //톰캣 서버 정지
sudo systemctl start tomcat10 //톰캣 서버 재시작
다시 실행해 보기
# 게시판/DB 시간 현재시간과 다르다면
Oracle Cloud는 UTF 시간 기준
question_list.html 파일에서 시간 설정 시 +9시간 해준다
<td th:text="${#temporals.format(question.createdate, 'yyyy-MM-dd HH:mm')}">등록일</td>
하위 폴더 커미션 풀어주고
application파일 하나 백업해놓기
sts - application
# 한국 시간대(Asia/Seoul) 설정
spring.jackson.time-zone=Asia/Seoul
spring.jpa.properties.hibernate.jdbc.time_zone=Asia/Seoul
list.html - 등록일 수정
<td th:text="${#temporals.format(question.createdate.atZone(T(java.time.ZoneId).of('UTC'))
.withZoneSameInstant(T(java.time.ZoneId).of('Asia/Seoul')),
'yyyy-MM-dd HH:mm')}">등록일</td>
application 덮어씌우기
방법1)
나머지 날짜 수정한 파일 옮기기
수정한 파일 개별적으로 메모장/ 프로그램으로 열어서 수정
수정 완료 하면 다시 덮어씌우기
방법2)
sts 프로그램에서 일단 수정 한 후
하나씩 다시 덮어 씌우기
'Write it > Spring Boot' 카테고리의 다른 글
Spring Boot) Junit test 연습 (1) | 2025.09.09 |
---|---|
Spring Boot) Oracle연동 JPA 이용 테이블 생성, 질문 등록 예제 (0) | 2025.09.08 |
Spring Boot) H2 이용 질문 테이블 만들기 (0) | 2025.09.08 |
Spring Boot) JPA의 개념 , 특징 (0) | 2025.09.08 |
Spring Boot에서 Mybatis 이용 간단한 예제 만들어보기 (0) | 2025.09.05 |