Skip to main content

FastAPI

FastAPI는 Python 기반의 API 서버를 빠르게 구성할 수 있는 백엔드 프레임워크입니다. 타입 힌트 기반의 요청/응답 모델, 자동 API 문서, 비동기 처리 구조를 제공하여 REST API 서비스를 구현하는 데 사용할 수 있습니다.

Turaco에서는 Python 기반의 백엔드 애플리케이션 개발을 위한 컴포넌트 형태로 FastAPI를 제공합니다. FastAPI 컴포넌트를 이용하면 기본 템플릿 코드와 배포 리소스를 생성하고, 개발자는 비즈니스 로직에 집중할 수 있습니다.


컴포넌트 배치

FastAPI 컴포넌트는 아키텍처 설계 화면 (이하 디자이너 화면)에서 좌측에 위치한 컴포넌트 목록에서 백엔드 카테고리에 있습니다.

⓵ 설계화면 왼쪽 컴포넌트 리스트 화면에서 FastAPI 컴포넌트를 선택 후 디자이너 화면으로 드래그 & 드롭합니다.

⓶ 선택된 FastAPI 컴포넌트에 대한 이름과 설명을 입력합니다.

⓷ 이름과 설명을 입력 후 확인을 클릭합니다.
     이름과 설명은 필수 입력값이며 입력하지 않으면 확인 버튼이 활성화되지 않습니다.

입력된 이름과 설명은 아키텍처 설계 및 생성되는 리소스에 사용됩니다.


속성 설정

설정 가능한 컴포넌트 속성은 이미 설정한 이름 및 설명을 제외하고 아래와 같습니다.

  • 포트 설정 -> 컨테이너의 포트 정보로 주입
  • 영구 볼륨 -> 컨테이너 저장소로 주입
  • 환경 변수 -> 컨테이너의 환경 변수로 주입

포트 설정

⓸ 포트 정보는 3가지 정보를 반드시 입력해야 합니다.
     미 입력시 컨테이너 실행 후 정상적으로 접속이 되지 않을 수 있습니다.

  • 프로토콜 -> 통신시 사용할 프로토콜 설정(현재는 http만 지원)
  • 입력포트 -> 서비스 입력 포트로 사용
  • 타겟포트 -> 서비스 출력 포트이며 컨테이너의 입력 포트로 주입

스토리지 및 환경 변수 설정

컨테이너는 로컬 스토리지를 사용할 수 있으나 재시작되거나 삭제되는 경우 저장된 데이터가 함께 삭제될 수 있습니다. 영구 보관이 필요한 데이터는 외부 영구 볼륨을 연결하여 관리합니다.

Turaco에서는 운영 환경에서 많이 사용하는 2가지 스토리지 클래스를 지원합니다.

  • NFS 기반의 스토리지 클래스 (tlc-nfs-sc)
  • Disk 기반의 스토리지 클래스 (tlc-block-sc)

⓹ 스토리지 설정에는 아래와 같이 3개의 속성이 있습니다.

  • 접근 모드 -> 스토리지 접근 모드 선택
  • 볼륨 크기 -> 볼륨 크기 입력(ex. 5Gi)
  • 스토리지 클래스 -> 스토리지 클래스 이름 입력(기본값 유지 추천)

⓺ 스토리지 접근 모드를 선택하는 버튼을 클릭합니다.
     3가지 옵션 중 원하는 옵션을 선택할 수 있습니다.

  • ReadWriteMany -> 여러개의 컨테이너에서 읽고 쓸수 있음
  • ReadWriteOnce -> 하나의 컨테이너에서만 읽고 쓸수 있음
  • ReadOnlyMany -> 여러개의 컨테이너에서 읽을 수 있음

⓻ 컨테이너 내부에서 참조할 환경 변수를 k-v 형식으로 주입합니다.
     '+ADD' 버튼을 누르면 설정할 수 있는 옵션이 나타납니다.

⓼ 원하는 키와 값을 입력합니다.
     '+ADD' 버튼을 통해 필요한 만큼 반복해서 추가합니다.