AWS Community Day Hong Kong 2025 Recap

초보자에서 빌더로: 멋진 클라우드 여정

Recap Series

녹화 영상

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 설정의 중요성을 강조했다.