BLOG

리프트 앤 시프트’ 방식으로 SFTP 서버를 AWS로 마이그레이션하기 파트 2
작성일: 2020-04-03

글은 2019 7 8 게재한 리프트 앤 시프트’ 방식으로 SFTP 서버를 AWS로 마이그레이션 하기블로그 글의 업데이트 버전입니다.

 

다양한 산업군 및 지리적 위치에 있는 조직은 중요한 비즈니스 워크플로우의 일부로서 데이터를 교환합니다. 파일 전송 인프라와 높은 자본 비용을 관리해야 하는 운영 부담으로 인해 IT 예산이 낭비되는 경우가 종종 있습니다. 더 큰 문제는 이 예산 낭비로 인해 비즈니스 비즈니스 차별화를 위한 프로젝트 재원을 확보하지 못한다는 점입니다.  AWS는 기업이 이러한 과제를 해결하고 주요 인사이트에 직결되는 데이터를 도출할 수 있도록 AWS SFTP (AWS Transfer for SFTP)를 출시했습니다. 고객은 AWS SFTP를 통해 기존 파일 전송 인프라를 클라우드의 스토리지가 지원하는 완전 관리형 서비스로 교체할 수 있습니다. 이 서비스의 주요 목표 중 하나는 워크플로우 마이그레이션이 최종 사용자(SFTP 클라이언트 사용자)에게 방해가 되지 않도록 하는 것입니다. 따라서 AWS는고객이 애플리케이션 또는 계정 구성을 변경하지 않고도 서비스로 마이그레이션할 수 있도록 “리프트 앤 시프트”를 지원하는 기능을 설계했습니다.

 

SFTP 클라이언트의 관점에서 서버의 “ID”는 DNS 이름, IP 주소 및 SSH 호스트 키의 세 가지 요소로 구성됩니다. 오늘 블로그 포스팅으론 이러한 마이그레이션 진행 중, 기존 서버 ID를 어떻게 필요한 만큼 가져올 수 있는지, 그 방법에 대해 다뤄보겠습니다.

 

 

DNS 이식성

가장 간단한 리프트 앤 시프트 시나리오는 단순히 AWS SFTP 서버와 새 서버의 엔드 포인트를 가리키는 DNS CNAME 별칭을 생성하는 경우입니다. AWS SFTP 콘솔에서 현재 ISP 또는 Amazon Route 53을 통해 CNAME 레코드를 생성할 수 있습니다.

 

 

새 DNS 레코드를 게시하기 전에 새 서버에서 각 사용자의 계정을 만들어야 합니다. 이 작업을 수행하는 방법은 서비스를 사용한 최종 사용자 ID 관리  여부 또는 인증 및 액세스를 위한 고유 (사용자 지정) ID 공급자 관리 여부에 따라 다릅니다  .

온-프레미스 서버에서 자격 증명을 가져온 후 기존 홈 디렉토리를 미러링 하도록 폴더를 설정할 수 있습니다. Amazon S3 버킷 자체에서 이 작업을 수행하거나 AWS SFTP의 “HomeDirectoryMappings”기능을 사용하여 각 SFTP 사용자에 대한 논리적 디렉토리 구조를 생성할 수 있습니다. 어느 쪽이든 사용자가 SFTP 클라이언트와 연결하면 동일한 환경을 볼 수 있습니다.

 

 

IP 주소 이식성

SFTP 사용자가 엄격한 화이트리스트 기능을 가진 방화벽 뒤에 있으면 DNS 이식성이 충분하지 않을 수 있습니다. 서버와 연관된 실제 IP 주소는 유지되어야 합니다. 이는 AWS SFTP에서 Amazon EC2 Networking의 BYOIP (Bring Your Own IP Address) 기능으로 가능합니다. 이를 통해 온 프레미스 네트워크에서 AWS 계정으로 퍼블릭 IPv4 주소를 가져올 수 있습니다. 주소는 계속 소유한 상태이지만 AWS는 인터넷을 통해 전송합니다.

.

기존 IP 주소를 새 서버에 바인딩하는 몇 가지 단계가 있습니다.

 

  1. BYOIP 설명서에설명된 대로 IP 주소를 VPC로 가져옵니다. 고가용성을 위한 AWS 모범 사례는 일반적으로 각 가용 영역에 하나씩 여러 개의 IP 주소를 사용하는 것입니다. 기존 사용자 기반의 제약 조건에 따라 적절하거나 적합하지 않을 수 있습니다.

 

  1. 필요한 경우 필요한 서브넷 수로 새 VPC를 생성하세요. 또한, 인터넷을 통해 서버에 액세스할 수 있으므로 (“인터넷 연결”) VPC에인터넷 게이트웨이가연결되어 있어야 합니다. 또한 서브넷의 라우팅 테이블은 해당 인터넷 게이트웨이를 통해 전달해야 합니다.

 

  1. 엔드 포인트가 VPC에서 호스팅되는 인터넷 연결 서버만듭니다. 이미 서버를 만든 경우 먼저 서버를 중지한 다음 엔드 포인트 유형을 변경할 수 있습니다.
  2. 서버 생성 시 VPC의 기본 보안 그룹이 엔드 포인트에 자동으로 할당됩니다. 엔드 포인트와 연관된 보안 그룹을 수정하여 액세스할 수 있는 클라이언트의 소스 IP 주소를 추가할 수 있습니다. 서버에 연결할 수 없는 경우 보안 그룹 또는 엔드 포인트 서브넷 주변의 NACL에 지정된 규칙이 클라이언트 액세스를 허용하는지 확인하세요.

 

