이 가이드에서 배우게 될 내용:
- AWS Step Functions란 무엇이며 워크플로 자동화에 중요한 이유.
- 웹 스크래핑 워크플로가 이 AWS 서비스에 적합한 이유.
- Bright Data가 웹 스크래핑의 고유한 과제를 어떻게 극복하는지.
- – Bright Data를 AWS Step Functions에 통합하는 방법(직접 API 호출 또는 전용 Lambda 함수를 통한 방식).
자, 시작해 보겠습니다!
AWS Step Functions 소개
AWS Step Functions를 사용하여 웹 스크래핑 워크플로를 조정하는 방법을 보여드리기 전에, 이 솔루션에 대한 더 많은 정보를 확인해 보세요.
AWS Step Functions란 무엇인가요?
AWS Step Functions는 AWS 서비스 전반에 걸쳐 복잡한 워크플로를 조정하고 자동화할 수 있는 완전 관리형 서비스입니다. 여러 AWS 서비스를 서버리스 워크플로로 연결하여 분산 애플리케이션을 구축하고 프로세스를 자동화하는 데 사용되는 시각적 오케스트레이션 서비스입니다.
Step Functions의 핵심은 상태 머신에 있습니다. 상태 머신은 일련의 단계(상태)로 구성된 워크플로우입니다. 각 상태는 AWS 서비스 호출이나 사용자 정의 코드 실행과 같은 작업을 수행합니다.
이러한 접근 방식은 오케스트레이션, 오류 처리 및 모니터링을 단순화하여 인프라보다 애플리케이션 로직에 집중할 수 있게 합니다. 구체적으로 제공하는 주요 이점은 다음과 같습니다:
- 간소화된 오케스트레이션: 복잡한 코드 작성 없이 다단계 프로세스와 종속성을 관리합니다.
- 내장된 오류 처리: 재시도 및 catch 블록을 통해 워크플로가 자동으로 장애에서 복구됩니다.
- 병렬 및 동적 실행: 작업을 동시에 실행하거나 데이터셋을 반복 처리하여 속도를 높입니다.
- 휴먼 인 더 루프 지원: 워크플로 내에 승인 단계나 콜백을 포함할 수 있습니다.
- 서비스 통합: AWS Lambda, Glue, SQS, SNS, SageMaker 등과 원활하게 연결됩니다.
자세한 내용은 공식 문서를 참조하십시오.
AWS Step Functions의 작동 방식 이해
AWS Step Functions를 제대로 이해하려면 모든 워크플로의 기반이 되는 핵심 개념에 집중하는 것이 도움이 됩니다:
- 상태 머신: Step Functions의 중추입니다. 상태 머신은 워크플로를 나타내며, 작업 진행에 따라 상태를 저장하고 업데이트합니다. JSON과 Amazon States Language를 사용하여 정의합니다. 장기 실행 또는 인간 개입 프로세스에는 표준 워크플로를, 짧고 대량 작업에는 익스프레스 워크플로를 선택할 수 있습니다.
- 상태(States): 워크플로의 각 단계입니다. 상태는 작업을 수행(Task), 결정을 내림(Choice), 실행을 일시 중지함(Wait), 실패 또는 성공을 처리함(Fail/Succeed), 실행을 분기함(Parallel), 입력에 대해 반복함(Map)할 수 있습니다. 상태의 조합이 워크플로 로직을 정의합니다.
- 작업 상태: 워크플로 내 작업 단위입니다. 서비스 작업은 Lambda나 Glue 같은 AWS 서비스와의 상호작용을 자동화합니다. 반면 활동 작업은 외부 코드나 사람과 연결되어 비동기 단계나 승인에 유용합니다.
- 실행 및 모니터링: Step Functions는 각 단계의 입력, 출력, 재시도 및 오류를 기록하여 문제 추적과 워크플로 동작 검증이 가능합니다.
서버리스 웹 스크래핑 워크플로 오케스트레이션
AWS Step Functions는 확장 가능하고 신뢰할 수 있는 방식으로 서버리스 웹 스크래핑 워크플로를 오케스트레이션하는 효과적인 방법을 제공합니다. 단일 스크래핑 스크립트를 구축하는 대신 프로세스를 더 작은 이벤트 기반 단계로 분할하고 상태 머신을 통해 이를 조정할 수 있습니다.
예를 들어, 워크플로는 데이터 수집 작업을 트리거하는 것으로 시작하여 데이터 파싱 및 유효성 검사를 계속한 다음 결과를 Amazon S3 또는 데이터베이스와 같은 서비스에 저장할 수 있습니다. Step Functions는 AWS Lambda, AWS Glue 또는 Amazon SQS와 같은 다른 AWS 서비스와 통합하면서 이러한 단계를 조정할 수 있습니다.
이 접근 방식은 확장성 향상, 내장된 재시도 및 오류 처리, 스크래핑 작업의 병렬 처리, 각 워크플로 실행에 대한 명확한 모니터링 등 여러 이점을 제공합니다.
그러나 대규모 웹 스크래핑에는 어려움도 따릅니다. 많은 웹사이트가 자동화된 요청을 차단할 수 있는 봇 방지 보호 장치와 스크래핑 방지 메커니즘을 구현하기 때문입니다. 속도 제한기, 지문 인식, CAPTCHA, 자바스크립트 챌린지 등이 그 예입니다.
AWS Step Functions를 통한 완벽한 웹 데이터 수집
AWS Step Functions로 웹 스크래핑 워크플로를 구성하는 팀을 위해 Bright Data는 성공적인 대규모 웹 데이터 수집을 지원하는 포괄적인 솔루션을 제공합니다.
Bright Data는 Step Functions와 원활하게 통합되는 여러 전문 스크래핑 서비스를 제공합니다:
- SERP API: SEO 인사이트 또는 시장 분석을 위해 대규모로 검색 엔진 결과를 수집합니다.
- 웹 언락커: CAPTCHA, 자바스크립트 장애물, IP 제한 등 봇 방지 방어를 우회하여 모든 웹 페이지에 접근합니다.
- 웹 스크래핑 API: 최소한의 설정으로 전자상거래 플랫폼, 소셜 네트워크 및 기타 웹 소스에서 구조화된 정보를 검색합니다.
- 크롤 API: 모든 도메인의 전체 웹사이트 콘텐츠를 마크다운, 일반 텍스트, HTML 또는 JSON으로 자동 추출합니다.
이 솔루션은 195개 이상의 국가에 걸쳐 1억 5천만 개 이상의 IP를 보유한 프록시 네트워크를 활용하여, 생산 환경에 바로 적용 가능한 무제한 동시 접속을 제공합니다. 또한 모든 서비스에는 CAPTCHA 및 기타 접근 제한을 우회하기 위한 Bright Data의 봇 방지 툴킷이 통합되어 있습니다.
Step Functions의 오케스트레이션과 Bright Data의 웹 데이터 도구를 통합하면 추출, 변환, 저장을 관리하는 완전 자동화된 파이프라인을 구축할 수 있습니다. 이는 복잡하고 대규모의 엔터프라이즈 환경에서도 지속적인 운영을 의미합니다.
Bright Data 웹 스크래핑 솔루션을 AWS Step Functions에 통합하는 방법
자동화된 웹 데이터 수집을 위해 Bright Data를 AWS Step Functions에 통합하는 방법은 두 가지입니다:
- “HTTP 엔드포인트 – HTTPS API 호출” 노드 사용: Bright Data의 API(웹 언락커 API, 웹 스크래핑 API, SERP API, 크롤링 API 등)에 직접 연결합니다.
- “AWS Lambda – Invoke” 노드 활용: Lambda 함수(Python 또는 지원되는 다른 언어) 내에서 사용자 정의 코드를 생성하여 Bright Data 제품과 통합하고 데이터를 검색하며, 선택적으로 특정 로직(예: 특정 필드만 접근, 특정 구조로 데이터 반환, 사용자 정의 파싱 로직 적용)을 적용합니다.
아래 섹션에서는 두 가지 접근 방식을 모두 안내해 드리겠습니다. 먼저 두 방법의 장단점을 살펴보겠습니다.
HTTP 엔드포인트 – HTTPS API 호출 노드: 장단점
👍 장점:
- 설정이 빠릅니다.
- 관리 및 유지보수가 용이함.
- 단일 웹 페이지에서 데이터를 스크래핑하는 데 효과적입니다.
👎 단점:
- 사용자 정의 데이터 처리에 유연성이 제한적임.
- 복잡한 워크플로우 처리 시 여러 개의 서로 다른 Bright Data 스크래핑 API 호출이 필요할 경우 어려움.
AWS Lambda – Invoke Node: 장점과 단점
👍 장점:
- 웹 데이터 처리 및 변환에 대한 완전한 제어권.
- 사용자 정의 로직(예: 재시도, 조건부 흐름 등) 구현 가능.
- 단일 함수 내에서 여러 Bright Data 서비스와 통합 가능.
👎 단점:
- Python, Node.js 또는 지원되는 다른 언어로 코딩이 필요합니다.
- 모니터링 및 유지보수가 필요한 추가 서비스가 발생합니다.
필수 조건
다음 안내 섹션을 따라가려면 다음이 필요합니다:
- 활성 AWS 계정 (무료 체험판도 가능).
- API 키가 준비된 Bright Data 계정.
- RESTful HTTP 호출에 대한 기본 지식 또는 Lambda 통합을 위한 기본적인 Python 프로그래밍 기술.
Bright Data 계정 설정
아직 Bright Data 계정이 없다면 먼저 생성하십시오. 이미 계정이 있다면 로그인 후 안내에 따라 API 키를 설정하십시오. 이 키는 HTTP 호출 인증에 필요합니다(HTTP 호출로 Bright Data를 직접 호출하거나 Lambda 함수 내에서 호출하는 경우 모두 해당).
Bright Data 웹 언락커 API가 설정되어 있는지 확인하십시오(Lambda 튜토리얼 섹션을 따라할 계획이라면 SERP API도 포함):
자세한 내용은 다음 문서 페이지를 참조하십시오:
AWS Step Functions 워크플로 설정하기
AWS 콘솔에 로그인하여 “Step Functions” 서비스를 검색하세요. 서비스 페이지를 엽니다:
여기서 “시작하기” 버튼을 클릭한 후 “새로 만들기”를 선택하여 서버리스 워크플로를 처음부터 구축하세요:
상태 머신에 이름을 지정하세요(예: "BrightDataWebScrapingMachine"). 생성할 상태 머신 유형을 선택하세요. 이 튜토리얼에서는 “Standard” 머신을 사용합니다:
“계속”을 클릭하여 워크플로 편집기 페이지로 이동합니다:
이제 AWS Step Functions 워크플로에 Bright Data 웹 스크래핑 노드를 추가할 준비가 완료되었습니다.
방법 #1: “HTTPS API 호출” 노드 사용
여기서는 HTTP 호출을 통해 Bright Data Web Unlocker API에 직접 연결하는 노드를 정의하는 방법을 배웁니다. 이 노드를 사용하면 프로그래밍 방식으로 모든 웹 페이지에서 데이터를 스크래핑할 수 있습니다. 특히 LLM(대규모 언어 모델) 입력에 이상적인 마크다운(Markdown) 형식으로 데이터를 가져오도록 구성할 것입니다.
참고: 다른 API 기반 Bright Data 제품에 연결하는 데도 매우 유사한 절차를 적용할 수 있습니다.
1단계: “HTTP 엔드포인트 – HTTPS API 호출” 노드 추가
왼쪽 패널에서 “HTTP 엔드포인트 – HTTPS API 호출” 노드를 선택하여 “첫 번째 상태를 여기에 드래그하세요” 섹션으로 드래그합니다:
노드를 선택한 후 오른쪽의 “구성” 탭에서:
- 상태에 이름을 지정합니다.
- “API 엔드포인트”를
https://api.brightdata.com/request로 설정합니다. - “메서드”를
POST로 설정합니다.
이렇게 하면 노드가 POST https://api.brightdata.com/request 엔드포인트에 연결되도록 구성됩니다. 이 엔드포인트는 Web Unlocker 및 SERP API 서비스를 위한 기본 Bright Data API입니다:
2단계: API 인증 구성
Bright Data API는 Bright Data API 키를 사용하여 인증됩니다. 구체적으로, 다음 형식으로 Authorization 헤더에 포함해야 합니다:
Bearer <BRIGHT_DATA_API_KEY>
노드에 API 키를 하드코딩하지 않으려면 Amazon EventBridge를 통해 새 연결을 생성해야 합니다. 이를 위해 “구성” 탭 아래 “연결” 섹션에서 “새 연결 생성” 버튼을 누르세요:
연결에 이름을 지정하고(예: brightdata-api) “공개”로 설정하세요(Bright Data API 키는 공개적으로 노출됨).
그런 다음 “API 키” 인증 유형을 선택하고 다음과 같이 구성하세요:
- API 키 이름:
Authorization(인증에 사용되는 HTTP 헤더 이름과 반드시 일치해야 함). - 값:
Bearer <BRIGHT_DATA_API_KEY>(<BRIGHT_DATA_API_KEY>자리 표시자를 실제 API 키로 대체).

