Linux VM으로 파일 전송


Compute Engine VM 인스턴스에 파일을 전송할 때 워크스테이션 OS와 대상 인스턴스 OS에 따라 여러 가지 옵션을 사용할 수 있습니다.

워크스테이션 OS Linux VM으로 전송
Linux 또는 macOS
Windows

Cloud Storage를 통해 파일 전송

Cloud Storage 버킷을 개발자와 VM 간의 전송 지점으로 사용할 수 있습니다. 웹브라우저, Google Cloud CLI 또는 프로그래밍 언어를 사용하여 Cloud Storage 및 Compute Engine VM 간에 파일을 전송할 수 있습니다.

필요에 맞게 업로드 및 다운로드 단계에 다양한 사용자 인증 정보 유형을 사용할 수 있습니다.

Cloud Storage를 사용하여 컴퓨터와 VM 간에 파일을 전송하려면 다음을 수행합니다.

  1. 파일 전송에 사용할 기존 버킷이 없으면 Cloud Storage 버킷을 만듭니다.
  2. IAM 권한을 사용하여 버킷에 대한 액세스 권한을 수정합니다.
    • 버킷에 파일을 업로드하는 계정에 스토리지 객체 관리자 역할이 부여되어야 합니다.
    • 파일을 다운로드하는 계정에는 스토리지 객체 뷰어 역할이 부여되어야 합니다.
  3. 소스 기기에 로그인하고 버킷에 파일을 업로드합니다.
  4. 대상 기기에 로그인하고 파일 전송을 완료하는 버킷에서 파일을 다운로드합니다.
  5. 선택사항: 더 이상 필요하지 않은 파일을 삭제하여 스토리지 요금이 청구되지 않게 합니다.

다른 방향으로 파일을 전송하려면 이 프로세스를 반대로 수행하면 됩니다. 버킷에 대한 쓰기 액세스 권한이 파일을 업로드하는 계정에 있는지 확인합니다.

SSH-in-browser를 통해 파일 전송

SSH-in-browser를 사용하여 VM에 SSH 연결을 설정할 수 있으면 이 연결을 사용하여 VM과 파일을 주고받을 수 있습니다.

VM에 업로드

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 가상 머신 인스턴스 목록에서 연결할 인스턴스 행의 SSH를 클릭합니다.

    인스턴스 이름 옆에 있는 SSH 버튼

  3. 연결이 설정되면 업로드 아이콘 을 클릭합니다.

    업로드 버튼

    업로드 대화상자가 열립니다.

  4. 업로드할 파일을 선택합니다.
  5. 파일 업로드를 클릭하여 파일을 업로드합니다. 파일이 /home/USER 디렉터리에 업로드됩니다.

VM에서 다운로드

  1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  2. 가상 머신 인스턴스 목록에서 연결할 인스턴스 행의 SSH를 클릭합니다.

    인스턴스 이름 옆에 있는 SSH 버튼

  3. 연결이 설정되면 다운로드 아이콘 을 클릭합니다.

    다운로드 버튼

    다운로드 대화상자가 열립니다.

  4. 경로 텍스트 상자에 다운로드할 파일의 상대 파일 경로를 입력합니다.
  5. 다운로드를 클릭하여 파일을 다운로드합니다. 파일이 워크스테이션의 기본 다운로드 폴더로 다운로드됩니다.

Google Cloud CLI를 사용하여 파일 전송

Google Cloud CLI는 설정된 SSH 연결을 통해 보안 복사 프로토콜(SCP) 파일 전송 유틸리티를 제공합니다.

SCP를 사용하여 파일을 전송하려면 다음을 수행합니다.

  1. 방화벽 규칙을 검토하고 포트 22에서 SSH 연결이 허용되는지 확인합니다. 그렇지 않은 경우 SSH 방화벽 규칙을 생성합니다.
  2. 전송할 파일이 포함된 소스 기기에 gcloud CLI가 설치되어 있는지 확인합니다.
  3. gcloud compute scp 명령어를 사용하여 파일을 대상 머신으로 전송합니다.

다음은 파일을 워크스테이션에서 VM의 홈 디렉터리로 복사하는 예시입니다.

gcloud compute scp LOCAL_FILE_PATH VM_NAME:REMOTE_DIR

다음을 바꿉니다.

  • LOCAL_FILE_PATH: 머신에 있는 파일 경로입니다.
  • VM_NAME: VM의 이름입니다.
  • REMOTE_DIR: 원격 머신의 디렉터리입니다.

원격 머신에서 반대로 파일과 디렉터리를 복사할 수도 있습니다. 다음 예시에서는 디렉터리를 소스에서 대상으로 재귀적으로 복사합니다.

gcloud compute scp --recurse VM_NAME:REMOTE_DIR LOCAL_FILE_PATH

자세한 내용은 gcloud compute scp 참고 문서를 확인하세요.

Linux 및 macOS 워크스테이션의 SCP를 사용하여 파일 전송

scp 명령줄 도구는 gcloud compute scp 명령어와 작동 방식이 유사하지만 수동으로 SSH 키를 관리해야 합니다.

SCP를 사용하여 파일을 전송하려면 VM에서 사용하는 네트워크에 포트 22의 SSH 연결을 허용하는 방화벽 규칙이 있어야 합니다. Google Cloud 콘솔에서 tcp:22 연결을 허용하는 방화벽 규칙을 찾으면 이 방화벽 규칙이 존재하는지 확인할 수 있습니다.

방화벽 규칙으로 이동

