일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- appspec
- querydsl
- 적용우선순위
- 추후정리
- 메소드명
- 메세지수정
- 컨테이너실행
- EC2
- subquery
- 테스트메소드
- Query
- 검색
- ㅔㄴ션
- 포트
- 테스트
- 커밋메세지수정
- 예약
- MySQL
- AuthenticationEntryPoint
- 네이티브쿼리
- foreignkey
- docker명령어
- WeNews
- ubuntu
- 서브쿼리
- 참조키
- 2 > /dev/null
- application.yml
- 외부키
- appspec.yml
- Today
- Total
제뉴어리의 모든것
[Section 4] [Spring Security] 운영환경 구성 - 2 ( 실습 ) [추후 정리] 본문
전체 항목
- EC2에 서버 배포
- S3에 클라이언트 배포
- RDS 연결
본 내용은 항목에 대한 모든 내용을 서술하지 않았고,
전체적인 맥락에서의 설명을 담은 내용이다.
EC2에 서버 배포
- 전체 흐름
EC2 생성 -> EC2 인바운드, 아웃바운드 규칙 설정 (보안그룹) -> EC2에 (백엔드) 서버 배포
- 상세 흐름 (EC2 생성 과정과 인바운드, 아웃바운드 규칠 설정 부부은 생략한다)
- EC2 콘솔창에서 인스턴스를 선택 한다 (리전을 잘 확인할것)
- EC2를 서울 리전에서 만들었었는데, 다음에 콘솔창에 들어왔을때 현재 보고있는 콘솔창의 리전이 도쿄일 수 있다. 그러니까 만약 만들었던 인스턴스가 보이지 않는다면 리전을 잘 확인해볼것! - 상단에 연결 버튼이 존재할것이다.
- 해당 버튼을 누른다.
- EC2 콘솔창에서 인스턴스를 선택 한다 (리전을 잘 확인할것)
3. Session Manager를 누른뒤 연결 버튼을 누른다
4. 검정 화면의 터미널이 열리고, 해당 터미널은 내가 사용하는 EC2의 터미널이다.
- bash 쉘 형태로 변환하고 싶다면 bash 를 입력하고 엔터를 누른다.
현재까지의 내용이 생성한 EC2에 터미널로 연결한 것이다.
이렇게 AWS 에서 직접 터미널로 접속할 수도 있지만,
내 로컬에서 EC2로 접속하는 방법은 다양하니 본인이 원하는 방식으로 접속하면된다.
아래부터는 EC2에 접속된 터미널에서의 상황이다.
5. $ sudo apt update
- 관리자 권한으로 패키지 매니저의 패키지 정보를 최신으로 업데이트
6. $ sudo apt install openjdk-11-jre-headless
- jdk 설치
백엔드 서버가 java로 만들어진 spring boot 프로젝트이기 때문에 구동되기 위해선 설치가 필수다.
7. git clone [레포지토리 clone 경로]
- github에 있는 레포지토리를 git으로 clone 받는다.
당연히 git이 설치되어 있어야한다.
8. cd [gradlew 이 있는 경로로]
- clone 받은 프로젝트 디렉토리 내에 gradlew가 있는 경로로 이동한다.
9. ./gradlew build
- 해당 명령어로 프로젝트의 빌드를 진행한다.
빌드가 완료되면 build 폴더가 생성된다.
10. java -jar build/libs/DeployServer-0.0.1-SNAPSHOT.jar
- 빌드된 jar 파일을 실행.
앱을 실행시키는 부분이다.
앞서서 jdk를 설치했기때문에 java 명령어가 사용 가능하다.
위에 내용까지만 진행하면 서버를 구동중인 상태이다.
11. 서버 접속 확인
- 인스턴스 정보중에 퍼블릭 IPv4 주소, 퍼블릭 IPv4 DNS
중 아무거나 복사한뒤 백엔드앱의 사용 port를 붙여서, 브라우저에서 접속이 가능한지 확인한다.예시 : [퍼블릭 IPv4 주소 OR 퍼블릭 IPv4 DNS]:8080
+ 쉘 스크립트를 이용한 서버 실행
우선 $ vi restart.sh 명령어를 사용하여 스크립트를 생성하고 편집모드로 들어간다.
- 스크립트 내용
#!/bin/bash
ps -ef | grep "jar파일명.jar" | grep -v grep | awk '{print $2}' | xargs kill -9 2> /dev/null
if [ $? -eq 0 ];then
echo "my-application Stop Success"
else
echo "my-application Not Running"
fi
echo "my-application Restart!"
echo $1
nohup java -jar jar파일 경로/jar파일명.jar --spring.profiles.active=dev > /dev/null 2>&1 &
위와 같은 스크립트 생성 후
chmod 755 restart.sh 명령어로 실행 권한 부여
./restart.sh 명령어로 스크립트 실행
진행중 안되는게 있다면 sudo 명령와 함께 써볼것!
S3에 클라이언트 배포
- 전체 흐름
로컬에 있는 클라이언트 프로젝트를 빌드 -> 빌드로 생성된 파일 및 폴더 S3 서버에 올림
1. nvm 설치
로컬 ubuntu 환경에서
터미널로 ubuntu에 접속 한뒤 아래 내용중 아무거나 하나 선택하여 터미널에 입력
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
(wsl 사용) nvm 설치
만일 Command 'wget' not found 메세지와 함께 설치가 진행되지 않는 경우, Package Manager를 이용해 wget을 설치
sudo apt update
sudo apt install wget
+ nvm 이란?
Node Version Manager 로
즉, node.js 의 버전을 관리해주는 도구.
nvm 설치가 잘 되었다면
nvm --version
명령어로 확인
2. node.js 설치
nvm install --lts
버전 확인은 아래 방법으로
node -v
현재까지의 상황은
로컬 ubuntu 환경에서 빌드를 할 수있는 환경이 갖춰진 것이다.
이후 진행은 흐름은
정적 페이지 빌드 -> 버킷 생성 및 정적 웹사이트 호스팅 용으로 구성 -> 빌드된 정적 웹페이지 업로드 -> 퍼블릭 액세스 차단 및 정책 생성
'코드스테이츠 > 정리 블로깅' 카테고리의 다른 글
[Section 4] [Cloud] 배포 컨테이너 - 1 (0) | 2022.10.09 |
---|---|
[Section 4] [Spring Security] 배포 자동화 - 1 [추후 정리] (0) | 2022.10.07 |
[Section 4] [Spring Security] 운영환경 구성 - 1 (0) | 2022.10.04 |
[Section 4] [Spring Security] OAuth2 인증 [추후 정리] (0) | 2022.10.04 |
[Section 4] [Spring Security] JWT 인증 - 1 (1) | 2022.09.26 |