브로커와의 준비 작업

마지막 업데이트: 2022년 2월 7일 | 0개 댓글
  • 네이버 블로그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 트위터 공유하기
  • 카카오스토리 공유하기
다음 스크린샷은 RADIUS 유형에 대해 2단계 인증 설정이 채워진 구성 마법사 예시를 보여 줍니다.

브로커와의 준비 작업

이 문서에서는 연결 FQDN 또는 URL, 2단계 인증, 세션 시간 초과 및 Horizon 기능 정책을 포함하여 Universal Broker 설정을 구성하기 위한 자세한 단계별 지침을 제공합니다.

최종 사용자 할당의 리소스 브로커링을 위해 Universal Broker 를 사용하려면 먼저 특정 설정을 구성해야 합니다.

Universal Broker 이 첫 번째 설정에서 구성 마법사는 Universal Broker 설정 시작에 설명된 대로 자동으로 열립니다.

그런 다음, 서비스를 계속 사용하는 동안 설정을 수정해야 하는 경우 콘솔의 [브로커] 페이지 또는 [시작] 페이지에서 구성 마법사를 다시 열 수 있습니다.

  • 설계에 따라 Universal Broker 가 2단계 인증 설정으로 구성되었다면 인증 요청을 형성하여 이를 외부 Unified Access Gateway 인스턴스에 전달합니다. 그러면 외부 인스턴스에서는 해당 인스턴스의 설정에 구성된 실제 인증 서버와 통신합니다. 그런 다음, Unified Access Gateway 는 인증 서비스의 응답을 Universal Broker 에 다시 전달합니다.
  • 기본 설계에 따라 동일한 Universal Broker 2단계 인증 설정이 테넌트 전체에 적용되고 테넌트 포드 그룹의 모든 포드에서 사용됩니다. Universal Broker 에 2단계 인증을 사용하려면 포드 그룹에 참여 중인 모든 포드 내의 각 외부 Unified Access Gateway 인스턴스에 대한 적절한 인증 서비스를 구성해야 합니다. 외부 Unified Access Gateway 인스턴스의 구성은 참여 포드 내부 및 사이에서 동일해야 합니다.
  • 예를 들어 Horizon 포드 및 Horizon Cloud 포드로 구성된 혼합 포드 그룹이 있고 RADIUS 인증을 사용하려는 경우 이러한 모든 Horizon 포드 및 Horizon Cloud 포드에서 각 외부 Unified Access Gateway 인스턴스에 RADIUS 서비스를 구성합니다.

사전 요구 사항

중요: 인터넷으로 연결하는 최종 사용자가 있거나 2단계 인증을 사용하려면 포드에 있는 외부 Unified Access Gateway 인스턴스를 삭제하지 마십시오. 외부 최종 사용자의 경우 클라이언트가 Universal Broker 에서 인증을 받은 후 최종 사용자 클라이언트에서 가상 데스크톱 또는 원격 애플리케이션을 성공적으로 실행하려면 외부 Unified Access Gateway 가 필요합니다. 2단계 인증의 경우 Universal Broker 는 2단계 인증 설정과 일치하는 외부 Unified Access Gateway 를 검색하므로 외부 Unified Access Gateway 구성이 필요합니다.

포드 유형에 따라 필요한 시스템 구성 요소를 준비합니다. 테넌트의 첫 번째 Universal Broker 설정 마법사를 완료할 때 이러한 사전 요구 사항을 확인하는 것이 특히 중요합니다.

    의 설명에 따라 필요한 포트를 구성합니다. 항목을 참조하십시오. 항목을 참조하십시오. Universal Broker 에서 Horizon 포드에 대해 2단계 인증을 사용하도록 하려는 경우 모든 참여 포드 내의 각 Unified Access Gateway 인스턴스에서 적절한 2단계 인증 서비스를 구성합니다. 자세한 내용은 Universal Broker 환경에서 2단계 인증을 구현할 때의 모범 사례 항목을 참조하십시오.
  • 외부 사용자에 대해서만 2단계 인증을 사용하도록 설정하고 내부 사용자에 대해서는 우회하려면 Universal Broker에 대한 내부 네트워크 범위 정의합니다. 에 설명된 대로 Horizon 포드에 대한 테넌트 전체 연결 브로커로 Universal Broker 를 선택합니다.
  • 지역 Universal Broker 인스턴스에 대한 필수 DNS 이름을 확인할 수 있고 연결할 수 있는지 확인합니다. Microsoft Azure의 Horizon Cloud 포드에 대한 DNS 요구 사항에서 "포드 배포 및 작업 DNS 요구 사항" 표를 참조하십시오. 의 "Universal Broker에 필요한 포드 및 프로토콜" 섹션에 설명된 대로 필요한 포트 및 프로토콜을 구성합니다.
  • Universal Broker 가 Horizon Cloud 포드에 2단계 인증을 사용하려면 모든 참여 포드에 있는 각 외부 Unified Access Gateway 인스턴스에 동일한 유형의 인증 서비스를 구성합니다. Horizon Cloud 포드의 게이트웨이에서 2단계 인증 사용 및 Universal Broker 환경에서 2단계 인증을 구현할 때의 모범 사례 항목을 참조하십시오.
  • 외부 사용자에 대해서만 2단계 인증을 사용하도록 설정하고 내부 사용자에 대해서는 우회하려면 Universal Broker에 대한 내부 네트워크 범위 정의합니다. 에 설명된 대로 Horizon Cloud 포드에 대한 테넌트 전체 연결 브로커로 Universal Broker 를 선택합니다.

중요: 마법사의 마지막 단계를 제출하기 전에 모든 Horizon Cloud 포드가 온라인 상태이고 정상 준비 완료 상태여야 합니다. 설정을 적용하는 동안, Universal Broker 서비스는 포드와 통신하고 포드에 대한 몇 가지 구성 단계를 수행하여 설정 프로세스를 완료해야 합니다. 포드가 오프라인 상태이거나 사용할 수 없는 경우 Universal Broker 설정은 실패합니다.

  1. Universal Broker 를 설정하기 위한 구성 마법사를 엽니다.

Universal Broker 설정 시작 단계 직후 이 마법사를 완료한 경우 이 경우 마법사를 완료하기 전에 취소하지 않으면 일반적으로 콘솔에 마법사가 이미 표시되어 있을 것입니다. 마법사를 완료하기 전에 취소한 경우 설정 > 브로커 로 이동한 후 설정 을 클릭하여 마법사를 직접 엽니다. 저장된 구성을 수정하는 경우 설정 > 브로커 로 이동한 후 해당 구성 옆에 있는 연필 아이콘을 클릭하여 마법사를 직접 엽니다.

  1. 유형 으로 VMware 제공 또는 고객 제공 FQDN(정규화된 도메인 이름) 중 하나를 선택합니다.
  2. 선택한 FQDN 유형에 대한 추가 설정을 지정합니다.

참고: 일부 문자열은 시스템에서 허용되지 않거나 예약되어 있습니다. 이 범주의 문자열에는 일반 단어(예: book ), 잘 알려진 회사 소유 용어(예: gmail ) 및 프로토콜, 코딩 및 오픈 소스 용어(예: php 및 sql )가 포함됩니다. 또한 시스템은 mail0 , mail1 , mail2 등과 같은 문자열 패턴 범주를 허용하지 않습니다.

그러나 이 필드에 허용되지 않는 이름을 입력하는 즉시 시스템이 항목의 유효성을 검사하는 것은 아닙니다. 마법사의 마지막 요약 단계에 도달한 경우에만 여기에서 입력한 이름이 유효한지 검사하고, 항목이 허용되지 않는 이름 중 하나와 일치하는 경우 오류를 표시합니다. 이 문제가 발생하면 여기에 다른 고유한 이름을 입력하십시오.

Horizon Client 를 사용하여 Universal Broker 서비스에 연결할 수 있도록 하기 위해 최종 사용자에게 이 FQDN을 제공합니다.

다음 스크린샷은 VMware 제공 FQDN 설정이 채워진 구성 마법사의 예를 보여 줍니다.

VMware 제공 FQDN 설정이 채워진 Universal Broker 구성 마법사.

사용자 지정 FQDN에 지정된 도메인 이름의 소유자여야 하며 해당 도메인의 유효성을 검사할 수 있는 인증서를 제공해야 합니다.

중요: 사용자 지정 FQDN을 Universal Broker 서비스의 내부 연결 주소를 나타내는 VMware 제공 FQDN에 매핑하는 CNAME 레코드를 DNS 서버에서 생성해야 합니다. 예를 들어 이 레코드는 vdi.examplecompany.com 을 <자동 생성 문자열>.vmwarehorizon.com 에 매핑할 수 있습니다.

