VPC의 Lambda에서 boto3을 사용할 때 조심하십시오.

소개



이 기사는, 사회인 2년째 AWS, python 초보자가 공부한 것을 정리한 것입니다.
잘못되어 있는 점, 개선점등 있었습니다 지적해 주시면 매우 고맙습니다.

이 기사에 대하여



VPC의 Lambda에서 boto3을 사용하여 매개 변수 저장소에서 DB 연결 정보를 얻으려고 시도했습니다.
자신을 위한 비망록으로서, 또 초보자가 같은 곳에서 끼지 않게 끼워진 내용에 대해 기재해 둡니다.

결론



VPC의 프라이빗 서브넷에 위치한 Lambda에서 인터넷을 통해 boto3을 사용하려면 다음 중 하나를 수행해야 합니다.
  • public 서브넷의 NAT 게이트웨이를 통과합니다.
  • private link를 사용한다.

  • ■참고
    htps : // 아 ws. 아마존. 이 m / jp / p Remi m Support rt / k w wd d - r / mb입니다 - vpc

    하고 싶은 일



    파라미터 스토어로부터 DB 접속 정보를 취득해, Lambda로부터 DB에 대해서 SELECT, INSERT를 실시하는 것.

    전제


  • Lambda에 매개 변수 저장소에서 매개 변수를 검색하기위한 IAM 정책 (ssm : GetParameters, sts : AssumeRole)이 부여되었습니다
  • Lambda와 DB는 동일한 프라이빗 서브넷에 있습니다.

    오류 내용


    2021-01-30T14:29:59.355Z 410cd8d5-7a8f-4c2a-a247-eff916e351f7 Task timed out after 3.00 seconds
    

    원인



    기본적으로 Lambda는 추가 설정 없이 인터넷, Systems Manager 및 매개변수 저장소에 액세스할 수 있습니다.
    그러나 Amazon VPC의 Lambda 함수는 기본적으로 인터넷 및 파라미터 저장소에 대한 값에 액세스할 수 없습니다.

    마음대로 AWS내의 리소스에의 액세스는 좋은 느낌으로 라우팅해 준다고 생각했습니다. . .

    ■참고
    htps : // 아 ws. 아마존. 이 m / jp / p Remi m Support rt / k w wd d - r / mb입니다 - vpc

    해결책



    공용 서브넷에 NAT 게이트웨이를 배치하고 Lambda가 위치한 사설 서브넷에 다음 경로를 추가하면
    안전한 매개 변수 저장소에서 DB 연결 정보를 얻을 수있었습니다!

    0.0.0.0/0 NAT 게이트웨이



    마지막으로



    private link는 사용한 적이 없기 때문에 쫓아 보고 싶습니다.
  • 좋은 웹페이지 즐겨찾기