참고: AWS SFTP는 표준 SSH 포트 (TCP / 22)에서 SFTP 연결을 수신합니다. 기존 온-프레미스 서버가 다른 포트에서 수신 대기하고 해당 동작을 유지해야 하는 경우 여기의 지시 사항에 따라 수행할 수 있습니다. 궁극적으로 퍼블릭 인터넷과 서버의 VPC 엔드 포인트 간의 브리지로 Network Load Balancer를 사용하여 리스너 포트를 변경해야 합니다.

 

 

 

호스트 키 이식성

이를 통해 기존 SFTP 서버의“ID”( SSH 호스트 키) 의 세 번째이자 마지막 부분이 나타납니다 .

 

SFTP 클라이언트는 일반적으로 서버에 공개할 때 서버의 공개 키를 기억합니다. 키가 변경되면 연결이 안전하지 않을 수 있으며 클라이언트는 다음과 같은 결과에 대해 경고를 보냅니다.

 

$ sftp -i wayne-transfer-key1 wayne@my-sftp-server.example.com
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
SHA256:uRrhorK4Le+WPBS1ihytaHDHerBB+ZQi2Uq4kkuOrlU.
Please contact your system administrator.
Add correct host key in ~/.ssh/known_hosts to get rid of this message.
Offending RSA key in ~/.ssh/known_hosts:145
Password authentication is disabled to avoid man-in-the-middle attacks.
Keyboard-interactive authentication is disabled to avoid man-in-the-middle attacks.
Permission denied (publickey,password,keyboard-interactive).
Couldn't read packet: Connection reset by peer
$

 

고객은 AWS SFTP를 통해 원하는 호스트 키로 서버 를 생성하거나 업데이트할 수 있습니다. (호스트 키를 제공하지 않으면 AWS SFTP는 서버를 생성할 때 생성합니다)  AWS SFTP 콘솔에서는 호스트 키 업데이트 작업을 사용할 수 없지만, API 또는 CLI를 통해 수행할 수 있습니다.

 

$ aws transfer update-server --server-id s-9b87ba0ffcee4d158 \
        --host-key file://old-server-host-key
{
    "ServerId": "s-9b87ba0ffcee4d158"
}

참고: RSA 키 세트의 개인 정보 부분은 신중히 보호해야 합니다. 특히 호스트 키에 중요합니다. 호스트 키가 손상된 경우 모든 사용자에게 로테이션이 중단됩니다. 이에 따라, 키 파일을 업로드하고 확인하자마자 키 파일의 임시 사본을 삭제하는 것이 좋습니다.

 

$ aws transfer describe-server --server-id s-9b87ba0ffcee4d158 \
        --query Server.HostKeyFingerprint
"SHA256:FU8AqSf/Cu/wxT810IZq5DA74uYV4CGBKuGpsSiz4NY="
$ ssh-keygen -l -f old-server-host-key
2048 SHA256:FU8AqSf/Cu/wxT810IZq5DA74uYV4CGBKuGpsSiz4NY
$ rm old-server-host-key

 

안전한 곳에 개인 키 사본을 보관하세요. 업로드된 개인 키 자체 AWS SFTP 서비스에서 검색 없습니다.

 

이전 개인 키가 설치되면 리프트 및 시프트가 완료됩니다. 기존 사용자는 서버가 클라우드로 마이그레이션되었다는 사실을 인식하지 않고 항상 있는 것처럼 서버에 계속 연결합니다.

 

$ sftp -i wayne-transfer-key1 wayne@my-sftp-server.example.com
Connected to my-sftp-server.example.com.
sftp>

 

 

글을 마치며…

 

오늘은 SFTP 서버를 AWS로 마이그레이션하는 동안 기존 서버의 많은 정보를 전달하는 방법에 대해 설명해 드렸습니다. 여기에는 고유한 호스트 이름, 서버 엔드 포인트 IP 주소 및 호스트 키가 포함됩니다. 이 모든 것을 가지고 있으면 SFTP 사용자에게 지장을 주지 않으면서 SFTP 서버를 원활하게 마이그레이션할 수 있습니다. SFTP 서버를 AWS로 성공적으로 옮겼다는 것을 인식하지 못하고 항상 파일을 계속 연결하고 액세스합니다.

이렇게 되면제 Amazon S3에서 데이터를 사용할 수 있으므로 AWS에는 처리, 분석, AI / ML 등을 위해 이 데이터를 언락할 수 있는 다양한 옵션이 있습니다!

현재 Amazon S3에서 데이터를 사용할 수 있게 되면 AWS에서 처리, 분석, AI/ML 등을 위해 이 데이터를 활용할 수 있는 여러 가지 옵션을 이용할 수 있습니다.

지금 바로 SFTP 콘솔용 AWS Transfer를 방문하여 시작해 보십시오!

 

 

원문 URL: https://aws.amazon.com/ko/blogs/storage/lift-and-shift-migration-of-sftp-servers-to-aws/

** 메가존클라우드 TechBlog는 AWS BLOG 영문 게재 글 중에서 한국 사용자들에게 유용한 정보 및 콘텐츠를 우선적으로 번역하여 내부 엔지니어 검수를 받아서, 정기적으로 개제하고 있습니다. 추가로 번역 및 게재를 희망하는 글에 대해서 관리자에게 메일 또는 SNS 페이지에 댓글을 남겨주시면, 우선적으로 번역해서 전달 드리도록 하겠습니다.