찾아보기 를 클릭하고, 브로커링 FQDN을 검증하는 인증서(암호로 보호되는 PFX 형식)를 업로드합니다. 인증서는 다음 조건을 모두 충족해야 합니다.

  • 인증서는 90일 이상 유효해야 합니다.
  • 인증서에는 신뢰할 수 있는 CA의 서명이 있어야 합니다.
  • 인증서의 CN(일반 이름) 또는 해당 SAN(주체 대체 이름)이 FQDN과 일치해야 합니다.
  • 인증서의 컨텐츠는 표준 X.509 형식을 준수해야 합니다.

PFX 파일에 전체 인증서 체인과 개인 키, 즉 도메인 인증서 중간 인증서, 루트 CA 인증서, 개인 키가 포함되어야 합니다.

Universal Broker 서비스는 이 인증서를 사용하여 클라이언트와의 신뢰할 수 있는 연결 세션을 설정합니다.

참고: 인증서는 CN 또는 SAN 필드에 와일드카드 FQDN을 포함할 수 있습니다. 참조 식별자의 맨 왼쪽 하위 도메인에 와일드카드 문자만 있는 경우 맨 왼쪽 하위 도메인과 일치하는 FQDN만 인증서를 통해 검증됩니다. 예를 들어, 인증서에 와일드카드 FQDN *.mycompany.com 이 포함된 경우 일치하는 규칙은 vdi.mycompany.com 을 유효한 브로커링 FQDN으로 허용합니다. 그러나 test.vdi.mycompany.com 은 참조 식별자와 일치하지 않으므로 허용되지 않습니다.

VMware 제공 FQDN은 최종 사용자에게 보이지 않으며 Universal Broker 서비스의 내부 연결 주소를 나타냅니다. 사용자 지정 FQDN은 VMware 제공 FQDN에 대한 별칭으로 작동합니다.

중요: 사용자 지정 FQDN을 VMware 제공 FQDN에 매핑하는 CNAME 레코드를DNS 서버에 생성하여 별칭 연결을 설정해야 합니다. 예를 들어 이 레코드는 vdi.examplecompany.com 을 <자동 생성 문자열>.vmwarehorizon.com 에 매핑할 수 있습니다.

다음 스크린샷은 사용자 지정 FQDN 설정이 채워진 구성 마법사의 예를 보여 줍니다.

사용자 지정 FQDN 설정이 채워진 Universal Broker 구성 마법사

2단계 인증을 사용하려면 이 토글을 사용하도록 설정합니다.

이 토글을 사용하도록 설정하면 2단계 인증을 구성하기 위한 추가 옵션이 제공됩니다.

이 토글을 해제하는 경우 사용자는 로그인 화면에서 다른 사용자 이름을 입력할 수 있습니다.

Active Directory 사용자 이름 및 암호 외에 Universal Broker 가 최종 사용자에게 사용해야 하는 인증 방법을 지정합니다. 사용자 인터페이스에 두 가지 옵션( RADIUS 및 RSA SecurID )이 표시됩니다.

이 설정은 테넌트 전체에 적용됩니다. 최종 사용자 클라이언트의 동작은 다음과 같이 테넌트의 포드 그룹 구성 및 포드 게이트웨이에 구성된 2단계 인증 유형에 따라 달라집니다.

  • 포드의 외부 게이트웨이에 구성된 유형과 일치하는 유형을 선택합니다.

혼합 그룹의 경우 여기에서 RSA SecurID 를 선택하면 클라이언트 동작은 Horizon Cloud on Microsoft Azure 배포가 외부 게이트웨이에서 RSA SecurID로 구성되었는지 여부에 따라 달라집니다.

  • Horizon Cloud on Microsoft Azure 배포의 게이트웨이에 RSA SecurID 유형이 구성되어 있지 않고 여기에서 RSA SecurID 를 선택하면 Horizon 포드의 Unified Access Gateway 인스턴스를 통해서만 사용자의 RSA 인증 요청이 시작됩니다. Active Directory 사용자 이름 및 암호 인증 요청은 Horizon 포드 또는 Horizon Cloud 포드의 Unified Access Gateway 인스턴스를 통해 시도됩니다.
  • Horizon Cloud on Microsoft Azure 배포에 RSA SecurID 유형이 구성되어 있으면 두 포드 유형의 Unified Access Gateway 인스턴스를 통해 사용자의 RSA 인증 요청이 시도됩니다.

RADIUS 유형에 적용 가능합니다. 이 토글을 사용하도록 설정하면 클라이언트 로그인 화면에 표시되는 텍스트 문자열을 구성하여 사용자에게 추가 인증 방법에 대해 자격 증명을 묻는 메시지를 표시할 수 있습니다.

이 필드는 힌트 텍스트를 표시하도록 선택할 때 사용할 수 있습니다. RADIUS 유형에 적용 가능합니다.

클라이언트 로그인 화면에 표시하려는 텍스트 문자열을 입력합니다. 지정된 힌트는 최종 사용자에게 Enter your DisplayHint user name and password 로 표시됩니다. 여기서 DisplayHint 는 사용자가 이 텍스트 상자에 입력하는 텍스트 문자열입니다.

이러한 금지된 문자를 힌트 텍스트에 포함하면 Universal Broker FQDN에 대한 사용자 연결이 실패합니다.

이 힌트는 사용자가 올바른 자격 증명을 입력하도록 안내합니다. 예를 들어, 회사 사용자 이름 및 도메인 암호 와 같은 구문을 지정하면 최종 사용자에게 Enter your Company user name and domain password below for user name and password 라는 메시지가 표시됩니다.

이 토글을 사용하도록 설정하여 Universal Broker 서비스에 연결하는 내부 네트워크 사용자에 대해 2단계 인증을 우회합니다. Universal Broker에 대한 내부 네트워크 범위 정의에 설명된 대로 내부 네트워크에 속하는 공용 IP 범위를 지정했는지 확인합니다.

  • 이 토글을 사용하도록 설정하면 내부 사용자는 Universal Broker 서비스에서 인증을 받기 위해 Active Directory 자격 증명만 입력하면 됩니다. 외부 사용자는 추가 인증 서비스에 대해 Active Directory 자격 증명과 해당 자격 증명을 모두 입력해야 합니다.
  • 이 토글을 끄면 내부 및 외부 사용자 모두 추가 인증 서비스에 대한 Active Directory 자격 증명과 해당 자격 증명을 입력해야 합니다.

이 필드는 2단계 인증 건너뛰기 를 사용하도록 설정한 경우에 나타납니다.

[브로커] 페이지의 [네트워크 범위] 탭에 하나 이상의 공용 IP 범위가 이미 지정된 경우 이 필드는 읽기 전용이며 해당 IP 범위를 나열합니다.

[브로커] 페이지의 [네트워크 범위] 탭에 공용 IP 범위가 아직 지정되지 않은 경우 이 필드를 사용하여 해당 범위에서 들어오는 트래픽에 대한 2단계 인증 프롬프트를 건너뛰기 위해 내부 네트워크를 나타내는 공용 IP 범위를 지정할 수 있습니다. Universal Broker 는 이러한 범위 중 하나에 속하는 IP 주소에서 연결하는 모든 사용자를 내부 사용자로 간주합니다.

이러한 범위를 지정하는 목적에 대한 자세한 내용은 Universal Broker에 대한 내부 네트워크 범위 정의 항목을 참조하십시오.

2단계 인증 설정이 채워진 Universal Broker 구성 마법사

다음 스크린샷은 RADIUS 유형에 대해 2단계 인증 설정이 채워진 구성 마법사 예시를 보여 줍니다.

이러한 시간 초과 설정은 Horizon Client 와 Universal Broker 에서 할당된 데스크톱 간의 연결 세션에 적용됩니다. 이러한 설정은 할당된 데스크톱의 게스트 운영 체제에 대한 사용자의 로그인 세션에 적용되지 않습니다. Universal Broker 는 이러한 설정으로 지정된 시간 초과 조건을 감지하면 사용자의 Horizon Client 연결 세션을 닫습니다.

설정 설명
Client 하트비트 간격 Horizon Client 하트비트 간 간격(분)과 Universal Broker 에 대한 사용자 연결 상태를 제어합니다. 이러한 하트비트는 Horizon Client 연결 세션 동안 경과된 유휴 시간을 Universal Broker 에 보고합니다.

Horizon Client 를 실행하는 끝점 디바이스와의 상호 작용이 발생하지 않을 때 유휴 시간이 측정됩니다. 이 유휴 시간은 사용자가 할당한 데스크톱의 기준이 되는 게스트 운영 체제에 대한 로그인 세션이 비활성 상태가 되어도 영향을 받지 않습니다.

대규모 데스크톱 배포에서 클라이언트 하트비트 간격 을 늘리면 네트워크 트래픽이 줄어들고 성능이 향상될 수 있습니다.

최대 시간에 도달하면 사용자의 인증 기간이 만료되고 Universal Broker 는 모든 활성 Horizon Client 세션을 닫습니다. 연결 세션을 다시 열려면 사용자가 Universal Broker 로그인 화면에서 인증 자격 증명을 다시 입력해야 합니다.

