inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실무에서 사용하는 클라우드 보안 프로그래밍 (AWS, Python, Terraform)

1.14. Generator Expression

generate expression 사용 예시

해결된 질문

194

형빈

작성한 질문수 13

1

안녕하세요 1.14 generator expression 강의 내용 중에서 athena로 s3의 저장된 로그를 쿼리하여 로그를 긁어온다는 예시에서 2가지 궁금증이 있습니다.

 

  1. 아테나로 긁어온 로그의 용량이 큰 경우, 리스트 컴프랜션으로 올리면 메모리를 많이 차지한다고 말씀해주셨습니다.


    아테나 쿼리 결과는 보통 s3에 저장되는데, 람다를 예시로 들으신 이유는 어떤 워크플로우를 생각하시고 예시로 들으신건지 궁금합니다.
    (람다로 아테나 쿼리 결과를 읽고 특정 형태로 파싱하는 경우, 파일을 리스트 컴프랜션으로 읽으면 람다의 메모리를 오바하여 람다가 죽는 경우를 말씀해주신걸까요?)

  2. 임시스토리지에 저장해서 generate expression을 통해 읽어온다는 부분에서 궁금한 점입니다.


    레디스로 예를 들면 아테나 쿼리 결과를 [{"key" : "value"}]와 같이 레디스에 저장해둔 후 필요 시 데이터를 generate expression을 사용해서 읽어 온다는 걸까요?

 

저같은 경우 아테나는 단순 로그 파일을 조회하는 용도로만 사용해 보았고, 람다와 연동해서 사용해 본 경험이 없어 예시로 들어주신 사례가 어떤 상황인지 명확하게 떠오르지가 않습니다.

이런 부분은 검색을 통해 개인적으로 찾아봐야 되는게 맞는데, 어떤 키워드로 검색해야 하는지 감이 잘 안와서 질문드리게 됐습니다.

python aws Terraform devsecops

답변 1

1

천강민

안녕하세요! 좋은 질문 감사드립니다.

먼저, 링크를 보시면 아래와 같은 그림이 있습니다.

image

  1. EventBridge -> Lambda를 트리거(실행)해서 Athena에 쿼리 수행

  2. Athena에서 VpcFlowLog 버킷에 대한 쿼리 수행 결과를 QueryResults 버킷에 저장

  3. QueryResults -> Lambda를 트리거(실행)해서 파일 람다 임시 스토리지 저장

  4. 임시 스토리지에서 파일을 한 번에(List Comprehension) 읽지 않고, 한 줄 씩(Generator Expression) 읽어서 메모리 효율적으로 비교

위와 같은 상황을 말씀 드렸습니다!

혹시 조금 더 추가 내용 궁금하시면, 설명글 링크 참고 부탁드릴게요.

감사합니다!

1

형빈

상세한 답변 감사드립니다.

sg 체크하는 함수에서 csv 파일의 각 라인을 반환하는 이터레이터를 제너레이터 표현식을 사용하여 한 줄씩 읽는 부분을 말씀해주신거 같네요. 이렇게 보니 어떤 경우에 제너레이터 표현식을 사용하면 효율적인지 쉽게 이해가 되는 것 같습니다.

보내주신 링크도 잘 봤습니다. 이런 아키텍처를 구상하고 그걸 프로그램화하고 타인에게 소개할 수 있다는게 대단하신거 같습니다.

매번 좋은 인사이트 얻어갑니다. 감사합니다.

작업형 1 (삭제예정, 구 버전)

0

10

0

강의노트는 어디있나요?

0

4

0

노션 학습 자료 권한 요청

0

8

1

.terraform, .terraform.lock.hcl 파일이 생성되지 않는 현상

0

75

2

섹션 4 프로젝트 코드

1

83

1

mysql 접속 에러

0

106

1

default tags , 리소스에 tags 중복 문의

1

209

1

테라폼으로 람다 형상 관리 방법

1

306

1

강의 순서 문의

1

217

1

람다 캐싱 질문

1

204

1

webhook 단점

1

240

1

for_each 사용 시 key를 가져오는 기준

1

251

2

ModuleNotFoundError: No module named 'pprint' 에러

1

250

1

모듈 vs 리소스

1

215

1

s3 bucket 생성 에러

1

316

1

terraform import 관련 질문

1

209

1

boto3 라이브러리 사용 시 에러

1

248

1

boto3 사용자 생성 질문입니다.

1

408

2

pip로 패키지를 설치했음에도 import 오류가 납니다. 어떻게 해야 할까요?

0

660

1

3.2. 왜 리소스 기반 정책은 Deny로 해야되나요? 부분이 잘 이해되지 않습니다.

1

370

2

제상황을 좀 더 자세히 적겠습니다.

0

585

1

영상을 아무리 찾아봐도

0

399

1

질문입니다

0

355

1

질문입니다

0

1003

1