ADDF 아키텍처 및 용어 - AWS 규범적 지침

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

ADDF 아키텍처 및 용어

이 가이드의 보안 및 운영 주제를 이해하려면 먼저 ADDF(Autonomous Driving Data Framework)의 용어, 구성 요소 및 아키텍처에 대한 개략적 이해가 필요합니다. 이 섹션은 다음 주제로 구성됩니다.

ADD 용어

ADDF의 주요 용어는 다음과 같습니다.

  • ADDF 모듈 - 모듈은 ADAS(Advanced Driver-Assistance System)에서 일반 작업을 구현하는 코드형 인프라(IaC)입니다. 일반 작업으로는 중앙 집중식 데이터 스토리지, 데이터 처리 파이프라인, 시각화 메커니즘, 검색 인터페이스, 시뮬레이션 워크로드, 분석 인터페이스 및 사전 구축된 대시보드 구성 등이 있습니다. 요구 사항에 따라 모듈을 생성하거나 기존 모듈을 재사용 또는 사용자 지정할 수 있습니다.

    AWS Cloud Development Kit (AWS CDK)를 사용하여 ADDF 모듈을 정의하거나 Hashicorp Terraform 또는 AWS CloudFormation과 같은 일반적인 IaC 프레임워크를 사용하여 ADDF 모듈을 구현할 수 있습니다. 모듈에는 입력 파라미터 세트가 있습니다. 입력 파라미터는 다른 모듈의 출력 값에 따라 달라질 수 있습니다. ADDF 모듈은 ADDF 대상 AWS 계정에 대한 가장 작은 배포 단위입니다.

  • ADDF 배포 매니페스트 파일 - 이 파일은 독립 실행형 ADDF 모듈의 오케스트레이션을 정의합니다. 오케스트레이션은 모듈의 배포 순서를 나타냅니다. ADDF 배포 매니페스트 파일에서 ADDF 그룹을 사용하여 관련 모듈을 그룹화할 수 있습니다. 이 파일에서 ADDF 도구 체인 AWS 계정, ADDF 대상 AWS 계정 및 대상 AWS 리전도 정의합니다.

  • ADDF 배포 프레임워크 - 이 프레임워크는 ADDF 배포 매니페스트 파일에 정의된 오케스트레이션을 기반으로 ADDF 모듈을 ADDF 대상 AWS 계정에 배포합니다. ADDF 배포 프레임워크는 다음 AWS 오픈 소스 프로젝트를 사용하여 구현됩니다.

    • SeedFarmer(GitHub) – SeedFarmer는 ADDF 배포에 사용되는 CLI 도구로서, 각 모듈 상태를 관리하고, 모듈 코드를 준비 및 패키징하고, ADDF 배포 역할에 대한 최소 권한 정책을 생성하고, CodeSeeder가 배포에 사용하는 의미 체계 지침을 제공합니다. SeedFarmer와 직접 상호 작용하여 ADDF 배포를 실행하거나 지속적 통합 및 지속적 배포(CI/CD) 파이프라인에 통합할 수 있습니다.

    • CodeSeeder(GitHub) - CodeSeeder는 AWS CodeBuild 작업을 통해 임의의 코드형 인프라 패키지를 배포합니다. SeedFarmer는 CodeSeeder를 자동으로 오케스트레이션하고 실행합니다. SeedFarmer만 CodeSeeder와 직접 상호 작용합니다.

    ADDF 배포 프레임워크는 단일 계정 및 다중 계정 아키텍처에서 배포를 지원하도록 설계되었습니다. 조직의 요구 사항에 따라 단일 계정 아키텍처가 필요한지 다중 계정 아키텍처가 필요한지 결정합니다.

  • ADDF 도구 체인 AWS 계정 – 이 계정은 ADDF 배포 매니페스트 파일의 정의에 따라 ADDF 대상 AWS 계정으로 모듈 배포를 오케스트레이션하고 관리합니다. ADDF 배포에는 ADDF 도구 체인 AWS 계정이 하나만 있을 수 있습니다. 단일 계정 아키텍처에서는 ADDF 도구 체인 AWS 계정이 ADDF 대상 AWS 계정이기도 합니다. 이 계정에는 ADDF 배포 프로세스 중에 SeedFarmer가 수임하는 ADDF 도구 체인 IAM 역할이라는 AWS Identity and Access Management(IAM) 역할이 포함되어 있습니다. 이 가이드에서는 ADDF 도구 체인 AWS 계정을 도구 체인 계정이라고 합니다.

  • ADDF 대상 AWS 계정 – ADDF 모듈을 배포하는 대상 계정입니다. 하나 이상의 대상 계정이 있을 수 있습니다. 이러한 계정에는 ADDF 배포 매니페스트 파일과 매핑된 모듈에 설명된 리소스 및 애플리케이션 로직이 포함됩니다. 단일 계정 아키텍처에서는 ADDF 대상 AWS 계정이 ADDF 도구 체인 AWS 계정이기도 합니다. 각 ADDF 대상 계정에는 배포 프로세스 중에 CodeSeeder가 수임하는 ADDF 배포 IAM 역할이라는 IAM 역할이 포함되어 있습니다. 이 가이드에서는 ADDF 대상 AWS 계정을 대상 계정이라고 합니다.

  • ADDF 인스턴스 - ADDF 배포 매니페스트 파일에 정의된 대로 ADDF와 모듈을 클라우드에 배포하면 이는 ADDF 인스턴스가 됩니다. ADDF 인스턴스는 단일 계정 또는 다중 계정 아키텍처를 가질 수 있으며 여러 ADDF 인스턴스를 배포할 수 있습니다. 인스턴스 수 선택 및 사용 사례에 맞는 계정 아키텍처 설계에 대한 자세한 내용은 ADDF 아키텍처 정의 섹션을 참조하세요.

