REST API를 이용하여 Web Crawler를 만들고자 할 경우, 다음과 같은 아키텍처를 이용하여 서비스를 구축할 수 있습니다.

REST API 없이 웹 브라우저 상의 액션을 자동화 해야 할 경우, Web Crawler 만들기 02 - Building RPA service using Selenium on AWS 을 참고하세요.

V 1.0.0 김현수 

아키텍처 다이어그램

수집된 정보를 저장하기 위해서 MySQL DB를 활용하는 시나리오입니다. DB는 본인이 잘 활용할 수 있는 DB 엔진을 선택할 수 있습니다.
Ansi SQL에 익숙하고 잦은 분석용 쿼리를 활용하고자 할 때에는 RDS를 활용할 수 있습니다.

DB는 private 망으로 분리되어져 있으며, 데이터 수집/분석(EC2)/BI를 위해서 허용된 보안그룹(Security Group) 에서만 접근 가능하도록 구성합니다.

AWS Lambda와 Amazon QuickSight(BI)는 해당 VPC의 Private subnet에 존재하는 것처럼 Elastic Network Interface를 통해서 경로를 열어줍니다.


동작 설명

수집 프로세스

  1. Amazon EventBridge에 의해서 Cron 룰에 따라 정해진 시간에 수집이 시작됩니다.
  2. 수집이 Trigger된 AWS Lambda는 VPC 안에 놓여진 ENI(Elastic Network Interface)를 경유하므로 외부 REST API로 호출하기 위해서는 Public IP가 필요합니다.
  3. Routing Table에 REST API의 서버 IP 또는 외부 IP(인터넷)에 대해서는 NAT Gateway로 라우팅 경로를 설정합니다.
  4. REST API를 통해서 수집된 데이터는 MySQL RDS에 데이터를 저장합니다.

데이터 확인 프로세스 (옵션)

이 옵션은 EC2 인스턴스에 phpMyAdmin을 설치하여 DB에 데이터가 정상적으로 적재되어 있는지 확인하기 위함입니다.
해당 인스턴스는 확인용으로 활용 후 보안상 삭제 하는 것을 추천 드립니다.

  1. EC2 인스턴스에 phpMyAdmin을 설치합니다. (https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/install-LAMP.html 참조)
  2. MySQL에 접속하여 데이터가 정상적으로 들어있는지 확인 합니다.

데이터 시각화

Amazon QuickSight는 AWS가 제공하는 서버리스 BI 도구입니다.

비즈니스 사용자는 MySQL RDS에 연결하여 데이터를 시각화 할 수 있습니다. 위 구조에서처럼 Private 서브넷에 놓인 DB에 접근할 경우, 아래와 같은 영상을 참고할 수 있습니다.


실제 샘플 코드는 AWS Solutions Architect 를 통해서 비즈니스 요건을 설명한 후 도움을 받는 것을 추천 드립니다.


해당 솔루션은 2022년 E사에 제공된 솔루션 샘플에 대한 예시입니다.

  • 추가로 궁금증이 있을 경우, admin@studydev.com 메일을 주시면 도움 드리겠습니다.


  • 레이블 없음