본문 바로가기

프로젝트91

[Dev] 23.05.01. jar file 실행 체크 / port forwarding 설정 체크 jar file 실행 체크 필자는 build한 jar file을 실행하고 인스턴스에서 탈출할 것이기 때문에 background에 실행시켜둔 뒤 나와야 한다. 그냥 단순하게 실행시켜두었다가 종료하는 것은 ctrl + c로 가능한데, background에 실행시킨다면 어떤 방식으로 종료해야 할까? ps -ef | grep jar ps는 process의 상태를 표시하고 싶을 때 사용한다. 옵션 중에 -e는 현재 활성화된 프로세스를 출력에 포함하고, -f는 전체 목록을 의미하며 USER, PID, PPID, STIME, DEVICE, TIME 및 FUNCTION 필드가 출력에 포함한다. grep은 그 중에서도 특정 패턴과 매치되는 결과물들만을 골라 보여준다. 결과적으로 위 명령어는 실행되는 목록 중에 jar 가.. 2023. 5. 1.
[Dev] 23.05.01. EC2 인스턴스는 왜 자꾸 터지는가? (feat. SWAP) 지난 밤, 성공적으로 https를 위한 인증서를 발급하고 설정하여 도메인에 https 접속이 되는 것을 확인하고 서버를 그대로 돌려둔 채로 잠들었다. 그런데 아침에 일어나서 도메인에 접근하려고 했더니 장렬히 실패하는 모습을 보게 되었다. EC2 console에 로그인해서 살펴보니 위 이미지에서 처럼 상태 검사에 실패한 상황을 마주했다. 안그래도 다음에 하고 싶었던 작업이 바로 이와 관련된 것이었는데, 마침 게시글을 작성하기 위한 소스를 친절하게 직접 터져주는 것으로 제공해주었다. 이전에도 비슷하게 CPU 사용률이 치솟아서 문제가 있었던 경우가 몇 번 있었다. 인스턴스의 모니터링 항목에서 보면 CPU 사용률이 치솟았고, 그때를 기점으로 상태 검사에 실패했다고 나와있다. 게다가 인스턴스에 접근하려고 하면 C.. 2023. 5. 1.
[Dev] 23.05.01. https를 위한 인증서 발급 및 적용 참 마음이란 것이 신기하다. 처음에는 배포를 위한 AWS를 사용해보는 것이 최종 목표였다. 그래서 EC2 인스턴스를 생성하여 jar file을 build해서 올렸고, S3 bucket을 생성하여 IAM 인증을 통해 이미지를 업로드하도록 했다. 그 다음에는 도메인 연결을 해보고 싶어졌다. 이력서를 쓰다보면 가끔 작업한 내용에 대하여 오픈된 주소가 있는지 작성하는 항목이 있었다. 그때마다 그 자리를 비워둔 채로 넘어갔는데, 막상 IP 주소를 올리려고 하니 마음에 걸렸다. 대놓고 IP 주소를 공개하는 것보다 깔끔하게 도메인을 연결하여 공개하는 것이 낫겠다는 생각이 들었다. 그래서 가비아에서 도메인을 얻어 EC2 인스턴스의 탄력적 IP를 연결해주었다. 그랬더니 이제는 http 가 걸려서 https로 만들고 싶어.. 2023. 5. 1.
[Dev] 23.04.28. 탄력적 IP 설정 및 도메인 연결 (feat. 가비아) 지인의 조언에 따르면, 단순하게 해봤다는 말과 함께 해당 작업 기록을 남기는 것보다 실제로 작업에 대한 오픈을 해놓는 것이 훨씬 좋다고 한다. 직접 눈으로 볼 수 있고, 작동을 볼 수 있도록 하는 것이 가장 좋다고 했다. 그래서 도메인을 연결하기로 했다. 탄력적 IP 설정 먼저 할 작업은 EC2 인스턴스에 탄력적 IP를 설정하는 것이다. 필자는 기존에는 과금 여부 때문에 따로 탄력적 IP를 설정하지 않았으나, 도메인과 연결하기 위해서는 고정된 IP를 가져야할 것 같아서 탄력적 IP를 설정하기로 했다. 과정은 다음과 같다. AWS EC2 console에서 좌측 네트워크 및 보안 > 탄력적 IP 를 클릭하면 탄력적 IP 주소를 할당할 수 있게 된다. 위와 같은 설정들을 볼 수 있으나, 필자는 그대로 둔 채로.. 2023. 4. 28.
[Dev] 23.04.08. EC2 인스턴스에 git clone 후 배포하기 git 설치 // git 설치 sudo apt-get install git // 버전 확인 git --version 위 명령어를 작성하여 git을 설치하고 버전을 확인한다. Project Clone git clone 'repository address' git clone https://github.com/Gyuhwan-Kim/Recipository.git github로부터 프로젝트를 clone한다. Build 및 실행 ./gradlew build Clone한 폴더에서 위 명령어를 작성하면 build가 진행된다. 문제는 EC2 프리티어를 사용하고 있는 경우, build 에 문제가 발생한다. Gradle은 프로젝트를 build하기 위해서 Daemon 프로세스를 진행한다고 하는데, 프리 티어에서는 1GB의 메.. 2023. 4. 8.
[Dev] 23.04.08. AWS S3 Bucket으로의 업로드를 위한 IAM 역할 연결 Access Key 대신 권장하고 있는 대안 현재 S3로의 업로드에는 properties에 입력한 IAM 계정의 access key와 secret key를 활용하여 AmazonS3Client 객체를 생성하고 있다. 하지만 IAM의 access key를 생성하는 과정에서 Amazon은 그 대신 위 메시지를 보이며 EC2 인스턴스에 IAM 역할을 할당하여 액세스를 위한 임시 보안 인증을 자동으로 제공하는 방식을 권장하고 있다. 보이는 Learn more를 눌러 열리는 페이지에서 어떤 방식으로 작업해야할 지 알 수 있다. EC2 인스턴스 내에서 직접 AWS 보안 인증 정보를 저장하고, 그것을 인스턴스의 어플리케이션에서 사용하는 것을 허용한 것이 바로 access key와 secret key이다. 하지만 이 인.. 2023. 4. 8.