이 설정은 Universal Broker 기타 클라이언트로 레이블이 지정된 Horizon Connection Server 설정과 유사한 를 지정합니다. SSO 자격 증명 삭제 .

따라서 이 설정에 대한 설명은 Horizon Connection Server 설정의 설명 및 이 설정에 대한 콘솔의 도구 설명과 일치하도록 작성됩니다.

이 설정은 애플리케이션 원격 작업을 지원하지 않는 클라이언트에 사용됩니다. 지정된 시간(분)이 경과한 후 SSO 자격 증명을 삭제합니다. 사용자는 클라이언트 디바이스에서 활동 중이더라도 지정된 시간(분)이 경과하면 다시 로그인하여 데스크톱에 연결해야 합니다. 기본값은 15분입니다.

이 설정을 사용하도록 지정하면 사용자가 원격 데스크톱에 연결하는 탭을 닫거나 Horizon HTML Access 클라이언트에서 데스크톱 선택 페이지에 연결하는 탭을 닫을 때 사용자의 자격 증명을 캐시에서 제거합니다.

이 설정을 사용하도록 설정하면 다음 HTML Access 클라이언트 시나리오에서도 캐시에 있는 자격 증명이 제거됩니다.

  • 사용자가 데스크톱 선택 페이지나 원격 세션 페이지를 새로 고침합니다.
  • 서버에서 자체 서명된 인증서를 표시하고, 사용자가 원격 데스크톱을 실행하고, 보안 경고가 나타났을 때 사용자가 인증서를 승인합니다.
  • 사용자가 원격 세션이 포함된 탭에서 URI 명령을 실행합니다.

이 설정을 해제한 경우에는 자격 증명이 캐시에 남아 있습니다.

예를 들어 클라이언트 사용자는 현재 전원이 꺼진 데스크톱을 요청할 수 있습니다. 이 설정을 사용하도록 설정하면 Horizon Client 가 데스크톱의 전원이 켜지고 사용 가능해질 때 연결 요청을 다시 전송하고 연결 세션을 설정할 수 있습니다.

시스템 및 네트워크 조건에 따라, 모든 전역 지역의 DNS 서버에서 DNS 레코드가 전파되므로 구성 설정이 Universal Broker 서비스에 완전히 적용되는 데 일반적으로 최소 몇 분에서 최대 30분까지 소요됩니다. 이 시간 동안에는 Universal Broker 서비스를 사용할 수 없습니다. 설치가 성공적으로 완료되면 [시작] 페이지의 [브로커] 섹션에 완료 상태가 표시되고 설정 > 브로커 페이지에서 사용 상태에 녹색 점이 표시됩니다.

브로커와의 준비 작업

벌써 7번째 칸영화제 초청이다. “봉준호 감독께서 송강호를 믿으라 했고, 그렇게 했다”는 고레에다 히로카즈 감독의 말은 정확하다. 여기에 더이상 어떤 수식어를 붙여봤자 거추장스러울 뿐이다. 송강호 배우는 고레에다 감독과의 작업을 솔직한 대면이라고 표현했다. “전작들과 어떻게 다르고 뭐가 비슷한지에 대해선 일부러 생각하지 않았다. 상현이 어떤 사연으로 세탁소를 하고 있는지, 어쩌다가 브로커 일을 시작했는지에 대해서도 구체적인 사연을 상상하지 않았다. 연기를 할 때 늘 생각하는 건 지금 현재 이 인물의 감정과 상황이 무엇일지 표현하는 것뿐이다.” 스스로 영화가 되는 배우와 일상의 잔물결도 놓치지 않는 감독이 만나 만들어낸 기적 같은 여정은 특별함을 의식하지 않기에 한층 더 특별해졌다. 칸영화제 출국 전에 진행한 인터뷰에서 담담하게 산책하듯 다녀오겠다던 송강호는 결국 남우주연상 트로피를 들고 돌아왔다. 트로피는 그저 수많은 이름표 중 하나에 불과함을 알기에 우리는 더 큰 박수 소리로 그의 귀환을 환영한다. 오직 지금 주어진 것들에 집중하는 송강호는 그렇게 한국영화의 얼굴이 된다.

- 과의 인터뷰도 오랜만이다.

= 이후에 개봉이 코로나19 팬데믹 때문에 계속 밀리면서 그렇게 됐다. 극장가 분위기가 꽤 오래 가라앉았는데 이제 슬슬 흥행작도 나오면서 살아나는 것 같다. 이런 흐름 속에 를 통해 관객과 만날 수 있어 기분 좋다.

- 고레에다 히로카즈 감독과는 언제 처음 인연을 맺었나.

= 처음 뵌 건 2007년 부산국제영화제 때였다. 상영을 끝내고 엘리베이터에서 내리는데 우연히 문 앞에서 마주쳤다. 너무 반가우면 순간 말문이 막힐 때가 있지 않나. 그땐 나누고 싶은 이야기는 삼킨 채 가볍게 인사만 나눈 기억이 있다. “은 최고의 영화다”라고 칭찬해주신 건 또렷이 기억난다. (웃음)

- 에 출연하기로 결정한 계기가 있나.

= 고레에다 감독님 작품이니까. 늘 봐왔던, 좋아하는 감독의 영화에 출연할 수 있는 기회가 왔는데 마다할 이유가 없었다. 영화제를 오가며 만난 뒤 몇년 전에 한국에서 찍을 영화를 준비하고 있다며 한번 만나고 싶다는 제안이 왔다. 감독님 영화의 오랜 팬이었기 때문에 당연히 출연하고 싶었지만 딱 하나 걸리는 게 있었다. 당시 봉준호 감독의 을 찍기로 결정한 다음주였기 때문에 연이어 가족에 관한 이야기를 연기한다는 게 조금 걱정스러웠다. 약간의 시간 차가 있으면 좋겠다고 생각하던 찰나 인연이 있었던 건지 의 시작이 조금 밀렸다는 소식이 왔다. 감독님도 워낙에 바쁜 분이고 여러 프로젝트를 동시에 진행하고 계시니까. 덕분에 홀가분하게 출연할 수 있었다.

- 고레에다 감독의 영화를 관객으로서 볼 때와 작품에 참여했을 때 무엇이 가장 달랐나.

= 이번 영화의 처음 제목은 ‘요람’이었다. 베이비박스에 버려진 아이에 관한 이야기라는 한줄 아이디어만 들었기에 막연했는데 처음 시나리오를 받아보고 예상 밖이어서 재미있었다. 선입견이었지만 일본 감독님들은 좀더 구체적인 계획하에서 정해진 대로 찍을 줄 알았다. 하지만 고레에다 감독님은 현장에서 자연스럽게 변화하는 것들을 받아들이는 스타일이었다. 예상을 빗나가서 더 즐거운 부분이 있다. 창의적인 작업이라고 할까. 현장에서 배우들을 존중해주고 배우들의 반응을 유심히 관찰하고 지켜본다. 그렇다고 즉흥적인 연출을 하는 건 아니고. 정확한 그림이 머릿속에 있다는 걸 느낄 수 있었다. 다만 그걸 표현하는 방식에서 배우들을 믿고 맡겨주는 편이었다.

- 세탁소를 하면서 어두운 거래도 병행하는 상현 역을 맡았다.

= 제목 그대로 브로커다. 버려진 아이를 새 부모에게 건네주고 수수료를 챙기는 사람이다. 베이비박스 시설에서 일하는 보육원 출신 청년 동수(강동원)와 팀으로 일하는데 인신매매나 흉악범은 아니고 나름의 논리가 있다. 이렇게 버려지면 보육원에서 커야 하는데 그보다는 새로운 가정에 연결해주면 누이 좋고 매부 좋은 일이라는 거다. 그럼에도 꼭 한마디로 지칭해야 한다면, 브로커다. (웃음) 어쩌면 이 영화는 상현의 일이 무엇인지 아주 긴 변명, 아니 설명을 해주는 것처럼 보이기도 한다. 시나리오를 읽을 때부터 사회적으로 파장이 있을 수 있겠다는 생각을 했다. 입양에 대한 예민한 부분을 건드리는 면이 있으니까. 한편으로 이건 버려진 사람들에 대한 이야기로 다가왔다. 상현, 동수, 소영(이지은) 모두 누군가로부터 버려진 경험을 안고 살아간다. 나쁜 사람들이 아니다. 그런 이들이 우연히 모여 가족 비슷한 경험을 함께한다.

- 상현과 동수, 소영 일행이 아이를 입양 보내기 위해 여행을 떠난다. 영화 속 시간 순서대로 로케이션 촬영을 했다고 들었다.

