ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 73일차 - 프로젝트 빌드 및 배포
    AWS|Docker 2024. 5. 13. 15:46

    STS Build

    - 실제로 빌드되지 않고 가상 톰캣으로 돌아가 성능 저하나 오류가 빈번하게 발생했었다

    - 몇명만 서버에 접속해도 뻗어버린다

    먼저 가상 톰캣이 위치한 .metadata 폴더로 이동하고

     

     

    wtpwebapps 에는 실제 프로젝트의 클래스, JSP 파일들이 들어있다

     


    Tomcat

    C드라이브에 아파치톰캣 폴더로 이동하자

    - BIN : 실행 파일들을 담고 있는 폴더

    - CONF : 설정 파일들을 담고 있는 폴더 web.xml server.xml 등 

    - LOGS : 로그 파일들을 담고 있는 폴더

    - WEBAPPS : 소스 (WAR) 파일을 담고 있는 폴더

     

    bin 폴더

    - .sh 리눅스 운영체제에서 실행 파일이다 반대로 bat 는 윈도우 운영체제의 실행파일이다

    - 더블클릭해서 실행하지 말고 탐색기의 주소에서 cmd 를 실행하자

    서버가 켜지면서 이전에 빌드했던 프로젝트가 성공적으로 페이지가 로딩된다

     

    Context Loc

    C:\apache-tomcat-9.0.87\webapps

    - ROOT 로 잡아두면 브라우저에서는 / 로 시작해야한다

    - webapps 폴더 안에 있는 폴더의 이름이 요청명이다

    빌드 작업

    실패 메시지가 뜬다면 1. 코드에 오류가 있을시, 2. 자바 버젼이 안맞는다

     

    - 위에 있는 폴더를 가지고 압축 파일을 만든것이다 이애기를 왜하냐? 이클립스가 빌드하다보며는 xml 파일이 가끔씩 빼먹는 실수를 한다

    - 빌드된 war 파일을 톰캣의 webapps 에 옮겨둔다

    - 이제 톰캣 서버를 실행하면 WAR 파일을 읽어서 폴더로 압축풀기한다

     

     

     

    server.xml 에 /photo 요청에 대한 upload 폴더 경로를 매핑시켜둔다

     

    정리

    1. STS 에서 빌드해준다

    2. 빌드 작업 후 XML 파일이 누락된것이 있는지 확인한다

    3. 실제 서버에 WAR 파일을 옮겨둔다

    4. 서버 실행 후 이상 없는지 확인한다


    데이터베이스에서 덤프 뜨기

    # dump 는 데이터베이스를 복사해서 백업하는 작업을 의미
    # 본래는 서버에 접속해서 dump 명령어로 가져와야 한다.
    # 서버에 접속할수 없어서 dbever 를 통해 덤프 백업 진행 예정
    # dbever 로 할 경우 데이터의 양과 테이블의 규모가 크면 잘 되지 않는다.
    
    # 1. 덤프 파일을 받아낸다.
    # 2. 덤프받은 파일을 복원하기 위해 같은 이름의 데이터베이스를 생성한다.
    create database gdj78_semi_BeansMarket;
    show databases;
    
    # 3. 덤프 복원(버전에 따라서 다르다.)
    # [mysql|mariadb] -u root -p [데이터베이스명] < [덤프파일위치]
    mariadb -u root -p gdj78_semi_BeansMarket < D:\backup.sql
    
    # 4. 복원 확인
    use gdj78_semi_BeansMarket;
    show tables;

    공용 데이터베이스에 있는 것을 로컬로 가져오는 작업을 한다

    - dump 는 데이터베이스를 복사해서 백업하는 작업을 의미한다

    - 본래는 서버에 접속해서 dump 명령어로 가져와야 한다

    - 서버에 접속할 수 없어서 dbever 를 통해 덤프 백업 작업을 진행한다

    - dbever 로 할 경우로 데이터의 양과 테이블의 규모가 크면 잘되지 않는다

     

    # 2. 덤프받은 파일을 복원하기 위해 같은 이름의 데이터베이스를 생성한다.

     

     

    # 3. 덤프 복원(버전에 따라서 다르다.)
    # [mysql|mariadb] -u root -p [데이터베이스명] < [덤프파일위치]
    mariadb -u root -p gdj78_semi_BeansMarket < D:\backup.sql

     

     

    마지막으로 데이터베이스 주소와 아이디 비밀번호를 올바르게 수정하자

     

    서버에 접속했을때 로컬로 데이터베이스가 옮겨진것을 확인할 수 있다


    AWS

    회원가입한 후 콘솔로 이동하자

    https://ap-northeast-2.console.aws.amazon.com/console/home?region=ap-northeast-2#

     

    https://ap-northeast-2.console.aws.amazon.com/console/home?region=ap-northeast-2

     

    ap-northeast-2.console.aws.amazon.com

    인스턴스는 서버라고 한다 

    아마존 리눅스 선택

    프리티어 사용가능만 무료이다

    서버에 접속할때 사용할 키를 생성이므로 아주 중요하다

    서버에 접속할때 Putty 를 사용할꺼니깐 ppk 로 선택한다

    그러면 생성된 ppk 파일을 확인할 수 있다

     

     


    aws 접속

    https://www.chiark.greenend.org.uk/~sgtatham/putty/latest.html

     

    Download PuTTY: latest release (0.81)

    This page contains download links for the latest released version of PuTTY. Currently this is 0.81, released on 2024-04-15. When new releases come out, this page will update to contain the latest, so this is a good page to bookmark or link to. Alternativel

    www.chiark.greenend.org.uk

    Putty 실행화면이다

    아이디는 ec2-user 로 입력한다

     

    국제 시간 표준으로 설정되어있기 때문에 시간을 변경해주어야한다

    https://filezilla-project.org/

     

     

    아무거나 파일 하나만 넣어보자 서버에서 잘 들어갔는지 ls -al로 확인하자

     


     

    규칙 번호가 낮을 수록 우선순위가 높아진다

     

    서버를 꺼주자 한 10분 뒤에 꺼진다

    # ec2-user
    
    # 현재 경로 출력
    pwd
    
    # 현재 위치의 파일 및 폴더 리스트
    # -a 옵션은 모든것을 상세하게 보여달라
    ls -a
    
    date # 현재 시간 확인
    timedatectl # 현재 타임존이 어디인지
    
    # 우리가 선택할 타임존 확인
    timedatectl list-timezones | grep Asia/Seoul
    
    # 타임존 변경(서버가 재시작 후에도 타임존을 확인 할 것)
    timedatectl set-timezone Asia/Seoul
    
    # yum <- 설치 툴(centos)
    sudo yum update -y

     

    오늘 배운거

    프로젝트 빌드 작업

    빌드 후 실제 톰캣에 배포

    AWS 인스턴스 생성

     

    'AWS|Docker' 카테고리의 다른 글

    74일차 - 세미프로젝트 AWS 서버에 배포  (0) 2024.05.14
Designed by Tistory.