codebuild에서 rails db : migare를 실행할 때 RDS 연결 오류

codebuild로 빠져서 메모를 남깁니다.

codebuild



buildspec.yml을 읽고 실행 중입니다.- docker run --rm --env RAILS_ENV=$RAILS_ENV --env SECRET_KEY_BASE=$SECRET_KEY_BASE --env DB_HOST=$DB_HOST --env DB_NAME=$DB_NAME --env DB_USERNAME=$DB_USERNAME --env DB_PASSWORD=$DB_PASSWORD $REPOSITORY_URI:latest rails db:migrate

에러 코드



그러나 mysql 연결 오류가 발생합니다.Mysql2::Error::ConnectionError: Can't connect to MySQL server on 'hoge.fuga.ap-northeast-1.rds.amazonaws.com' (110)

조사



검토한 곳


  • 동일한 private 네트워크의 EC2에서 RDS로 mysql 연결 확인.
  • 보안 그룹 설정 확인.
  • IAM의 역할 설정 확인.
  • codebuild의 환경 변수 확인.

  • 각각 확인을 했지만 개선되지 않았다.
    유식자의 지적에 따라 VPC 항목에 설정이 들어 있지 않은 것이 발각.

    원인



    codebuild의 설정에 있어서, 환경의 VPC 지정, 서브넷, 보안 그룹을 지정할 수 없었기 때문에, NW 접속 허가되지 않아 에러가 발생했다.


    위의 이미지는 codebuild 설정의 요약 표시. 여기에서는 VPC나 서브넷 등이 표시되지 않는다.


    상세 화면에서 처음으로 서브넷 설정 화면이 표시됩니다.
    등록시 서브넷 지정이 필수는 아니므로 설정되지 않은 상태로 통과 할 수 있습니다.

    대응



    VPC, 서브넷, 보안 그룹을 설정하여 해결했습니다.

    반성점



    codebuild의 환경 변수가 VPC나 서브넷 대상 항목이 필수라고 생각하고 있었다.
    개요 표시에서도 VPC나 서브넷도 포함해 표시되고 있다고 생각하고 있었다.

    추억과 절구 EYE로 시간을 낭비 소비했기 때문에 반성합니다. 추억 무서워.

    좋은 웹페이지 즐겨찾기