= 세트 촬영은 이틀 정도밖에 없었고 나머지는 전부 로케이션 현장에서 이뤄졌다. 고레에다 감독님이 워낙에 인위적인 걸 싫어한다. 연기는 물론이고 심지어 지나가는 소음조차 그대로 담기길 원했다. 우리 현장에는 엔지가 없었다. 개가 짖으면 그걸 그대로 담는다. 찍는 도중 오토바이가 지나가도 그대로 담는다. 심지어 목소리가 정확하게 담기지 않아도 관계없었다. 감독님은 모니터도 안 본다. 본인의 육안으로 마치 연극을 관람하는 것처럼 배우들의 숨결까지 보고 소중하게 담으려 공을 들였다. 솔직히 로케이션을 순서대로 했다든지 로드무비의 형식을 취했다는 건 그리 중요하지 않았다. 다 같이 그때 그 순간의 공기 속으로 자연스럽게 녹아드는 게 좋았다. 모든 게 물 흐르듯 자연스러운 시간이었다.

- 이들의 관계가 무엇인지 굳이 정의하려는 영화가 아니고 사연도 구체적으로 설명되지 않지만 여정의 끝에서 결국에는 한 덩어리가 되어가는 모습이 형용하기 힘든 느낌을 준다.

= 상현 일행의 여정을 쫓는 경찰 중 하나인 수진(배두나)이 하는 대사가 있는데, 그게 유독 가슴에 와 꽂혔다. 세상은 상현 일행을 브로커라고 쉽게 낙인찍지만 사람 사는 게 그리 단순하진 않지 않나. 연기를 할 때도 뭔가 설명하거나 스스로 어떤 사람이 되겠다는 의식은 별로 없다. 굳이 생각을 한다면 그저 어떤 아름다운 순간들을 전할 수 있으면 좋겠다는 것 정도다. 그런 순간들이 쌓이고 쌓여서 뒤돌아보니 어느새 여기까지 왔다. 그동안 내가 해온 연기가 그랬고, 이 영화도 그렇다.

- 일본 감독이 한국에 와서 한국 배우들과 찍은 영화다. 고레에다 감독님은 프랑스에서도 (2019)을 찍었다. 해외에서 작업할 때 독특한 색깔이 나오는 것 같다. 의 경우 그동안 감독의 영화보다 정서적인 온도가 좀더 높다.

= 아무래도 한국 배우들과 한국에서 작업을 하다보니 정서적인 부분이 반영된 것도 없지 않을 거다. 그럼에도 불구하고 전체적으로는 감독님이 그동안 해온 영화와 마찬가지로 담백하고 건조한 시선이 강하다. 이번에는 좀더 상업적인 면모를 기대하신 분도 있겠지만 결국 이건 이창동도 박찬욱도 아닌 고레에다 감독의 영화다. 그만의 미학이 담겨 있다.

- 말한 것처럼 이창동, 박찬욱, 봉준호 등 숱한 작가들과 함께 작업을 했는데.

= 밤을 새워도 그 차이들을 다 이야기하긴 힘들다. (웃음) 감독마다 디테일한 부분은 다르지만 결국엔 관통하는 것들이 있다. 고집일 수도 있고 세상을 바라보는 방식일 수도 있고. 굵은 기둥 같은 게 느껴진다. 고레에다 감독은 한없이 부드럽고 친절한 분이지만 온화한 미소 뒤에 흔들리지 않는 무게가 있었다. 솔직히 어떤 현장에 있어도 나는 그저 내가 할 수 있는 일을 한다는 기분으로 임한다. 이걸 어떻게 가져가고 어떤 식으로 활용하는지는 철저히 감독의 몫이다. 이번 현장은 때 함께했던 스탭도 많았고 편안했다. 그럼에도 굳이 한마디 하자면 고레에다 감독과의 작업은 소통과 관찰의 시간이었다. 예를 들어 박찬욱 감독이나 봉준호 감독은 머릿속에 치밀한 설계도가 있어 그대로 따라가는 데 집중하게 된다. 고레에다 감독은 설계 도면이라기보다는 하얀 도화지 같았다. 그 위에 배우들을 데려다놓고 어떤 색을 칠할까 가만히 바라본다. 그렇다고 마음대로 하라는 건 아니고. (웃음) 원하는 어떤 순간이 찾아올 때까지 기다리는 것 같다. 아까 말했던 자연스러운 소음, 날씨 같은 거. 대사를 버벅대는 건 크게 개의치 않는데 인공적인 느낌이 나는 건 정말 싫어하신다.

- 현장성, 살아 있는 에너지라고 볼 수 있나.

= 그렇게 단순하게 구분하거나 정의하기 어렵다. 예를 들면 나홍진 감독의 영화에서 느껴지는 날것 같은 에너지와는 또 다르다. 호수의 잔잔한 물결인데 한순간에 탁 치고 올라오는 미세한 파동을 놓치지 않는 거라고 할까. 고요한 가운데 긴장이 있다. 찍으면서도 아, 여기서 한번 뒤집어주겠구나 하는 장면들도 많았다. 작은 파장이 큰 울림이 되어 퍼져나가는, 한 장면 한 장면을 정말 소중히 여기면서 찍는구나 싶었다.

- 여러 번 함께했던 배우도 있고 이번에 처음 작업한 배우도 있다.

= 전체 화보 찍은 걸 보니 이렇게 각양각색 따로 놀 수가 있나 싶어서 웃겼다. 얼굴만 보면 모두 장르가 다르다. (웃음) 불협화음인데, 한 화면 안에 담겼을 때 묘하게 어울리는 것이 재미있었다. 강동원, 배두나 배우와는 워낙 여러 작품에서 함께했기 때문에 눈빛만 봐도 서로 알 수 있는 부분이 있다. 이주영 배우도 작품은 많이 봤는데 이번에 함께할 수 있어서 좋았다. 다들 궁금해했던 사람은 아무래도 이지은 배우다. 조정석 배우와 함께한 드라마 때부터 봤는데 저 친구는 연기도 어쩜 저렇게 잘할까 감탄했던 기억이 있다. 대선배들 사이에서 자기 색깔을 보여주는 것도 대단했고. 결정타는 드라마 였다. 나도 그랬지만 다들 강렬한 인상을 받았을 거다. 에서 워낙 잘했기 때문에 고레에다 감독님과의 협업에서 어떤 색을 보여줄지 궁금했다. 곁에서 지켜보니 굉장히 진지한 친구다. 예의 바르고 친절하고 작업 방식도 매사 신중하고 집중력이 남다르다. 가수를 하다 연기도 하는 친구들이 대체로 그런 것 같다. 임시완 배우도 그렇고. 개성과 색깔이 다 다른데 열정과 집중력, 진지함만큼은 공통적으로 다들 대단하다고 느낀다.

- 칸영화제에서 지난해에는 심사위원을 맡았고 올해 다시 경쟁부문에 초청받았다. 벌써 7번째지만 올해는 각별하지 않을까 싶다.

= 맞다. 심사위원을 하고 났더니 다른 부분도 보이는 것 같다. 영화 축제인 만큼 즐거운 것도 있지만 솔직히 일정이 험난하다. 경험이 쌓여도 힘든 건 힘들다. 올해는 한국영화에 대한 기대가 유독 큰 만큼 부담도 남다르다. 하지만 즐기다 오려 한다. 경쟁부문에 초청된 것만으로도 이미 수상을 한 거나 마찬가지다. 심사위원을 해보니 수상은 정말 아무도 모른다. 매체 평가나 언론 반응, 이런 거 다 부질없다. (웃음) 심사위원 경험은 정말 특별하고 즐거웠다. 좋은 영화들을 모두 볼 수 있다는 게 제일 행복했고, 마치고 나와서 각자의 의견을 밝히는 토론 시간도 흥미로웠다. 정말 빡빡하고 치열하게 심사한다. 심지어 지난해엔 상영을 할 때 행사 시작에 잠깐 얼굴을 비췄다가 뒤로 빠져나와서 심사하고 토론하다가 마칠 때 다시 들어가서 영화 본 척 인사만 했다. 결국 영화는 국내에 들어와서 다시 봤다. (웃음) 사실 심사위원들도 결과가 나오기 전까지는 알 수 없다. 심사위원일 때는 상을 주는 입장이라 너무 행복했는데, 다시 기다려야 하는 입장이 되니 이게 참. (웃음) 칸 골목골목에 좋은 가게가 많다. 축제 한가운데서 그 설렘을 즐기고 이야기꽃을 피우다가 다시 비행기에 오르면 그걸로 충분하다. 수상은 보너스 같은 거다. 그보다 관객 여러분이 꼭 극장에서 이 영화를 즐겨주셨으면 좋겠다. 크고 화려한 영화도 재미있지만 고레에다 감독 영화는 진짜 극장 관람을 필요로 한다. 숨소리 하나조차 의미가 될 수 있는 고요한 호수 같은, 잔잔하고 입체적인 영화다.

부동산을 구매하기 전에 자기 자신에게 물어봐야 하는 것

