Recap Series
- 세션 02: Terraform을 활용한 AWS 컴플라이언스
- 세션 03: 초보자에서 빌더로: 멋진 클라우드 여정
- 세션 04: Laravel와 Bref를 활용한 팀 우선 서버리스 엔지니어링
- 세션 05: 행사 개회: AWS Community Day Hong Kong 2025
- 세션 06: Agent-to-Agent: AWS에서 상호 운용 가능한 AI 구축하기
- 세션 07: AI 에이전트와 추가 텔레메트리 데이터를 활용한 신속한 개선
- 세션 08: 바이브 코딩을 넘어서: Kiro를 활용한 사양 주도 개발
- 세션 09: MCP 및 AI 에이전트를 활용한 자동화 테스트
- 세션 10: 통신 보안 현대화: ML 기반 접근 방식
- 세션 11: GenAI 에이전트 재고찰: RAG와 MCP
- 세션 12: TAK와 AWS를 활용한 재난 및 긴급 대응
- 세션 13: 테스트 관점에서 서버리스 애플리케이션 워크플로 재고찰
- 세션 14: 클라우드 성공을 위한 실용적인 AWS FinOps
녹화 영상
https://www.youtube.com/watch?v=Rs0yu_fEgFQ
개인 배경
- AWS와 함께한 여정을 공유했다.
- 클라우드 컴퓨팅에 대한 사전 지식 없이 2023년에 시작했다.
- AWS User Group Philippines에 가입하고 AWS Creatives 팀의 일원이 되었다.
- AWS를 사용해 서비스를 배포하고, 코드를 실행하고, 프로젝트를 구축했다.
- 6개월 만에 클라우드 컨설턴트, AWS User Group Philippines 커뮤니티 리드, AWS Community Builder가 되었으며 AWS Certified Cloud Practitioner 자격을 취득했다.
AWS User Group Philippines
- 밋업 리드로서 맡은 역할을 설명했다.
- 학생, 경력 전환자, 젊은 직장인을 대상으로 매월 무료 세미나와 웨비나를 진행한다.
- 학습과 커뮤니티 참여를 촉진하기 위해 다양한 행사를 개최한다.
AWS Community Builder가 되기까지
- 개인적인 여정을 공유했다.
- UI/UX 디자인 경력을 바탕으로 기술적 배경 없이 AWS를 시작했다.
- 커뮤니티 리소스를 통해 AWS를 배웠다.
- 6개월 만에 AWS를 사용해 다양한 애플리케이션을 만드는 방법에 관한 글을 작성하고 AWS Community Builder에 지원했다.
리소스와 협업
- [ 1 ] 참석자들에게 피드백 제공과 협업을 권했다.
- 참석자들에게 피드백 양식을 작성해 달라고 요청했다.
- Tutorials Dojo에서 제공하는 AWS 사전 모의고사의 QR 코드를 제공했다.
- [ 2 ] 무료 모의고사 리소스를 제공했다.
- 참석자들이 Tutorials Dojo의 무료 모의고사 바우처를 받게 된다고 안내했다.
- 참석자들의 AWS Cloud Practitioner 또는 SAA 시험 준비를 돕는 것이 목적이었다.
결론
- 참석자들이 세션을 유익하게 느끼고 제공된 리소스를 활용하기를 바란다고 전했다.
- AWS 커뮤니티 안에서 계속 교류하고 협업할 것을 권했다.
AWS Lambda와 CORS로 Python 코드 플레이그라운드 만들기
목표
- 사용자가 웹 인터페이스를 통해 Python 코드를 실행할 수 있는 코드 플레이그라운드를 만든다.
아키텍처
- 프런트엔드: Amazon EC2에서 실행되는 웹사이트.
- 백엔드: Python 코드를 실행하는 AWS Lambda 함수.
Python 코드 플레이그라운드 생성 단계
[ 1 ] AWS Lambda 함수 생성
- AWS Management Console로 이동한다.
- Lambda로 이동해 Create function을 클릭한다.
- Author from scratch를 선택한다.
- 함수 이름을 지정한다(예: UG_HK_PythonCodePlayground).
- 런타임으로 Python을 선택한다.
- 기본 Lambda 권한이 있는 새 실행 역할을 생성한다.
[ 2 ] CORS를 사용한 Function URL 구성
- Lambda 함수 구성에서 Function URL로 이동한다.
- Function URL을 활성화한다.
- 다음 헤더를 추가해 CORS를 구성한다.
- Expose Headers: Content-Type
- Allow Headers: Content-Type
- 필요한 경우 캐싱을 위한 Max Age를 설정한다.
[ 3 ] Lambda 함수 코드 작성 및 배포
- Lambda 함수 편집기에서 Python 코드를 작성한다.
- 함수를 저장하고 배포한다.
[ 4 ] 프런트엔드 생성(HTML 파일)
- Visual Studio Code를 연다.
- 프런트엔드용 HTML 파일을 생성한다.
- Lambda 구성에서 Function URL을 복사한다.
- HTML 파일에서 Function URL을 사용해 Lambda 함수를 호출하고 실행한다.
[ 5 ] 구성 테스트
- 프런트엔드가 Lambda 함수와 통신할 수 있도록 CORS가 올바르게 구성되었는지 확인한다.
- 웹 인터페이스를 통해 Python 코드를 실행하는 테스트를 수행한다.
핵심 사항
- CORS 구성: 프런트엔드와 Lambda 함수 간 통신을 허용하는 데 필수적이다.
- Function URL: Lambda 함수에 직접 연결되는 HTTP(S) 엔드포인트를 제공한다.
- 테스트: Python 코드가 올바르게 실행되고 프런트엔드가 결과를 가져오는지 확인한다.
결론
- Python 코드 플레이그라운드는 백엔드 실행에 AWS Lambda를, 프런트엔드에 Amazon EC2를 활용하여 사용자가 웹 인터페이스를 통해 Python 코드를 실행할 수 있게 해 준다.
문제 해결 단계
[ 1 ] HTTP 오류
- 코드를 실행할 때 HTTP 오류가 발생했다.
- 문제를 파악하기 위해 브라우저 개발자 도구의 네트워크 탭을 확인했다.
[ 2 ] CORS 구성 오류
- 다음 헤더가
Access-Control-Allow-Origin
false로 설정된 것을 확인했다
- Allow Origin 헤더가 올바르게 설정되도록 CORS 구성을 수정했다.
[ 3 ] CORS 구성 확인
- 브라우저 개발자 도구를 사용해 네트워크 요청을 검사했다.
- 두 가지 유형의 요청을 확인했다.
- Preflight Request: 브라우저가 교차 출처 요청의 허용 여부를 서버에 확인한다.
- Actual Request(PATCH): Preflight Request를 통해 CORS 설정이 올바른 것으로 확인된 후 서버에서 데이터를 가져온다.
[ 4 ] 최종 테스트
- CORS 구성을 수정한 뒤 코드를 다시 실행했다.
- Python 코드가 성공적으로 실행되고 프런트엔드가 결과를 가져오는 것을 확인했다.
결론
- 이제 Python 코드 플레이그라운드는 백엔드 실행에 AWS Lambda를, 프런트엔드에 Amazon EC2를 활용하여 사용자가 웹 인터페이스를 통해 Python 코드를 실행할 수 있게 해 준다.
- 프런트엔드가 Lambda 함수와 통신하려면 올바른 CORS 구성이 매우 중요하다.
Python 코드 플레이그라운드 요약
- AWS Lambda와 Function URL을 사용해 Python 코드 플레이그라운드를 만드는 방법을 시연했다.
- 교차 출처 문제 없이 여러 웹사이트에서 Lambda 함수에 액세스할 수 있도록 CORS를 구성했다.
- 서로 다른 출처 간에 필요한 요청과 응답을 브라우저가 허용하도록 설정했다.
- Lambda 리소스와 외부 웹사이트 간의 안전한 통신을 위한 CORS 설정의 중요성을 강조했다.
