Aws를 통해 무중단 배포를 해보려고 합니다.그러기 위해서 리눅스 명령어를 공부해보았습니다.리눅스 명령어는 Shell을사용하여 OS(우분투)에게 명령하면OS가 번역하여 컴퓨터와 소통합니다.충분히 실습을 해보았다고 판단되어이 글은 기록용으로 명령어들만 기록해 두겠습니다!
명령어1 | 명령어2 의 형태를 갖고 있습니다. 명령어1의 처리결과를 명령어2로 전달하는 것입니다.apt list를 갖져온 후 grep tomcat을 실행하라는 뜻입니다.Permission denied 가 떳습니다.그 이유는 현재 ubuntu 권한이기 때문입니다.sud
Personal Package Archives의 약자로개인 저장소입니다. PPA에서 Tomcat8을 설치해 보겠습니다.apt저장소에 Tomcat8이 없다고 나옵니다.PPA 저장소에서 Tomcat8버전을 찾을것입니다.(apt update해도 안나오는 패키지를 찾을 수 있
apt 명령어를 사용하면 실행파일을 직접 찾아서 실행할 필요가 없습니다.Service 목록 확인하기\+ : 실행중\- : 실행중이지 않음톰캣을 끄고 켤 수 있습니다.하지만 Service 명령어보다는 systemctl을 사용하는게 좋습니다.grep 명령어를 통해 Tom
이번에는 리눅스 명령어인 find에 대해 알아보겠습니다.리눅스의 find 명령어는 리눅스 파일 시스템에서 파일을 검색하는 데 사용되는 명령어입니다. 다양한 표현식을 사용하여 원하는 파일의 목록을 추출할 수 있습니다.find 옵션 표현식find . -name "log"
AWS에서 EC2 서버를 빌려 배포를 해보겠습니다.아직 무중단 배포는 아니고 crontab을 활용하여 배포해 보겠습니다.그리고 로그파일을 확인해볼 예정입니다.t3.small 프리티어를 사용하였습니다.8080포트를 사용할 것이라 보안그룹에 8080포트를 열어주었습니다.A
아주 간단한 프로젝트를배포해 보겠습니다. github 프로젝트 다운받기gradlew 실행권한주기자바 설치 (JDK, JRE)gradlew로 프로젝트를 jar파일로 변경하기java로 jar를 실행우선 ubuntu환경에서 프로젝트를 clone 받겠습니다gradle 프로젝트
이전 블로그에서 java -jar \*.jar 명령어를 통해 프로젝트를 실행해보았습니다.하지만 실행을 종료하거나 리눅스를 종료하면 서버도 종료가 되는단점이 있었습니다.이제 nohup을 사용해 리눅스를 종료해도 서버가 돌아가게 하겠습니다.리눅스에서 프로세스를 실행한 터미
error 로그와 표준 info 로그를 분리하여 파일에 저장할 것입니다.그 이유는 나중에 에러관리를 쉽게 하기 위해서입니다.백그라운드 실행으로 실행합니다.1 : 표준출력2 : 에러출력입니다.을 통해 실시간으로 확인 할 수 있습니다. error는 java코드 안에서의 e
현재 LocalTime은 미국 기준으로 실행이 되고있습니다.이것을 대한민국기준으로 바꿔야합니다.현재 시간적용 정보 확인역시 UTC 미국 기준으로 시간이 설정되어있습니다.서울의 시간을 찾아서 적용해보겠습니다.KST 로변경되었고 현재 시간이 일치하는것을 확인하였습니다!현제
앞서 배포한 방법은 서버를 배포했지만 서버가 내려갈 경우 다시 배포하지 못합니다.트래픽 부하, 에러 -> 서버 종료서버 종료시 error로그를 남김 -> nohup 2>err.log하지만, 자동 재시작이 되지 않습니다...언제서버가 내려갈지 알 수 없으니 불안전한 배포
이전에 crontab을 배웠으니 활용을 해보겠습니다.spring-start.shspring-stop.shspring-restart.shif문에는 \[] 양쪽으로 공백이 꼭 있어야 합니다.deploy.sh이제 모든 스크립트 파일을 만들었습니다.deploy.sh만 실행하면
이전까지는 배포과정을 해봤습니다.만약 프로젝트의 기능이 추가되거나 에러사항이 생겨 변경한다면 배포된 프로젝트도 변경되어야 합니다.이때 배포스크립트 depoly.sh는 사용할 수 없습니다.하지만 이번에는 스크립트 작성이 아닌 히나하나 명령어를 입력해 보겠습니다../spr
이전에는 스크립트 없이직접 명령어를 입력하여 효율성이 떨어졌습니다. 이제 배포와 재배포를 스크립트로 작성하여 편하게 서버를 관리하겠습니다.이번에는 환경변수를 등록하는 과정을 알아보겠습니다.환경변수는 프로세스가 컴퓨터에서 동작하는 방식에 영향을 미치는 동적인 값들의 모임
이전에 작성한 deploy.sh파일에 crontab종료 설정을 하겠습니다.crontab에 PID를 1분마다 감시하면서 서버가 종료되었다면 재시작하는 로직을 작성할 것입니다.서버가 종료되었을때 crontab이 동작하여 PID를 조회하면 로직이 꼬이게 되기 때문에 삭제를
tar 명령어를 통해 압축을 할수 있습니다. \-c : 압축\-x : 압축해제\-v : 출력\-f : 이름지정배포를위해 만들어둔 3개의 스크립트 파일을 tar로 압축할것입니다.압축이 잘 되었습니다!이제 압축파일을 로컬 컴퓨터에 옮겨두겠습니다.mobaXterm에서 SFT
배포 스크립트를 작성하고 적용하는데 있어 에러가 발생했습니다다시 실수를하지 않기위해 기록을 하려고 합니다.환경변수를 잘못입력하여 변수명이 안들어가고 // 처럼 중첩이 되어있었습니다처음에 발견을 못해서 엄청 시간을 썼습니다...로그를 잘 확인할것...ㅠㅜ실행 옵션을 ja
AWS Elastic Beanstalk는 Java, .NET, PHP, Node.js, Python, Ruby, Go, Docker를 사용하여 Apache, Nginx, Passenger, IIS와 같은 친숙한 서버에서 개발된 웹 애플리케이션 및 서비스를 간편하게 배포
이번에는 프로젝트를 엘라스틱 빈스톡 환경에 업로드 해보겠습니다.AWS 환경이 아닌 Jar파일을 직접 엘라스틱빈스톡의 환경에 업로드 후 배포를 하겠습니다.터미널 환경에서 jar 파일을 만들어 주겠습니다.터미널에서 폴더를 바로 열어보겠습니다.빌드가 잘 되었습니다.엘라스틱
NginX가 80포트로 열려잇고, Spring 서버가 5000포트로 잘 열여있는지 확인하기 위해 SSH접속을 하겠습니다.엘라스틱 빈스톡에서 유저 네임은 우분투가 아닌 ec2-user입니다.java -jar application.jar 라는 이름으로 프로세스가 작동하고
엘라스틱빈스톡과 RDS를 결합하여 프로젝트를 배포해보겠습니다.RDS 구성방법과 환경속성을 세팅하는 방법을 알아보고VPC 구성, 아키텍처 구상에 대해 공부해 보겠습니다.엘라스틱 빈스톡을 생성하겠습니다.(이전 글 참고)추가할것은 환경속성을 추가하는 것입니다.RDS_HOST
앞서 생성한 엘라스틱빈스톡에 RDS를 추가하겠습니다.aws > rds 검색 > 데이터베이스 생성설정은 이전 블로그에 설정한것과 똑같이 해줍니다.퍼블릭 엑세스를 허용해주면 외부에서 누구나 접근이 가능한 상태가 됩니다.이제 로컬 컴퓨터에서만 외부 접근이 가능하도록 설정하겠
드디어 배포를해볼 차례입니다. 배포 환경에 접속하기 위해 5000 포트를 지정하였습니다.DB환경설정은 엘라스틱빈스톡의 환경속성값을 그대로 가져와서 전달할 것입ㄴ디ㅏ.ddl-auto는 반드시 None 입니다.서버 실행중 DB가 날라가지 않으려면 필수입니다....배포환경
드디어 이번 프로젝트의 목표인 무중단 배포를 할것입니다.제목 그대로 엘라스틱빈톡 & DB & CI/CD 배포를해볼것입니다. 이전에는 jar 파일을직접 업로드 하였지만 이제는 jar파일마저 CI/CD를 통해 자동으로 배포하겠습니다.
정책 : 권한의 모임 \- 그룹, 역할에 권한을 부여함니다.그룹 : 정책을 사용하는 모임 (사용자) \- 그룹마다 지정된 정책(권한)을 갖습니다.역할 : 특정 서비스 \- 서비스마다 지정된 정책(권한)을 갖습니다.
RDS 생성글을 참고해 RDS를 생성합니다.미리 만들어 놓은 security-group-aws-v5 보안그룹을사용할것입니다. RDS 생성이 되었으면 엔드포인트로 RDB를 생성합니다. 스키마명은 환경설정에 RDS_HOST 와 일치해야 합니다!시간이 미국기준으로 되어있습니
배포 실패Error: Deployment failed: AWS Access Key not specified!IAM 권한 시크릿키가 없다는 오류Git Action에서 AWS의 S3에접근 권한이 없어 IAM을 생성하겠습니다IAM 생성엑세스 키 만들기보안자격증명 -> 엑세스
ALB(Application Load Balancer)는 고정 IP를 지원하지 않기에 서비스를 하기에 적합하지 않습니다.그래서 NLB(Network Load Balancer)를 ALB 앞단에 두어 탄력적IP를 할당 후 모든 클라이언트 요청을 NLB로 받겠습니다.