Search

AWS에 대한 배경지식 알아보기

Tags

1. 서버란?

서버는 네트워크를 통해 정보나 서비스를 제공하는 장치입니다.
서버는 24시간 운영해야 합니다. 예를 들어, 네이버 포탈 사이트를 이용하는 경우 새벽에는 접속 못하는 상황이 생긴다면 사이트를 정상적으로 이용할 수 없습니다. 다만 토이 프로젝트의 경우 일정 시간만 운영하는 경우가 있다.
서버는 개인 PC를 이용하거나 웹 호스팅, 서버 호스팅, 그리고 클라우드를 이용하여 구축할 수 있다.
개인 PC를 사용한다면?
접근성이 좋으며 서버 구입 비용이 없습니다. 서버 설정을 직접 해야 합니다. 장점이나 단점이 될 수 있습니다. 왜냐하면 서버 설정을 하는데 시간이 많이 소요되기 때문입니다. 전기세가 많이 나옵니다. 서버의 특성 상 24시간 운영해야할 수 있기 때문입니다. 또한 개인 PC의 경우 네트워크 속도에 따라 성능이 좌지우지 됩니다.
AWS를 사용한다면?
AWS는 이용한 만큼 지불합니다. 설정과 관리가 상대적으로 쉽습니다. 확장성이 높습니다. 하지만 경우에 따라 비싸질 수 있습니다. 비즈니스에 집중할 수 있습니다. 여러 옵션을 통해 저렴하게 운영 가능합니다.

2. 배포 방식

개발 서버는 주로 개발자들이 새로운 기능을 개발하고 테스트하는 데 사용됩니다. 이 서버는 테스트용이므로 개발자들은 여러 서비스와 기능을 자유롭게 추가, 수정 및 삭제하여 새로운 기능을 구현하고 테스트할 수 있습니다. 개발 서버에서는 실제 사용자들이 사용하는 데이터가 아닌 가상 데이터가 주로 사용되며, 개발 단계에서 발생할 수 있는 버그나 오류를 발견하고 해결하는 데 사용됩니다.
베타 서버는 개발 서버에서 개발한 새로운 기능들을 제한된 범위의 실제 사용자들에게 미리 공개적으로 제공하는 서버입니다. 이렇게 미리 배포함으로써 실제 사용자들의 피드백을 수집하고 테스트할 수 있으며, 개발자들이 미처 발견하지 못한 문제들을 파악하고 수정하는 데 도움이 됩니다. 베타 테스팅은 실제 운영 환경과 유사하게 이루어질 수 있으므로 실제 사용자들이 발견한 문제들을 개선하여 더 안정적인 제품을 만들 수 있습니다.
스테이징 서버는 운영 서버의 복제본으로서 운영 환경과 거의 동일한 설정과 구성을 갖추고 있습니다. 베타 서버에서 발견된 문제들이 개선되어 안정적인 상태로 확인되면, 이를 스테이징 서버에서 최종 검수하는 단계입니다. 스테이징 서버에서는 운영 서버와 동일한 환경에서 실제로 운영될 예정인 서비스를 테스트하고 최종적으로 문제가 없을 때 운영 서버에 배포됩니다.
운영 서버는 실제로 사용자들에게 서비스되는 서버로서, 개발, 베타, 스테이징 서버에서 확인된 안정성과 기능들이 반영되어 운영됩니다. 운영 서버는 고객들에게 노출되기 때문에 가장 안정적이고 성능이 우수해야 합니다. 새로운 업데이트나 기능 추가는 스테이징 서버에서 검증된 후에 운영 서버에 배포되며, 운영 서버에서는 주기적으로 백업 등의 작업을 수행하여 데이터의 안정성을 보장합니다.
이러한 서버 환경은 소프트웨어 제품이나 웹 서비스의 안정성과 품질을 보장하기 위해 사용되는 중요한 단계들입니다. 각 서버는 명확하게 분리되어 서로 다른 목적을 가지고 있으며, 프로젝트가 진행됨에 따라 반복적으로 개발, 테스트, 검수, 운영 단계를 거치게 됩니다. 이러한 단계적인 접근 방식은 제품의 품질을 보장하고 사용자들에게 안정적이고 좋은 사용 경험을 제공하는 데 도움이 됩니다.

배포 준비

boojar 파일만 생성
jar { enabled = false }
Java
복사
테스트 빼고 빌드 하기
./gradlew build -x test ./gradlew assemble
Java
복사
SNAPSHOT 파일은 build/libs 경로에 존재

EC2 생성하기

pem 권한 변경 → chmod 600 ~.pem
ssh EC2 접속
ssh -i ~/.ssh/inflearn.pem ec2-user@[public IP]
Java
복사
pwd를 통해 어느 경로에 있는지 상시 확인 하자

빌드했던 자료를 EC2 서버로 옮기기

사용가능한 명령어
scp
rsync (고급 기능)
scp -i [pem 경로] [로컬 파일 경로] [계정 명]@[IP주소]:/home/ec2-user
Java
복사

EC2에 자바 설치하기

yum
amazon-linux-extras
sudo amazon-linux-extras install java-openjdk11 yum install java-11-openjdk
Java
복사
java -jar ~~.SNAPSHOT.jar
Java
복사
인바운드 규칙 추가
8080 포트 추가

프로세스 유지하기

nohup
nohub java -jar ~.SNAPSHOT.jar &
Java
복사
ps aux | grep java - 문자열 중에서 자바가 들어간 명령어를 찾는 것

고정 IP 추가하기

탄련적 IP 주소 연결 → 인스턴스 →