프로젝트는 깃허브에서 받아올 것이다.
putty를 통해 EC2를 접속하고 git을 설치하자
$ sudo yum install git
$ git --version
프로젝트 저장할 디렉토리 생성 및 이동
$ mkdir ~/app && mkdir ~/app/setp1
$ cd ~/app/step1
클론
$ git clone [깃허브 레포지토리 주소]
파일 복사 확인
참고로 클론된 프로젝트명은 레포지토리 이름을 확인하면 된다.
$ cd [클론된 프로젝트명]
$ ll
코드들이 잘 수행되는지 테스트로 확인해보기
여기 테스트에서 정말 다양한 오류가 발생한다ㅠㅠ
$ ./gradlew test
오류1
./gradlew: Permission denied
-> 아래 명령어로 실행 권한을 부여
$ chmod +x ./gradlew
오류2
Failed to apply plugin [id 'org.springframework.boot']
FAILURE: Build failed with an exception.
* Where:
Build file '/home/ec2-user/app/step1/springboot-aws/build.gradle' line: 16
* What went wrong:
A problem occurred evaluating root project 'springboot_aws'.
> Failed to apply plugin [id 'org.springframework.boot']
> Spring Boot plugin requires Gradle 4.4 or later. The current version is Gradle 4.3
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
* Get more help at https://help.gradle.org
BUILD FAILED in 1s
gradle 버전이 너무 낮아서 발생하는 문제다.
확인해보니 gradlew 버전이 4.3으로 되어있는데 스프링부트를 이용하기 위해서는 최소 4.4 이상을 사용해야 한다.
-> 방법1
$ cd gradle/wrapper
$ vi gradle-wrapper.properties
버전 수정한 뒤 저장
-> 방법2 (추천)
로컬에서 수정 -> 깃허브에 푸시 -> ec2에서 "git pull" 실행
오류3
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x00007f1e19340000, 65536, 1) failed; error='Cannot allocate memory' (errno=12)
시스템의 물리적 RAM이나 스왑 공간의 부족이 원인이라고 한다.
(AWS 무료 버전은 초기 SWAP 메모리의 디폴트가 0)
다음 명령어를 통해 swap 메모리 확인이 가능하다
$ free -h
$ cd //루트로 돌아가기
$ sudo dd if=/dev/zero of=/swapfile bs=128M count=32
128M 크기의 파일이 32개 생성된다는 의미인데 dd: memory exhausted by input buffer of size ... 이런 에러가 뜨면 용량을 작게 파일 개수를 더 많이 변경해서 생성하면 된다.
$ sudo chmode 600 /swapfile // 파일에 읽기 쓰기 권한 부여
$ sudo mkswap /swapfile // 스왑 영역 설정
$ sudo swapon /swapfile // 스왑 공간에 스왑 파일 추가 (파일 즉시 사용할 수 있도록)
$ sudo swapon -s // 절차 성공했는지 확인
fstab 파일을 편집해 부팅 시 스왑 파일 활성화하도록 수정
$ sudo vi /etc/fstab
파일 끝에 "/swapfile swap swap defaults 0 0" 추가 및 저장
해당 게시글은 [ 스프링 부트와 AWS로 혼자 구현하는 웹 서비스 / 이동욱 ] 책을 따라한 것을 정리하기 위한 게시글입니다. 요약, 생략한 부분이 많으니 보다 자세한 설명은 책 구매를 권장합니다.
참고
github.com/jojoldu/freelec-springboot2-webservice/issues/415
aws.amazon.com/ko/premiumsupport/knowledge-center/ec2-memory-swap-file/
'Clone Coding > 스프링 부트와 AWS' 카테고리의 다른 글
[Spring] 스프링 부트로 RDS 접근하기 (5) | 2021.02.16 |
---|---|
[AWS EC2] 배포 스크립트 생성 (0) | 2021.02.15 |
[AWS RDS] RDS 접근하기 - sqlDeveloper, EC2 (0) | 2021.02.10 |
[AWS RDS] db 환경 만들기 (0) | 2021.01.25 |
[AWS EC2] 서버 환경 만들기 (0) | 2021.01.22 |