참고1 :  https://pamooochim.blogspot.com/2015/10/blog-post.html
참고2 :  https://blog.naver.com/loverman85/221073024524
  • 스프링 레거시 프로젝트(마이바티스+OracleDB)를 AWS 가상서버에 배포하는 것을 학습
  • 배포까지는 성공했으나 RDB 연동은 좀 더 공부해야 하는 상황..

1. AWS에 배포하기 과정 요약 및 흐름


  1. AWS에 가입 후, EC2 인스턴스를 생성한다.(리눅스,우분투 OS 선택 가능. 프리티어로 만들기)
  2. EC2 인스턴스 생성 후, 받은 pem을 보관한다.(한번밖에 못 받으니 주의). 보안그룹을 만들고 EIP도 만든다.
  3. putty를 사용하여, pem을 private key로 만든다.
  4. private key는 ec2를 접근하기 위한 하나의 ‘비밀번호’같은 역할. putty에서 private key를 발급받았으면, EC2인스턴스의 OS에 접근이 가능하다.
  5. java1.8과 tomcat 등을 설치한다(리눅스 명령어 참고)
  6. 배포를 원하는 프로젝트는 war파일로 변환한다.
  7. FileZilla를 다운받는다. FileZilla에 호스트명, public DNS명 등 기입하고, 접속한다. FileZilla를 통해 EC2 인스턴스 가상서버 내부를 UI로 볼 수 있다.
  8. 프로젝트를 드래그하여 etc/ubuntu에 넣는다.
  9. mv 명령어로 var/lib/tomcat8/webapps에 이동시킨다.
  10. 톰캣구동 후, 들어가본다.

2. AWS ECS 인스턴스 생성하기


  1. AWS 로그인
  2. AWS Management Console 화면에서 ‘EC2를 사용하여 가상머신 시작’ 클릭
  3. 단계1 : Amazon Machine Image(AMI) 선택 화면에서Ubuntu Server 18.04 LTS(HVM),SSD Volume Type(프리티어) 선택
  4. 단계2 : 인스턴스 유형 선택 화면에서 선택되어있는 프리티어 전용 그룹으로 선택후 ‘다음’
  5. 단계3 : 인스턴스 세부 정보 구성 화면에서 별거 안 건들고 ‘다음’
  6. 단계4 : 스토리지 추가에서 크기(GiB)는 8~30GB 사이에서 프리티어로 사용가능(30GB로 해주자). ‘다음’
  7. 단계5 : 태그 추가에서 키,값 이름 지정해주고 ‘다음’
  8. 단계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==
  9. ‘다음’ 누르고 시작하기
  10. ‘네트워크 및 보안’ 탭에 탄력적IP 누르고 탄력적IP만들기

3. PUTTY를 통해 EC2 UBUNTU에 접근하기


  1. putty 설치 후, puttygen 실행
  2. puttygen은 private key를 생성해주는 역할. Load를 클릭 후, 저장했던 pem을 불러옴. 그리고 Save private key를 눌러 저장해주기
  3. putty 실행. Host Name은 인스턴스의 퍼블릭 DNS(IPv4) 입력, SSH-Auth에 들어가서, Browse클릭 후, 생성한 private key 로드
  4. 다시 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.자바설치

  1. 자바 버전 확인 : java -version(1.7이라고 뜰 것)
  2. 자바 삭제 : sudo java apt-get remove java-1.7.0-openjdk
  3. 업데이트 : sudo apt-get update(지속적으로)
  4. jdk1.8설치 : sudo apt-get install openjdk-8-jdk
  5. jre1.8설치 : sudo apt-get install openjdk-8-jre
  6. java,javac버전 재확인 : java -version, javac -version

3.톰캣설치

  1. 톰캣설치 : bash sudo apt-get install tomcat7
  2. 버전확인 : bash /usr/share/tomcat7/bin/version.sh
  3. 인스턴스에서 톰캣 기본포트(8080) 열어주어야함. 인스턴스의 보안 그룹->인바운드에서 편집하여 추가(사용자 설정 TCP / TCP / 8080 / 사용자지정 / 0.0.0.0/0, ::0
  4. 해당 IP로 들어가서 테스트 : http://서버ip:8080

5. FileZilla로 디렉토리 접근하고 프로젝트 배포하기


  1. FileZilla 설치
  2. AWS인스턴스와 FileZilla 연결하기(왼쪽 위 서버컴퓨터 모양 버튼 클릭)
  3. 창이 뜨고 호스트에는 public DNS 입력, 프로토콜은 STFP 선택, 로그온 유형은 키파일, 사용자는 ubuntu, 키파일은 ~.pem파일 선택 후 연결
  4. 연결 후, /home/ubuntu에 프로젝트 war파일 드래그
  5. 우분투 터미널에서 ls -al 명령어 입력하면 프로젝트 war파일 확인
  6. sudo mv 프로젝트명.war /var/lib/tomcat7/webapps/
  7. bash cd /var/lib/tomcat7/webapps/ 확인(ls -al 입력하면 정상적으로 프로젝트 들어간 것 확인)
  8. bash sudo service tomcat7 stop -> bash sudo service tomcat7 start 입력하여 톰캣 구동
  9. http://서버ip:8080/프로젝트명으로 접속