[에러 일기] drone-scp error: error copy file to dest: ***, error message: dial tcp ***:22: i/o timeout

Turtle·2024년 8월 13일
0

에러 일기

목록 보기
3/6
post-thumbnail

👉문제 상황

Github Actions의 라이브러리인 scp-action을 사용해서 EC2에 빌드된 파일을 전송하는 단계에서 다음과 같은 에러가 발생했다.

Run appleboy/scp-action@v0.1.7
  with:
    host: ***
    username: ***
    key: ***
    source: project.jar
    target: /home/***/practice/tobe
    port: 22
    timeout: 30s
    command_timeout: 10m
    use_insecure_cipher: false
    rm: false
    debug: false
    strip_components: 0
    overwrite: false
    tar_dereference: false
    tar_exec: tar
    proxy_port: 22
    proxy_timeout: 30s
    proxy_use_insecure_cipher: false
  env:
    JAVA_HOME: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/17.0.12-7/x64
    JAVA_HOME_17_X64: /opt/hostedtoolcache/Java_Temurin-Hotspot_jdk/17.0.12-7/x64
/usr/bin/docker run --name d9dd3c388892daa64a68a2a03e19f14ca7ed_fae5c0 --label 13d9dd --workdir /github/workspace --rm -e "JAVA_HOME" -e "JAVA_HOME_17_X64" -e "INPUT_HOST" -e "INPUT_USERNAME" -e "INPUT_KEY" -e "INPUT_SOURCE" -e "INPUT_TARGET" -e "INPUT_PORT" -e "INPUT_PASSWORD" -e "INPUT_TIMEOUT" -e "INPUT_COMMAND_TIMEOUT" -e "INPUT_KEY_PATH" -e "INPUT_PASSPHRASE" -e "INPUT_FINGERPRINT" -e "INPUT_USE_INSECURE_CIPHER" -e "INPUT_RM" -e "INPUT_DEBUG" -e "INPUT_STRIP_COMPONENTS" -e "INPUT_OVERWRITE" -e "INPUT_TAR_DEREFERENCE" -e "INPUT_TAR_TMP_PATH" -e "INPUT_TAR_EXEC" -e "INPUT_PROXY_HOST" -e "INPUT_PROXY_PORT" -e "INPUT_PROXY_USERNAME" -e "INPUT_PROXY_PASSWORD" -e "INPUT_PROXY_PASSPHRASE" -e "INPUT_PROXY_TIMEOUT" -e "INPUT_PROXY_KEY" -e "INPUT_PROXY_KEY_PATH" -e "INPUT_PROXY_FINGERPRINT" -e "INPUT_PROXY_USE_INSECURE_CIPHER" -e "HOME" -e "GITHUB_JOB" -e "GITHUB_REF" -e "GITHUB_SHA" -e "GITHUB_REPOSITORY" -e "GITHUB_REPOSITORY_OWNER" -e "GITHUB_REPOSITORY_OWNER_ID" -e "GITHUB_RUN_ID" -e "GITHUB_RUN_NUMBER" -e "GITHUB_RETENTION_DAYS" -e "GITHUB_RUN_ATTEMPT" -e "GITHUB_REPOSITORY_ID" -e "GITHUB_ACTOR_ID" -e "GITHUB_ACTOR" -e "GITHUB_TRIGGERING_ACTOR" -e "GITHUB_WORKFLOW" -e "GITHUB_HEAD_REF" -e "GITHUB_BASE_REF" -e "GITHUB_EVENT_NAME" -e "GITHUB_SERVER_URL" -e "GITHUB_API_URL" -e "GITHUB_GRAPHQL_URL" -e "GITHUB_REF_NAME" -e "GITHUB_REF_PROTECTED" -e "GITHUB_REF_TYPE" -e "GITHUB_WORKFLOW_REF" -e "GITHUB_WORKFLOW_SHA" -e "GITHUB_WORKSPACE" -e "GITHUB_ACTION" -e "GITHUB_EVENT_PATH" -e "GITHUB_ACTION_REPOSITORY" -e "GITHUB_ACTION_REF" -e "GITHUB_PATH" -e "GITHUB_ENV" -e "GITHUB_STEP_SUMMARY" -e "GITHUB_STATE" -e "GITHUB_OUTPUT" -e "RUNNER_OS" -e "RUNNER_ARCH" -e "RUNNER_NAME" -e "RUNNER_ENVIRONMENT" -e "RUNNER_TOOL_CACHE" -e "RUNNER_TEMP" -e "RUNNER_WORKSPACE" -e "ACTIONS_RUNTIME_URL" -e "ACTIONS_RUNTIME_TOKEN" -e "ACTIONS_CACHE_URL" -e "ACTIONS_RESULTS_URL" -e GITHUB_ACTIONS=true -e CI=true -v "/var/run/docker.sock":"/var/run/docker.sock" -v "/home/runner/work/_temp/_github_home":"/github/home" -v "/home/runner/work/_temp/_github_workflow":"/github/workflow" -v "/home/runner/work/_temp/_runner_file_commands":"/github/file_commands" -v "/home/runner/work/GithubActions_EC2_CICDPipeline/GithubActions_EC2_CICDPipeline":"/github/workspace" 13d9dd:3c388892daa64a68a2a03e19f14ca7ed
drone-scp version: v1.6.14
tar all files into /tmp/DaKMNqIuiV.tar.gz
remote server os type is unix
scp file to server.
2024/08/13 02:19:41 error copy file to dest: ***, error message: dial tcp ***:22: i/o timeout
drone-scp error: error copy file to dest: ***, error message: dial tcp ***:22: i/o timeout

에러 메시지를 구글링했는데 나와 동일한 에러에 대한 이슈가 깃허브 리포지토리에 등록이 되어 있어 해당 이슈를 참고했다.

drone-scp error: error copy file to dest: ***, error message: Process exited with status 142
error copy file to dest: , error message: dial tcp i/o timeout

이 에러를 해결하기 위해 시도한 방법들은 아래와 같다.

  • SSH를 통한 모든 접속을 허용해야하므로 22번 포트가 보안그룹 인바운드 규칙에 제대로 추가되었는지를 확인
  • EC2_HOST(Public IPs)를 잘못 기입했는지 확인
  • 탄력적 IP를 EC2 인스턴스에 할당해주지 않았는지 확인
  • 인스턴스 메모리 용량의 부족때문은 아닌지 메모리 용량을 확인

appleboy에 등록된 이슈 중에 관련된 이슈가 두 개가 있었고 그 이슈를 확인했는데 현재 발생한 에러의 원인으로 여러 가지가 나와서 하나하나 다 해보았으나 결과적으로는 인스턴스 종료 후 탄력적 IP를 다시 할당하게 되면 그 IP를 리포지토리 Secrets에 반영해주어야 하는데 이 과정을 해주지 않아서 발생했던 에러였다.

♻️개선 결과

0개의 댓글

관련 채용 정보