22 포트에서 SSH 연결을 허용하는 방화벽 규칙이 없으면 방화벽 규칙을 만듭니다.

scp 도구는 표준 SSH를 사용하여 인스턴스에 연결하는 데 사용하는 것과 동일한 키 파일을 사용합니다.

  1. Google Cloud 콘솔 프로젝트 또는 VM 인스턴스에 공개 키를 아직 적용하지 않았다면 SSH 키 쌍을 생성하고 공개 키를 프로젝트 또는 인스턴스 메타데이터에 추가합니다

  2. 파일을 전송할 VM의 외부 IP를 찾습니다. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

    VM 인스턴스로 이동

  3. scp 도구를 사용하여 파일을 워크스테이션에서 대상 VM의 홈 디렉터리로 복사합니다. 이 예시에서 비공개 키는 ~/.ssh/my-ssh-key입니다.

    scp -i ~/.ssh/my-ssh-key LOCAL_FILE_PATH USERNAME@IP_ADDRESS:~
    

    다음을 바꿉니다.

    • LOCAL_FILE_PATH: 업로드할 로컬 파일의 이름입니다.
    • USERNAME: 사용자 이름입니다.
    • IP-ADDRESS: VM의 외부 IP 주소입니다.

소스 변수와 대상 변수를 반대로 바꿔 파일을 VM에서 로컬 워크스테이션으로 복사할 수도 있습니다. 이 예시에서는 파일을 VM에서 워크스테이션의 특정 경로로 복사합니다.

scp -i ~/.ssh/my-ssh-key USERNAME@IP_ADDRESS:REMOTE_FILE_PATH LOCAL_FILE_PATH

다음을 바꿉니다.

  • USERNAME: 사용자 이름입니다.
  • IP_ADDRESS: VM의 외부 IP 주소입니다.
  • REMOTE_FILE_PATH: 다운로드할 원격 파일의 이름입니다.
  • LOCAL_FILE_PATH: 워크스테이션에서 파일을 다운로드할 위치입니다.

Windows 워크스테이션의 WinSCP를 사용하여 파일 전송

Windows 워크스테이션에서 WinSCP 클라이언트를 사용하면 그래픽 파일 브라우저 인터페이스를 통해 인스턴스의 파일을 관리할 수 있습니다.

WinSCP는 PuTTY를 사용하여 VM에 연결하는 데 사용하는 것과 동일한 키 파일을 사용합니다.

  1. 인스턴스에 키 기반 SSH 인증을 구성하지 않은 경우에는 다음 단계를 따릅니다.

    1. PuTTYgen을 사용하여 SSH 키 쌍을 만듭니다. 비공개 SSH 키는 PuTTYgen에서 만든 키의 기본값인 .ppk 형식을 사용해야 합니다.

    2. 공개 SSH 키를 프로젝트의 메타데이터 또는 VM의 메타데이터에 추가합니다. 자세한 내용은 프로젝트 메타데이터에 SSH 키 추가 또는 인스턴스 메타데이터에 SSH 키 추가를 참조하세요.

  2. 파일을 전송할 VM의 외부 IP를 찾습니다.

    1. Google Cloud 콘솔에서 VM 인스턴스 페이지로 이동합니다.

      VM 인스턴스로 이동

    2. VM 목록에서 VM의 외부 IP 열에 있는 외부 IP 주소를 찾습니다.
  3. WinSCP를 다운로드하고 설치합니다. 기본 설치 설정은 대부분의 사용자에게 적합합니다.

  4. WinSCP 프로그램을 시작합니다. 연결 설정을 구성할 수 있는 로그인 창이 열립니다.

  5. WinSCP에서 연결 설정을 구성합니다.

    1. 파일 프로토콜 필드에서 파일 전송 프로토콜로 SCP를 선택합니다.

    2. 호스트 이름 필드에서 연결하려는 VM의 외부 IP 주소를 지정합니다.

    3. 사용자 이름 필드에서 프로젝트에 액세스할 때 사용하는 Google 사용자 이름을 지정합니다. 이 예시에서 사용자는 example-user입니다.

      파일 프로토콜을 SCP로, 호스트 이름을 104.196.31.103으로, 사용자 이름을 example-user로 설정

  6. 고급 드롭다운 목록을 클릭하여 고급 설정을 열고 SSH > 인증으로 이동합니다.

  7. 비공개 키 파일 상자에서 VM용으로 만든 SSH 키 쌍의 비공개 키 파일 경로를 지정합니다.

    고급 사이트 설정 대화상자에서 비공개 키 파일을 my-ssh-key.ppk로 설정

  8. 확인을 클릭하여 고급 설정을 저장합니다.

  9. 로그인을 클릭하여 VM에 연결합니다. 연결에 성공하면 창 왼쪽에 로컬 파일 시스템이 열리고, 오른쪽에 VM의 파일 시스템이 열립니다. 이 파일 시스템 내의 다른 디렉터리로 이동하여 파일을 드래그해서 VM으로 전송하거나 인스턴스에서 파일을 가져올 수 있습니다.

  10. VM의 홈 디렉터리 외부에 있는 대부분의 파일에 대한 관리 권한이 없을 것입니다. VM의 홈 디렉터리로 이동합니다.

    /home/USERNAME
    
  11. WinSCP 인터페이스를 사용하여 워크스테이션과 VM 간에 파일을 이전합니다.

  12. VM에 파일을 복사한 후 전체 sudo 권한으로 파일을 실행하거나 이전할 수 있도록 인스턴스에 연결합니다.

다음 단계