Oracle Database@Azure에서 로컬 및 지역 대기로 재해 복구 구현

무중단 비즈니스 연속성 보장은 애플리케이션 설계 시 성공에 매우 중요합니다. 이를 위해서는 장애 발생 시 기능을 신속하게 복원할 수 있도록 설계된 강력한 재해 복구 전략이 필요합니다.

지난 수년간 기업들은 온프레미스에서든 Oracle Cloud Infrastructure(OCI) 내에서든 미션 크리티컬 애플리케이션을 지원하기 위해 Oracle의 최고의 재해 복구 기술인 Oracle Exadata Database Service를 사용해 왔습니다. Oracle Database@AzureOracle Exadata Database Service on Dedicated Infrastructure는 OCI 기반 Exadata와 동일한 업계 최고의 성능, 기능 세트, 가격 패리티를 제공합니다. Microsoft Azure의 가용성 영역(AZ) 및 리전을 활용하여 타의 추종을 불허하는 고가용성 및 재해 복구 기능 외에도 Azure의 애플리케이션에 짧은 대기 시간을 제공하여 유지 관리 중 및 중단 발생 시 원활한 운영을 보장합니다.

구조

이 아키텍처는 Oracle Database@AzureOracle Exadata Database Service on Dedicated Infrastructure를 두 개의 대기 데이터베이스, 영역 간 로컬 대기 데이터베이스, 영역 간 원격 대기 데이터베이스를 사용하는 재해 복구 토폴로지에 보여줍니다.

다음 다이어그램은 이 참조 아키텍처를 보여 줍니다.



로컬 영역-대기-dr-db-azure-arch-oracle.zip

Oracle Database는 기본 영역의 Exadata VM(가상 머신) 클러스터에서 실행됩니다. 데이터 보호 및 재해 복구를 위해 Oracle Active Data Guard는 두 개의 Exadata VM 클러스터를 복제합니다. 첫번째 클러스터는 동일한 지역에 있지만 다른 영역(로컬 대기)에 있고 두번째 클러스터는 다른 영역(원격 대기)에 있습니다. 로컬 대기 데이터베이스는 페일오버 시나리오에 이상적이며, 원격 영역과의 통신에 따른 성능 오버헤드 없이 응용 프로그램이 계속 작동하는 동안 로컬 실패에 대한 데이터 손실이 없도록 해줍니다. 원격 대기 데이터베이스는 일반적으로 재해 복구 또는 읽기 전용 작업 로드 오프로드에 사용됩니다. With multiples availability zones, you can leverage Azure multi availability zone application tier deployment to build a reliable solution and replicate the application tier to the standby location.

Azure 네트워크를 통해 Active Data Guard 트래픽을 라우팅할 수 있습니다. 그러나 이 아키텍처는 네트워크 처리량 및 대기 시간을 최적화하기 위해 OCI 네트워크를 통한 Active Data Guard 네트워크 트래픽에 중점을 둡니다.

Oracle Database@Azure 네트워크의 Oracle Exadata Database Service on Dedicated Infrastructure는 Oracle에서 관리하는 DRG(동적 라우팅 게이트웨이)를 사용하여 Exadata 클라이언트 서브넷에 연결됩니다. 또한 다른 지역의 VCN(가상 클라우드 네트워크) 간 피어 연결을 생성하려면 DRG가 필요합니다. Because only one DRG is allowed per VCN in OCI, a second VCN acting as a Hub VCN with its own DRG is required to connect the primary and standby VCNs in each region. 이 구조에서:

  • 기본 Exadata VM 클러스터는 CIDR 10.10.0.0/16를 사용하여 VCN1Region 1, zone 1에 배치됩니다.
  • 기본 Region 1의 허브 VCN은 CIDR 10.11.0.0/16가 포함된 HubVCN1입니다.
  • 첫번째 대기 Exadata VM 클러스터는 CIDR 10.20.0.0/16를 사용하여 VCN2Region 1, zone 2에 배치됩니다.
  • The hub VCN is the same as the hub VCN for the primary database, HubVCN1 as it resides in the same region.
  • 두번째 대기 Exadata VM 클러스터는 CIDR 10.30.0.0/16를 사용하여 VCN3Region 2에 배치됩니다.
  • 원격 대기 Region 2의 허브 VCN은 CIDR 10.33.0.0/16가 포함된 HubVCN3입니다.