뉴욕에서 부동산을 구매하는 데는 다양한 이유가 있습니다. 아마 혼자 살고 있거나 여러분과 여러분의 가족을 위한 임시 숙소용 작은 아파트에 브로커와의 준비 작업 살고 싶을 수도 있습니다. 혹은 여러분은 가족 구성원이 무언가를 구매하도록 도와주고 있을 수도 있습니다. 결국, 이는 투자 목적일 수 있습니다. 이러한 모든 경우에, 당사는 구매하시는 것을 도와드릴 수 있으며, 여러분이 고려해야 하는 요인들이 무엇인지 설명드릴 수 있습니다. 뉴욕에서 아파트를 구매해야 하는 10가지 이유 를 확인해보세요.

2 // 모두 현금으로 하실 건가요? 아니면 대출을 하기를 희망하시나요?

모든 현금 구매는 판매인과의 탄탄한 협상의 위치를 점할 수 있습니다. 하지만, 구매를 하는 것은 세제 혜택을 받게 할 수 있으며, 대부분의 적격인 외국인 구매자들은 구매 가격의 최대 60%까지 대출을 받을 수 있습니다 (건물에 따라서 다름). 일반적인 대출 조건은 다음과 같습니다. :

  • 은행에 $100,000 예금
  • 50% 계약금 (혹은 그 이상).
  • $100,000에 더하여 12 개월 유보 (대출금, 유지 비용 및 세금).
  • 5-30년 고정 혹은 변동 금리 융자.

Co-op 및 일부 아파트는 허가된 대출기관의 리스트를 유지합니다. 이 리스트는 고객님이 빚을 갚지 않을 경우, 고객님의 지분을 회수하기 위한 co-op 과의 계약을 체결하는 금융 기관 리스트입니다. 당사는 외국 구매자의 필요를 충족하는 몇몇의 모기지 브로커와의 탄탄한 관계를 유지하고 있습니다. 융자에 대한 어떠한 추가적인 질문과 함께 당사의 문의 양식 을 통해서 문의해주세요.

3 // 필요한 서류 작업은 준비되었나요?

아파트를 구매하실 때, 여러분이 해야 할 일은 돈을 준비하는 것밖에 없습니다. 하지만 Co-op의 경우 다릅니다. Co-op 협회는 승인을 위해 다음의 문서를 요청할 확률이 높습니다. 여러분의 중개인은 주택 검색에 앞서 이를 하도록 도와줄 수 있으니, 여러분은 이상적인 아파트가 나올 때 시간을 낭비하지 않을 것입니다.

  • 위치, 급여 및 고용기간을 언급하는 직원의 편지
  • 지난 2달간의 명세서
  • 지난 2년간의 납세 신고
  • 지난 2달간의 입출금 내역서
  • 이름, 직업 및 아파트에 거주하는 가족 구성원의 연령.
  • 애완동물의 몸무게, 나이 및 사진.
  • 2장의 개별 참조 편지
  • 2장의 비즈니스 참조 편지
  • 부동산, 주식 등과 같은 기타 자산의 인증.
  • 사진이 붙여진 신분증 (운전 면허증, 여권 등)

4 // 구매 가격이 어떻게 되나요?

좋은 소식은 중개인을 이용하여 집을 구매하는 것이 무료라는 것입니다. 네 맞습니다, 중개인 수수료를 지불하지 않습니다. 즉, 뉴욕에서 아파트 혹은 집을 구매하도록 도와주는 당사 서비스는 완전히 무료입니다! 당사에서 흥미로운 부동산을 확인하면, 구매 비용은 다음과 같습니다:

판매인에 의해 지불됨:

  • 중개인 수수료
  • 주 양도세 (0.4%)
  • 시 양도세 (최초 50만 달러의 경우1%, 그 후로는 1.425% 적용)

구매인에 의해 지불됨;

  • 감정료 및 검사료
  • 타이틀 검색 및 보험 수수료
  • 맨션세 (백만 달러 이상의 부동산의 경우1% 적용)
  • 주택 자금 융자 수수료 및 포인트 (1%-4%)
  • 모기지 리코딩 세금 (1.75%-2.175%)
  • 구매인의 변호사

5 // 어떻게 찾나요?

여러분은 인터넷에서 다양한 웹사이트에 매물로 내놓은 부동산을 확인하여 아이디어를 얻을 수 있습니다. 하지만, 스스로 하기로 결정하신다면, 알맞은 장소를 찾는 과정이 매우 절망적이며 시간이 많이 소요된다는 것을 감안하시길 바랍니다. 이는 뉴욕의 대다수의 부동산이 새로운 부동산 매물이 먼저 중개인 커뮤니티에서 공유되도록 하는 뉴욕 부동산 협회, REBNY 의 회원인 중개인에 의해 광고되기 때문입니다. 당사와 같은 누군가가 여러분의 곁에 있는다면, 여러분이 마음에 들어 하신다면, 시중에 있는 모든 아파트에 대한 액세스를 제공할 뿐 아니라, 단가를 확보하도록 무엇을 해야 하는지 잘 이해하고 있습니다. 이와 같은 치열한 경쟁 시장에서, 빠르고 간결하게 행동하는 것과 규칙을 아는 것은 필수적입니다.

6 // 구매를 완료하는 데 얼마나 걸리나요?

집을 찾는 것은 여러분이 무엇을 원하는지에 따라서 몇 주에서 몇 년이 소요될 수 있습니다. 새로운 집을 확인하면, 빨리 행동으로 옮길 차례입니다. 모든 서류 작업과 돈이 준비되었는지 확인하시면, 아무도 여러분의 새로운 집 혹은 투자 부동산을 가져가지 못합니다! 이제는 아파트 혹은 co-op board가 여러분을 승인할 시간입니다. 승인이 되면, 돈을 예금하고, 비어있다면, 즉시 이사갈 수 있습니다. 이 전체의 과정은 보통 최소 한 달이 소요되지만, 이보다 더 오래 걸릴 수도 있습니다.

7 // Co-op과 아파트의 차이가 무엇인가요?

아파트에서는, 집주인이 하나의 개별 아파트를 가지고 있습니다. 게다가, 구매자는 외부 벽, 지붕, 풀 및 기타 오락 시설과 같은 공동적인 시설에 공동권리를 보유하고 있습니다. 협동 조합 주택 프로젝트 (co-op)에서는, 건물을 소유 및 관리하는 집주인은 주식을 협동 조합으로 보유합니다. Co-op은 매우 보수적이기 때문에, 보통 구매자의 수입원이 미국이며 구매자의 자산이 미국에 (최소 대부분의 자산이) 있어야 합니다. 무슨 이유에서든지, 조합이 집주인을 고소해야 한다면, 소송에서 이기기 매우 어려울 것입니다. 이에 따라서, 외국인 구매자가 아파트 (콘도미니엄), Condops (콘도 협동조합) 및 연립주택을 사는 것은 제한이 있습니다. 하지만, 구매자는, 아파트, 콘도 협동조합 혹은 연립주택을 구매하는 것보다 세를 주는 것과 같은 부동산 이용에 상당한 제한이 있는 Co-op을 구매할 때 더 많은 권리를 보유하고 있습니다.

8 // 어디서 구매해야 하나요?

중요한 질문입니다. 이전에 뉴욕에 오신 적이 있으시다면, 이미 선호하시는 것이 있을 것이지만, 이곳에서 사는 것은 매우 어려울 수 있습니다. 다음과 같은 다른 많은 요인들이 있을 수 있습니다.; 직장이나 학교는 어디인가요? 아이들은 어디서 학교에 갈 것인가요? 찾고 있는 아파트가 얼마나 큰가요? 어떤 종류의 이웃을 맞이했을 때 마음이 편안한가요? 향후에 세를 내줄 의향이 있으신가요? 그리고 물론, 예산이 어떻게 되시나요? 당사는 이미 여러분의 이야기를 듣고 우선순위를 정하도록 도와드리게 되어서 기쁩니다.

9 // 구매하기로 한다면, 일반적인 월간 비용이 어떻게 되나요?

아파트의 경우, 일반적인 비용은 한 달에 1 평방 피트당 $0.70 - $1.25의 비용이 듭니다. 이러한 비용은 공동 영역 난방, 전기 및 청소; 물; 기본 케이블; 안전; 보험 및 건물 오락시설 운영 (피트니스 센터, 아파트 관리인, 라운지, 풀, 아이들 놀이방 등). 아파트 비용 외에, 여러분은 부동산 감정 가격(시 정부에 의하여 부동산에 부과된 가격)의 대략 0.1%나 되는 재산세를 지불해야 합니다.

Co-op은 유지 비용을 부과하며, 이는 (집주인에 의해서 별도로 지불되지 않는) 모든 관리비 및 (만약 있을 경우) 세금 및 건물의 주택 융자 이자를 포함합니다. 조합은 (지붕 수리 혹은 다른 이유로) 건물에 엄청난 융자가 있을 수 있으며, 이자는 Co-op 의 주주들에게 넘어갈 것입니다. 그러므로, 법에 의거하여 아파트는 빚을 책임지도록 허용되지 않기에, (유지 비용에 포함된 세금을 적용하더라도) Co-op의 유지 비용은 이보다 높을 수 있다는 것을 볼 수 있을 겁니다.