ADDF 아키텍처

다음 다이어그램에서는 AWS 클라우드의 ADDF 인스턴스에 대한 개략적 아키텍처를 보여줍니다. 전용 도구 체인 계정과 2개의 대상 계정을 포함한 다중 계정 아키텍처가 있습니다. 이 가이드에서는 ADDF를 사용하여 대상 계정에 리소스를 배포하는 엔드 투 엔드 프로세스에 대해 설명합니다.

ADDF 로컬 코드, 배포 매니페스트 파일, 도구 체인 및 대상 계정이 포함된 AWS 아키텍처
  1. ADDF AWS 계정을 생성하고 부트스트랩합니다.

    제대로 작동하려면 각 계정을 ADDF와 AWS CDK에 부트스트랩해야 합니다. 새 ADDF 배포이거나 새 대상 계정을 추가하는 경우 다음을 수행합니다.

    1. 도구 체인 계정과 각 대상 계정에서 AWS CDK를 부트스트랩합니다. 지침은 Bootstrapping(AWS CDK 설명서)을 참조하세요. ADDF는 AWS CDK를 사용하여 인프라를 배포합니다.

    2. 도구 체인 계정과 각 대상 계정에서 ADDF를 부트스트랩합니다. 자세한 지침은 https://github.com/awslabs/autonomous-driving-data-framework/blob/main/docs/deployment_guide.mdADDF Deployment Guide의 Bootstrap AWS 계정(s)를 참조하세요. 그러면 SeedFarmer와 CodeSeeder에 필요한 모든 ADDF 관련 IAM 역할이 설정됩니다.

    참고

    처음에 ADDF를 배포하거나 새 대상 계정을 추가하는 경우에만 이 단계를 수행해야 합니다. 이 단계는 이미 설정된 ADDF 인스턴스에 대한 반복 ADDF 배포의 일부가 아닙니다.

  2. ADDF 모듈을 생성하거나 사용자 지정합니다.

    해결하려는 특정 문제에 따라 ADDF 모듈을 생성하거나 사용자 지정합니다. 모듈은 격리된 작업 또는 작업 그룹을 나타내야 합니다. 필요에 따라 모듈의 입력 파라미터를 정의하고 모듈 출력 값을 다른 모듈의 입력 파라미터로 사용합니다.

  3. ADDF 배포 매니페스트 파일에 모듈 오케스트레이션을 정의합니다.

    ADDF 매니페스트 파일에서 모듈을 그룹으로 구성하고 배포 순서와 모듈 간의 종속성을 정의합니다. 이 파일에서 각 ADDF 그룹 및 해당 모듈에 대한 단일 도구 체인 계정과 대상 계정(AWS 리전 포함)도 지정합니다.

  4. ADDF 배포 매니페스트 파일을 평가하고 배포 범위를 설정합니다.

    ADDF 개발자 또는 AWS CodePipeline과 같은 CI/CD 파이프라인은 CLI 도구인 SeedFarmer를 직접적으로 호출하여 ADDF 배포 매니페스트 파일 평가를 시작합니다. 평가를 시작하려면 다음을 수행하세요.

    • SeedFarmer는 ADDF 배포 매니페스트 파일을 평가를 위한 입력 파라미터로 사용합니다.

    • ADDF 도구 체인 IAM 역할을 수임하기 위해 SeedFarmer에는 1단계의 ADDF 부트스트랩 프로세스 중에 정의된 것과 동일하고 유효한 IAM 역할 또는 사용자의 보안 인증 정보가 필요합니다.

    SeedFarmer에 ADDF 도구 체인 IAM 역할을 수임할 수 있는 올바른 보안 인증 정보가 없거나 ADDF 배포 매니페스트 파일에 액세스할 수 없는 경우 평가가 시작되지 않습니다.

    SeedFarmer가 평가를 시작할 수 있으면 도구 체인 계정에서 ADDF 도구 체인 IAM 역할을 수임합니다. 여기에서 SeedFarmer는 해당 계정에서 ADDF 배포 IAM 역할을 수임하여 모든 대상 계정에 액세스할 수 있습니다. 그런 다음 SeedFarmer는 도구 체인 계정과 대상 계정에서 ADDF 메타데이터를 읽으려고 시도합니다. 다음 중 하나가 발생합니다.

    • 읽을 ADDF 메타데이터가 없으면 이는 새 ADDF 인스턴스임을 나타냅니다. SeedFarmer는 배포 범위가 ADDF 배포 매니페스트 파일과 해당 콘텐츠 전체인지 확인합니다.

    • ADDF 메타데이터가 존재하는 경우 SeedFarmer는 ADDF 배포 매니페스트 파일과 해당 콘텐츠를 대상 계정에 있는 배포된 기존 아티팩트의 MD5 해시와 비교합니다. 배포 가능한 변경 사항이 감지되면 이 프로세스가 계속됩니다. 배포 가능한 변경 사항이 감지되지 않으면 프로세스가 완료된 것입니다.

  5. 대상 계정에 범위 내 ADDF 모듈을 배포합니다.

    이제 CodeSeeder에는 ADDF 배포 매니페스트 파일과 이전 단계의 평가 결과에 따라 실행할 순서가 지정된 배포 목록이 있습니다. 순서가 지정된 목록에 따라 CodeSeeder는 연결된 각 대상 계정에서 ADDF 배포 IAM 역할을 수임합니다. 그런 다음 AWS CodeBuild 작업에서 CodeSeeder를 실행하여 ADDF 모듈에 대한 AWS CDK 애플리케이션과 같은 개별 IaC 배포를 생성하거나 업데이트합니다. 기본적으로 ADDF는 AWS CDK를 IaC 프레임워크로 사용하지만 다른 일반적인 IaC 프레임워크도 지원됩니다. 각 대상 계정에 대한 프로세스가 완료되면 ADDF 배포 매니페스트 파일에 정의한 대로 완전히 배포된 크로스 계정 엔드 투 엔드 ADAS 기반 워크플로가 완성됩니다.

    단일 계정 아키텍처를 사용하는 경우 도구 체인 계정과 대상 계정은 동일한 계정이며, 하나의 계정에 설명된 모든 기능이 있습니다.

  6. ADDF에서 배포한 인프라를 사용합니다.

    ADAS 개발자는 사용 사례에 정의된 대로 배포된 ADAS 기반 워크플로를 사용할 수 있습니다.

    이 워크플로는 ADDF 다중 계정 환경의 단일 인스턴스 아키텍처를 설명합니다. 개발, 배포 및 운영 모델에 따라 다단계 환경에서 여러 ADDF 인스턴스를 실행하는 것이 좋습니다. 일반적인 설정에는 개발, 테스트 및 생산을 위한 분기와 같은 배포 단계별 전용 AWS 계정이 있는 전용 ADDF 인스턴스가 포함될 수 있습니다. 각 ADDF 인스턴스에 대해 고유한 리소스 네임스페이스를 생성했다고 가정하면 동일한 AWS 리전의 동일한 단일 계정 또는 다중 계정 환경에서 여러 ADDF 인스턴스를 실행할 수도 있습니다. 자세한 내용은 ADDF 아키텍처 정의 섹션을 참조하세요.