콘텐츠로 이동

빠른 시작 가이드

이 가이드는 @aws/nx-plugin을 설치하고 사용하여 AWS에서 프로젝트를 빠르게 구축하는 기본 사항을 안내합니다.

진행하기 전에 다음 전역 종속성이 필요합니다:

  • Git
  • Node >= 22 (NVM과 같은 도구를 사용하여 node 버전을 관리하는 것을 권장합니다)
    • node --version을 실행하여 확인하세요
  • UV >= 0.5.29
    1. uv python install 3.14.0을 실행하여 Python 3.14를 설치하세요
    2. uv python list --only-installed로 확인하세요
  • PNPM >= 11 (원하는 경우 Yarn >= 4, Bun >= 1, 또는 NPM >= 10을 사용할 수도 있습니다)
    • pnpm --version, yarn --version, bun --version 또는 npm --version을 실행하여 확인하세요
  • 애플리케이션을 배포하려면 (일부 로컬 개발 워크플로에도 필요) 대상 AWS 계정에 구성된 AWS Credentials가 필요합니다.
  • 일부 생성기에는 Docker 또는 Finch >= 1.6.0이 필요합니다. Docker의 경우 멀티 플랫폼 빌드가 설정되어 있어야 하며, Finch는 기본적으로 멀티 플랫폼 빌드를 지원합니다.
  • CDK 대신 인프라를 코드로 관리하기 위해 이것을 사용하려면 Terraform >= 1.12가 필요합니다
    • terraform --version을 실행하여 확인하세요
  • VSCode를 사용하는 경우 Nx Console VSCode Plugin 설치를 권장합니다.

1단계: 새 Nx 워크스페이스 초기화

섹션 제목: “1단계: 새 Nx 워크스페이스 초기화”

다음 명령을 실행하여 원하는 패키지 매니저로 Nx 워크스페이스를 생성합니다:

Terminal window
pnpm create @aws/nx-workspace my-project

완료되면 프로젝트 디렉터리로 이동합니다:

Terminal window
cd my-project

2단계: 제너레이터를 사용하여 프로젝트 스캐폴딩

섹션 제목: “2단계: 제너레이터를 사용하여 프로젝트 스캐폴딩”

이 빠른 시작 가이드에서는 tRPC API, React 웹사이트, Cognito 인증, 그리고 CDK 또는 Terraform 인프라를 추가합니다. 구축하는 프로젝트 유형에 따라 제너레이터의 조합을 선택하여 프로젝트를 빠르게 부트스트랩할 수 있습니다. 왼쪽 탐색 바의 __Generators__를 확인하여 전체 옵션 목록을 보거나, 그래프 빌더를 사용하여 워크스페이스를 시각적으로 구성해 보세요.

단축키로 아래 버튼을 사용하여 전체 애플리케이션을 스캐폴딩하는 명령을 복사할 수 있습니다.

Loading the diagram…

그렇지 않으면 아래 단계를 따라 각 제너레이터를 직접 실행하세요.

Terminal window
pnpm nx g @aws/nx-plugin:ts#api --name=demo-api --framework=trpc --auth=iam --no-interactive
어떤 파일이 변경될지 확인하기 위해 드라이 런을 수행할 수도 있습니다
Terminal window
pnpm nx g @aws/nx-plugin:ts#api --name=demo-api --framework=trpc --auth=iam --no-interactive --dry-run

이렇게 하면 packages/demo-api 폴더 내에 API가 생성됩니다.

Terminal window
pnpm nx g @aws/nx-plugin:ts#website --name=demo-website --no-interactive
어떤 파일이 변경될지 확인하기 위해 드라이 런을 수행할 수도 있습니다
Terminal window
pnpm nx g @aws/nx-plugin:ts#website --name=demo-website --no-interactive --dry-run

이렇게 하면 packages/demo-website에 새 React 웹사이트가 스캐폴딩됩니다.

