로컬 머신과 AWS 인스턴스 간 파일 전송

안녕하세요 dev.to 독자 여러분!

소개



최근에 로컬 머신에서 원격 AWS 인스턴스로 파일을 전송해야 했습니다. 이전에 이 작업을 수행하지 않았기 때문에 빠른 인터넷 검색 후에 멋진 bash 명령scp(보안 사본)을 우연히 발견했습니다. 보안 키워드라는 이름을 보고 많은 솔루션이 있다고 생각하지만 다른 솔루션을 찾는 데 시간을 낭비하지 않았습니다. 따라서 어떻게 사용할 수 있는지 살펴 보겠습니다.

scp 명령



일반적으로 이 명령을 사용하여 3가지 유형의 파일 전송을 수행할 수 있습니다.
  • 로컬에서 원격 머신으로
  • 원격에서 로컬 컴퓨터로
  • 로컬 시스템을 사용하여 두 원격 시스템 간

  • 이 포스트에서는 처음 2가지 경우를 다룰 것입니다.
    scp 명령에 사용 가능한 옵션 목록을 얻으려면 scp help 다음을 실행할 수 있습니다.

    $ scp help
    usage: scp [-346BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file] [-l limit] [-o ssh_option] [-P port] [-S program] source ... target
    


    자세한 설명이 포함된 포괄적인 목록을 찾을 수 있습니다here.
    [-i identity_file] 매개변수는 AWS 인스턴스와 통신하는 경우에 사용됩니다. 서버와의 ssh 연결에도 사용되는 개인 키를 사용해야 하기 때문입니다.
    [-r Recursively copy entire directories] 매개변수는 전체 디렉토리를 전송하는 데 도움이 됩니다.

    로컬 -> 원격 파일 전송



    시나리오 - 로컬 머신의 다운로드 폴더에서 ec2-user 및 IP 주소192.168.1.1가 있는 AWS 서버로 이미지 전송:

    scp -i ~/.ssh/key ~/Downloads/image.png [email protected]:~/deployment/current/public 
    


    더 쉽게 이해할 수 있도록 명령을 분할해 보겠습니다.
  • -i ~/.ssh/key AWS 인스턴스와의 ssh 연결에도 사용하는 키인 identity_file에 대한 경로 지정
  • ~/Downloads/image.png 로컬 머신에서 전송하려는 파일의 경로 지정
  • [email protected] 원격 인스턴스의 AWS 사용자 및 IP 주소 지정
  • ~/deployment/current/public 원격 인스턴스의 대상 디렉토리 경로 지정(전송된 파일이 실행 후 존재할 위치)

  • 원격 -> 로컬 파일 전송



    시나리오 - AWS 서버에서 로컬 다운로드 폴더로 src 디렉토리 전송:

    scp -i ~/.ssh/key -r [email protected]:~/deployment/current/src ~/Downloads
    


    더 쉽게 이해할 수 있도록 명령을 분할해 보겠습니다.
  • -i ~/.ssh/key AWS 인스턴스와의 ssh 연결에도 사용하는 키인 identity_file에 대한 경로 지정
  • -r [email protected] AWS 사용자와 원격 인스턴스의 IP 주소를 지정합니다. 이번에는 -r 옵션을 사용하여 재귀적으로 디렉터리를 전송하고 싶다고 말합니다
  • .
  • ~/deployment/current/src AWS 서버에서 전송하고자 하는 디렉토리의 경로를 지정
  • ~/Downloads 로컬 시스템의 대상 디렉토리 경로 지정(전송된 파일이 실행 후 존재할 위치)

  • 결론


    scp는 로컬 및 원격 AWS 서버 간에 파일을 쉽게 전송할 수 있는 매우 강력한 명령입니다. 단락 중 하나에서 언급했듯이 사용할 수 있는 추가 옵션이 많이 있지만 기본 데이터 전송을 수행하려면 그 중 몇 가지만 필요합니다.

    서버 간에 파일을 어떻게 전송합니까? 🙃

    Cover image source

    좋은 웹페이지 즐겨찾기