허브 VCN이 전송 경로 지정을 사용으로 설정하기 위해 서브넷이 필요하지 않으므로 해당 VCN은 매우 작은 IP CIDR 범위를 사용할 수 있습니다. OCI 하위 사이트의 VCN은 기본 및 대기 데이터베이스에 대해 Oracle Database@AzureOracle Exadata Database Service on Dedicated Infrastructure VM 클러스터가 생성된 후 생성됩니다.

Microsoft Azure는 다음과 같은 구성 요소를 제공합니다.

  • Azure 영역

    Azure 리전은 가용성 영역이라고 하는 하나 이상의 물리적 Azure 데이터 센터가 상주하는 지리적 영역입니다. 지역은 다른 지역과 독립적이며, 먼 거리가 그들을 분리 할 수 있습니다 (국가 또는 대륙에 걸쳐).

    Azure 및 OCI 리전은 지역화된 지역입니다. Oracle Database@Azure의 경우, Azure 리전이 OCI 리전에 연결되고, Azure의 가용성 영역(AZ)이 OCI의 가용성 도메인(AD)에 연결됩니다. 거리 및 대기 시간을 최소화하기 위해 Azure 및 OCI 리전 쌍을 선택합니다.

  • Azure 가용성 영역

    Azure availability zones are physically separate locations within an Azure region, designed to ensure high availability and resiliency by providing independent power, cooling, and networking.

  • Azure Virtual Network(VNet)

    Azure Virtual Network(VNet)는 Azure의 전용 네트워크에 대한 기본 빌딩 블록입니다. VNet를 사용하면 Azure VM(가상 머신)과 같은 여러 유형의 Azure 리소스가 서로, 인터넷 및 온프레미스 네트워크와 안전하게 통신할 수 있습니다.

  • Azure 위임 서브넷

    위임된 서브넷을 사용하면 관리되는 서비스, 특히 서비스형 플랫폼(PaaS) 서비스를 가상 네트워크에 리소스로 직접 삽입할 수 있습니다. 가상 네트워크 내에서 외부 PaaS 서비스의 전체 통합 관리를 수행할 수 있습니다.

  • VNIC(Azure Virtual Network Interface Card)

    Azure 데이터 센터의 서비스에는 물리적 NIC(네트워크 인터페이스 카드)가 있습니다. 가상 머신 인스턴스는 물리적 NIC와 연관된 VNIC(가상 NIC)를 사용하여 통신합니다. 각 인스턴스에는 실행 중 자동으로 생성 및 연결되는 기본 VNIC가 있으며 인스턴스 수명 동안 사용할 수 있습니다.

