본문 바로가기
AWS/AWS + Linux

[AWS] AWS로 배포하기 기본적인 방법 -2

by pyogowoon 2023. 2. 14.

 

 

 실행한 mobaXterm 에서 git 버전을 확인해봅니다. 

   여기서 다루는 배포 방법은 git을 사용할것이기 때문에 git이 설치되어있어야 합니다.

 

 

 

 pwd 를 입력하여 현재 경로가 /home/ubuntu 인지 확인 후

git clone (git에 등록된 프로젝트 주소) 를 입력합니다.

 

 

 

 git clone 으로 다운로드 받고

 ls (자세히 보기 명령어) 를 쳐보면 내가 clone한  git repository의 이름이 나오고,

 

cd 경로 ( 윗 사진의 경우 cd AWS-service-test)

경로에 진입한 후 ls 명령어를 처보면 내 프로젝트가 잘 다운됬음을 확인할 수 있습니다.

 

이제 gradlew 을 통해 테스트와 빌드를 해볼것이고 이걸 실행파일로 변환해야 합니다.

 JAVA의 경우 JAR 가 실행파일 이므로 JAR로 변경하는 과정을 거쳐야합니다

 

 전체적인 순서를 보면 이렇게 됩니다.

 

1. github 다운 받기

2. gradlew 실행권한주기  

3. 자바 설치 (JDK , JRE 간단하게 JDK 는 개발하기 위해서 필요, JRE는 실행/접근하기 위해 필요)

4. gradlew로 프로젝트를 JAR 파일로 변경하기

 

5. JAVA로 JAR를 실행

 

 

 

gradlew 실행 권한 주기 

 

 

ls -l  명령어를 실행해봅니다.

 

 gradlew 폴더가 하얀색 폰트이고, 좌측 빨간선을 보면 -rw-rw-r-- 입니다 ( 자세히 몰라도 됩니다 그냥 실행권한 없다 정도)

 

 여기서 chmod u+x gradlew 을 입력합니다. (권한 부여하는것, u = 소유자 x= 실행권한 을 grdlew 에 부여)

 그리고 ls -l 을 입력하면

 

 gradlew 이 초록색 폰트로 변경되었고. -rw -> -rwx 로 실행권한이 부여되었습니다.

 

 이제 ./gradlew build 를 입력해봅니다.

 

 

JAVA를 설치하라고 나옵니다. 우분투 내에 JAVA가 설치되지 않았기 떄문입니다, 설치해줍니다.

 

 우선 sudo apt update 를 입력하여 동기화 부터 해줍니다.

 

 

 

 동기화가 끝났다면

 

sudo apt-cache search jdk | grep openjdk-11 을 입력해봅니다. 우리는 여기서 OpenJdk Development Kit (JDK) 를 

가져와야 합니다.

 

 

sudo apt install openjdk-11-jdk 를 입력합니다.

 맨 마지막줄 계속할것이냐 물어보면 y를 입력합니다.

 다운로드 끝났다면

 

 java --version 을 입력합니다.

설치가 잘 됐습니다.

 

이제 아까 못한 ./gradlew build 를 실행하면

 

 

 

 

 

빌드가 잘 됐습니다. JAR 파일로 구워졌습니다.

 

 

  구워진 상태에서 ls 로 확인해보면  파란색 폰트로 build 라는 파일이 하나 생겼습니다.

 cd build/ 로 진입하고

ls 로 자세히 보면 libs 파일이 있습니다.

 cd libs 로 진입 후

 ls로 자세히 보면 JAR 파일이 하나 생겼습니다.

 

 

 

java -jar v1-0.0.1-SNAPSHOT.jar 를 입력합니다. 

 

jar 폴더가 단일일때는

java -jar *.jar 로 해도 무방합니다.

 

 

 jar 폴더를 실행하니 반가운 익숙한 화면이 나옵니다.

 그럼 잘 실행되는지 확인해봅시다.

 

 

 

 

@Slf4j
@RestController
public class HelloController {


    @GetMapping("/aws/v1")
    public String hello(@RequestParam(defaultValue = "1") Integer number){
        if(number == 1){ // info 로그
            log.info("/aws/v1 이 호출되었어요. info 로그 ###########################");
        }else if(number == -1){ // error 로그
            log.error("/aws/v1이 호출되었어요. error 로그 #########################");
        }else if(number == 0){ // warn 로그
            log.warn("/aws/v1이 호출되었어요. warn 로그 ###########################");
        }
        
        return "<h1>aws v1</h1>";
    }
}

 제가 TEST로 github에 등록한 프로젝트의 컨트롤러 입니다.

 

 

 

이제

 

본인탄력적 아이피:8080/본인컨트롤러 에 접속해봅니다.

 

 

 

 log.info 도 잘 나옵니다. (error 로그는 제가 일부로 띄운것입니다.)

  하지만 여기서 Terminal 을 종료하면 홈페이지에도 접근할 수 없습니다.

 Terminal 이 꺼져도 유지되는 방법은 있습니다. 그건 -3에서 다룹니다.

댓글