Host Name : ec2-user@퍼블릭 IPv4 주소
22번 포트(다른 서버에서 접근 가능하게 한 포트)
Saved sessions -> Host Name 복붙(ec2-user@퍼블릭 IPv4 주소) -> save
SSH -> Auth -> Credentials
-> aws_날짜.ppk 선택 -> open -> accept
검은창 나옴 : 맨 마지막 줄에 [ec2-user@ip-172-31-44-43 ~] 붙어있으면 서버 잘 들어온 것
Putty 명령어
pwd : 내가 지금 어디 있음
cd ../ : 상위 폴더로 이동하겠다 (/ (root : 최상단) -> home -> ec2-user~(내폴더 느낌)) -> 하위 폴더(aaa)
ls : 파일들 보기
ls -al : 파일 정보와 함께 보기 (단축키 : ll)
☆ tab : 자동완성 됨
폴더 만들기 : mkdir 폴더이름
★ 2. 간단하게 폴더로 이동 : cd 폴더이름/
bbb로 파일 이동 : mv test1.txt /home/ec2-user/bbb/
bbb에서 aaa로 파일 복사(copy) : cp bbb/test1.txt /home/ec2-user/aaa/
간단하게 내용 보기 : cat 파일이름.txt
파일 삭제 : rm 파일이름.txt
★ vi 파일이름.txt : 글씨 쓰는 파일로 이동
1) i 입력 : 글씨 쓸 수 있음(insert 가능)
2) esc : 중지
3) shift + ; : 다음 명령을 입력할 수 있게 해줌
4) shift + ; + wq 입력 : 저장
5) q: 나가기
6) q! : 저장하지 않고 빠져나가기
프로그램 설치
Yum : 프로그램을 설치하고 관리하는 명령어 기반 도구
Java 설치 : 11버전으로 해야 함(17부터는 짜잘한거 다 따로 다운받아야 하므로 귀찮)
★ sudo : 관리자 권한으로 실행(root, home 영역에서 접근/수정할 때) ★
putty에서 설치한다. (입력)
cd ~
sudo yum install java-11-amazon-corretto
-> y + enter
Sourcetree
aws용 브랜치 추가 develop : 코드 커밋 master : 커밋 x, develop 병합 aws : aws 관련된 것(이미지 경로 등등 코드가 바뀌는 부분이 있다.) 커밋 + master 병합
일단 master 브랜치는 더 이상 변경하지 않는다.
수정 사항은 develop 브랜치에서 수정
AWS 관련 설정은 AWS 브랜치에서 한다.
AWS와 로컬
리눅스 OS - 우분트, centOS(AWS와 문법 유사), AWS / 래드햇, 페도라... 명령어로만 파일 접근(클릭 x)
Local (내 컴퓨터) - 포트번호로 판단 후 접근 : 웹(8080) / DB(3306) + ★개인 키★ -> Putty로 AWS 서버에 접근
AWS 서버 - Local과 별개, 웹(8080) - DB(3306) : DB에 쿼리 다시 insert + 공개 키
AWS 가입 -> 2차 비밀번호 설정 -> 시작
멀티 팩터 인증(MFA) : 2차 비밀번호 설정 (구글 OTP 앱 다운)
https://jsikim1.tistory.com/279
우측 상단 서울로 설정
솔루션 구축 -> 가상머신 시작 -> 이름 설정
키 페어(개인키 기억하고 있어야 한다.) 생성 : 이름(aws_날짜) -> 윈도우(ppk 선택) / Mac(pem)
인스턴스 시작 -> 모든 인스턴스 보기(주황 버튼)
ec2 검색 -> 좌측 인스턴스 클릭 (서버 1대 초과하면 과금될 수 있음) ★ 서버가 불안정해서 자주 꺼지는데, 유동 ip여서 다시 켜면 ip 주소가 변경됨 -> 포트폴리오에 github 넣고 변동된 주소 대응할 수 있게 하기
퍼블릭 IPv4 주소 복사
Putty (AWS 서버 접근)
Putty 다운로드 : https://www.putty.org/
Host Name : ec2-user@퍼블릭 IPv4 주소 22번 포트(다른 서버에서 접근 가능하게 한 포트) Saved sessions -> Host Name 복붙(ec2-user@퍼블릭 IPv4 주소) -> save
SSH -> Auth -> Credentials -> aws_날짜.ppk 선택 -> open -> accept 검은창 나옴 : 맨 마지막 줄에 [ec2-user@ip-172-31-44-43 ~] 붙어있으면 서버 잘 들어온 것
Putty 명령어
pwd : 내가 지금 어디 있음 cd ../ : 상위 폴더로 이동하겠다 (/ (root : 최상단) -> home -> ec2-user~(내폴더 느낌)) -> 하위 폴더(aaa) ls : 파일들 보기 ls -al : 파일 정보와 함께 보기 (단축키 : ll)
☆ tab : 자동완성 됨
★ vi 파일이름.txt : 글씨 쓰는 파일로 이동 1) i 입력 : 글씨 쓸 수 있음(insert 가능) 2) esc : 중지 3) shift + ; : 다음 명령을 입력할 수 있게 해줌 4) shift + ; + wq 입력 : 저장 5) q: 나가기 6) q! : 저장하지 않고 빠져나가기
프로그램 설치
★ sudo : 관리자 권한으로 실행(root, home 영역에서 접근/수정할 때) ★
☆★ 붙여넣기 : 우클릭 ★☆
-> 압축 풀기 : tar -xvf apache~(탭하기) (ls로 확인했을 때 : aaa apache-tomcat-9.0.73 apache-tomcat-9.0.73.tar.gz bbb)
-> 톰캣 이동 : mv apache~(탭하기) tomcat (ls로 확인했을 때 : aaa apache-tomcat-9.0.73.tar.gz bbb tomcat)
-> sudo mv tomcat /usr/local
-> 확인
2) GPG key 등록
3) mysql server 설치
4) 서버 시작
5) MySql 수행하기 - 비밀번호 찾기
☆★putty는 드래그만 해도 복사가 자동으로 됨★☆
m)/uXflfk9l-
6) mysql 실행(로그인) 비밀번호 입력 : mysql -u root -p -> 비밀번호 한번만 붙여넣기(우클릭) : 안 보이므로 그냥 엔터
7) 다시 로그인(MarobianA12#)
8) 쉬운 비번으로 바꾸기
9) 다시 로그인(root)
10) DB 보기 : show databases; DB 생성문 : 기존 DB명과 일치하게 만들기 use DB명; : DB 사용한다고 선택 테이블 생성 쿼리 쭉 수행 show tables;
인바운드 규칙 설정, 톰캣 매니저 켜기
보안 -> 보안 그룹 -> 인바운드 규칙 편집 -> 규칙 추가 사용자 지정 TCP, 8080, anywhere ipv4 -> 규칙 저장
tomcat 서버 켜기
-> 접속 ip혹은 도메인으로 페이지에 접속해서 설정이 적용 되었는지 확인 (http://ip주소:8080)
★ 톰캣이 살아있는지 확인 : ps -ef | grep tomcat -> 한 줄만 뜨면 안 켜있는 것
이동 : cd /usr/local/tomcat/ -> ls -> cd bin/
톰캣 켜기 : sudo ./catalina.sh start
-> ip주소 : 8080 해서 페이지가 뜨면 잘 된 것.
서버 타임존 설정(톰캣)
이동 : cd /usr/local/tomcat/bin
sudo vi setenv.sh -> i로 입력 ->
-> shift + ; ->wq(저장 후 나가기)
putty 다시 켜기
putty 클릭 -> 기존 키 Load -> SSH -> Auth -> ppk 가져오기 -> open
tomcat manager 설정 (배포 할 수 있게)
-> 접속하면 403 Access Denied가 나오므로 tomcat 추가 설정이 필요
1) tomcat 설치 디렉토리로 이동
2) user 태그의 username 과 password 부분은 실제 접속에 사용할 아이디와 비번이다.
-> i로 insert 가능하게 함
-> 하늘색 위쪽에 복붙 -> esc -> shift + ; -> wq로 저장 + 종료
3) manager 페이지를 로컬환경에서만 열도록 해주는 설정으로, 이를 해지해서 어디서든 접속할 수 있도록 한다.
-> i로 수정 : Valve 주석 처리
4) tomcat 서버를 껏다 켜고 아래 주소로 접속하여 id password 를 입력하고 설정이 완료된것을 확인한다. 톰캣 끄기
-> 상대 경로: 현재 위치 기준으로 이동 -> tab으로 잘 찾았나 확인, 또는 pwd로 위치 확인
톰캣 켜기
-> 절대경로 : 위에서부터 절대 위치
->이제 브라우저에서 에러가 안 날 것이다.
-> 2)에서 설정한 username 과 password인 admin, admin 입력
AWS용 환경 세팅 코드 설정
war export (프로젝트 코드를 WAR로)
프로젝트에 build.gradle에 war 빌드 속성을 추가, java 11버전으로 변경 -> Gradle refresh
프로젝트명Application.java파일에서 메서드명 옆에 extends SpringBootServletInitializer -> import
FileManagerService 경로 AWS용으로 수정 putty에서 cd ~ -> mkdir images cd images -> pwd하면 경로가 뜬다.
복붙해서 재설정하면 이런 식으로 된다.
☆★ 이제 master 브랜치에 절대 커밋하면 안 됨. develop에 수정하고, aws 관련 설정은 aws 브랜치에
sourcetree에 aws 브랜치 코드 수정사항 커밋 -> push
프로젝트 sts에서 file -> export -> war 검색 -> next -> 프로젝트명 작성 -> Destination : 저장할 경로 지정하고, ★ 이름은 무조건 ROOT.war ★ -> finish
톰캣 매니저 - http://퍼블릭 IPv4 주소:8080/manager 에서 배치할 war 파일 -> 파일선택 -> ROOT.war 선택 -> 배치 클릭(좀 걸리니 기다리자)
추가 tip
무한 루프나 오래켜면 메모리가 많이 찰 수 있다. -> 메모리 상태를 본다. top free -m -> ctrl + c : 보고 있던 것 빠져나온다.
putty로 에러 보기
cd logs/ sudo vi catalina.out : 에러 보기 -> shift + ; +q로 나가기
sudo tail -f catalina.out : 에러 그때그때 찍힌다. -> ctrl+c로 나가기