OCI는 다음과 같은 구성 요소를 제공합니다.

  • 지역

    Oracle Cloud Infrastructure 리전은 하나 이상의 데이터 센터, 호스팅 가용성 도메인을 포함하는 지역화된 지리적 영역입니다. 지역은 다른 지역과 독립적이며, 먼 거리가 그들을 분리 할 수 있습니다 (국가 또는 대륙에 걸쳐).

  • 가용성 도메인

    가용성 도메인은 한 지역 내의 독립형 독립 데이터 센터입니다. 각 가용성 도메인의 물리적 리소스는 결함 허용을 제공하는 다른 가용성 도메인의 리소스와 격리됩니다. 가용성 도메인은 전원 또는 냉각과 같은 인프라 또는 내부 가용성 도메인 네트워크를 공유하지 않습니다. 따라서 한 가용성 도메인의 장애가 해당 영역의 다른 가용성 도메인에 영향을 미치지 않아야 합니다.

  • VCN(가상 클라우드 네트워크) 및 서브넷

    VCN은 Oracle Cloud Infrastructure 지역에서 설정한 맞춤형 소프트웨어 정의 네트워크입니다. 기존의 데이터 센터 네트워크와 마찬가지로 VCN을 통해 네트워크 환경을 제어할 수 있습니다. VCN에는 VCN 생성 후 변경할 수 있는 겹치지 않는 CIDR 블록이 여러 개 있을 수 있습니다. VCN을 서브넷으로 분할할 수 있습니다. 서브넷은 지역 또는 가용성 도메인으로 범위가 지정될 수 있습니다. 각 서브넷은 VCN의 다른 서브넷과 겹치지 않는 연속적인 주소 범위로 구성됩니다. 생성 후 서브넷의 크기를 변경할 수 있습니다. 서브넷은 공용 또는 전용일 수 있습니다.

  • 경로 테이블

    가상 라우팅 테이블에는 일반적으로 게이트웨이를 통해 서브넷에서 VCN 외부의 대상으로 트래픽을 라우팅하는 규칙이 포함되어 있습니다.

  • 로컬 피어링

    로컬 피어링을 사용하면 한 VCN을 동일한 지역의 다른 VCN과 피어링할 수 있습니다. 피어링이란 VCN이 인터넷을 순회하거나 온프레미스 네트워크를 통해 라우팅하지 않고 전용(private) IP 주소를 사용하여 통신하는 것을 의미합니다.

  • DRG(동적 경로 지정 게이트웨이)

    The DRG is a virtual router that provides a path for private network traffic between VCNs in the same region, between a VCN and a network outside the region, such as a VCN in another Oracle Cloud Infrastructure region, an on-premises network, or a network in another cloud provider.

  • 오브젝트 스토리지

    OCI Object Storage는 데이터베이스 백업, 분석 데이터, 이미지 및 비디오와 같은 리치 콘텐츠 등 모든 콘텐츠 유형의 대량의 구조적 및 비구조적 데이터에 대한 액세스를 제공합니다. 인터넷 또는 클라우드 플랫폼 내에서 직접 데이터를 안전하고 안전하게 저장할 수 있습니다. 성능 또는 서비스 안정성이 저하되지 않고 스토리지를 확장할 수 있습니다.

    빠르고 즉각적이며 자주 액세스하는 데 필요한 "핫" 스토리지에 표준 스토리지를 사용합니다. 장기간 보존하고 거의 또는 거의 액세스하지 않는 "콜드" 스토리지에 아카이브 스토리지를 사용합니다.

  • Data Guard

    Oracle Data Guard and Oracle Active Data Guard provide a comprehensive set of services that create, maintain, manage, and monitor one or more standby databases and that enable production Oracle databases to remain available without interruption. Oracle Data Guard는 인메모리 복제를 사용하여 이러한 대기 데이터베이스를 운영 데이터베이스의 복사본으로 유지 관리합니다. 계획되거나 계획되지 않은 운용중단으로 인해 운용 중인 데이터베이스를 사용할 수 없게 되면 Oracle Data Guard에서 대기 데이터베이스를 운용 롤로 전환하여 운용중단과 연관된 작동 중지 시간을 최소화할 수 있습니다. Oracle Active Data Guard는 읽기 대부분 작업 로드를 대기 데이터베이스로 오프로드하는 추가 기능을 제공하며 고급 데이터 보호 기능도 제공합니다.

  • Oracle Database Autonomous Recovery Service

    Oracle Database Autonomous Recovery Service는 Oracle 데이터베이스를 보호하는 Oracle Cloud 서비스입니다. OCI 데이터베이스의 백업 자동화 및 향상된 데이터 보호 기능을 통해 모든 백업 처리 및 스토리지 요구 사항을 Oracle Database Autonomous Recovery Service로 오프로드할 수 있으므로 백업 인프라 비용과 수동 관리 오버헤드가 줄어듭니다.

  • 전용 인프라의 Exadata Database Service

    Oracle Exadata Database Service on Dedicated Infrastructure를 사용하면 클라우드에서 Exadata의 기능을 활용할 수 있습니다. Oracle Exadata Database Service는 퍼블릭 클라우드에서 특별히 구축되고 최적화된 Oracle Exadata 인프라에 대해 입증된 Oracle Database 기능을 제공합니다. 모든 Oracle Database 워크로드에 대한 클라우드 자동화, 탄력적인 리소스 확장, 보안 및 빠른 성능이 내장되어 있어 관리를 간소화하고 비용을 절감할 수 있습니다.

  • Oracle Database@Azure

    Oracle Database@Azure는 Microsoft Azure 데이터 센터에 배포된 Oracle Cloud Infrastructure(OCI)에서 실행되는 Oracle Database 서비스(Oracle Exadata Database Service on Dedicated InfrastructureOracle Autonomous Database Serverless)입니다. 이 서비스는 OCI와 기능 및 가격 패리티를 제공합니다. Azure Marketplace에서 서비스를 구매하세요.

    Oracle Database@AzureOracle Exadata Database Service, Oracle Real Application Clusters(Oracle RAC), Oracle Data Guard 기술을 Azure 플랫폼에 통합합니다. 사용자는 Azure 콘솔 및 Azure 자동화 도구를 사용하여 서비스를 관리합니다. 이 서비스는 Azure Virtual Network(VNet)에 배포되고 Azure ID 및 액세스 관리 시스템과 통합됩니다. OCI와 Oracle Database의 일반 메트릭 및 감사 로그는 Azure에서 기본적으로 사용할 수 있습니다. 이 서비스를 사용하려면 사용자에게 Azure 구독 및 OCI 테넌시가 있어야 합니다.

    Autonomous Database는 Oracle Exadata 인프라를 기반으로 구축되었으며, 자가 관리, 자가 보안 및 자가 복구를 통해 수동 데이터베이스 관리 및 인적 오류를 방지합니다. Autonomous Database는 선택한 대규모 언어 모델(LLM) 및 배포 위치를 사용하여 내장된 AI 기능을 사용하여 모든 데이터로 확장 가능한 AI 기반 앱을 개발할 수 있도록 지원합니다.

    Oracle Exadata Database ServiceOracle Autonomous Database Serverless는 네이티브 Azure 포털을 통해 손쉽게 프로비저닝되므로 보다 광범위한 Azure 생태계에 액세스할 수 있습니다.