10 // 지금은 무엇을 해야 하나요?

위에 가이드라인을 기반으로, 여러분이 뉴욕 부동산을 구매할 수 있는지 생각해보셔야 합니다. 당사 연락처 양식을 작성하시면 기쁜 마음으로 추가 질문에 답변 드리겠습니다. 혹은 뉴욕에서 찾을 수 있는 아파트 유형 을 확인해보세요.

비동기 메시징 옵션

이 문서에서는 다양한 유형의 메시지와 메시징 인프라에 참여하는 엔터티에 대해 설명합니다. 각 메시지 유형의 요구 사항에 따라 이 문서에서는 Azure 메시징 서비스를 권장합니다. 옵션에는 Azure Service Bus, Event Grid 및 Event Hubs가 포함됩니다.브로커와의 준비 작업

아키텍처 수준에서 메시지는 다른 엔터티(소비자)가 인식하고 그에 따라 작동할 수 있도록 정보를 배포하기 위해 엔터티(생산자)가 만든 데이터그램입니다. 생산자와 소비자는 중간 엔터티(메시지 브로커)를 통해 직접 또는 선택적으로 통신할 수 있습니다. 이 문서에서는 메시지 브로커를 사용하는 비동기 메시징에 중점을 둡니다.

Diagram demonstrating entities that take part in asynchronous messaging.

메시지는 두 가지 주요 범주로 분류할 수 있습니다. 생산자가 소비자의 작업을 예상하는 경우 해당 메시지는 명령입니다. 메시지가 동작이 수행되었음을 소비자에게 알릴 경우 메시지는 이벤트입니다.

생산자는 소비자가 비즈니스 트랜잭션 범위 내에서 작업을 수행할 의도로 명령을 보냅니다.

명령은 값이 높은 메시지이며 한 번 이상 배달되어야 합니다. 명령이 손실되면 전체 비즈니스 트랜잭션이 실패할 수 있습니다. 또한 명령을 두 번 이상 처리하면 안 됩니다. 이렇게 하면 잘못된 트랜잭션이 발생할 수 있습니다. 고객이 중복 주문을 받거나 두 번 청구될 수 있습니다.

명령은 종종 다중 단계 비즈니스 트랜잭션의 워크플로를 관리하는 데 사용됩니다. 생산자는 비즈니스 논리에 따라 소비자가 메시지를 승인하고 작업 결과를 보고할 것으로 예상할 수 있습니다. 해당 결과에 따라 생산자는 적절한 작업 과정을 선택할 수 있습니다.

이벤트는 생산자가 사실을 알리기 위해 제기하는 메시지의 한 유형입니다.

생산자(이 컨텍스트에서 게시자 라고 함)는 이벤트가 어떤 작업도 발생한다는 기대가 없습니다.

관심 있는 소비자는 소비 시나리오에 따라 구독하고, 이벤트를 수신 대기하고, 작업을 수행할 수 있습니다. 이벤트에는 구독자가 여러 개 있거나 구독자가 전혀 없을 수 있습니다. 서로 다른 두 구독자는 서로 다른 동작으로 이벤트에 반응할 수 있으며 서로를 인식하지 못할 수 있습니다.

생산자와 소비자는 느슨하게 결합되고 독립적으로 관리됩니다. 소비자는 이벤트를 생산자에게 다시 승인할 것으로 예상되지 않습니다. 이벤트에 더 이상 관심이 없는 소비자는 구독을 취소할 수 있습니다. 소비자는 생산자 또는 시스템의 전반적인 기능에 영향을 주지 않고 파이프라인에서 제거됩니다.

이벤트의 두 가지 범주가 있습니다.

프로듀서는 불연속적인 사실을 알리기 위해 이벤트를 발생합니다. 일반적인 사용 사례는 이벤트 알림입니다. 예를 들어 Azure Resource Manager 리소스를 만들거나 수정하거나 삭제할 때 이벤트를 발생합니다. 이러한 이벤트의 구독자는 경고 이메일을 보내는 논리 앱일 수 있습니다.

생산자는 일정 기간 동안 관련 이벤트를 시퀀스 또는 이벤트 스트림으로 발생합니다. 일반적으로 스트림은 통계 평가를 위해 소비됩니다. 평가는 임시 창 내에서 또는 이벤트가 도착하면 수행할 수 있습니다. 원격 분석은 시스템의 상태 및 부하 모니터링과 같은 일반적인 사용 사례입니다. 또 다른 경우는 IoT 디바이스에서 이벤트 스트리밍입니다.

이벤트 메시징을 구현하는 일반적인 패턴은 Publisher 구독자 패턴입니다.

Publisher-Subscriber pattern for event messaging

메시지 브로커의 역할 및 이점

중간 메시지 브로커는 생산자에서 소비자로 메시지를 이동하는 기능을 제공하며 추가적인 이점을 제공할 수 있습니다.

메시지 브로커는 각각 메시지를 생성하고 사용하는 논리에서 생산자를 소비자와 분리합니다. 복잡한 워크플로에서 브로커는 비즈니스 작업을 분리하도록 장려하고 워크플로를 조정하는 데 도움을 줄 수 있습니다.

예를 들어 단일 비즈니스 트랜잭션에는 비즈니스 논리 시퀀스에서 수행되는 고유한 작업이 필요합니다. 생산자는 소비자에게 작업을 시작하도록 알리는 명령을 실행합니다. 소비자는 생산자에 대한 응답을 줄 지어 예약된 별도의 큐에서 메시지를 승인합니다. 응답을 받은 후에만 생산자는 새 메시지를 보내 시퀀스에서 다음 작업을 시작합니다. 다른 소비자가 해당 메시지를 처리하고 완료 메시지를 응답 큐로 보냅니다. 서비스는 메시징을 사용하여 트랜잭션 워크플로를 조정합니다.

Producer-consumer communication

메시지 브로커는 임시 분리를 제공합니다. 생산자와 소비자는 동시에 실행할 필요가 없습니다. 생산자는 소비자의 가용성에 관계없이 메시지 브로커에 메시지를 보낼 수 있습니다. 반대로 소비자는 생산자의 가용성에 의해 제한되지 않습니다.

예를 들어 웹앱의 사용자 인터페이스는 메시지를 생성하고 큐를 메시지 브로커로 사용합니다. 준비가 되면 소비자는 큐에서 메시지를 검색하고 작업을 수행할 수 있습니다. 임시 분리는 사용자 인터페이스가 응답성을 유지하는 데 도움이 됩니다. 메시지가 비동기적으로 처리되는 동안에는 차단되지 않습니다.

특정 작업을 완료하는 데 시간이 오래 걸릴 수 있습니다. 명령을 실행한 후 생산자는 소비자가 명령을 완료할 때까지 기다릴 필요가 없습니다. 메시지 브로커는 메시지를 비동기식으로 처리하는 데 도움이 됩니다.

부하 분산

생산자는 많은 소비자가 제공하는 많은 메시지를 게시할 수 있습니다. 메시지 브로커를 사용하여 서버 간에 처리를 분산하고 처리량을 개선합니다. 소비자는 다른 서버에서 실행하여 부하를 분산할 수 있습니다. 필요하거나 제거하면 소비자를 동적으로 추가하여 시스템을 스케일 아웃할 수 있습니다.

Competing Consumers Pattern

경쟁 소비자 패턴은 여러 메시지를 동시에 처리하여 처리량을 최적화하고, 확장성 및 가용성을 개선하고, 워크로드의 균형을 맞추는 방법을 설명합니다.

부하 평준화

생산자 또는 생산자 그룹이 생성한 메시지의 볼륨은 가변적일 수 있습니다. 경우에 따라 대량의 메시지 급증이 발생할 수 있습니다. 이 작업을 처리하기 위해 소비자를 추가하는 대신 메시지 브로커는 버퍼 역할을 할 수 있으며, 소비자는 시스템을 강조하지 않고 자신의 속도로 메시지를 점진적으로 드레이닝합니다.

Queue-based Load Leveling pattern

큐 기반 부하 평준화 패턴은 자세한 정보를 제공합니다.

신뢰할 수 있는 메시징

메시지 브로커는 생산자와 소비자 간의 통신이 실패하더라도 메시지가 손실되지 않도록 하는 데 도움이 됩니다. 생산자는 메시지 브로커에 메시지를 게시할 수 있으며, 소비자는 통신이 다시 설정될 때 메시지를 검색할 수 있습니다. 생산자는 메시지 브로커와의 연결이 끊어지지 않는 한 차단되지 않습니다.

복원력 있는 메시징

메시지 브로커는 시스템의 소비자에게 복원력을 추가할 수 있습니다. 메시지를 처리하는 동안 소비자가 실패하면 소비자의 다른 인스턴스가 해당 메시지를 처리할 수 있습니다. 메시지가 broker에 유지되므로 재처리가 가능합니다.