Terminal window
pnpm nx g @aws/nx-plugin:ts#website#auth --project=@my-project/demo-website --cognitoDomain=my-demo --no-interactive
어떤 파일이 변경될지 확인하기 위해 드라이 런을 수행할 수도 있습니다
Terminal window
pnpm nx g @aws/nx-plugin:ts#website#auth --project=@my-project/demo-website --cognitoDomain=my-demo --no-interactive --dry-run

이렇게 하면 웹사이트에 Cognito 인증을 추가하는 데 필요한 인프라와 React 코드가 설정됩니다.

Terminal window
pnpm nx g @aws/nx-plugin:connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api --no-interactive
어떤 파일이 변경될지 확인하기 위해 드라이 런을 수행할 수도 있습니다
Terminal window
pnpm nx g @aws/nx-plugin:connection --sourceProject=@my-project/demo-website --targetProject=@my-project/demo-api --no-interactive --dry-run

이렇게 하면 웹사이트가 tRPC API를 호출할 수 있도록 필요한 프로바이더가 구성됩니다.

선택한 IAC 제공자에 따라 인프라 프로젝트를 추가합니다.

Terminal window
pnpm nx g @aws/nx-plugin:ts#infra --name=infra --no-interactive
어떤 파일이 변경될지 확인하기 위해 드라이 런을 수행할 수도 있습니다
Terminal window
pnpm nx g @aws/nx-plugin:ts#infra --name=infra --no-interactive --dry-run

이렇게 하면 AWS에 인프라를 배포하는 데 사용할 수 있는 CDK 앱이 구성됩니다.

3단계: 웹사이트와 API를 로컬에서 실행

섹션 제목: “3단계: 웹사이트와 API를 로컬에서 실행”

다음 명령을 사용하여 웹사이트와 연결된 API에 대한 로컬 개발 서버를 시작합니다:

Terminal window
pnpm dev

웹사이트는 http://localhost:4200에서 사용할 수 있습니다.

로컬 웹사이트와 API 서버가 모두 핫 리로드되므로 웹사이트와 API 모두의 변경 사항이 실시간으로 반영됩니다.

4단계: 클라우드 리소스 정의 및 AWS에 배포

섹션 제목: “4단계: 클라우드 리소스 정의 및 AWS에 배포”

packages/infra/src/stacks/application-stack.ts를 열고 다음 코드를 추가합니다:

import { Stack, StackProps } from 'aws-cdk-lib';
import { DemoApi, DemoWebsite, UserIdentity } from '@my-project/common-constructs';
import { Construct } from 'constructs';
export class ApplicationStack extends Stack {
constructor(scope: Construct, id: string, props?: StackProps) {
super(scope, id, props);
const identity = new UserIdentity(this, 'identity');
const api = new DemoApi(this, 'api', {
integrations: DemoApi.defaultIntegrations(this).build(),
});
api.grantInvokeAccess(identity.identityPool.authenticatedRole);
new DemoWebsite(this, 'website');
}
}

이것이 풀스택 애플리케이션을 배포하기 위해 작성해야 하는 모든 CDK 코드입니다.

다음으로, 다음 명령을 실행하여 프로젝트를 빌드합니다:

Terminal window
pnpm build

인프라를 부트스트랩합니다:

Terminal window
pnpm nx bootstrap infra

프로젝트를 배포합니다:

Terminal window
pnpm nx deploy-sandbox infra

5단계: 배포된 클라우드 리소스로 웹사이트 테스트

섹션 제목: “5단계: 배포된 클라우드 리소스로 웹사이트 테스트”
  1. runtime-config.json 파일을 가져옵니다:

    Terminal window
    pnpm nx load-runtime-config demo-website
  2. 로컬 웹사이트 서버를 시작합니다

    Terminal window
    pnpm nx serve demo-website

웹사이트는 http://localhost:4200에서 사용할 수 있으며, API 및 인증을 위해 배포한 리소스를 가리킵니다.


축하합니다! 🎉 @aws/nx-plugin을 사용하여 풀스택 애플리케이션을 성공적으로 빌드하고 배포했습니다!