AWS-EC2 배포 연습

AWS EC2에 프로젝트 배포하기

1. 준비물

1.1 소스코드

1.2 AWS 계정

  • AWS 계정 생성 및 준비 완료

1.3 AWS EC2 인스턴스 생성

  • 리전 설정 - 서울

  • 아마존 리눅스 AMI 사용

  • .ppk 키 파일 생성

  • 프리 티어로 인스턴스 생성

    • 11g(small이상) - 단순배포 연습시에는 micro로

    • 21c(medium 이상)

  • HTTP 연결 허용

  • 보안 규칙 수정:

    • 인바운드 규칙 편집

      • 1521 (오라클 포트)

      • 8080 (오라클 포트)

      • 8088 (어플리케이션이돌아가는포트. 톰캣 서버 설정에 따라 변경 가능)


2. EC2 연결 준비

2.1 Bitvise-Client

  • 설정 방법:

    • 퍼블릭 IP 주소 입력

    • 사용자 이름: ec2-user(아마존 리눅스 사용시)

    • Client Key Manager에서 .ppk 키 파일 import

    • Public Key: global1(ppk) 선택

3. EC2 터미널 설정

3.1 Amazon Corretto OPENJDK 설정

  1. 다운로드 및 설치: 개발한 어플리케이션 환경에 맞춰서 설치.

  2. 환경 변수 등록:

3.2톰캣 설치 및 설정

  1. 톰캣 설치:

  • 권한 설정

  • /opt 디렉토리에 톰캣 폴더 생성

  • SFTP로 톰캣 파일 이동 ⇒ 내 어플리케이션을 실행할 수 있는 톰캣 버전선택

    • 수업용 레파지토리는 톰캣 9버전에 호환되는 코드를 사용함(javax.servelt)

  1. 톰캣 실행 권한 부여:

  2. 톰캣 실행:

  3. 브라우저에서 확인: http://<퍼블릭IP>:8080

  4. 톰캣 종료 /opt/tomcat/bin/shutdown.sh


4. 소스코드 불러오기

  1. Git 설치:

  2. Repository 클론: (classes폴더나 이미지들은 SFTP를 이용해 업로드)

  1. 깃 레파지토리 구조에 따른 수정

    • aws-ec2-servlet폴더의 내부는 톰캣이 서비스 할 수 있는 webapp폴더만 존재하도록 설정.

    • .gitignore에 의해 classes폴더가 배포에서 제외된 경우 SFTP를 통해 직접 classes폴더 생성후 데이터 추가해주기.

    • context.xml 경로 수정: 최신버전 이클립스에서는 WebContent가 아닌 webapp으로 설정되어 있음.

  2. 최신 데이터 반영하고자 한다면


5. Docker 설치 및 데이터베이스 연동

5.1 Docker 설치

  1. 도커 다운로드 및 설치:

  2. 도커 그룹에 추가:

  3. 재접속 후 도커 실행:

5.2 Oracle 11g 설치

  1. Docker 이미지 다운로드:

  2. 컨테이너 실행:

mircro버전을 사용중인 경우

11g oracle의 최소권장 메모리가 1g이기 때문에 컨테이너 추가는 가능하나, 사용 중 서버가 다운될 수 있음. 따라서 오라클의 기본 메모리사용량을 낮춰줘야함

  1. sudo docker run -d --name oracle-xe -p 1521:1521 -p 8080:8080 --memory=700m --memory-swap=1g --shm-size=256m -v oracle_data:/u01/app/oracle oracleinanutshell/oracle-xe-11g

  2. 오라클 컨테이너 메모리 설정 (컨테이너접속후 sqlplus)

    1. ALTER SYSTEM SET sga_target = 250M SCOPE = SPFILE;

    2. ALTER SYSTEM SET sga_max_size = 250M SCOPE = SPFILE;

    3. ALTER SYSTEM SET pga_aggregate_target = 80M SCOPE = SPFILE;

    4. SHUTDOWN IMMEDIATE;

    5. STARTUP;

  3. 컨테이너 메모리 사용량 확인

  4. docker inspect oracle-container-name | grep -i memory

  1. 톰캣 실행 확인

    1. sudo docker ps -al

    2. status -> up 뜨면 성공

5.3 데이터베이스 설정

  1. SQL Developer로 접속:

    • EC2 IP 주소 입력

    • 사용자: system

    • 비밀번호: oracle

  2. 새 사용자 생성 및 권한 부여:

  3. 테이블 스크립트 실행

6. 테스트 및 배포 완료

  • 톰캣 서버 실행:

  • 브라우저에서 확인: http://<퍼블릭IP>:8088/ec2


Last updated