220825

HyeonKi Jo·2022년 8월 25일
0
post-thumbnail

오늘의 할일

  • S3 -> Lambda -> RDS 총 테스트
  • 데이터베이스 스키마 정리하기
  • 데이터베이스 스키마에 맞게 RDS저장하기
  • 보안 및 최소권한 정의
  • 마지막으로 이미지 분석 아키텍처 CI/CD화 하기

S3 -> Lambda -> RDS 총 테스트

어제 했던 것.

  • 새로운 계정 생성하여 인프라 구축
  • Cloud9에서 코딩
  • RDS, Lambda연결

이슈

  • 새로운 계정을 생성했더니 S3, RDS, Lambda, VPC에서 문제없이 작업했지만, 생각치도 못한 Lambda Test환경에서 권한문제가 발생하였다.
  • 그래서 다시 루트 계정으로 접속하였으나, 작업 계정으로 생성한 Cloud9에 접근할 수 없었다.
  • 따라서 오늘은 작업 계정으로 Cloud9으로 코드 테스트를 진행하고, RDS와 연결 후, S3와 연결하며 권한을 추가해보겠다.

Cloud9 접속

  • 어제 삭제하지 않았던 Environment가 아직 실행중이다.
  • 코드가 남아있기 때문에 어제 제거하지 않았다.

RDS 생성

  • 퍼블릭 액세스가 불가능하고, NEW-PUBLIC_2A에 있는 가용영역을 가진 RDS를 생성했다.
  • 초기 데이터베이스틑 item_ingredient라는 이름으로 생성해준다.

S3 생성

  • 모든 퍼블릭 액세스를 비활성화한다.
  • 기본 암호화를 활성화한다.
  • 사용할 3개의 디렉토리를 생성해준다.

Cloud9 환경

  • pip install pymysql
  • pip install pandas
  • pip install google google-cloud google-cloud-vision google-cloud-vision google-api-python-client wget pillow

RDS 연결 테스트

  • 끄아만ㅇㅍㅁ와ㅓㅗ햐ㅕㄷㅈㅎㅁ ㅇ 됬다!

Lambda에 이식

  • cp -r /home/ec2-user/.local/lib/python3.7/site-packages/* ./lambda/
  • 모듈 모두 가져오기
  • 모듈을 모두 가져오니 위와같이 뭔가 많아졌다.
  • 압축하고 S3에 업로드한다.
  • aws s3 cp ../lambda_source.zip s3://s3.cocudeny/Source_Code/


  • ...? S3에서 가져올 수 없다. (250Mb)가 넘어서 S3에서 소스코드를 가져올 수 없다.
  • 처음에 실습했던 대로 ECR에 올려서 사용해보자

ECR 생성

  • 프라이빗환경에서 리포지토리를 생성해준다.
  • 권한에 문제가 생겨 ECR을 생성해줄 수 없다. 권한을 추가하자
  • EC2InstanceProfileForImageBuilderECRContainerBilds를 추가해주었다.
  • 안된다. 이것은 놔두고 먼저 연결이 중요하니 root계정으로 생성해준다.
  • 잘 생성되었다.
  • 오른쪽 푸시 명령 보기를 클릭해서 Push해준다.
  • 잘 올라왔다.

Lambda함수생성

컨테이너 이미지로 Lambda생성

  • 컨테이너 이미지로 Lambda를 생성한다.
  • 여기서 프라이빗 이미지에 접근할 권한이 없기때문에 Root계정으로 접속했다.

S3 트리거 추가

구성

  • 테스트를 위해 제한시간을 최대시간인 15분으로 준다.
  • 다음과 같이 DB에 로그인 할 정보를 환경변수로 준다.

  • VPC에 연결되어있는지 확인한다.

해결할 에러

  • S3에 커넥션 에러가 존재한다.
  • Cloud9에서는 잘 가져오는것을 보면 Lambda계정에 문제가 있는 것 같다..
profile
Talking Potato

0개의 댓글