고정 세션

고정 세션

고정 세션은 관련 요청에 하나의 출구 IP를 유지하도록 프록시 서비스에 지정하는 기능입니다. 할당이 유효하고 출구를 사용할 수 있는 동안 애플리케이션은 해당 주소로 페이지를 열고, 데이터를 보내고, 결과를 받을 수 있습니다. 작업이 끝나면 다음 작업을 위해 별도 세션을 시작할 수 있습니다.

이는 보통 순환 풀에 접근하는 한 가지 방식입니다. 전반적인 비교는 고정 IP 프록시와 순환 프록시 비교에서 다룹니다. 여기서는 한 작업에 주소를 유지하는 방법, 할당이 지속되는 시간, 중단될 수 있는 원인을 살펴봅니다.

서비스가 선택한 IP를 유지하는 방법

서비스는 어떤 연결들이 같은 작업에 속하는지 식별해야 합니다. 흔히 프록시 설정에 세션 식별자를 넣는 방식을 사용합니다. 첫 연결에서 서비스가 출구를 선택하고 해당 식별자에 연결합니다. 이후 같은 세션 설정을 사용하는 연결은 세션이 유효한 동안 할당된 출구를 사용합니다.

예를 들어 브라우저 테스트가 세션 이름 task1을 사용합니다. 첫 연결은 예시 출구 IP 198.51.100.27을 받습니다. 같은 활성 할당으로 다음 페이지를 열고 양식을 제출할 때도 이 주소를 사용합니다. 이름은 할당을 식별할 뿐, IP 자체를 나타내거나 영구적으로 예약하지 않습니다.

세션 식별자는 프록시 사용자 이름에 추가하거나, API로 선택하거나, 설정된 포트로 나타낼 수 있습니다. 일부 서비스는 별도 이름이 없는 기본 세션도 제공합니다. 이들은 할당을 관리하는 서로 다른 방식이므로 고정 세션 접근에 공통으로 쓰이는 사용자 이름 형식이나 포트 번호는 없습니다.

고정 세션은 여러 네트워크 연결에 걸쳐 적용될 수 있습니다. 이미 열려 있는 연결 하나를 재사용하는 것과는 다릅니다. 같은 일반 TCP 연결 안의 요청들은 원래 출구 IP를 유지합니다. 세션이 여러 연결에서도 주소를 유지하는지 확인하려면 같은 세션 설정으로 새 연결을 열었을 때의 동작을 관찰하는 것이 유용합니다.

하나의 애플리케이션에서 나온 세 개의 별도 연결이 같은 세션 이름 task1을 사용합니다. 게이트웨이는 198.51.100.27에 대한 활성 할당을 재사용합니다. 대상에는 세 연결 모두 같은 예시 IP로 표시됩니다.

여러 요청에 하나의 IP가 필요한 경우

여러 단계로 구성된 브라우저 테스트가 분명한 예입니다. 로그인하고, 설정 페이지를 열고, 변경 사항을 제출하고, 결과를 확인할 수 있습니다. 출발지 IP를 일정하게 유지하면 테스트 도중 불필요한 변경을 없앨 수 있습니다. 사이트가 세션 검사 항목 중 하나로 주소를 사용하는 경우에 특히 중요합니다.

쇼핑 또는 예약 테스트도 일관된 지역별 이용 환경이 필요할 수 있습니다. 애플리케이션이 같은 출구로 검색하고, 옵션을 선택하고, 다음 단계를 확인합니다. 단계 사이의 네트워크 위치를 일정하게 유지하는 데 도움이 되지만, 사이트는 표시 내용을 결정할 때 계정 설정, 배송 정보 또는 쿠키도 사용할 수 있습니다.

대상 서비스가 관련 동작을 일정한 출발지 주소에서 받기를 기대하는 일련의 API 호출도 한 예입니다. 할당은 대기와 재시도를 포함한 전체 과정을 유지해야 합니다. 반대로 서로 관련 없는 공개 페이지 조회에는 반드시 하나의 IP가 필요하지는 않습니다. 주소 유지는 작업의 연속성이 중요할 때 유용하며, 그 자체로 주소의 평판을 높이거나 사이트의 요청 수락을 보장하지 않습니다.

계정 테스트의 연속된 네 동작: 로그인, 설정 열기, 변경 저장, 결과 확인. 고정 할당이 유효한 동안 모든 단계가 같은 예시 출구 IP 198.51.100.27을 사용합니다.

프록시 세션은 웹사이트 로그인을 유지하지 않음

프록시 서비스는 출구 주소를 제어합니다. 웹사이트는 로그인 상태, 장바구니, 양식 진행 상태 같은 자체 세션을 제어합니다. 브라우저나 HTTP 클라이언트는 보통 쿠키나 인증 토큰으로 이 상태를 전달합니다. 두 시스템 모두 세션이라는 말을 쓸 수 있지만 보관하는 정보는 다릅니다.

