AWS 인스턴스 생성 및 프로젝트 배포
by ash
참고1 : https://pamooochim.blogspot.com/2015/10/blog-post.html
참고2 : https://blog.naver.com/loverman85/221073024524
- 스프링 레거시 프로젝트(마이바티스+OracleDB)를 AWS 가상서버에 배포하는 것을 학습
- 배포까지는 성공했으나 RDB 연동은 좀 더 공부해야 하는 상황..
1. AWS에 배포하기 과정 요약 및 흐름
- AWS에 가입 후, EC2 인스턴스를 생성한다.(리눅스,우분투 OS 선택 가능. 프리티어로 만들기)
- EC2 인스턴스 생성 후, 받은 pem을 보관한다.(한번밖에 못 받으니 주의). 보안그룹을 만들고 EIP도 만든다.
- putty를 사용하여, pem을 private key로 만든다.
- private key는 ec2를 접근하기 위한 하나의 ‘비밀번호’같은 역할. putty에서 private key를 발급받았으면, EC2인스턴스의 OS에 접근이 가능하다.
- java1.8과 tomcat 등을 설치한다(리눅스 명령어 참고)
- 배포를 원하는 프로젝트는 war파일로 변환한다.
- FileZilla를 다운받는다. FileZilla에 호스트명, public DNS명 등 기입하고, 접속한다. FileZilla를 통해 EC2 인스턴스 가상서버 내부를 UI로 볼 수 있다.
- 프로젝트를 드래그하여 etc/ubuntu에 넣는다.
- mv 명령어로 var/lib/tomcat8/webapps에 이동시킨다.
- 톰캣구동 후, 들어가본다.
2. AWS ECS 인스턴스 생성하기
- AWS 로그인
- AWS Management Console 화면에서 ‘EC2를 사용하여 가상머신 시작’ 클릭
- 단계1 : Amazon Machine Image(AMI) 선택 화면에서Ubuntu Server 18.04 LTS(HVM),SSD Volume Type(프리티어) 선택
- 단계2 : 인스턴스 유형 선택 화면에서 선택되어있는 프리티어 전용 그룹으로 선택후 ‘다음’
- 단계3 : 인스턴스 세부 정보 구성 화면에서 별거 안 건들고 ‘다음’
- 단계4 : 스토리지 추가에서 크기(GiB)는 8~30GB 사이에서 프리티어로 사용가능(30GB로 해주자). ‘다음’
- 단계5 : 태그 추가에서 키,값 이름 지정해주고 ‘다음’
- 단계6 : 보안 그룹 구성에서는 접근 가능한 트래픽(HTTP,HTTPS 등) 제어 관련 규칙을 정해주는 곳. ==ex) HTTP / TCP / 80 / 0.0.0.0/0, ::0 ex) HTTPS / TCP / 443 / 0.0.0.0/0, ::0 ex) SSH / TCP / 22 / 0.0.0.0/0, ::0 ex) 사용자지정 TCP 규칙 / TCP / 8080 / 0.0.0.0/0, ::0==
- ‘다음’ 누르고 시작하기
- ‘네트워크 및 보안’ 탭에 탄력적IP 누르고 탄력적IP만들기
3. PUTTY를 통해 EC2 UBUNTU에 접근하기
- putty 설치 후, puttygen 실행
- puttygen은 private key를 생성해주는 역할. Load를 클릭 후, 저장했던 pem을 불러옴. 그리고 Save private key를 눌러 저장해주기
- putty 실행. Host Name은 인스턴스의 퍼블릭 DNS(IPv4) 입력, SSH-Auth에 들어가서, Browse클릭 후, 생성한 private key 로드
- 다시 session탭으로 돌아가서 save sessions로 save 해두고, open 눌러서 ec2 인스턴스에 접속
4. 리눅스 명령어를 통해 배포 전 준비하기(자바,톰캣 설치 등)
1.리눅스 명령어 모음
- sudo : 현재 계정에서 다른 계정의 권한을 빌림. root가 아닌 사용자가 root에 준하는 능력으로 접근할 때 사용(항상 앞에 sudo를 붙여서 권한 제한 없이 사용)
- mkdir 폴더명 : 폴더를 만들기
- pwd : 현재 경로 보기
- cd. : 현재 디렉토리로 이동
- cd.. : 상위 디렉토리로 이동
- cd~ : 홈 디렉토리로 이동
-
cd- : 이전 작업 디렉토리로 이동
- ls -a : 모든 파일과 디렉토리 표시
- ls -l : 자세히 출력
-
ls -d : 디렉토리 정보 출력
- cp {옵션} {복사소스} {복사위치} : 복사소스를 복사위치에 복사(-f : 강제 복사)
- mv {옵션} {이동소스} {이동타겟} : 파일,디렉토리 이동
sudo mv -f /tmp/test/test.txt /tmp/test2/test.txt
-
rm {옵션} {디렉토리/파일} : 파일 디렉토리 삭제
- more {파일이름} : 파일 내용 화면 단위로 출력
2.자바설치
- 자바 버전 확인 :
java -version(1.7이라고 뜰 것)
- 자바 삭제 :
sudo java apt-get remove java-1.7.0-openjdk
- 업데이트 :
sudo apt-get update(지속적으로)
- jdk1.8설치 :
sudo apt-get install openjdk-8-jdk
- jre1.8설치 :
sudo apt-get install openjdk-8-jre
- java,javac버전 재확인 :
java -version, javac -version
3.톰캣설치
- 톰캣설치 :
bash sudo apt-get install tomcat7
- 버전확인 :
bash /usr/share/tomcat7/bin/version.sh
- 인스턴스에서 톰캣 기본포트(8080) 열어주어야함. 인스턴스의 보안 그룹->인바운드에서 편집하여 추가(사용자 설정 TCP / TCP / 8080 / 사용자지정 / 0.0.0.0/0, ::0
- 해당 IP로 들어가서 테스트 : http://서버ip:8080
5. FileZilla로 디렉토리 접근하고 프로젝트 배포하기
- FileZilla 설치
- AWS인스턴스와 FileZilla 연결하기(왼쪽 위 서버컴퓨터 모양 버튼 클릭)
- 창이 뜨고 호스트에는 public DNS 입력, 프로토콜은 STFP 선택, 로그온 유형은 키파일, 사용자는 ubuntu, 키파일은 ~.pem파일 선택 후 연결
- 연결 후, /home/ubuntu에 프로젝트 war파일 드래그
- 우분투 터미널에서 ls -al 명령어 입력하면 프로젝트 war파일 확인
- sudo mv 프로젝트명.war /var/lib/tomcat7/webapps/
bash cd /var/lib/tomcat7/webapps/
확인(ls -al 입력하면 정상적으로 프로젝트 들어간 것 확인)bash sudo service tomcat7 stop
->bash sudo service tomcat7 start
입력하여 톰캣 구동- http://서버ip:8080/프로젝트명으로 접속
Subscribe via RSS