전송 환경 마이그레이션

IT 엔지니어개발자

시작하기

기본 개념

기존 전송 방식을 유지하며 중앙 관리 환경으로 통합하기

파일 전송 환경은 업무와 시스템에 따라 여러 장비와 서버에 분산되어 운영될 수 있습니다.

각 환경에서는 이미 파일 전송 경로, 실행 방식, 자동화 조건, 파일 처리 기준이 구성되어 있으며, 새로운 관리 환경으로 전환할 때도 이러한 기존 작업 흐름을 기반으로 전환 범위를 설정할 수 있습니다.

전송 환경 마이그레이션은 현재 사용 중인 장비와 전송 작업을 확인한 뒤 중앙 관리 환경에 연결하고, 기존 파일 흐름을 새로운 운영 환경에서 관리할 수 있도록 구성하는 과정입니다.

기존 전송 환경에서 사용하던 장비와 파일 경로를 기반으로 연결 구조를 구성하면, 개별 환경에서 실행되던 파일 작업을 중앙 관리 흐름으로 통합할 수 있습니다.

전환 흐름

기존 장비 연결부터 중앙 관리까지 단계별로 이어가기

전송 환경 전환은 현재 운영 중인 장비와 작업을 확인하는 단계부터 시작합니다. 이후 기존 장비를 중앙 관리 환경에 연결하고, 현재 사용 중인 전송 작업을 기준으로 새로운 관리 흐름을 구성합니다.

① 기존 환경 확인

② 전환 대상 선정

③ 장비 연결

④ 기존 작업 적용

⑤ 실행 결과 검증

⑥ 중앙 관리 시작

text
Existing Devices
      ↓  

Environment Review
      ↓  

Central Connection
      ↓  

Transfer Flow
      ↓  

Validation
      ↓  

Central Management

이 과정을 통해 기존 장비와 파일 전송 작업을 기반으로 중앙 관리 환경의 운영 구조를 구성할 수 있습니다.

전환 효과

분산된 전송 작업을 하나의 운영 환경에서 관리하기

여러 장비에서 각각 파일 전송 작업을 운영하면 장비별 실행 상태와 처리 결과를 확인하는 업무가 분산됩니다.

중앙 관리 환경으로 전환하면 연결된 장비와 파일 흐름, 실행 결과를 하나의 관리 환경에서 확인할 수 있습니다.

구분개별 환경 운영중앙 관리 환경
장비 관리장비별 환경에서 개별 관리연결된 장비를 중앙에서 관리
작업 확인장비별 작업 상태 확인전체 작업 현황 통합 확인
실행 기록환경별 결과 확인실행 기록을 한곳에서 관리
전송 흐름장비별 파일 경로 관리여러 장비의 흐름을 연결해 관리
운영 확장환경별 구성 추가장비와 작업을 중앙 환경에 추가

이렇게 기존 전송 환경을 중앙 관리 구조로 연결하면 현재 운영 중인 작업을 기반으로 관리 범위를 확장하고, 여러 장비의 전송 현황을 통합해 확인할 수 있습니다.

IT 엔지니어

기존 전송 작업을 유지하면서 중앙 관리 환경으로 전환하기

환경 진단

현재 사용 중인 전송 장비와 작업 구조 확인하기

전환을 시작하기 전에 현재 운영 중인 파일 전송 환경을 확인합니다.

파일을 전송하는 서버와 PC, 스토리지 등의 장비를 정리하고, 각 장비에서 사용하는 파일 경로와 전송 대상, 실행 방식, 자동화 작업을 확인합니다.

전환 대상은 다음 항목을 기준으로 정리할 수 있습니다.

확인 항목확인 내용
장비현재 파일 작업에 사용하는 서버와 PC
파일 경로전송 파일이 준비되는 위치와 대상 경로
전송 대상파일을 처리하거나 활용하는 시스템
실행 방식수동 실행, 일정 실행, 이벤트 기반 실행
자동화 작업기존에 연결된 후속 작업과 실행 조건