메시지 브로커에 대한 기술 선택

Azure는 다양한 기능을 갖춘 여러 메시지 브로커 서비스를 제공합니다. 서비스를 선택하기 전에 메시지의 의도 및 요구 사항을 결정합니다.

Azure Service Bus

Azure Service Bus 큐는 생산자에서 소비자로 명령을 전송하는 데 적합합니다. 다음은 몇 가지 고려 사항입니다.

끌어오기 모델

Service Bus 큐의 소비자는 Service Bus 지속적으로 폴링하여 새 메시지를 사용할 수 있는지 확인합니다. 해당 모델을 추상화하기 Service Bus 클라이언트 SDK 및 Azure Functions 트리거입니다. 새 메시지를 사용할 수 있으면 소비자의 콜백이 호출되고 메시지가 소비자에게 전송됩니다.

보장된 배달

Service Bus 사용하면 소비자가 큐를 피킹하고 다른 소비자의 메시지를 잠글 수 있습니다.

메시지의 처리 상태를 보고하는 것은 소비자의 책임입니다. 소비자가 메시지를 사용한 것으로 표시하는 경우에만 Service Bus 큐에서 메시지를 제거합니다. 오류, 시간 제한 또는 충돌이 발생하는 경우 Service Bus 다른 소비자가 메시지를 검색할 수 있도록 메시지의 잠금을 해제합니다. 이렇게 하면 메시지를 전송할 때 손실되지 않습니다.

생산자가 실수로 동일한 메시지를 두 번 보낼 수 있습니다. 예를 들어 메시지를 보낸 후 생산자 인스턴스가 실패합니다. 다른 생산자는 원래 인스턴스를 대체하고 메시지를 다시 보냅니다. Azure Service Bus 큐는 중복 메시지를 감지하고 제거하는 기본 제공 중복 제거 기능을 제공합니다. 메시지가 두 번 배달될 가능성은 여전히 있습니다. 예를 들어 처리하는 동안 소비자가 실패하면 메시지가 큐로 반환되고 동일하거나 다른 소비자에 의해 검색됩니다. 소비자의 메시지 처리 논리는 작업이 반복되더라도 시스템 상태가 변경되지 않도록 idempotent여야 합니다.

메시지 순서 지정

소비자가 메시지를 보낸 순서대로 받으려면 Service Bus 큐는 세션을 사용하여 FIFO(선제출) 주문 배달을 보장합니다. 세션에는 하나 이상의 메시지가 있을 수 있습니다. 메시지는 SessionId 속성과 상관 관계가 있습니다. 세션의 일부인 메시지는 만료되지 않습니다. 세션은 다른 소비자가 메시지를 처리하지 못하도록 소비자에 잠글 수 있습니다.

메시지 지속성

Service Bus 큐는 임시 분리를 지원합니다. 소비자를 사용할 수 없거나 메시지를 처리할 수 없는 경우에도 큐에 남아 있습니다.

검사점 장기 실행 트랜잭션

비즈니스 트랜잭션은 오랫동안 실행할 수 있습니다. 트랜잭션의 각 작업에는 여러 메시지가 있을 수 있습니다. 검사점 지정을 사용하여 워크플로를 조정하고 트랜잭션이 실패할 경우 복원력을 제공합니다.

Service Bus 큐는 세션 상태 기능을 통해 검사점 지정을 허용합니다. 상태 정보는 세션에 속하는 메시지에 대해 큐(SetState)에 증분 방식으로 기록됩니다. 예를 들어 소비자는 때때로 상태(GetState)를 확인하여 진행률을 추적할 수 있습니다. 소비자가 실패하면 다른 소비자는 상태 정보를 사용하여 마지막으로 알려진 검사점이 세션을 다시 시작할 수 있습니다.

배달 못 한 편지 큐(DLQ)

Service Bus 큐에는 배달하거나 처리할 수 없는 메시지를 보관하는 DLQ(배달 못 한 편지 큐)라는 기본 하위 큐가 있습니다. Service Bus 또는 소비자의 메시지 처리 논리는 DLQ에 메시지를 추가할 수 있습니다. DLQ는 큐에서 검색될 때까지 메시지를 유지합니다.

메시지가 DLQ에 있을 수 있는 경우의 예는 다음과 같습니다.

포이즌 메시지는 형식이 잘못되었거나 예기치 않은 정보를 포함하기 때문에 처리할 수 없는 메시지입니다. Service Bus 큐에서 큐의 MaxDeliveryCount 속성을 설정하여 포이즌 메시지를 검색할 수 있습니다. 동일한 메시지를 받은 횟수가 해당 속성 값을 초과하면 Service Bus 메시지를 DLQ로 이동합니다.

메시지가 마침표 내에 처리되지 않으면 더 이상 관련이 없을 수 있습니다. Service Bus 큐를 사용하면 생산자가 TB(Time to Live) 특성으로 메시지를 게시할 수 있습니다. 메시지를 받기 전에 이 기간이 만료되면 메시지가 DLQ에 배치됩니다.

DLQ의 메시지를 검사하여 실패 이유를 확인합니다.

하이브리드 솔루션

Service Bus 온-프레미스 시스템 및 클라우드 솔루션을 연결합니다. 방화벽 제한으로 인해 온-프레미스 시스템에 도달하기 어려운 경우가 많습니다. 생산자와 소비자(온-프레미스 또는 클라우드일 수 있음)는 Service Bus 큐 엔드포인트를 메시지의 픽업 및 하차 위치로 사용할 수 있습니다.

토픽 및 구독

Service Bus Service Bus 토픽 및 구독을 통해 Publisher-Subscriber 패턴을 지원합니다.

이 기능은 생산자가 여러 소비자에게 메시지를 브로드캐스트하는 방법을 제공합니다. 토픽이 메시지를 받으면 모든 구독 소비자에게 전달됩니다. 필요에 따라 구독에는 소비자가 메시지의 하위 집합을 가져올 수 있는 필터 조건이 있을 수 있습니다. 각 소비자는 큐와 비슷한 방식으로 구독에서 메시지를 검색합니다.

Azure Event Grid

Azure Event Grid 불연속 이벤트에 권장됩니다. Event Grid는 Publisher-Subscriber 패턴을 따릅니다. 이벤트 원본이 이벤트를 트리거하면 Event Grid 토픽에 게시됩니다. 이러한 이벤트의 소비자는 이벤트를 처리할 이벤트 유형 및 이벤트 처리기를 지정하여 Event Grid 구독을 만듭니다. 구독자가 없으면 이벤트가 삭제됩니다. 각 이벤트에는 여러 구독이 있을 수 있습니다.

푸시 모델

Event Grid는 푸시 모델의 구독자에게 메시지를 전파합니다. 웹후크를 사용하는 Event Grid 구독이 있다고 가정합니다. 새 이벤트가 도착하면 Event Grid는 이벤트를 웹후크 엔드포인트에 게시합니다.

Azure와 통합

Azure 리소스에 대한 알림을 받으려면 Event Grid를 선택합니다. 많은 Azure 서비스는 기본 제공 Event Grid 토픽이 있는 이벤트 원본 역할을 합니다. Event Grid는 이벤트 처리기로 구성할 수 있는 다양한 Azure 서비스도 지원합니다. 해당 토픽을 쉽게 구독하여 선택한 이벤트 처리기로 이벤트를 라우팅할 수 있습니다. 예를 들어 Blob Storage를 만들거나 삭제할 때 Event Grid를 사용하여 Azure Function을 호출할 수 있습니다.

사용자 지정 항목

Event Grid와 통합되지 않은 애플리케이션 또는 Azure 서비스에서 이벤트를 보내려는 경우 사용자 지정 Event Grid 토픽을 만듭니다.

예를 들어 전체 비즈니스 트랜잭션의 진행 상황을 확인하려면 참여 서비스가 개별 비즈니스 작업을 처리할 때 이벤트를 발생시키는 것이 좋습니다. 웹앱은 이러한 이벤트를 표시합니다. 한 가지 방법은 사용자 지정 토픽을 만들고 HTTP WebHook을 통해 등록된 웹앱으로 구독을 추가하는 것입니다. 비즈니스 서비스가 사용자 지정 토픽에 이벤트를 보내면 Event Grid가 이벤트를 웹앱에 푸시합니다.

필터링된 이벤트

구독에서 필터를 지정하여 이벤트 하위 집합만 특정 이벤트 처리기로 라우팅하도록 Event Grid에 지시할 수 있습니다. 필터는 구독 스키마에 지정됩니다. 필터와 일치하는 값이 있는 토픽에 전송된 모든 이벤트는 해당 구독에 자동으로 전달됩니다.

예를 들어 다양한 형식의 콘텐츠가 Blob Storage 업로드됩니다. 파일이 추가될 때마다 이벤트가 발생하고 Event Grid에 게시됩니다. 이벤트 구독에는 이벤트 처리기가 미리 보기를 생성할 수 있도록 이미지에 대한 이벤트만 보내는 필터가 있을 수 있습니다.