따라서 출구 IP가 그대로인 동안에도 로그인이 만료될 수 있습니다. 쿠키를 지우면 프록시 할당에는 영향을 주지 않으면서 웹사이트가 사용자를 알아보지 못하게 할 수도 있습니다. 반대도 가능합니다. IP가 바뀐 뒤에도 웹사이트가 유효한 로그인을 받아들일 수 있습니다. 동작은 해당 사이트의 규칙에 따라 달라집니다.

HTTP 라이브러리의 세션 객체는 흔히 쿠키를 저장하고 연결을 재사용합니다. 그 객체를 만들었다고 프록시 서비스의 고정 세션 접근이 자동으로 활성화되지는 않습니다. 전체 작업을 구성하려면 애플리케이션이 웹사이트 상태와 의도한 프록시 할당을 함께 유지해야 합니다. 서로 다른 작업이 쿠키를 공유해서는 안 된다면 여전히 별도 브라우저 프로필이나 분리된 클라이언트 상태가 필요합니다.

같은 출구 IP 198.51.100.27을 사용하는 브라우저의 두 상태. 쿠키를 삭제하기 전에는 계정에 로그인돼 있습니다. 삭제한 뒤에는 프록시 IP가 그대로인데도 예시 사이트가 다시 로그인을 요구합니다.

세션 유지 시간이 실제로 의미하는 것

세션 유지 시간이라는 말로 두 가지 타이머를 설명할 수 있습니다. 고정 유효 시간은 시작 시점부터 할당이 존재할 수 있는 시간을 제한합니다. 비활성 시간 제한은 마지막으로 인정된 요청 이후의 대기 시간을 제한합니다. 새 요청은 비활성 타이머를 다시 시작할 수 있지만, 별도의 고정 유효 시간을 늘리지는 않습니다.

제한카운트다운 시작 기준추가 요청의 영향
고정 유효 시간서비스 정의에 따른 할당 생성 또는 첫 사용원래 만료 시각이 바뀌지 않음
비활성 시간 제한마지막 요청 또는 서비스가 인정하는 다른 활동요청이 활동으로 인정되면 비활성 카운트다운을 다시 시작

10분 제한을 가진 두 예시 세션을 생각해 보세요. 둘 다 14:00에 시작하고 14:08에 추가 요청을 받습니다. 고정 유효 시간에서는 만료 시각이 14:10으로 유지됩니다. 비활성 시간 제한에서는 해당 요청으로 비활성 만료 시각이 14:18로 이동합니다. 따라서 같은 유지 시간이 표시돼도 실제 작업 중의 동작은 크게 달라질 수 있습니다.

서비스가 두 제한을 모두 적용할 수도 있습니다. 이 경우 어느 하나에 도달하면 할당이 종료됩니다. 일반 기본값이 설정에서 선택 가능한 최장 시간과 다를 수도 있습니다. 트래픽을 계속 보내면 비활성 만료를 피할 수는 있지만, 별도의 최대 유효 시간을 없애지는 못합니다.

만료되면 이전 출구에 대한 할당이 끝납니다. 같은 세션 이름이라도 이후 연결은 다른 주소를 받을 수 있습니다. 서비스에 따라 열린 연결이 끝날 때까지 유지되거나 닫힐 수 있습니다. 타이머가 미완료 TCP 교환을 다른 IP로 옮기는 것은 아닙니다.

작업 전체와 느린 응답, 예상 대기 시간을 포함하는 유지 시간을 선택하세요. 이전 할당의 끝 무렵에 새 작업을 시작하면 설정된 시간보다 남은 시간이 짧습니다. 유휴 세션을 유지하기 위해서만 보내는 요청도 실제 트래픽이므로 서비스의 요청 또는 트래픽 허용량에 포함될 수 있습니다.

병렬 작업 분리하기

독립적인 작업마다 안정적인 주소가 필요하다면 각 작업에 고유 세션 식별자를 주고 단계 전체에서 유지하세요. 다음 페이지를 불러오는 프로세스는 요청마다 새 이름을 만들지 말고 해당 작업의 세션을 재사용해야 합니다. 그 작업 안에서 재시도할 때도 관련 없는 프록시 설정으로 몰래 바뀌어서는 안 됩니다.

두 브라우저 테스트를 동시에 실행한다고 가정합니다. 첫 번째는 task1, 두 번째는 task2를 사용하며 각자 쿠키를 따로 유지합니다. 두 테스트에 같은 세션 이름을 주면 다른 설정도 일치할 때 같은 할당을 사용하도록 서비스에 요청하게 됩니다. 일반 탭을 새로 연다는 것만으로 별도의 프록시 설정이나 쿠키 저장소가 생기지는 않습니다.

