AWS [EC2 준비과정 & 운용 과정 ]
AWS [EC2 준비 및 운용 ]
for Mac
준비과정
- Amazon AWS 인스턴스 생성 및 설정( 인바운드 규칙 )
- 배포를 위한 .JAR 파일 생성
- FileZilla( 순서를 직관적으로 보기위한 선택사항)
PuTTY( mac에서는 불필요한 사항 )
배포와 운용과정
- 인스턴스(서버) 환경에서 .Jar 파일을 배포하는 방법
준비과정
1. Amazon AWS 인스턴스 생성 및 설정( 인바운드 규칙 )
- 위 도메인을 통해서 회원가입을 하고, 인스턴스 생성을 통해 클라우드 가상 서버의 IP를 할당.
- .pem 이라는 이름의 Key는 변경사항을 허락하지않고, 해당 Key가 존재하지 않는다면, 인스턴스의 사용이 제한된다.
- 해당 인스턴스의 인바운드 규칙 편집을 통해 HTTP, MySQL, 등 Port를 할당
- 탄력적 IP할당
- EC2 인스턴스를 생성하여 서버를 실행시키면 고정IP가 아닌 동적 IP를 할당받기 때문에, 인스턴스(서버)를 중지하고 다시 실행시키면 IP가 변경되어 버리는 문제가 발생
이 문제점을 해결하기위한 방법으로 사용된다.
- EC2 인스턴스를 생성하여 서버를 실행시키면 고정IP가 아닌 동적 IP를 할당받기 때문에, 인스턴스(서버)를 중지하고 다시 실행시키면 IP가 변경되어 버리는 문제가 발생
Tip: 해당 페이지에서 명시하는 퍼블릭 IPv4주소가 초기 도메인으로 설정된다, 또한
초기에는 ubuntu, ec2-user로 사용자이름이 설정된다.
2. 배포를 위한 .JAR 파일 생성
외부접속을 허용하는 배포를 하기위해서는 .WAR 또는 .JAR의 파일을 필요로 하는데,
이 사항은 해당 프로젝트의 다음과 같은 명령어로 생성이 가능하다.
./gradlew build
또한 .Jar 파일같은 경우 자동 업데이트가 진행되지않음으로 판단했고,
파일 수정 후 위 명령어를 통해 수동 업데이트를 진행했다.
3. FileZilla( 순서를 직관적으로 보기위한 선택사항 )
FileZilla 프로그램은 FTP(File Transfer Protocol) 프로그램 중 하나인 것이다.
즉, 파일 전송 프로그램이, .Jar의 파일을 전달하는 목적으로 사용할 수 있다.
이 프로그램이 필요한 이유는 개인 컴퓨터와 운영하는 사이트(웹서버)간의 파일을 효율적으로 전달하기 위함이다. 물론 터미널(Linux)를 통한 방법도 있다.
배포와 운용과정
1. 인스턴스(서버)에 접근하는 방법
- 간편하게 위 페이지에서 제공하는 연결방법을 사용해도 무관
- 터미널(Linux)를 사용하여 인스턴스에 접근하여 필요한 요소들을 설치했다.
터미널에서 인스턴스를 접근하기 위해서는 인스턴스 생성시 만들었던 Key, 사용자의 이름, 퍼블릭 IPv4 DNS가 필요하다.
1. 터미널을 실행하고 Ke의 해당 경로로 이동
2. 다음과 같은 리눅스 명령어를 입력하게되면 인스턴스의 접근 가능하다.
ssh -i "Key의 이름" 사용자의 이름@퍼블릭 IPv4 DNS
참고: Windows의 운영체제 경우 이 과정에서 PuTTY를 사용하게 된다.
2. 인스턴스(서버)에 설치해야하는 것들
아래와 같은 과정들은 인스턴스에 접근하여 설치해야 한다.
1. Git
-
Git을 사용하지 않고, FileZilla를 통해 해당 repo를 전달 받을 수 있지만,
초기설정 후 효율적인 운용을 위해 설치한다sudo apt-get install git git --version // 설치 및 버전 확인 git clone [url 주소]
2. Java 설치 및 환경변수 설정
sudo apt-get install openjdk-8-jdk
java -version // 설치 및 버전확인
sudo apt-get update //업데이트
설치가 완료되면 환경변수를 설정해주어야 한다.
환경변수의 방법은 tomcat 과 유사함으로 tomcat으로 한번에 설명하겠다.
자세한 사항은 자바 환경변수 설정이라고 검색하면 많은 자료들이 나온다.
3. tomcat 설치
- tomcat 설치방법은 크게 두가지로 나뉘게 된다.
Wget 설치 방법, yum 설치 방법
Wget이란? - 비상호작용형 네트워크 다운로더
즉, 로그인 없이 웹상에 있는 파일을 다운받을 수 있게 해준다. (HTTP,HTTPS,FTP 프로토콜 지원)
YUM이란? - (Yellodog Update, Modified)으로 rpm시스템 용 자동 업데이트 및 패키지 설치 / 제거 도구이다.
https://tomcat.apache.org/download-80.cgi
1. 위의 경로로 이동 후 tar.gz의 링크를 복사한다.
2. 아래와같은 명렁어를 써준다.
wget [링크 주소 붙여넣기]
// 압축 해제
# tar xvfz apache-tomcat-8.5.57.tar.gz
// tomcat8.5라는 폴더를 만들고, 이동시킴
# mv apache-tomcat-8.5.57 /usr/local/tomcat8.5
이 후
vi /etc/profile //자바의 환경변수 설정과 마찬가지로 vi 편집기로 이동
/usr/local/tomcat8.5/bin/startup.sh //tomcat 시작
/usr/local/tomcat8.5/bin/shutdown.sh //tomcat 종료
4. MySQL 설치 및 설정
sudo apt install mysql-server // Mysql 설치
dpkg -l | grep mysql-server // Mysql 설치 확인
sudo netstat -tap | grep mysql // Mysql 실행여부 확인
외부접속 설정
cd /etc/mysql/mysql.conf.d // 디렉토리 이동
sudo vi mysqld.cnf // .cnf 파일 수정
bind-address를 127.0.0.1 ->0.0.0.0 으로 변경
이유: 로컬 Port 허용 -> 외부접속을 허용하기 위해
sudo mysql // Mysql 접속
create user '계정이름'@'%' identified by '패스워드';
grant all privileges on *.* to '계정이름'@'%' with grant option; //ㅇ 외부 접속 계정 생성 & 권한 부여
이 후 AWS EC2 인스턴스에 Mysql 접속 포트 확인
- 준비과정에서 이 과정을 거쳤으니 확인만.
MySQL workbench를 이용하여 접속 확인을 진행한다.
Hostname에 public 주소를 입력하고 추가한 user와 비밀번호를 입력하고 test connection을 클릭!
정상 작동을 하게 되면 해당 DB에 접속이 가능하게된다.
이 후 운용방법
.Jar 파일을 FileZilla를 통해 클라우드 서버에 전달하고,
.Jar 파일의 경로를 찾아가
java -jar [.jar 파일명 ]
위 명령어의 방법으로 실행시키게되면 8080 Port로 접근 가능하다.
또한 위와 같은 방식은 터미널이 종료될때 접근또한 불가능상태가 된다.
nohup java -jar [.jar 파일명 ]
위 명령어의 사용을 통해서 백그라운드 배포가 가능해진다.
References (참고 자료)
- https://aws.amazon.com/ko/
- https://vnvn31.tistory.com/entry/AWS-EC2%EC%84%9C%EB%B2%84-%EC%A0%91%EC%86%8D%ED%95%98%EA%B8%B0-for-MacWindow?category=986370
- https://chucoding.tistory.com/54
- https://luji.tistory.com/7
- https://tomcat.apache.org/download-80.cgi
- https://mirae-kim.tistory.com/73
- https://www.youtube.com/watch?v=bAOpqWAWa9A&list=PLieE0qnqO2kT5fjOsIMG5rUIeoHbiDPUn&index=1
Author And Source
이 문제에 관하여(AWS [EC2 준비과정 & 운용 과정 ]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@mon99745/AWS-EC2-서버-접속저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)