필터링에 대한 자세한 내용은 Event Grid에 대한 필터 이벤트를 참조하세요.

높은 처리량

Event Grid는 지역당 초당 10,000,000개의 이벤트를 라우팅할 수 있습니다. 매월 처음 100,000개 작업은 무료입니다. 비용 고려 사항은 Event Grid 비용이 얼마인가요?

복원력 있는 배달

이벤트에 대한 성공적인 배달이 명령만큼 중요하지는 않지만 이벤트 유형에 따라 몇 가지 보장을 원할 수 있습니다. Event Grid는 다시 시도 정책, 만료 시간 및 배달 못한 편지와 같이 사용하도록 설정하고 사용자 지정할 수 있는 기능을 제공합니다. 자세한 내용은 배달 및 다시 시도를 참조하세요.

Event Grid의 재시도 프로세스는 복원력에 도움이 될 수 있지만 실패로부터 안전하지는 않습니다. 다시 시도 프로세스에서 Event Grid는 엔드포인트가 오랫동안 응답하지 않는 경우 메시지를 두 번 이상 배달하거나, 건너뛰거나, 일부 재시도를 지연시킬 수 있습니다. 자세한 내용은 재시도 일정 및 기간을 참조하세요.

배달 못 한 문자를 사용하도록 설정하여 배달되지 않은 이벤트를 Blob Storage 계정에 유지할 수 있습니다. Blob Storage 엔드포인트에 브로커와의 준비 작업 메시지를 배달하는 데 지연이 있으며 해당 엔드포인트가 응답하지 않는 경우 Event Grid는 이벤트를 삭제합니다. 자세한 내용은 배달 못한 편지 및 재시도 정책을 참조하세요.

Azure Event Hubs

이벤트 스트림으로 작업할 때 Azure Event Hubs 권장되는 메시지 브로커입니다. 기본적으로 대기 시간이 짧은 대량의 데이터를 수신할 수 있는 큰 버퍼입니다. 수신된 데이터는 동시 작업을 통해 빠르게 읽을 수 있습니다. 실시간 분석 공급자를 사용하여 수신된 데이터를 변환할 수 있습니다. Event Hubs는 스토리지 계정에 이벤트를 저장하는 기능도 제공합니다.

빠른 수집

Event Hubs는 초당 수백만 개의 이벤트를 수집할 수 있습니다. 이벤트는 스트림에만 추가되고 시간별로 정렬됩니다.

끌어오기 모델

Event Grid와 마찬가지로 Event Hubs도 Publisher-Subscriber 기능을 제공합니다. Event Grid와 Event Hubs의 주요 차이점은 이벤트 데이터를 구독자가 사용할 수 있게 하는 방식입니다. Event Grid는 수집된 데이터를 구독자에게 푸시하는 반면, Event Hub는 끌어오기 모델에서 데이터를 사용할 수 있도록 합니다. 이벤트가 수신되면 Event Hubs가 스트림에 추가합니다. 구독자는 커서를 관리하고 스트림에서 앞뒤로 이동하고, 시간 오프셋을 선택하고, 해당 속도로 시퀀스를 재생할 수 있습니다.

스트림 프로세서는 변환 및 통계 분석을 위해 Event Hubs에서 데이터를 가져오는 구독자입니다. 시간 경과에 따른 집계 또는 변칙 검색과 같은 복잡한 처리를 위해 Azure Stream Analytics 및 Apache Spark 를 사용합니다.

파티션당 각 이벤트에 대해 작업하려는 경우 이벤트 처리 호스트 를 사용하거나 Logic Apps 와 같은 기본 제공 커넥터를 사용하여 변환 논리를 제공하여 데이터를 끌어올 수 있습니다. 또 다른 옵션은 Azure Functions 사용하는 것입니다.

파티션은 이벤트 스트림의 일부입니다. 이벤트는 파티션 키를 사용하여 나뉩니다. 예를 들어 여러 IoT 디바이스는 디바이스 데이터를 이벤트 허브로 보냅니다. 파티션 키는 디바이스 식별자입니다. 이벤트가 수집되면 Event Hubs는 이벤트를 별도의 파티션으로 이동합니다. 각 파티션 내에서 모든 이벤트는 시간별로 정렬됩니다.

소비자는 이벤트 데이터를 처리하는 코드의 인스턴스입니다. Event Hubs는 분할된 소비자 패턴을 따릅니다. 각 소비자는 특정 파티션만 읽습니다. 여러 파티션이 브로커와의 준비 작업 있으면 여러 소비자가 스트림을 동시에 읽을 수 있으므로 처리 속도가 빨라집니다.

동일한 소비자의 인스턴스는 단일 소비자 그룹을 구성합니다. 여러 소비자 그룹은 서로 다른 의도로 동일한 스트림을 읽을 수 있습니다. 이벤트 스트림에 온도 센서의 데이터가 있다고 가정합니다. 한 소비자 그룹은 스트림을 읽고 온도 급증과 같은 변칙을 검색할 수 있습니다. 또 다른 스트림은 동일한 스트림을 읽고 임시 창에서 롤링 평균 온도를 계산할 수 있습니다.

Event Hubs는 여러 소비자 그룹을 허용하여 Publisher-Subscriber 패턴을 지원합니다. 각 소비자 그룹은 구독자입니다.

Event Hub 분할에 대한 자세한 내용은 파티션을 참조하세요.

Event Hubs 캡처

캡처 기능을 사용하면 이벤트 스트림을 Azure Blob Storage 또는 Data Lake Storage 저장할 수 있습니다. 스토리지 계정을 사용할 수 없더라도 캡처는 일정 기간 동안 데이터를 유지한 다음 사용 가능한 후 스토리지에 쓰기 때문에 이벤트를 저장하는 방법은 안정적입니다.

Storage 서비스는 이벤트를 분석하기 위한 추가 기능을 제공할 수도 있습니다. 예를 들어 Blob Storage 계정의 액세스 계층을 활용하여 자주 액세스해야 하는 데이터에 대한 이벤트를 핫 계층에 저장할 수 있습니다. 시각화에 해당 데이터를 사용할 수 있습니다. 또는 보관 계층에 데이터를 저장하고 감사 목적으로 가끔 검색할 수 있습니다.

캡처는 Event Hubs에서 수집한 모든 이벤트를 저장하며 일괄 처리에 유용합니다. MapReduce 함수를 사용하여 데이터에 대한 보고서를 생성할 수 있습니다. 캡처된 데이터는 진실의 근원이 될 수도 있습니다. 데이터를 집계하는 동안 특정 팩트가 누락된 경우 캡처된 데이터를 참조할 수 있습니다.

Apache Kafka 클라이언트 지원

Event Hubs는 Apache Kafka 클라이언트에 대한 엔드포인트를 제공합니다. 기존 클라이언트는 엔드포인트를 가리키고 Event Hubs에 이벤트 전송을 시작하도록 구성을 업데이트할 수 있습니다. 코드 변경은 필요하지 않습니다.

크로스오버 시나리오

경우에 따라 두 메시징 서비스를 결합하는 것이 유리합니다.

서비스를 결합하면 메시징 시스템의 효율성을 높일 수 있습니다. 예를 들어 비즈니스 트랜잭션에서 Azure Service Bus 큐를 사용하여 메시지를 처리합니다. 소비자가 새 메시지에 대해 큐를 지속적으로 폴링하기 때문에 주로 유휴 상태이고 메시지를 받는 큐는 비효율적입니다. 이벤트 처리기로 Azure Function을 사용하여 Event Grid 구독을 설정할 수 있습니다. 큐가 메시지를 수신하고 수신 대기하는 소비자가 없을 때마다 Event Grid는 큐를 드레이닝하는 Azure Function을 호출하는 알림을 보냅니다.

Azure Service Bus to Event Grid integration

Event Grid에 Service Bus 연결하는 방법에 대한 자세한 내용은 Event Grid 통합 개요에 대한 Azure Service Bus 참조하세요.

메시지 큐 및 이벤트 참조 아키텍처를 사용하는 Azure의 Enterprise 통합은 Event Grid 통합에 대한 Service Bus 구현을 보여줍니다.

다음은 또 다른 예제입니다. Event Grid는 일부 이벤트에 워크플로가 필요한 이벤트 집합을 수신하고 다른 이벤트는 알림을 받습니다. 메시지 메타데이터는 이벤트 유형을 나타냅니다. 한 가지 방법은 이벤트 구독에서 필터링 기능을 사용하여 메타데이터를 확인하는 것입니다. 워크플로가 필요한 경우 Event Grid는 워크플로를 Azure Service Bus 큐로 보냅니다. 해당 큐의 수신기는 필요한 작업을 수행할 수 있습니다. 알림 이벤트는 경고 이메일을 보내기 위해 Logic Apps로 전송됩니다.


0 개 댓글

답장을 남겨주세요