[Tistory] [AWS] 백엔드 서버 작업사항

원글 페이지 : 바로가기

요약 AWS EC2 구성 고정 IP 구성 ( 탄력적 IP) SSH 접속 할 수 있도록 구성 Docker 컨테이너를 이용하여 Mysql 및 redis 구성 수동 배포 가능하도록 구성 추후 어느정도 프로젝트 완성되면 자동배포 구현 예정 추후 어느정도 프로젝트 완성되면 로드밸런싱 적용 예정 기타 AWS ec2 인스턴스 2개로 분리 ( DB용 인스턴스(t3.micro) + 실행용 인스턴스(+Redis)(t3.medium) AWS S3 버킷으로 프론트 코드 정적 배포 백앤드 처리 절차 Local 에서 테스트 (서버는 처음부터 EC2 에 만들어 놓은 Mysql 이용) 서버 테스트 환경이 필요하면 JAR 빌드 후 git 업로드 후 서버에서 실행하여 테스트 AWS EC2 스펙 DB 전용 인스턴스: t3.micro 실행+Redis 전용 인스턴스: t3.medium ※ t3부터 ssl을 통하지 않고 직접적 물리엔진 접근기능 제공. ※ 또한 순간 트래픽에 대응하기 위해 서버스펙을 t3로 잡음. ※ 둘 다 고정ip 할당 Java Version 자바 17 사용 백엔드 빌드 파일 작성 조건 : 서버에서 컴파일 가능하나 , 복잡함 / IDE 에서 JAR 로 파일 제작 필요 현재는 8080 및 80번 포트만 오픈되어 있음 현재는 수동 배포만 가능함 / 추후 어느정도 프로젝트가 완료되면 자동배포 구현 예정. 1. jar 파일로 빌드하기 (인텔리제이) 꼭 bootjar 빌드 필요 일반 빌드시 MENIFEST 경로가 오류남.. <참고> bootjar 빌드 오류시 build.gradle 가서
tasks.withType(Jar) {
duplicatesStrategy = DuplicatesStrategy.EXCLUDE
} https://velog.io/@phraqe/Sekkison21-Spring%EC%84%9C%EB%B2%84-%EB%B0%B0%ED%8F%AC-%EB%B0%8F-%ED%94%84%EB%A1%A0%ED%8A%B8-%EC%97%B0%EB%8F%99-%EB%AC%B8%EC%A0%9C%ED%95%B4%EA%B2%B0 #20 Spring서버 배포 및 프론트 연동 문제해결 이전 게시글에서 Mysql 데이터베이스, 서버를 배포해 보았다. 이번 게시글에서는 서버를 배포하면서 겪었던 에러들과 그 해결방법에 대해 적어 보겠다. RDS 데이터베이스 관련 에러 >처음 RDS를 통 velog.io 정상적으로 빌드가 완료되면 build\libs 경로에 jar 이 있음. windows 에서도 정상적으로 실행하는 모습을 볼수 있음. (cmd) SSH 로그인 압축 풀어서 사용 1. 메인키 발급 mainkey.zip(예시) 2. 엑스쉘 사용 JavaScript 복사 접속 주소 (엘라스틱 ip(고정 ip 할당함) ) 3.34.232.88 설정하고 접속 한번 수락 3. 계정 ubuntu 로 SSH 사용자 인증 pem 키 등록하기 (암호 없음) 확인 버튼 클릭 정상적으로 잘 접속됨. Ubuntu 환경에 Docker 세팅 및 컨테이너 환경(install redis+ mysql) 구성 1. docker 설치에 앞서 패키지 정보 업데이트를 해준다. 2. docker 설치에 필요한 패키지를 설치한다.(mysql, redis) 1. 우분투 시스템 패키지 업데이트
sudo apt-get update

2. 필요한 패키지 설치
sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

3. Docker의 공식 GPG키를 추가
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add –

4. Docker의 공식 apt 저장소를 추가
sudo add-apt-repository “deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable”

5. 시스템 패키지 업데이트
sudo apt-get update

6. Docker 설치
sudo apt-get install docker-ce docker-ce-cli containerd.io

7. Docker 설치 확인
sudo systemctl status docker docker 설치 확인 8. Docker 이미지 실행해보기
sudo docker run hello-world

9. 잘 실행되었는지 확인해보기
sudo docker ps -a 10. mysql 이미지를 다운받고 실행시켜보자 (-d는 백그라운드로 실행시키는 옵션)
//아이디 : root , 비밀번호 : 맘대로 로 설정한다.
sudo docker run -p 3306:3306 -e MYSQL_ROOT_PASSWORD=맘대로 -d mysql mysql 잘 실행되는지 확인 11. redis 이미지를 다운받고 실행시켜보자
sudo docker run -p 6379:6379 -d redis redis와 mysql이 잘 실행되었다. 이제 AWS의 EC2 인스턴스의 보안탭으로 가서 인바운드 규칙을 넣어주자. (포트를 열어주자) <참고 레퍼런스> https://velog.io/@busybean3/%EB%8F%84%EC%BB%A4docker-%EC%BB%A8%ED%85%8C%EC%9D%B4%EB%84%88%EB%A5%BC-%EB%8B%A4%EB%A3%A8%EB%8A%94-%EB%AA%85%EB%A0%B9%EC%96%B4 도커(docker) 컨테이너를 다루는 명령어 이번 포스팅을 통해서 도커 컨테이너를 다루는 명령어를 알아보도록 합시다. 👉 도커 엔진 버전 확인 도커 엔진의 버전을 확인해보자. 👉 도커 이미지를 컨테이너로 아래 명령어는 도커 이미 velog.io https://velog.io/@wlsgur1533/AWS-EC2%EC%97%90-Docker%EB%A1%9C-MySQL-%EB%9D%84%EC%9A%B0%EA%B8%B0 AWS EC2에 Docker로 MySQL 띄우기 Region을 서울로 바꾼다키페어가 있으면 그대로 사용한다적은 메모리만 사용할 것이기에 그대로 둔다 velog.io https://velog.io/@osk3856/Docker-Ubuntu-22.04-Docker-Installation [Docker] Ubuntu 22.04 Docker 설치 Ubuntu 22.04 에 Docker 설치하기 velog.io MYSQL 접속하기 정상 접속 확인. docker mysql 정상 오픈 확인 AWS 서버(우분투) 백엔드 실행파일 실행하기 jar 빌드파일 받은 후 ( ftp파일질라 이용 or git clone 이용) 해당 파일 위치로 이동 (cd~ ) java -jar <원하는 파일>.jar 백엔드 백그라운드에서 실행 nohup java -jar HellBackendStudy/build/libs/hellspringboot-0.0.1-SNAPSHOT.jar > log.out 2>&1 & engineX 도입 sudo apt install nginx


방화벽 허용
sudo ufw app list

Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
—-
이렇게 보임

sudo ufw allow ‘Nginx HTTP’
sudo ufw allow ‘Nginx HTTPS’
방화벽 허가함

sudo ufw enable
최종 허가 https://velog.io/@tank3a/nginx-%EC%84%A4%EC%B9%98%ED%95%98%EA%B8%B0Spring-Boot-EC2%EC%99%80-%EC%97%B0%EA%B2%B0 Nginx 설치하기+Spring Boot EC2와 연결 Nginx를 통해 내부망의 Springboot와 연결해보도록 하겠습니다. velog.io

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다