본문으로 건너뛰기
버전: 4.6.2-saas

Fastly Agent

개요

Fastly의 Compute 환경에서 NetFUNNEL과 유기적으로 통합되어, 사용자 요청이 발생하는 최전선에서 실시간으로 대기열을 제어합니다.

Compute Service 설정

Compute Service 생성

  • Fastly 콘솔에서 [Compute]로 이동합니다.
  • 우상단의 [Create service]를 클릭합니다.
  • [+ Use starter kit]를 선택합니다.
  • [Service name]에 이름, [Add your own domain]에 compute를 적용할 도메인을 입력하고 [Next: Choose a starter kit]를 클릭합니다.
  • Default starter for Rust를 선택하고 [Finalize and deploy]를 클릭합니다.

CNAME 등록

  • Deploy가 완료되면 Additional setup의 Point your custom domain to Fastly를 확인해주세요.
  • [Issue TLS Certification]을 클릭해주세요.
  • Your DNS provider에서 도메인이 등록되어있는 서비스를 선택하고 해당 서비스에서 CNAME을 등록해주세요.

Service configuration 설정

[Edit configuration](또는 [Service configuration])을 클릭하여 [Clone version 1 (active) to edit]을 클릭합니다. (fastly compute는 수정할 때마다 새로운 버전으로 clone해야 수정이 가능합니다.)

nf_core host 생성

  • Origins 메뉴를 선택하고 Hostname으로 {CLIENT_ID}.netfunnel.stclab.com을 입력하고 [Add]를 클릭합니다.
    • CLIENT_ID는 NetFUNNEL 콘솔에서 확인하세요.
    • CLIENT_ID가 stclab-0000라면 Hostname은 stclab-0000.netfunnel.stclab.com입니다.
  • 방금 생성한 host를 선택하여 Edit 페이지로 이동합니다.
  • Name을 nf_core로 변경하고 [Update]를 클릭합니다.

nf_setting host 생성

  • [+ Create a host]를 클릭하고 Hostname으로 nf-setting-bucket.stclab.com을 입력하고 [Add]를 클릭합니다.
  • 방금 생성한 host를 선택하여 Edit 페이지로 이동합니다.
  • Name을 nf_setting으로 변경하고 [Update]를 클릭합니다.

origin host 생성

  • [+ Create a host]를 클릭하고 Hostname으로 원본 주소를 입력하고 [Add]를 클릭합니다.
  • 방금 생성한 host를 선택하여 Edit 페이지로 이동합니다.
  • Name을 origin으로 변경하고 [Update]를 클릭합니다.

Activate

  • 우상단의 [Activate]를 클릭하여 저장합니다.

Config store 설정

config store 생성

  • Resources 메뉴의 Config stores에서 우상단의 [+ Create store]를 클릭합니다.
  • Store name을 nf_config_store로 입력하고 [Create]를 클릭합니다.
  • [Add item]을 클릭하고 다음 표를 참고하여 추가합니다.
정보

CLIENT_ID는 NetFUNNEL 콘솔에서 확인하세요.

KeyValue
CLIENT_IDCLIENT_ID

config store 연결

  • 상단 탭의 [Linked Services]를 선택하고 [Link service]를 클릭합니다.
  • 위에서 생성한 Compute service를 선택하고 [Next]를 클릭합니다.
  • [Link and activate]를 클릭합니다.
  • Active Service Versions 창이 뜨면 [Confirm and activate]를 클릭합니다.

토큰 생성

  • Account - API tokens - Personal tokens 메뉴로 이동합니다.
  • 우상단의 [+ Create Token]을 클릭합니다.
  • [Continue]를 클릭하고 다시 로그인합니다.
  • Name을 입력하고 Expiration을 Never expire로 선택한 후 [Create Token]을 클릭합니다.

에이전트 배포

에이전트 파일 및 패키지 설치

  • fastly CLI를 위한 패키지를 설치합니다.
brew install fastly/tap/fastly
  • 문의를 통해 에이전트 파일을 다운받으세요.

toml 파일 수정

  • 다운로드 받은 에이전트 파일을 압축 해제합니다.
  • fastly.toml 파일을 엽니다.
  • fastly 콘솔에서 compute service의 ID를 복사합니다.
  • cloned_from과 service_id의 값에 복사한 ID를 넣습니다.