권장사항

Oracle Database@Azure에서 Oracle Exadata Database Service on Dedicated Infrastructure에 대한 재해 복구를 수행할 때는 다음 권장사항을 시작점으로 사용하십시오. 요구 사항은 여기에 설명된 아키텍처와 다를 수 있습니다.
  • Active Data Guard를 사용하면 자동 블록 복구, 온라인 업그레이드 및 마이그레이션을 통한 포괄적인 데이터 손상 방지, 읽기-대부분의 확장으로 워크로드를 대기로 오프로드할 수 있습니다.
  • 애플리케이션 연속성을 사용으로 설정하여 최종 사용자의 계획된 이벤트 및 계획되지 않은 이벤트 중 데이터베이스 중단을 마스킹하고 중단 없는 애플리케이션을 보장합니다.
  • 주별 전체 백업을 제거하는 증분 영구 백업 전략을 구현하여 데이터가 Oracle Data Guard에 의해 보호되더라도 Oracle Database Autonomous Recovery Service(Azure 또는 OCI)로 자동 백업을 설정하여 데이터베이스의 백업 워크로드를 최소화합니다. 또는 고객이 자동 백업을 위해 OCI Object Storage를 사용할 수도 있습니다.
  • 대기 데이터베이스에서 백업을 사용으로 설정하여 영역 간 백업 복제를 수행합니다.
  • OCI Full Stack DR을 사용하여 데이터베이스 전환 및 페일오버 작업을 통합관리할 수 있습니다.
  • OCI Vault를 사용하여 고객 관리 키를 사용하여 데이터베이스의 TDE(투명한 데이터 암호화) 키를 저장합니다.

고려사항

Oracle Database@Azure에서 Oracle Exadata Database Service에 대한 로컬 및 지역별 재해 복구를 수행하는 경우 다음을 고려하십시오.

  • Exadata VM 클러스터가 Oracle Database@Azure 하위 사이트에 생성되면 각 VM 클러스터가 자체 OCI VCN 내에 생성됩니다. Oracle Data Guard에서는 데이터베이스가 redo 데이터를 전달하기 위해 서로 통신해야 합니다. 이 통신을 사용으로 설정하려면 VCN을 피어합니다. 따라서 Exadata VM 클러스터 VCN은 겹치는 IP CIDR 범위를 공유하지 않아야 합니다.
  • 재해 시나리오를 준비하려면 다양한 비즈니스 요구 사항 및 가용성 아키텍처를 고려하고 이러한 고려 사항을 실행 가능한 고가용성 및 재해 복구 계획에 포함하는 포괄적인 접근 방식이 필요합니다. 여기에 설명된 시나리오는 OCI 및 Microsoft Azure 환경의 재해 복구 구성에 단순하지만 효과적인 페일오버를 사용하여 애플리케이션 배포에 가장 적합한 접근 방식을 선택하는 데 도움이 되는 지침을 제공합니다.
  • OCI는 대기 시간 및 처리량으로 측정된 더 나은 성능을 달성하고, 첫 10TB/월 송신을 무료로 포함하여 비용을 절감하기 위해 선호되는 네트워크입니다.

