Fastly 통합 가이드
NetFUNNEL Fastly 에이전트는 Fastly Compute Services에서 NetFUNNEL 서버와 통신하는 전용 클라이언트입니다.
1. Compute Service 설정
1.1 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를 클릭합니다.
1.2 CNAME 등록
Deploy가 완료되면 Additional setup의 Point your custom domain to Fastly를 확인해주세요.
Issue TLS Certification을 클릭해주세요.
Your DNS provider에서 도메인이 등록되어있는 서비스를 선택하고 해당 서비스에서 CNAME을 등록해주세요.
1.3 Service configuration 설정
Edit configuration(또는 Service configuration)을 클릭하여 Clone version 1 (active) to edit을 클릭합니다.
Fastly compute는 수정할 때마다 새로운 버전으로 clone해야 수정이 가능합니다.
1.3.1 nf_core host 생성
CLIENT_ID는 NetFUNNEL 콘솔에서 확인하세요.
Origins 메뉴를 선택하고 Hostname으로
{CLIENT_ID}.netfunnel.stclab.com을 입력하고 Add를 클릭합니다.방금 생성한 host를 선택하여 Edit 페이지로 이동합니다.
Name을
nf_core로 변경하고 Update를 클릭합니다.
1.3.2 nf_setting host 생성
+ Create a host를 클릭하고 Hostname으로
nf-setting-bucket.stclab.com을 입력하고 Add를 클릭합니다.방금 생성한 host를 선택하여 Edit 페이지로 이동합니다.
Name을
nf_setting으로 변경하고 Update를 클릭합니다.
1.3.3 origin host 생성
+ Create a host를 클릭하고 Hostname으로 원본 주소를 입력하고 Add를 클릭합니다.
방금 생성한 host를 선택하여 Edit 페이지로 이동합니다.
Name을
origin으로 변경하고 Update를 클릭합니다.
1.3.4 Activate
우상단의 Activate를 클릭하여 저장합니다.
2. Config store 설정
2.1 config store 생성
Resources 메뉴의 Config stores에서 우상단의 + Create store를 클릭합니다.
Store name을
nf_config_store로 입력하고 Create를 클릭합니다.Add item을 클릭하고 다음 표를 참고하여 추가합니다.
Key | Value |
|---|---|
CLIENT_ID | {CLIENT_ID} |
2.2 config store 연결
상단 탭의 Linked Services를 선택하고 Link service를 클릭합니다.
위에서 생성한 Compute service를 선택하고 Next를 클릭합니다.
Link and activate를 클릭합니다.
Active Service Versions 창이 뜨면 Confirm and activate를 클릭합니다.
3. 토큰 생성
Account → API tokens → Personal tokens 메뉴로 이동합니다.
우상단의 + Create Token을 클릭합니다.
Continue를 클릭하고 다시 로그인합니다.
Name을 입력하고 Expiration을 Never expire로 선택하고 Create Token을 클릭합니다.
4. 에이전트 배포
4.1 에이전트 파일 및 패키지 설치
fastly CLI를 위한 패키지를 설치합니다.
에이전트 파일을 다운로드합니다.
Download
brew install fastly/tap/fastly
4.2 toml 파일 수정
다운로드 받은 에이전트 파일을 압축 해제하고
fastly.toml파일을 엽니다.Fastly 콘솔에서 compute service의 ID를 복사합니다.
cloned_from과service_id의 값에 복사한 ID를 넣습니다.
authors = []
cloned_from = "{CLIENT_ID}"
description = "Fastly agent for NetFUNNEL - Rust implementation"
language = "rust"
manifest_version = 3
name = "NetFUNNEL-Fastly-Agent-Rust"
service_id = "{CLIENT_ID}"
4.3 compute에 에이전트 배포
netfunnel-fastly-agent 폴더에서 터미널을 열고 아래 명령어를 입력하면 에이전트 코드가 compute로 배포됩니다.
fastly compute deploy
5. 부가 기능
5.1 Good Bot 예외 처리
config store 설정을 통해 특정 User-Agent 값이 포함되어 있을 경우 에이전트 동작으로부터 예외 처리할 수 있습니다.
5.1.1 config store 설정
Resources 메뉴의 Config stores에서 에이전트에서 사용 중인 store를 선택합니다.
+ Add item을 클릭하고 다음 표를 참고하여 추가합니다.
Google, Microsoft, Yahoo, Apple, Facebook 봇을 예외 처리한 예시입니다.
Key | Value |
|---|---|
GOOD_BOTS | Googlebot, Bingbot, Slurp, Applebot, facebookexternalhit |
5.1.2 compute purge
Compute 메뉴의 Compute Services에서 에이전트를 적용한 service를 선택합니다.
Purge를 클릭하고 Purge all을 선택합니다.
service name을 입력하고 Purge all 버튼을 클릭합니다.
5.2 진입 키 자동 반납 처리
NetFUNNEL Fastly 에이전트에서는 진입 후 넷퍼넬 키를 자동으로 반납하여 다음 대기자가 진입할 수 있도록 처리하고 있습니다. 만약 넷퍼넬 키를 바로 반납하지 않고 세그먼트에서 설정한 타임아웃 시간에 넷퍼넬 키를 반납하고 싶은 경우에 사용할 수 있는 기능입니다.
5.2.1 config store 설정
Resources 메뉴의 Config stores에서 에이전트에서 사용 중인 store를 선택합니다.
+ Add item을 클릭하고 다음 표를 참고하여 추가합니다.
Key | Value |
|---|---|
RETURN_KEY | true |
true (기본값): 대기 완료 후 진입 시 에이전트에서 넷퍼넬 키를 자동으로 반납합니다.false: 세그먼트에서 설정한 타임아웃 시간에 키가 반납 처리됩니다.
5.2.2 compute purge
앞서 5.1.2 compute purge 과정을 반드시 진행합니다.
5.3 대기실 도메인 변경
NetFUNNEL 대기실 페이지의 도메인은 agent-lib.stclab.com입니다. 해당 도메인을 서비스 중인 도메인에 맞게 변경하려면 NetFUNNEL 서비스팀을 통해 원하는 도메인을 알려주시고, config store 설정을 변경해야 합니다.
5.3.1 config store 설정
Resources 메뉴의 Config stores에서 에이전트에서 사용 중인 store를 선택합니다.
+ Add item을 클릭하고 다음 표를 참고하여 추가합니다.
Key | Value |
|---|---|
VWR_PAGE_DOMAIN | http(s)://{CLIENT_ID}.stclab.com |
5.3.2 compute purge
앞서 5.1.2 compute purge 과정을 반드시 진행합니다.
5.4 쿠키 도메인 설정
NetFUNNEL 서버에서 발급한 키를 쿠키에 저장할 때 현재 페이지의 도메인을 기준으로 저장합니다. 만약 서로 다른 서브도메인 간에 키를 공유해야할 경우 메인 도메인이 쿠키에 저장되도록 설정합니다.develop.stclab.com과 staging.stclab.com와 같이 서브도메인이 서로 다른 페이지에서 쿠키를 공유하도록 .stclab.com으로 설정합니다.
5.4.1 config store 설정
Resources 메뉴의 Config stores에서 에이전트에서 사용 중인 store를 선택합니다.
+ Add item을 클릭하고 다음 표를 참고하여 추가합니다.
Key | Value |
|---|---|
COOKIE_DOMAIN | 예시: .stclab.com |
5.4.2 compute purge
앞서 5.1.2 compute purge 과정을 반드시 진행합니다.
4. 트리거 규칙 설정
대기열 제어 지점은 NetFUNNEL 콘솔의 세그먼트 트리거 규칙을 통해 설정할 수 있습니다. 사용자가 접속한 페이지의 URL과 트리거 규칙을 비교하여 일치하는 경우 대기열이 적용됩니다.
트리거 규칙 설정 방법은 트리거 규칙 설정 가이드를 참고하세요.