ec2

    [Docker] Github Actions, Docker, AWS EC2 사용한 CI/CD (Spring Boot)

    0. 환경 Spring Boot 3.xx Java17 JDK corretto17 1. AWS EC2 인스턴스 생성 1) 이름 입력, Amazon Linux 선택 2) 키페어 생성 생성한 키페어는 따로 저장해서 보관해두자 3) 스토리지 구성 프리티어 기준 최대 용량인 30GB로 바꿔준다. 4) 인스턴스 생성 2. 보안그룹(인바운드) 규칙 편집 1) 인스턴스 ID를 클릭 2) 보안 탭 > 보안그룹 클릭 3) 인바운드 규칙 편집 클릭 4) 규칙 추가 다음 세 가지 규칙을 추가해준다. 꼭 MySQL일 필요는 없고, 자신이 사용하는 것에 맞게 선택해주면 된다. 없다면 사용자 지정 TCP를 선택해서 포트 범위를 직접 설정해준다 (ex. MongoDB라면 27017) 규칙을 모두 추가했으면 우측 하단의 '규칙 저장'..

    [Docker] AWS EC2 + Docker를 사용한 Spring Boot 프로젝트 배포

    0. 환경 Spring Boot 3.xx Java 17 JDK corretto17 1. 스프링 부트 프로젝트 1) TestController 생성 참고: build.gradle 의존성은 다음과 같다. dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-starter-validation' compileOnly 'org.projectlombok:lombok' runtimeOnly 'org.maria..

    [Spring] EC2 서버 실행 시, Web server failed to start. Port 8080 was aleady in use 해결

    EC2에서 jar 파일을 실행했는데 8080포트가 이미 사용 중이라며 실행되지 않았다. 8080포트를 사용하는 프로세스를 종료시키기 위해 cmd를 관리자 권한으로 열고, 다음을 입력했다. > netstat -ano 어디에도 8080 포트는 보이지 않았다... 8080 포트만 지정해보아도 아무것도 뜨지 않았다. > netstat -ano | findstr 8080 만약 찾으려는 포트가 있다면 다음 명령어를 통해 강제 종료해주면된다. > taskkill /f /pid PID번호 컴퓨터 재부팅을 하고 다시 jar 파일을 실행시켜 보았지만 여전히 8080 포트를 사용 중이라고 한다... 리눅스에서 특정 포트를 사용 중인 프로세스를 출력할 수 있는 명령어를 찾아, cmd가 아닌 EC2에서 입력해보았다. > sud..

    [Spring] EC2 Connection Time 지정

    클라이언트에서 요청이 없으면 서버의 접속이 끊긴다. 연결을 유지하는 방법을 알아보자. $ sudo vi /etc/ssh/sshd_config 아래로 쭉 내리면 ClientAliveInterval과 ClientAliveCountMax 부분이 있다. 이 두 가지를 수정해줄 것이다. 우선 i를 눌러 입력 모드로 전환하고, 수정해주자. 그런 다음 ESC를 눌러 명령 모드로 전환, :wp 를 입력해 저장후 빠져나오면 된다. 필자는 다음과 같이 변경했다. #ClientAliveInterval 600 → 클라이언트가 살아있는지 확인하는 간격, 확인을 위해 더미 정보를 보낸다. #ClientAliveCountMax 6 → 클라이언트가 응답이 없어도 접속을 유지하는 횟수 위와 같이 설정하면 10분 마다 연결 확인을 위해..

    [Spring] SpringBoot EC2에서 AWS RDS MariaDB 연동 및 배포

    SpringBoot 프로젝트를 EC2로 배포하고 AWS RDS MariaDB를 연결해서 실행되는 것까지 확인할 것이다. 1. 인스턴스 생성 1) 인스턴스 생성 키페어를 새로 생성해주었다. 스토리지는 무료 최대 사이즈인 30으로 설정하고 생성해주면 된다. 2) 인바운드 규칙 편집 MariaDB는 MYSQL/Auroa 유형으로 설정해주면 된다. 3) 탄력적 IP 설정 인스턴스를 중지했다가 다시 실행해도 IP가 변경되지 않도록 탄력적 IP를 설정했다. 설정하지 않아도 무관하다. 나중에 인스턴스를 삭제하면 탄력적 IP도 삭제해주도록 하자. 기본 설정 그대로 할당했다. 연결된 인스턴스 ID가 비어있다. 연결시켜 주자! 이 탄력적 IP 주소 연결 클릭한다. 이전에 생성한 인스턴스를 선택해준다. 2. AWS EC2 ..