Lambda Playwright 컨테이너
·
aws
Playwright 컨테이너 택한 이유Lmabda 레이어는 250MB 압축 제한이 있어 Playwright·Chromium 바이너리와 필요한 의존성을 넣기에 턱없이 부족하다. 그래서 빌드시 한 번에 모든 브라우저 의존성을 담을 수 있고 용량 제약이 훨씬 완화된 컨테이너 이미지를 채택했다.이렇게 하면 레이어 조합에 애써 나눌 필요 없이 "playwright가 실행되는 베이스 OS"를 그대로 포장해 배포할 수 있다. 이미지 모델은 Playwright가 요구하는 라이브러리가 Lambda python 3.11 이미지(AL2, glibc 2.28계열)에는 들어있지 않아서 문제가 발생하기에 pubilc.ecr.aws/lambda/python:3.12 (AL2023, glibc2.34)를 베이스로 삼아 Playwr..
GitHub → CodePipeline → CodeBuild로 이어지는 자동 배포 파이프라인 구축하기
·
aws
CodePipeline은 크게 세 가지 단계Source 단계 – GitHub Webhook으로 브랜치 변경 감지Build 단계 – CodeBuild가 build.yml을 기준으로 빌드Deploy 단계 – AWS 서버 서비스에 배포[GitHub dev 브랜치] ↓ (Webhook)[CodePipeline Source 단계] ↓ (Source 변경 감지)[CodeBuild: build.yml 실행] ↓[Deploy 단계에서 실제 배포] 내 레포지토리 루트에는 build.yml이라는 파일이 있는데 CodeBuild는 빌드를 시작할 때 이 파일 자동으로 읽어서 순서대로 명령을 실행하다.Codepipeline에서 Github Webhook 설정CI/CD 파이플라인이 자동으로 ..
boto3 인증 설정 정리: aws configure만으로 AWS 서비스 호출하는 방법
·
aws
boto3에서 Access Key를 코드에 넣지 않고 AWS CLI 인증을 사용하는 방법AWS를 Python에서 사용할 때 가장 많이 쓰는 SDK가 boto3이다.이때 Access key와 secret key를 환경변수로 설정하거나, 심지어 코드 안에 직접 넣는 실수를 할 수 있다.하지만 실제 운영 환경에서는 그런 방식으로 자격증명을 관리하지 않는다.AWS가 제공하는 Credential Provider Chain 덕분에, 우리는 단순히 AWS CLI에 credentiol을 설정해두기만 해도 boto3가 자동으로 인증을 해결해준다.1. boto3는 어떤 방식으로 인증 정보를 읽어올까개발환경 설정 명령어aws configure~/.aws/credentials[default]aws_access_key_id =..
Session & cookie
·
개발지식
SessionCookie저장위치서버에 저장클라이언트(브라우저)에 저장저장용량서버 메모리나 저장소 용량에 따라 제한4KB 제한 보안상대적 안전상대적 취약생명주기브라우저 세션 동안만 유지만료일 설정 가능데이터 전송Session ID만 클라이언트로 전송매 HTTP 요청마다 자동으로 서버에 전송 CookieCookie의 동작원리 1. 설정 : 서버가 HTTP 응답 헤더에 Set-Cookie를 포함하여 브라우저에 쿠키 저장2. 저장 : 브라우저가 쿠키를 로컬에 파일로 저장 3. 전송 : 이후 모든 HTTP 요청에서 Cookie 헤더로 자동 전송4. 설정된 만료일에 자동 삭제SessionSession의 동작원리1. 세션 시작 : 사용자가 웹 사이트에 처음 접속2. 세션 ID 생성 : 서버가 고유한 세션 ID 생성3..
Pandas를 이용한 데이터 처리
·
개발지식
기존방식은 MongoDB에 데이터를 받아오는 방식으로 똑같은 컬렉션을 사용하지만 전체기간, 선택기간, 선택날 같은 다른 기간을 기준으로 가져오면 같은 컬렉션에서 여러 번 데이터를 가져오는 불필요한 동작이 발생하였다. 그래서 불필요한 동작을 줄이기위해서 선택한 방식을 Pandas를 이용하여 데이터를 가져오는 방식을 채택했다.Pandas란Python에서 데이터 분석과 조작을 위한 라이브러리 중 하나이다. Panda는 두 가지 핵심 데이터 제공하는데 1. Series : 1차원 배열 형태의 데이터 구조2. DataFrame : 2차원 테이블 형태의 데이터 구조 (행과 열로 구성) 하나의 테이블을 만들어서 그 안에 데이터를 처리하기할 수 있기에 기존의 방식 보다 빠른 응답속도와 최적화된 동작을 할 수 있도..