authors = []
cloned_from = "{SERVICE_ID}"
description = "Fastly agent for NetFUNNEL - Rust implementation"
language = "rust"
manifest_version = 3
name = "netfunnel-fastly-agent"
service_id = "{SERVICE_ID}"

compute에 에이전트 배포

  • netfunnel-fastly-agent 폴더에서 터미널을 열고 아래 명령어를 입력하면 에이전트 코드가 compute로 배포됩니다.
fastly compute build
fastly compute deploy

부가 기능

Good Bot 예외 처리

User-Agent에 굿봇 식별용 키워드가 포함된 경우, 해당 요청을 에이전트 제어 대상에서 제외합니다.

config store 설정

  • Resources 메뉴의 Config stores에서 에이전트에서 사용 중인 store를 선택합니다.
  • [+ Add item]을 클릭하고 다음 표를 참고하여 추가합니다.
정보

Google, Microsoft, Yahoo, Apple, Facebook 봇을 예외 처리한 예시 코드입니다.

KeyValue
GOOD_BOTSGooglebot, Bingbot, Slurp, Applebot, facebookexternalhit

compute purge

  • Compute 메뉴의 Compute Services에서 에이전트를 적용한 service를 선택합니다.
  • [Purge]를 클릭하고 [Purge all]을 선택합니다.
  • service name을 입력하고 [Purge all] 버튼을 클릭합니다.

진입 키 자동 반납 처리

NetFUNNEL 에이전트는 진입 후 발급받은 키를 자동으로 반납하여 다음 대기자가 진입할 수 있도록 처리하고 있습니다. 키를 바로 반납하지 않고 세그먼트에서 설정한 타임아웃 시간에 반납하고 싶은 경우에 사용합니다.

config store 설정

  • Resources 메뉴의 Config stores에서 에이전트에서 사용 중인 store를 선택합니다.
  • [+ Add item]을 클릭하고 다음 표를 참고하여 추가합니다.
KeyValue
RETURN_KEYtrue
정보

true(기본값)로 할 경우, 대기 완료 및 진입 후 에이전트에서 넷퍼넬 키를 자동으로 반납합니다. false로 할 경우 세그먼트에서 설정한 타임아웃 시간에 키가 반납 처리됩니다.

compute purge

  • Compute 메뉴의 Compute Services에서 에이전트를 적용한 service를 선택합니다.
  • [Purge]를 클릭하고 [Purge all]을 선택합니다.
  • service name을 입력하고 [Purge all] 버튼을 클릭합니다.

대기실 도메인 변경

NetFUNNEL 대기실 페이지의 도메인은 agent-lib.stclab.com입니다. 해당 도메인을 서비스 중인 도메인에 맞게 변경하려면 원하는 도메인을 요청하시고, 설정에도 추가해야 합니다.

config store 설정

  • Resources 메뉴의 Config stores에서 에이전트에서 사용 중인 store를 선택합니다.
  • [+ Add item]을 클릭하고 다음 표를 참고하여 추가합니다.
KeyValue
VWR_PAGE_DOMAINhttp(s)://{CNAME_DOMAIN} e.g. https://wait.stclab.com

compute purge

  • Compute 메뉴의 Compute Services에서 에이전트를 적용한 service를 선택합니다.
  • [Purge]를 클릭하고 [Purge all]을 선택합니다.
  • service name을 입력하고 [Purge all] 버튼을 클릭합니다.

쿠키 도메인 설정

NetFUNNEL 에이전트는 진입 후 발급받은 키를 쿠키에 저장할 때 현재 페이지의 도메인을 기준으로 저장합니다. 만약 서로 다른 서브 도메인 간에 키를 공유해야 할 경우 메인 도메인이 쿠키에 저장되도록 설정합니다.

정보

netfunnel.stclab.combotmanager.stclab.com와 같이 서브 도메인이 서로 다른 페이지에서 쿠키를 공유해야 하면 .stclab.com으로 설정합니다.

config store 설정

  • Resources 메뉴의 Config stores에서 에이전트에서 사용 중인 store를 선택합니다.
  • [+ Add item]을 클릭하고 다음 표를 참고하여 추가합니다.
KeyValue
COOKIE_DOMAIN.{MAIN_DOMAIN} e.g. .stclab.com

compute purge

  • Compute 메뉴의 Compute Services에서 에이전트를 적용한 service를 선택합니다.
  • [Purge]를 클릭하고 [Purge all]을 선택합니다.
  • service name을 입력하고 [Purge all] 버튼을 클릭합니다.