현재 운영 구조를 먼저 정리하면 어떤 장비와 작업을 중앙 관리 환경으로 연결할지 전환 범위를 구성할 수 있습니다.

장비 등록

기존 전송 장비를 중앙 관리 환경에 연결하기

전환 대상이 정리되면 기존에 사용하던 장비를 중앙 관리 환경에 등록합니다.

각 장비의 연결 정보와 접근 범위를 설정하고, 중앙 관리 환경에서 파일 경로와 전송 작업을 확인할 수 있도록 구성합니다.

장비 연결 후에는 파일 작업에 사용하는 경로와 접근 범위를 확인합니다.

구성 항목설정 내용
Device중앙 관리에 연결할 기존 장비
Connection장비 연결 정보
Path파일 작업에 사용할 경로
Access파일 확인과 전송에 사용할 접근 범위
Status현재 장비 연결 상태

장비를 등록하면 기존 파일 작업 환경을 중앙 관리 구조에서 확인하고 다음 전환 작업을 진행할 수 있습니다.

작업 전환

기존 파일 흐름을 중앙 관리 환경의 작업으로 연결하기

장비를 연결한 후에는 기존 전송 작업의 파일 흐름을 중앙 관리 환경에서 구성합니다.

기존 Source와 Target의 관계를 확인하고, 현재 사용 중인 파일 경로와 전송 방향을 기반으로 중앙 관리 환경의 Flow에 연결합니다.

text
Existing Source
       ↓  

Central Flow
       ↓  

Existing Target

기존 작업에 자동 실행 조건이나 후속 처리 과정이 포함되어 있다면 해당 조건과 작업 순서를 함께 연결할 수 있습니다.

예를 들어 기존 장비에서 일정에 따라 실행하던 파일 전송 작업을 중앙 관리 환경의 실행 조건과 연결하고, 전송 완료 후 실행되는 후속 작업까지 하나의 Flow로 구성할 수 있습니다.

전환 검증

기존 작업의 실행 결과와 파일 처리 상태 확인하기

작업 구성이 완료되면 실제 파일 전송을 실행해 기존 환경에서 사용하던 작업 흐름이 중앙 관리 환경에서도 설정한 기준에 따라 처리되는지 확인합니다.

테스트 파일을 기준으로 Source와 Target의 파일 경로, 처리 대상, 실행 시간과 전송 결과를 확인합니다.

주요 확인 항목은 다음과 같습니다.

확인 항목확인 내용
Source기존 파일이 준비되는 위치
Target파일이 반영되는 대상 위치
Files처리된 파일 수
Size전체 전송 용량
Time실행 시간
Status작업 처리 결과

전환 검증을 통해 기존 작업의 파일 처리 결과와 중앙 관리 환경의 실행 결과를 확인하고 운영 기준을 정리할 수 있습니다.

통합 운영

분산된 장비의 전송 작업과 실행 상태를 중앙에서 관리하기

전환이 완료된 장비와 작업은 중앙 관리 화면에서 함께 관리할 수 있습니다.

연결된 Device와 구성된 Flow를 확인하고, 각 작업의 실행 기록과 현재 상태를 Runs에서 통합적으로 확인합니다.

운영자는 다음 정보를 하나의 관리 환경에서 확인할 수 있습니다.

  • 연결된 장비 목록과 상태

  • 장비별 파일 전송 작업

  • 구성된 Flow와 실행 조건

  • 현재 실행 중인 작업

  • 최근 완료된 작업 결과

  • 장비와 작업별 Activity Log

새로운 장비나 파일 작업이 추가되는 경우에도 동일한 중앙 관리 환경에 연결해 관리 범위를 확장할 수 있습니다.

문제 대응

전환 과정의 연결과 실행 상태를 확인하고 조정하기

전환 과정에서 추가 확인이 필요한 작업이 발생하면 장비 연결 상태와 파일 경로, 접근 범위, 전송 작업 설정을 순서대로 확인합니다.

RunsAudit Log를 활용하면 어떤 장비와 작업 단계에서 확인이 필요한지 실행 기록을 기준으로 파악할 수 있습니다.

