API Gateway, Lambda, ElastiCache

Volc·2025년 2월 28일
0

AWS

목록 보기
12/15
post-thumbnail

API Gateway, Lambda, ElastiCache, S3 구성을 해보자.

보안 그룹 생성

  • AWS Console에서 VPC를 입력하여 들어간다.
  • 특정 IP와 port에서만 접근 하는 것을 허용하기 위해 만든다.
  • 왼쪽 목록에서 보안 그룹을 선택하여 보안 그룹을 생성한다.
  • valkey의 보안 그룹
    • valkey는 lambda로부터만 접근 가능하도록 inbound만 설정해준다.
  • lambda의 보안 그룹
    • lambda는 s3와 valkey 접근을 위해 outbound 설정을 해준다.

VPC 내에 ElastiCache 구성

  • ElastiCache에는 3가지가 있다. valkey, memcached, redis oss
    • Memcached vs RedisOSS
    • Memcached vs RedisOSS vs Valkey
  • RedisOSS가 가장 안정적이지만 비용과 성능면에서 Valkey가 좋아 Valkey를 사용해보았다.
  • valkey 구성
    • AWS Console에서 ElastiCache에 들어가 Valkey 캐시 생성을 한다.
    • 배포 옵션이 서버리스와 자체 캐시 설계로 나누어진다.
      • 서버리스는 AWS가 리소스 증가에 따라 자동으로 확장 축소가 된다. 기본적으로 클러스터 모드이다.
      • 자체 캐시 설정에는 간편 생성과 클러스터 캐시가 있는데 클러스터 캐시는 직접 클러스터 모드, 위치, 노드 유형, 샤드 수 등을 상세하게 설정할 수 있다.
  • 빠르게 구성하고 관리 포인트를 덜기 위해 필자는 서버리스로 구성했다.
  • 설정
    • 캐시의 이름과 엔진 버전을 선택한다.
  • 기본 설정
    • customer account 즉 회사에서 사용하는 계정인 경우 elasticache는 vpc 내에 생성해야한다.
    • 서버리스에서는 subnet을 2개 또는 3개 선택해야한다. 필자는 vpc와 subnet이 나누어져 있어 리소스가 가장 널널한 subnet을 선택하였다.
  • 보안
    • 보안 설정 사용자 지정으로 보안 설정을 하면 사용자 별로 접근 권한을 줄 수 있다.
    • 위에서 만든 보안 그룹으로 설정해주자.
  • 구성
    • 생성 후 사용자 관리에 들어가 사용자를 생성해준다.

      ACL 의 명령어 중 하나로 엑세스 문자열에 on ~* +@all 을 넣어준다.
      on : 사용자를 활성화
      ~* : 모든 키에 대한 액세스를 허용
      +@all : 모든 명령어를 허용

    • 사용자 그룹 관리에 들어가 사용자 그룹을 생성해주자.
      • 사용자를 위에서 만든 사용자로 선택해준다.
    • 이후 다시 Valkey를 선택하여 수정을 누른 후 액세스 제어에 사용자 그룹을 선택해준다.

Role 생성

  • lambda 함수에 권한을 부여하기 위해 Role을 생성한다.
  • role을 검색을 통해 추가를 해준다. AWSLambdaBasicExecutionRole, AmazonEC2FullAccess, AmazonElastiCacheFullAccess만 있으면 된다.

ECR 생성

  • aws console에 elastic container registery를 검색하여 repository를 생성한다.

Lambda 생성

  • aws console에 lambda를 입력하고 함수를 생성한다.
    • 함수 생성은 위에서 ECR에 배포한 컨테이너 이미지를 선택해준다.
    • 실행 역할은 위에서 만든 role을 선택해준다.
  • 생성 된 함수에 들어가 일반 구성을 편집해준다.
  • 메모리를 1024MB로 증가, 오래 걸리는 작업일 경우 제한 시간을 길게 준다. 필자는 10초를 주었다.
  • vpc 편집
    • vpc와 서브넷을 valkey와 동일하게 설정한다.
    • 보안 그룹은 위에서 만든 lambda-sgrp를 사용한다.

API Gateway

  • AWS console에 api gateway를 입력하여 REST API로 생성을 해준다.
  • API 이름 설정
  • 리소스 생성. 리소스 이름을 정하고 CORS를 체크해준다.
  • 메소드 생성
    • post로 선택을 하고 생성한 lambda 함수와 연결해준다.
    • API 키를 사용하기 위해 메소드 요청 설정에 API 키가 필요함을 체크해준다.
  • API 배포
    • 새 스테이지 선택
    • prd라는 스테이지를 생성
  • API 키 생성
    • test-api라는 이름으로 api key를 생성한다.
  • 사용량 계획 생성
    • 사용량 계획을 설정해야만 api key를 사용할 수 있다.

      요율 : 1초에 API 호출 횟수 제한
      버스트 : 1초에 API 동시 호출 횟수 제한
      요청 : 월 별 요청 횟수 제한

  • API key, 사용량 계획 연결
    • 생성한 API key를 눌러 사용량 계획은 연결해준다.

테스트

  • API Gateway의 스테이지를 눌러 URL 호출 링크를 확인한다.
  • 해당 url에 리소스 test를 붙인다.
  • postman에 x-api-key를 헤더에 key로 추가하고 value에 생성한 api gateway의 api key를 넣어 테스트를 해본다.
profile
미래를 생각하는 개발자

0개의 댓글