마지막으로 “생성”을 눌러 EventBridge 연결을 설정하세요. 생성 후 다음과 같은 화면이 표시됩니다:
3단계: API 구성 완료
워크플로 편집기 페이지로 돌아가서 “HTTP 엔드포인트 – HTTPS API 호출” 노드를 선택하고 “구성” 탭으로 이동하세요. 그런 다음 방금 생성한 연결(bright-data-api)을 선택하세요:
이렇게 하면 인증을 위해 Bright Data API 키가 필요한 형식으로 Authorization 헤더에 추가됩니다.
다음으로 HTTP 본문을 다음과 같이 정의하세요:
{
"zone": "<YOUR_BRIGHT_DATA_WEB_UNLOCKER_ZONE_NAME>",
"url": "{% $states.input.url %}",
"format": "raw",
"data_format": "markdown"
}
<YOUR_BRIGHT_DATA_WEB_UNLOCKER_ZONE_NAME> 자리 표시자를 Bright Data 계정의 웹 언락커 영역 이름으로 대체하세요. url 필드는 워크플로 입력값에서 동적으로 읽어옵니다( {% $states.input.url %} 구문 덕분). 이를 통해 URL을 하드코딩하지 않고도 다양한 페이지를 스크래핑할 수 있습니다. 대신 data_format: "markdown"은 API 응답이 AI 활용이 가능한 마크다운 형식으로 반환되도록 보장합니다.
예시에서 웹 언락커 존 이름은 "``web_unlocker``"이므로 본체는 다음과 같습니다:
이제 워크플로는 다음과 같이 보일 것입니다:
훌륭합니다! 설정이 완료되었습니다. 이제 AWS Step Functions 워크플로우 내에서 Bright Data 통합을 테스트하기만 하면 됩니다.
4단계: Bright Data 기반 웹 스크래핑 노드 테스트
테스트를 위해 AWS 콘솔에서 “Create” 버튼을 눌러 필요한 IAM 역할 및 기타 필수 요소를 생성하세요:
그런 다음 노드의 “테스트 상태” 버튼을 누르세요:
“테스트 상태” 모달이 표시됩니다:
상태 입력란에 다음과 같이 구성하세요:
{
"url": "https://example.com"
}
url 필드는 API 본문에 전달됩니다(노드가 입력에서 url 본체 필드를 읽도록 구성되었기 때문입니다).
“테스트 시작”을 눌러 노드를 실행하세요. 다음과 유사한 출력이 표시됩니다:
보시다시피 요청이 성공했으며, 응답 본문에는 대상 페이지의 마크다운 버전이 포함되어 있습니다:
자, 이제 AWS Step Functions의 Bright Data 통합이 완전히 작동하며 프로덕션 환경에서 사용할 준비가 되었습니다.
접근법 #2: Lambda 함수 사용
이 섹션에서는 커스텀 AWS Lambda 함수를 통해 Bright Data 서비스에 연결하는 방법을 이해하게 됩니다.
통합을 단순화하고 프로세스를 가속화하려면 “AWS Bedrock 에이전트에 Bright Data SERP API를 통한 웹 검색 기능 부여” 문서의 단계 #5, #6, #7을 따르세요 . 해당 단계는 Bright Data SERP API에 연결하는 Python 기반 Lambda 함수 생성 방법을 안내합니다 .
아래에서는 AWS Step Functions를 통해 해당 Lambda 함수를 웹 스크래핑 워크플로에 통합하는 방법을 확인하실 수 있습니다!
1단계: “AWS Lambda – Invoke” 노드 추가
왼쪽 패널에서 “AWS Lambda – Invoke” 노드를 선택하세요. 그런 다음 워크플로의 “Drag first state here” 섹션으로 드래그하세요.
2단계: Lambda 함수 구성
“AWS Lambda – Invoke” 노드의 “Configuration” 섹션에서 “API Arguments – Function Name” 블록 아래에서 호출할 Lambda 함수를 선택합니다:
이 예시에서는 본 장 도입부에서 설명한 대로 생성된 ` serp_api_lambda` 함수를 사용합니다. 해당 함수는 Bright Data의 SERP API와 연동됩니다.
훌륭합니다! 이제 AWS Step Functions 워크플로에 SERP 스크래핑을 위한 Bright Data 기반 Lambda 함수가 통합되었습니다.
결론
이 가이드에서는 AWS Step Functions가 무엇이며 자동화된 웹 스크래핑 워크플로우를 조정하는 데 이상적인 이유를 알아보았습니다.
Step Functions가 상태 머신, 병렬 실행, 재시도, 인간 개입 지원으로 워크플로 관리를 어떻게 단순화하는지 확인했습니다. Bright Data가 Web Unlocker 및 SERP API 통합을 통해 이 프로세스를 어떻게 향상시켜 봇 방지 조치를 극복하고 중단 없는 기업 수준의 웹 데이터 수집을 보장하는지 살펴보았습니다.
Bright Data를 Step Functions에 통합하면 확장성, 복원력 및 모니터링을 유지하면서 데이터 수집, 검증 및 S3 또는 기타 AWS 서비스에 대한 저장을 처리하는 종단 간 파이프라인을 구축할 수 있습니다.
지금 바로 Bright Data 계정에 가입하고 웹 데이터 솔루션을 무료로 테스트해 보세요!