text
Run 확인
   ↓  

장비 연결 상태 확인
   ↓  

파일 경로 확인
   ↓  

접근 범위 확인
   ↓  

Flow 설정 확인
   ↓  

환경 조정
   ↓  

재실행
   ↓  

결과 확인
점검 항목확인 내용
장비 연결기존 장비의 중앙 환경 연결 상태
파일 경로Source와 Target 경로
접근 범위파일 확인과 전송 권한
작업 설정전송 방향과 실행 조건
실행 기록Run과 Audit Log

이 과정을 통해 전환 대상 장비와 작업의 상태를 확인하고, 필요한 설정을 조정한 후 다시 실행해 중앙 관리 환경에서 파일 전송 작업을 운영할 수 있습니다.

개발자

기존 전송 명령을 INNORIX CLI로 바꾸기

이 문서의 예제는 파이썬이 아니라 셸입니다. 전환 대상이 API가 아니라 명령줄 도구이기 때문입니다.

전환 대상 파악

현재 돌고 있는 전송 명령 정리하기

먼저 무엇이 돌고 있는지 목록으로 만듭니다. 이 과정에서 이미 쓰지 않는 스크립트가 상당수 나옵니다.

bash
# transfer jobs registered in cron
crontab -l | grep -E 'scp|rsync|sftp|ftp'

# transfer commands called inside scripts
grep -rnE '\b(scp|rsync|sftp|ftp|lftp)\b' /opt/scripts --include='*.sh'
스크립트명령소스대상실행 주기
nightly-backup.shrsync -avz --delete/data/dbbackup01:/backup/db매일 02:00
send-report.shscp/data/report.pdfhq01:/incoming매일 08:00

이 표가 이후 검증 단계의 체크리스트가 됩니다.

로그인과 프로파일

키와 비밀번호를 계정 로그인 세션으로 대체하기

bash
innorix login

대화형으로 계정과 비밀번호를 입력하면 세션이 로컬에 저장되고 이후 명령이 재사용합니다.

cron이나 CI에서는 대화형 입력을 받을 수 없으므로 환경 변수로 자격을 넘깁니다.

bash
export INNORIX_EMAIL="ops@example.com"
export INNORIX_PASSWORD="..."

innorix login --non-interactive

비밀번호를 스크립트에 그대로 쓰지 말고 시크릿 저장소에서 주입합니다. 기존 SSH 키를 파일로 두고 쓰던 것과 같은 원칙입니다.

여러 환경을 오간다면 프로파일로 나눕니다.

bash
innorix profile add prod  --workspace <workspaceId>
innorix profile add stage --workspace <workspaceId>

innorix --profile prod cp /data/report.pdf name:hq01:/incoming/

전환하면 서버별 개인키 파일과 배포 절차, known_hosts 관리, 계정 만료 시 각 서버를 돌며 갱신하는 작업이 사라집니다.

장비 표기 전환

호스트 주소를 장비 식별자 표기로 바꾸기

bash
innorix devices          # list the registered devices
표기쓰는 경우
이름name:backup01사람이 읽는 스크립트
장비 IDid:dev-8a3f...이름이 바뀔 수 있는 환경
IPip:10.0.2.31기존 스크립트에서 그대로 옮길 때
MACmac:00:1A:...IP가 유동적인 환경
bash
# before
scp /data/report.pdf ops@10.0.2.31:/incoming/

# after
innorix cp /data/report.pdf ip:10.0.2.31:/incoming/

계정 부분(ops@)이 사라집니다. 누가 보내는지는 로그인 세션이 결정하므로 경로에 계정을 넣지 않습니다. 이 차이 때문에 기존 명령을 정규식으로 일괄 치환하면 어긋납니다.

명령 치환

기존 명령을 대응하는 CLI 명령으로 바꾸기

기존전환
scp SRC user@host:DSTinnorix cp SRC name:host:DST
scp -r DIR user@host:DSTinnorix cp -r DIR name:host:DST
rsync -av SRC user@host:DSTinnorix sync SRC name:host:DST
sftp 배치 스크립트innorix cp 여러 줄 또는 innorix sftp
ftp 배치 스크립트innorix ftp 호환 모드