배치

아키텍처 다이어그램에 표시된 영역 간 네트워크 통신을 구성하는 방법을 알아봅니다.

다음 단계에 따라 기본 영역을 구성합니다.

  1. VCN2VCN3에서 수신 트래픽을 허용하려면 VCN1의 클라이언트 서브넷 보안 목록에 다음 수신 규칙을 추가합니다.
    Stateless 소스 IP 프로토콜 소스 포트 범위 대상 포트 범위 허용 설명
    아니요 10.20.0.0/16 TCP 1521 1521 포트 1521에 대한 TCP 트래픽 VCN2에서 수신 허용
    아니요 10.30.0.0/16 TCP 1521 1521 포트 1521에 대한 TCP 트래픽 VCN3에서 수신 허용
  2. CIDR 10.11.0.0/16를 사용하여 가상 클라우드 네트워크 HubVCN1를 생성합니다.
  3. 가상 클라우드 네트워크 HubVCN1에서 로컬 피어링 게이트웨이 HubLPG1HubLPG2를 생성합니다.
  4. 가상 클라우드 네트워크 VCN1에서 로컬 피어링 게이트웨이 LPG1RLPG1L를 생성합니다.
  5. 가상 클라우드 네트워크 VCN2에서 로컬 피어링 게이트웨이 LPG1RLPG1L를 생성합니다.
  6. LPG1RHubLPG1 간에 로컬 피어링 접속을 설정합니다.
  7. LPG2RHubLPG2 간에 로컬 피어링 접속을 설정합니다.
  8. LPG1LLPG2L 간에 로컬 피어링 접속을 설정합니다.
  9. VCN2 대상으로 지정된 트래픽을 LPG1L로 전달하고 VCN3 대상으로 지정된 트래픽을 LPG1R로 전달하려면 VCN1 클라이언트 서브넷의 경로 테이블에 경로 규칙을 추가합니다.
    대상 대상 유형 Target 경로 유형 설명
    10.20.0.0/16 로컬 피어링 게이트웨이 LPG1L 정적 트래픽: VCN2
    10.30.0.0/16 로컬 피어링 게이트웨이 LPG1R 정적 트래픽: VCN3
  10. VCN1 대상으로 지정된 트래픽을 LPG2L로 전달하고 VCN3 대상으로 지정된 트래픽을 LPG2R로 전달하려면 VCN2 클라이언트 서브넷의 경로 테이블에 경로 규칙을 추가합니다.
    대상 대상 유형 Target 경로 유형 설명
    10.10.0.0/16 로컬 피어링 게이트웨이 LPG2L 정적 트래픽: VCN1
    10.30.0.0/16 로컬 피어링 게이트웨이 LPG2R 정적 트래픽: VCN3
  11. HubVCN1에 경로 테이블 HubLPG1rt를 생성합니다.
  12. 경로 테이블 HubLPG1rt을 로컬 피어링 게이트웨이 HubLPG1에 연관시킵니다.
  13. 경로 테이블 HubLPG2rt을 로컬 피어링 게이트웨이 HubLPG2에 연관시킵니다.
  14. 동적 경로 지정 게이트웨이 DRG1을 생성합니다.
  15. HubVCN1에 경로 테이블 DRG1rt를 생성합니다.
  16. 경로 테이블 DRG1rt에 두 개의 경로 규칙을 추가합니다. 하나는 VCN1를 대상으로 하는 트래픽을 HubLPG1로 전달하고, 두번째 경로 규칙은 VCN2를 대상으로 하는 트래픽을 HubLPG2로 전달합니다.
    대상 대상 유형 Target 경로 유형 설명
    10.10.0.0/16 로컬 피어링 게이트웨이 HubLPG1 정적 트래픽: VCN1
    10.10.0.0/16 로컬 피어링 게이트웨이 HubLPG2 정적 트래픽: VCN2
  17. DRG1HubVCN1에 연결하려면 다음을 수행합니다.
    1. VCN 연결에 대해 자동 생성된 Drg Route Table을 선택합니다.
    2. 기존 경로 테이블 DRG1rt을 선택합니다.
    3. VCN CIDR 블록을 선택합니다.
  18. DRG1RPC1라는 원격 피어링 접속을 생성합니다.
  19. VCN2VCN3 대상으로 지정된 트래픽을 DRG1에 전달할 경로 규칙을 HubLPG1rt에 추가합니다.
    대상 대상 유형 Target 경로 유형 설명
    10.30.0.0/16 동적 경로 지정 게이트웨이 DRG1 정적 트래픽: VCN3
  20. VCN2VCN3 대상으로 지정된 트래픽을 DRG1에 전달할 경로 규칙을 HubLPG2rt에 추가합니다.
    대상 대상 유형 Target 경로 유형 설명
    10.30.0.0/16 동적 경로 지정 게이트웨이 DRG1 정적 트래픽: VCN3