서로 다른 식별자는 별도 할당을 요청하지만, 모든 서비스에서 서로 다른 출구 IP를 보장하는 것은 아닙니다. 서로 다른 주소를 약속하는지는 별도의 상품 속성입니다. 고정 세션 접근도 출구를 해당 계정의 전용 주소로 만들지는 않습니다. 공유 풀에 속한 주소라면 다른 고객도 계속 사용할 수 있습니다.

지원되는 경우 여러 연결이 같은 세션을 동시에 사용할 수 있습니다. 연결들은 출구를 공유하며 계정의 연결 및 사용 한도를 따릅니다. 세션 이름을 더 만든다고 한도가 늘어나지는 않습니다. 전체 실행 전 병렬 작업 수와 각 작업이 여는 연결 수를 모두 확인하세요.

병렬 브라우저 프로필 두 개가 쿠키를 따로 유지합니다. 프로필 A는 세션 task1을 사용하며 예시 출구는 198.51.100.27입니다. 프로필 B는 task2를 사용하며 예시 출구는 203.0.113.42입니다. 각 작업은 자신의 할당을 재사용합니다. 세션 이름이 다르다고 항상 서로 다른 IP 주소가 보장되지는 않습니다.

예상보다 일찍 주소가 바뀔 수 있는 이유

타이머가 유효해도 사용할 수 없는 출구를 작동시킬 수는 없습니다. 주거용 기기가 오프라인이 되거나, 모바일 연결이 다른 공인 IP를 받거나, 서버에 접속할 수 없게 될 수 있습니다. 요청한 유지 시간은 할당의 시간 규칙을 나타낼 뿐, 원래 출구의 지속적인 가용성을 그 자체로 보장하지 않습니다.

해당 출구를 잃었을 때 서비스는 두 가지로 대응할 수 있습니다. 이후 요청을 계속 보낼 수 있도록 대체 출구를 선택하거나, 오류를 반환하고 원래 출구를 사용해야 한다는 조건을 유지할 수 있습니다. 일부 상품에서는 선택할 수 있습니다. 자동 대체는 다음 연결의 수립을 우선시하며, 오류 반환은 다른 주소로 계속하기 전에 애플리케이션이 멈출 기회를 줍니다.

이름이 같다고 나머지 세션 설정도 그대로라는 뜻은 아닙니다. 다른 게이트웨이로 이동하거나 국가 필터를 변경하면 다른 할당이 생길 수 있습니다. 관련 범위는 서비스마다 다릅니다. 같은 이름의 세션이 어디서나 통하는 것이 아니라 특정 계정, 상품 또는 진입 서버에 속할 수 있습니다.

작업 도중 주소가 바뀌면 다음 판단은 해당 작업의 상태에 관한 것입니다. 읽기 전용 단계는 반복해도 안전할 수 있습니다. 주문을 제출하거나 데이터를 변경한 동작은 더 주의해야 합니다. 응답을 잃었다고 동작이 실패했다는 뜻은 아닙니다. 다른 출구로 다시 시작하거나 계속하기 전에 어디까지 완료됐는지 확인하세요.

고정 세션 task1의 유효 시간은 아직 남아 있지만 원래 예시 출구 198.51.100.27을 사용할 수 없습니다. 한 서비스 모드는 대체 출구 203.0.113.42를 선택합니다. 다른 모드는 다른 IP를 선택하지 않고 오류를 반환합니다. 이는 연속된 두 단계가 아니라 서로 다른 대안입니다.

일시적인 연속성으로 충분한 경우

고정 세션 접근은 시작과 끝이 분명하고 해당 실행 동안만 하나의 IP가 필요한 작업에 적합합니다. 예상되는 대기 후에도 할당이 유지되는지, 작업 전체를 버티는지, 출구를 잃었을 때 필요한 방식으로 처리하는지 세 가지를 테스트하세요. 정상적인 대기 뒤 새 연결을 여는 동작을 포함하세요. 이미 열린 하나의 연결 안에서 활동이 이어진다고 다음 연결까지 할당이 유지된다는 증거는 되지 않습니다.

같은 주소를 서버의 허용 목록에 계속 올려 두거나 내일도 다시 사용해야 한다면 그 목적에 맞는 고정 할당을 제공하는 서비스를 사용하세요. 만료 후 고정 세션 이름을 재사용한다고 이전 주소를 확실히 되찾을 수는 없습니다. 일시적인 유지와 오래 지속되는 IP 할당은 서로 다른 연속성 요구를 해결합니다.

지식 베이스로 돌아가기