제목 형식 변경!

지금까지 TIL을 작성하면서 일자로 기입을 하다보니 내가 정보를 어느 글에 작성했는지 긴가민가해서 이제부터는 제목에 핵심 정보를 넣어놔야겠다는 생각이 들었다. 이러한 결정을 내리는데에는 내가 작성한 TIL을 거의 다시 되돌아보지 않았다는 사실이 꽤 크게 작용했다. 내가 정리한 정보를 언젠간 다시 꺼내볼 수 있도록 가독성이라도 늘리는 것이 낫겠다는 마음가짐이다.

오늘 한 일

  • aws sam cli 배포 연습

AWS Proxy

AWS에서는 Lambda 함수와 RDS를 연동하기 위해 Database Proxy를 사용하는 것을 권장한다. 이렇게 사용하기 위해서는 Private VPC안에 있어야 한다. 이렇게 구성하게 되면, lambda는 proxy를 통해 RDS와 연동하게 된다.

  • RDS Proxy를 생성
  • Lambda에서 데이터베이스 프록시를 추가
  • Proxy의 엔드포인트를 SecretManager의 host를 변경한다.
  • 위 그림처럼 Lambda는 proxy의 엔드포인트와 연결된다.
  • Proxy에는 inbound 3306 포트를 열어줘야한다.

AWS SAM CLI을 이용한 배포

현업에서는 이전에 다뤘던 방식처럼 UI에서 직접 인프라를 다루는 것이 아니라 인프라를 스크립트화 해서 관리한다고 한다. 이를 위해서 AWS에서는 프레임워크로 SAM을 제공하고 있다. SAM을 통해 배포하는 과정을 한번 알아보자.

기초

필수 프로그램

  • AWS CLI : AWS 서비스를 PC에서 이용할 수 있게 해준다.
  • SAM CLI : 빌드하는데 사용할 수 있는 오픈 소스 프레임워크이다.

프로젝트 생성

  • SAM은 해당 폴더에서 초기화 명령어를 사용하여 프로젝트를 생성할 수 있다.
sam init

권한 설정

  • 나는 SAM CLI를 통해 배포를 하기 위해 IAM에서 ADMINGFULLACCESS 권한을 추가해주었다.

빌드/배포

  • 빌드
sam build
  • 배포
sam deploy --guided

// 첫 배포 이후로는 sam deploy 만으로도 충분하다.

개념 정리

배포를 완료하면 AWS에 다양한 리소스가 생성이 되는데, 이처럼 코드를 배포해서 인프라를 관리하는 방법을 IaC(Infrastructure as Code) 개념이라고 한다.

  • CloudFormation
    AWS리소스를 자동으로 생성해주는 서비스이다. 사용하려는 AWS 리소스를 템플릿 파일로 작성하면, CloudFormation이 이를 분석해서 AWS 리소스를 생성한다. 이렇게 생성된 리소스를 Stack이라고 한다.

    비슷한 제품으로 Terraform이 있다.

  • AWS (Lambda + VPC + NAT + SecretsManager + Proxy + RDS / API Gateway) 흐름도
    • AWS API Gateway를 통해 Lambda 함수와 통신
    • Lambda가 Private VPC 구조를 갖추고 있어도 API Gateway는 다 열려있다.


✔생각 정리

서버리스 개념 정리 차곡차곡 해나가자!

<참조>
AWS CloudFormation으로 인프라 자동화 시작하기:
https://medium.com/pplink/aws-cloudformation%EC%9C%BC%EB%A1%9C-%EC%9D%B8%ED%94%84%EB%9D%BC-%EC%9E%90%EB%8F%99%ED%99%94-%EC%8B%9C%EC%9E%91%ED%95%98%EA%B8%B0-9fe13cdf08c9
AWS API Gateway에 대한 자세한 개요:
https://www.alexdebrie.com/posts/api-gateway-elements/

profile
잘 부탁드려요

1개의 댓글

comment-user-thumbnail
2021년 11월 1일

잘 읽고 가요 ㅎㅎ 오늘도 수고하셨습니다!!!💪💪

답글 달기