다음 단계에 따라 첫번째 대기 영역(영역 2)을 생성하십시오.

  1. VCN1VCN2에서 수신 트래픽을 허용하려면 VCN3의 클라이언트 서브넷 보안 목록에 다음 수신 규칙을 추가합니다.
    Stateless 소스 IP 프로토콜 소스 포트 범위 대상 포트 범위 허용 설명
    아니요 10.10.0.0/16 TCP 1521 1521 포트 1521에 대한 TCP 트래픽 VCN1에서 수신 허용
    아니요 10.20.0.0/16 TCP 1521 1521 포트 1521에 대한 TCP 트래픽 VCN2에서 수신 허용
  2. CIDR 10.33.0.0/16를 사용하여 가상 클라우드 네트워크 HubVCN3를 생성합니다.
  3. 가상 클라우드 네트워크 HubVCN3에서 로컬 피어링 게이트웨이 HubLPG3를 생성합니다.
  4. 가상 클라우드 네트워크 VCN3에서 로컬 피어링 게이트웨이 LPG3R를 생성합니다.
  5. LPG3RHubLPG3 간에 로컬 피어링 접속을 설정합니다.
  6. VCN1VCN2 대상으로 지정된 트래픽을 LPG3R로 전달할 경로 규칙을 VCN3의 클라이언트 서브넷의 경로 테이블에 추가합니다.
    대상 대상 유형 Target 경로 유형 설명
    10.10.0.0/16 로컬 피어링 게이트웨이 LPG3R 정적 트래픽: VCN1
    10.20.0.0/16 로컬 피어링 게이트웨이 LPG3R 정적 트래픽: VCN2
  7. HubVCN3에 경로 테이블 HubLPG3rt를 생성합니다.
  8. 경로 테이블 HubLPG3rt을 로컬 피어링 게이트웨이 HubLPG3에 연관시킵니다.
  9. 동적 경로 지정 게이트웨이 DRG3을 생성합니다.
  10. HubVCN3에 경로 테이블 DRG3rt를 생성합니다.
  11. VCN3 대상으로 지정된 트래픽을 HubLPG3로 전달하려면 DRG3rt에 경로 규칙을 추가합니다.
    대상 대상 유형 Target 경로 유형 설명
    10.30.0.0/16 로컬 피어링 게이트웨이 HubLPG3 정적 트래픽: VCN3
  12. DRG3HubVCN3에 연결하려면 다음을 수행합니다.
    1. VCN 연결에 대해 자동 생성된 Drg Route Table을 선택합니다.
    2. 기존 경로 테이블 DRG3rt을 선택합니다.
    3. VCN CIDR 블록을 선택합니다.
  13. DRG3(RPC3)에 원격 피어링 접속을 생성합니다.
  14. RPC1(지역 1)과 RPC3(지역 3) 간에 원격 피어링 접속을 설정합니다.
  15. HubLPG3rt에 두 개의 경로 규칙을 추가하여 VCN1VCN2 대상으로 지정된 트래픽을 DRG3에 전달합니다.
    대상 대상 유형 Target 경로 유형 설명
    10.10.0.0/16 동적 경로 지정 게이트웨이 DRG3 정적 트래픽: VCN1
    10.20.0.0/16 동적 경로 지정 게이트웨이 DRG3 정적 트래픽: VCN2

추가 탐색

Oracle Database@AzureOracle Data Guard에 대해 자세히 알아보세요.

다음 추가 리소스를 검토하십시오.

확인

  • 작성자: Sinan Petrus Toma, Sebastian Solbach, Julien Silverston
  • 제공자: Sreya Dutta