[Infra] 서버/인프라 배포 기초개념

2025. 11. 29. 23:59·공부일기../Infra

1. 서버 접속 및 프로토콜 (Connection & Protocol)

1-1. 접속 필수 정보

서버(물리/가상 머신)에 접속하기 위해서는 클라이언트 프로그램(SecureCRT, Xshell, PuTTY 등)을 사용하며, 아래 3가지 정보가 필수적이다.

  • HostName (IP Address)
    • 접속할 서버의 고유 주소. (예: 192.168.10.55)
  • UserName (Account)
    • 서버 OS(Linux)에 로그인할 계정명.
    • 미들웨어 계정: jeus, tomcat (애플리케이션 구동용)
    • 개인 계정: 사번 등 개인 식별 ID (권한 관리가 엄격한 경우)
  • Protocol & Port
    • SSH2 (Port 22): 원격 접속 및 명령어 제어용 표준 프로토콜.
    • SFTP (Port 22): 파일 전송용 프로토콜. (SSH와 동일 포트 사용)

 

1-2. 보안 접속 (Secure Guard)

사내 보안 정책에 따라 서버 직접 접속이 차단된 경우, 접근 제어 솔루션을 경유한다.

  • 방식: [웹 로그인] -> [접속 대상 아이콘 클릭] -> [SecureCRT 자동 실행]의 흐름을 따른다.
  • 특이사항: 이 경우 HostName/UserName을 수동으로 입력하지 않고 토큰 기반으로 자동 연결된다.

 


2. 리눅스 파일 시스템 식별 (File System)

2-1. 파일 타입 식별 (ls -F)

CLI 환경에서 파일과 디렉토리를 시각적으로 구분하기 위해 ls -F 옵션을 사용하거나, 기본 설정된 색상(Coloring)을 통해 식별한다.

색상 (통상적) 식별 기호 (-F) 타입 (Type) 설명
파란색 이름/ Directory 폴더. cd 명령어로 진입 가능.
초록색 이름* Executable 실행 권한이 있는 파일. 쉘 스크립트(.sh), 바이너리 파일 등.
하늘색 이름@ Symbolic Link 윈도우의 바로가기. 원본 파일이 다른 경로에 존재함.
흰색/회색 없음 Regular File 일반 텍스트 파일, 설정 파일, 소스 코드 등.

 

2-2. 디렉토리 이동 및 탐색

  • pwd: 현재 작업 중인 경로의 전체 주소를 출력한다.
  • cd [경로]: 디렉토리를 이동한다.
    • cd .. : 상위 디렉토리로 이동.
    • cd /logs/jeus : 절대 경로로 즉시 이동.
  • Tip: Tab 키를 사용하여 경로 자동 완성을 적극 활용한다.

 


3. 서버 상태 점검 및 모니터링 (Monitoring)

3-1. 프로세스 점검 (ps)

애플리케이션(WAS)이 정상적으로 구동 중인지 PID(프로세스 ID)를 확인한다.

  • 명령어:
    ps -ef | grep java
  • 확인 포인트:
    • 출력 결과에 java 프로세스와 함께 -Djeus... 또는 -Dcatalina... 옵션이 보여야 정상이다.
    • grep 명령어 자체만 출력되면 프로세스가 다운된 상태다.

 

3-2. 실시간 로그 확인 (tail)

애플리케이션의 에러 로그나 기동 상태를 실시간으로 모니터링한다.

  • 명령어:
    tail -f [로그파일명]
    # 예시: tail -f catalina.out
  • 종료: Ctrl + C 키를 입력하여 모니터링을 중단한다.

 

3-3. 디스크 용량 점검 (df)

서버의 스토리지 여유 공간을 확인한다.

  • 명령어:
    df -h
  • 확인 포인트: Use%가 90% 이상인 파티션이 있는지 확인한다. 특히 로그가 쌓이는 파티션이 100%가 되면 서버가 멈춘다.

 


4. 빌드 및 배포 프로세스 (Deployment Flow)

4-1. 배포 아키텍처 흐름

일반적인 레거시 및 Spring Boot 환경의 배포 흐름은 다음과 같다.

  1. SCM (Git/SVN): 로컬 개발 완료 후 코드 커밋.
  2. CI (Jenkins): 젠킨스 서버에서 소스를 받아 컴파일 및 빌드 (.war / .jar 생성).
  3. Transfer: 빌드된 산출물을 운영 서버의 지정된 경로(Target Directory)로 전송 (SSH/SFTP).
  4. Deploy & Restart:
    • 기존 애플리케이션 중단 (Stop).
    • 새 산출물로 교체.
    • 애플리케이션 재기동 (Start).

 

4-2. 쉘 스크립트(.sh) 활용

복잡한 Java 실행 옵션이나 도커 명령어를 매번 입력하지 않고, 미리 작성된 스크립트를 실행한다.

  • 실행: ./start.sh, ./stop.sh, ./restart.sh
  • 내용 확인: cat start.sh (실행하지 않고 내용만 출력하여 실행 인자나 옵션을 확인한다.)

 


5. 컨테이너 환경 (Docker Context)

5-1. Docker Compose

여러 컨테이너(DB, WAS, Web)를 한 번에 관리하기 위한 설정 파일이다.

  • 파일명: docker-compose.yml
  • 주요 확인 항목 (cat으로 확인):
    • image: 사용 중인 미들웨어 및 OS의 정확한 버전.
    • ports: 호스트와 컨테이너 간 포트 포워딩 설정 (외부포트:내부포트).
    • volumes: 컨테이너 데이터가 저장되는 로컬 호스트의 실제 경로 (마운트 정보).

 

5-2. 배포 시 주의사항

  • 도커 환경에서는 소스 파일 변경 후 컨테이너를 **재빌드(Rebuild)**하거나 **재시작(Restart)**해야 변경 사항이 반영된다.
  • docker-compose up -d 명령어를 주로 스크립트화하여 사용한다.

'공부일기.. > Infra' 카테고리의 다른 글

[인터넷 통신] http 기본개념 전반적인 내용 찍먹  (0) 2025.12.21
[Infra] 웹 서버 & 리버스 프록시 (Nginx) 기초개념 찍먹~  (1) 2025.12.03
'공부일기../Infra' 카테고리의 다른 글
  • [인터넷 통신] http 기본개념 전반적인 내용 찍먹
  • [Infra] 웹 서버 & 리버스 프록시 (Nginx) 기초개념 찍먹~
s0-0mzzang
s0-0mzzang
공부한것을 기록합니다...
  • s0-0mzzang
    승민이의..개발일기..🐰
    s0-0mzzang
  • 전체
    오늘
    어제
    • 전체~ (108)
      • 마음가짐..! (10)
      • 공부일기.. (76)
        • weekly-log (6)
        • Spring (19)
        • Java (18)
        • DataBase (10)
        • git (2)
        • JPA (6)
        • kafka (1)
        • Backend Architecture (3)
        • Troubleshooting (삽질..ㅋ) (2)
        • Cloud (1)
        • Docker (2)
        • 알고리즘 (1)
        • 리액트 (2)
        • Infra (3)
      • 하루일기.. (22)
        • 그림일기 (8)
        • 생각일기 (14)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    StringTokenizer
    spring
    항해플러스
    spring boot
    인프라 기초
    Paging
    BufferedReader
    리팩토링
    ADC 환경
    JPA
    SpringBoot
    swagger
    React
    스프링부트
    다짐
    자바
    ERD
    MySQL
    TDD
    항해99
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
s0-0mzzang
[Infra] 서버/인프라 배포 기초개념
상단으로

티스토리툴바