데모 앱 실행하기 (Launch a demo app)
이 단계별 가이드에서는 Fly Launch를 사용해 간단한 "hello fly" 데모 앱을 Fly.io에 배포해요. flyctl을 설치하고, 계정에 가입하거나 로그인한 다음, 미리 빌드된 Docker 이미지로 앱을 만들고 확인하는 전체 과정을 따라가 보세요.
이 단계별 가이드에서는 Fly Launch를 사용해 간단한 "hello fly" 데모 앱을 Fly.io에 배포할 거예요.
첫 단계는 Fly Launch와 함께 작업하는 데 필요한 모든 도구를 설치하는 거예요. 도구는 하나뿐이에요: flyctl.
출처: 문서
본문
1. flyctl 설치
flyctl은 fly 명령으로 Fly.io를 작업할 수 있게 해주는 커맨드라인 유틸리티예요. 계정 만들기부터 애플리케이션 배포까지요. 로컬 기기에서 실행되므로 여러분의 운영체제에 맞는 버전을 설치해야 해요.
macOS
Homebrew 패키지 매니저가 설치되어 있다면 다음을 실행해 flyctl을 설치할 수 있어요:
brew install flyctl
아니라면 설치 스크립트를 실행할 수 있어요:
curl -L https://fly.io/install.sh | sh
curl로 flyctl을 설치했다면, flyctl 디렉터리를 셸 rc 파일에 추가해야 해요. 설치 스크립트의 출력에서 파일에 복사해 붙여 넣을 항목을 확인하세요. 이제 어떤 디렉터리에서든 fly 명령을 사용할 수 있어요.
Linux
설치 스크립트를 실행하세요:
curl -L https://fly.io/install.sh | sh
Windows
PowerShell 설치 스크립트를 실행하세요:
pwsh -Command "iwr https://fly.io/install.ps1 -useb | iex"
pwsh 명령을 찾을 수 없다는 오류가 발생하면 대신 powershell을 사용할 수 있지만, 최신 버전의 PowerShell을 설치할 것을 권장해요.
flyctl 제거
flyctl을 제거하는 방법은 설치한 방법에 따라 달라져요.
Homebrew (macOS): brew uninstall flyctl로 제거하세요.
설치 스크립트 (macOS 및 Linux): flyctl 디렉터리(기본값 ~/.fly)를 제거한 다음, 설치 스크립트가 PATH에 flyctl을 넣기 위해 추가한 셸 rc 파일(예: ~/.bashrc 또는 ~/.zshrc)의 줄을 삭제하세요.
Windows (PowerShell): flyctl 설치 디렉터리(기본값 ~\.fly)를 제거하고 PATH에서 해당 항목을 제거하세요.
2. 가입 또는 로그인
계정을 만들거나 기존 계정에 로그인하세요.
Fly.io 계정 만들기
Fly.io를 처음 사용한다면 계정을 만들어야 해요. 가입하려면 다음을 실행하세요:
fly auth signup
이렇게 하면 가입 페이지로 이동하며, 이메일 주소, Google 계정, 또는 GitHub 계정으로 Fly.io 계정을 만들 수 있어요. GitHub로 가입하면 비밀번호를 설정하는 링크가 담긴 확인 이메일을 보내 드려요. 일부 Fly.io 작업에서 활발하게 본인 확인을 하려면 비밀번호가 필요해요.
**참고:** 어느 시점에 신용카드 결제 정보를 요청받게 됩니다. 새 계정은 Pay As You Go 요금제로 시작해요. 자세한 내용은 [Pricing](/about/pricing)과 [Billing](/about/billing)을 참고하세요.가입 후에는 커맨드라인으로 돌아가 Fly.io를 바로 사용할 준비가 돼요.
Fly.io 계정에 로그인
이미 Fly.io 계정이 있다면 flyctl로 로그인하기만 하면 돼요. 로그인하려면 다음을 실행하세요:
fly auth login
브라우저가 Fly.io 로그인 화면으로 열리면 사용자 이름과 비밀번호를 입력해 로그인하세요. GitHub로 가입했다면 Sign in with GitHub를 클릭해 로그인하세요.
로그인 후에는 커맨드라인으로 돌아가 Fly.io를 바로 사용할 준비가 돼요.
Microsoft WSL 사용자는 브라우저가 열릴 수 있게 하는 심볼릭 링크를 만드는 다음 명령을 실행해야 할 수 있습니다:ln -s /usr/bin/wslview /usr/local/bin/xdg-open
3. 데모 앱 실행하기
Fly Launch는 Docker 이미지를 사용해 거의 모든 종류의 앱을 빠르게 배포하도록 도와줘요. 이 예시에서는 미리 빌드된 Docker 이미지 flyio/hellofly:latest를 사용해 데모 앱을 만들고 배포해요.
fly launch를 실행해 새 앱을 만들면 앱을 배포하기 전에 웹 인터페이스로 조정할 수 있는 유용한 기본값이 담긴 fly.toml 구성 파일이 생성돼요. 배포 후 명령을 실행하면 flyctl은 fly.toml 파일을 찾아 앱 이름과 적용할 구성을 얻어요.
데모 앱을 만들려면 다음을 실행하세요:
fly launch --image flyio/hellofly:latest
앱의 기본값 요약이 표시돼요. 예를 들어:
Using image flyio/hellofly:latest
Creating app in /Users/username/my-app-name
We're about to launch your app on Fly.io. Here's what you're getting:
Organization: MyName (fly launch defaults to the personal org)
Name: my-app-name (derived from your directory name)
Region: Secaucus, NJ (US) (this is the fastest region for you)
App Machines: shared-cpu-1x, 1GB RAM (most apps need about 1GB of RAM)
Postgres: <none> (not requested)
Redis: <none> (not requested)
? Do you want to tweak these settings before proceeding? (y/N)
Fly launch는 프로젝트 디렉터리 이름에 임의의 이름을 붙여 앱 이름을 만들어요. 앱 이름은 전역적으로 고유해야 해요.
설정을 변경하려면 프롬프트에서 y를 입력해 Fly Launch 페이지를 연 다음, Confirm Settings를 클릭해 데모 앱을 확인하고 배포하세요.
아니면 그냥 n을 입력해 기본값을 수락하고 앱을 배포하세요.
예시 fly launch 출력:
Created app 'my-app-name' in organization 'personal'
Admin URL: https://fly.io/apps/my-app-name
Hostname: my-app-name.fly.dev
Wrote config file fly.toml
Validating /Users/username/my-app-dir/fly.toml
Platform: machines
✓ Configuration is valid
==> Building image
Searching for image 'flyio/hellofly:latest' remotely...
image found: img_z1nr0lpjz9v5q98w
Watch your deployment at https://fly.io/apps/my-app-name/monitoring
Provisioning ips for my-app-name
Dedicated ipv6: 2a09:8280:1::42:a8f4
Shared ipv4: 66.241.124.213
Add a dedicated ipv4 with: fly ips allocate-v4
This deployment will:
* create 2 "app" machines
No machines in group app, launching a new machine
Creating a second machine to increase service availability
Finished launching new machines
-------
NOTE: The machines for [app] have services with 'auto_stop_machines = true' that will be stopped when idling
-------
Visit your newly deployed app at https://my-app-name.fly.dev/
4. 앱 상태 확인
앱이 배포된 후 fly status 명령을 사용해 새 앱의 기본 세부 정보를 확인하세요. 예를 들어:
App
Name = hellofly
Owner = personal
Hostname = hellofly.fly.dev
Image = flyio/hellofly:latest
Machines
PROCESS ID VERSION REGION STATE ROLE CHECKS LAST UPDATED
app 148e453b7d7289 1 ord started 2023-05-17T17:39:37Z
app 5683d311c3228e 1 ord stopped 2023-05-17T17:38:44Z
이 예시에서 앱의 DNS 호스트 이름은 hellofly.fly.dev예요. 앱에는 ord(시카고) 리전에서 실행되는 두 개의 Machine이 있어요. 가용성을 높이려면 최소 두 대의 Machine을 실행하는 것을 권장해요.
5. 앱 방문하기
fly apps open 명령으로 배포된 앱에 연결할 수 있어요. 이 명령은 보안 연결을 위해 브라우저를 https://<my-app-name>.fly.dev/로 엽니다.
Fly.io에서 첫 앱을 성공적으로 실행했어요!
재미로 /<your-name>을 fly apps open에 추가하면, hellofly 애플리케이션의 추가 인사말을 위해 여러분의 이름이 앱 경로에 붙어요.
opening https:http://hellofly.fly.dev/fred ...
방금 Fly.io에 앱을 배포했어요!
변경 사항 배포하기
데모 앱에 변경을 가할 필요는 아마 없을 거예요. 하지만 Fly.io의 앱에 변경을 가할 때는 다음으로 새 릴리스를 배포하세요:
fly deploy
이제 작동하는 데모 앱이 생겼으니, Fly Launch로 무엇을 할 수 있는지 알아보세요.
데모 앱 삭제하기
데모 앱을 가지고 놀기 다 끝났으면 불필요한 리소스를 사용하지 않도록 삭제하세요:
fly apps destroy
성장과 확장
Fly.io로 가용성, 용량, 성능을 높일 수 있는 몇 가지 방법을 읽어 보세요:
- 더 복원력 있는 앱을 위한 추가 Machine 블루프린트 따라하기
- 앱 가용성과 복원력 읽기
- 부하나 커스텀 메트릭에 따라 Machine 자동 확장하기
- Machine CPU와 RAM 확장하기
- Machine 수 확장하기