목표 :
1) 23.09.11 ~ 23.09.27 1차 프로젝트(Spring 기반) 결과물을 개인 도메인 bitsns.site(DNS)에 배포
2) 도메인 구매후 NCP(Naver Cloud Platform) 환경에서 도메인 등록 및 가상의 web-server로 접속하여 결과물 실행
3) infra를 다시 새로 구축한다는 마음으로 초심자도 보고 따라할수 있게 설명(ip는 임시적 값으로 설정)
가비아 도메인 구입후 해줘야 할 과정
도메인을 구매한 후 해당 도메인의 웹 호스팅, 클라우드 서비스, 또는 특정 플랫폼과 통합하여 사용하려면 도메인 네임 서버를 해당 플랫폼의 네임 서버로 변경하여 도메인과 관련된 모든 설정과 서비스를 하나의 플랫폼에서 관리하고 편리하게 활용한다.
DNS를 활용한 architecture 설계 구성 계획
bitcamp-VPC에 1개의 proxy-server를 구성으로 개발을 위한 private-server, DB를 위한 DB-server구축한다.
TG 설정
- 리스너 규칙으로 분리 가능하기에 port는 동일한 TG 생성해도 괜찮다.
![]()
DNS 연결한 server 적용
HelloControll test port 설정 (server 적용과 Health check는 위와 동일)
LB 설정
*
=> 와일드 카드로 모든 호스트(www 포함)를 포함하는 레코드 추가후 배포
apt-get update
apt install openjdk-17-jdk
apt install gradle
apt upgrade gradle
// 백그라운드 작동
nohup java -jar {jar name} 1> nohup.log 2>&1 &
- New Project 생성 후 Apllication 작성 및 build를 통한 /build/libs의 .jar 파일을 서버에 배포 후 -jar 명령으로 실행 및 application 작동 확인!
- package 경로 확인 후 동일하게 생성
gradle.build 설정!
..
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-actuator'
implementation 'org.testng:testng:7.1.0'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}
...
jar {
// 기본 JAR 파일( 앱이름-plain.jar) 생성을 비 활성화
enabled = false
}
HelloApplication
package com.example.hello;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class HelloApplication {
public static void main(String[] args) {
SpringApplication.run(HelloApplication.class, args);
}
HelloController
package com.example.hello;
import org.springframework.web.bind.annotation.*;
@RestController
public class HelloController {
@GetMapping("/")
@ResponseBody
public String hello() {
return "hello ";
}
}
HelloApplicationTests
package com.example.hello;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
class HelloApplicationTests {
@Test
void contextLoads() {}
}