스크립트를 최소한으로 건드리려면 호환 서브명령을 씁니다. 기존 명령의 인자 구조를 그대로 받습니다.

bash
- rsync -av --exclude='*.tmp' /data/out/ backup01:/backup/
+ innorix rsync -av --exclude='*.tmp' /data/out/ name:backup01:/backup/

원격 장비 사이를 중계 서버 없이 직접 전송할 수 있습니다. 이 구간이 있다면 전환의 가장 큰 이득입니다.

bash
# before: download locally, then send again
scp remote1:/data/a.tar /tmp/ && scp /tmp/a.tar remote2:/incoming/

# after: a single hop
innorix cp name:remote1:/data/a.tar name:remote2:/incoming/

옵션 대응

유지되는 옵션과 제거할 옵션 구분하기

구분옵션처리
유지-r · -a재귀
유지--exclude제외 패턴
유지--bwlimit대역폭 제한
유지--partial--resume중단 지점 재개
유지-n · --dry-run모의 실행
제거-z전송 계층이 자체 처리
제거-p · -o · -g대상 장비 정책을 따름
제거-e ssh ...전송 채널이 다름
추가--encrypt전송 구간 암호화
추가--verify sha256전송 후 체크섬 대조

--delete는 지원되지 않습니다. 소스에 없는 파일을 대상에서 지우는 동작이라 정규식 치환으로 넘기면 안 됩니다.

bash
# before
rsync -av --delete /data/out/ backup01:/backup/

이 동작이 필요하면 대상 정책을 overwrite로 두고 오래된 파일 정리는 대상 장비의 별도 작업으로 분리하거나, 동기화 자동화로 옮겨 서버가 양쪽 상태를 맞추게 합니다. --delete가 붙은 스크립트는 하나씩 확인합니다.

스크립트와 예약 작업

종료 코드 분기와 예약 등록은 그대로 두고 호출부만 바꾸기

CLI도 성공 시 0, 실패 시 0이 아닌 값을 돌려줍니다. 기존 분기가 그대로 동작합니다.

bash
#!/bin/bash
set -euo pipefail

SRC=/data/report.pdf
DST=name:hq01:/incoming/

innorix login --non-interactive || exit 1

if innorix cp "$SRC" "$DST"; then
    logger -t send-report "전송 완료"
else
    logger -t send-report "전송 실패 (코드 $?)"
    exit 1
fi

if 분기, set -e, trap 모두 바꿀 필요가 없습니다. cron 항목과 systemd 유닛 파일도 그대로 두고 스크립트 안쪽 한 줄만 고칩니다.

기존에 rsync -v 출력을 파일로 남기던 부분은 형식이 달라집니다. 로그를 파싱하는 후속 처리가 있다면 함께 확인합니다.

검증과 롤백

기존 방식과 결과를 비교하고 롤백 절차 준비하기

실제로 보내기 전에 무엇이 대상인지 확인합니다.

bash
innorix sync -n /data/out/ name:backup01:/backup/

기존 rsync -n 출력과 대상 목록을 비교합니다. 개수가 다르면 제외 패턴 해석이 다른 것이므로 옵션을 다시 봅니다.

bash
# send to both paths during the verification period
rsync -av /data/out/ backup01:/backup-old/
innorix sync /data/out/ name:backup01:/backup-new/

diff <(ssh backup01 'find /backup-old -type f -printf "%P %s\n" | sort') \
     <(ssh backup01 'find /backup-new -type f -printf "%P %s\n" | sort')

전환한 스크립트에서 기존 명령을 지우지 말고 주석으로 남겨 둡니다.

bash
# rsync -av --exclude='*.tmp' /data/out/ backup01:/backup/
innorix rsync -av --exclude='*.tmp' /data/out/ name:backup01:/backup/

롤백할 때 주석 한 줄을 되돌리면 됩니다. 키 회수는 마지막에 합니다. 키를 먼저 폐기하면 롤백할 수 없습니다.