본문으로 바로가기 본문 바로가기
WIKI 기술 지식 베이스

앱 정보 확인하기

원문 보기 위키 갱신

Fly App을 런칭한 뒤에도 flyctl은 앱에 대한 다양한 정보를 확인할 수 있는 도구를 제공해요. Fly.io 대시보드에서도 많은 정보를 찾을 수 있어요. 이 문서에서는 앱 목록 조회부터 로그 확인까지, flyctl로 앱 정보를 확인하는 방법을 하나씩 안내해 드릴게요.

출처: 문서

본문

Fly App이 런칭되면 flyctl에는 앱 정보를 얻기 위한 다양한 도구가 있어요. Fly.io 대시보드에서도 많은 정보를 찾을 수 있어요.

모든 앱 찾기

모든 Fly App의 목록을 볼 수 있어요:

```bash cmd fly apps list ```
NAME          OWNER           STATUS          PLATFORM        LATEST DEPLOY        
testrun       personal        deployed        machines        21h17m ago                    
my-app        personal        suspended       machines        2023-11-15T23:33:07Z

앱 개요

해당 앱의 Machine 목록과 현재 상태를 포함한 간단한 앱 개요를 원한다면 fly status를 사용하세요:

```bash cmd fly status -a testrun ```
App
  Name     = testrun          
  Owner    = personal         
  Hostname = testrun.fly.dev  
  Platform = machines         

ID              STATE   REGION  HEALTH CHECKS           IMAGE                                           CREATED                 UPDATED              
06e82d43ad1587  started yyz     1 total, 1 passing      testrun:deployment-01GQ0HKV6TDT7DX0G50MT50FZD   2023-01-17T17:54:04Z    2023-01-17T21:42:33Z

많은 flyctl 명령처럼 -a 플래그를 생략하면, fly status는 작업 디렉토리의 fly.toml 파일이 있으면 그 파일에서 앱 이름을 추론해요.

fly machine list는 각 Machine에 대해 다른 정보 집합을 보여주는데, Machine의 내부 IPv6 주소도 포함돼요:

```bash cmd fly machine list -a testrun ```
1 machines have been retrieved from app testrun.
View them in the UI here (https://fly.io/apps/testrun/machines/)

testrun
ID              NAME                    STATE   REGION  IMAGE                                           IP ADDRESS                           VOLUME  CREATED                 LAST UPDATED            APP PLATFORM    PROCESS GROUP 
178115db494e18  holy-waterfall-9884     started lhr     testrun:deployment-01GTYFV11PM7D7B30AWZSH1FZE       fdaa:0:3b99:a7b:a98:6c48:67c5:2              2023-03-07T16:52:59Z    2023-03-07T16:53:06Z    v2              app    

특정 Machine 살펴보기

fly machine status로 특정 Machine을 자세히 들여다보고 개요를 볼 수 있어요. 여기서 Machine의 CPU 크기와 RAM 설정을 찾을 수 있어요.

```bash cmd fly machine status e286065f969386 ```
Machine ID: e286065f969386
Instance ID: 01GQR4GR5TPQC65T5RMKR0HS87
State: started

Machine
  ID            = e286065f969386                               
  Instance ID   = 01GQR4GR5TPQC65T5RMKR0HS87                   
  State         = started                                      
  Image         = testrun:deployment-01GQR4GN7EA8G12VE1DBRQG4KQ  
  Name          = rough-tree-1360                              
  Private IP    = fdaa:0:3b99:a7b:8aeb:fea3:148b:2             
  Region        = iad                                          
  Process Group =                                              
  Memory        = 256                                          
  CPUs          = 1                                            
  Created       = 2023-01-25T21:35:32Z                         
  Updated       = 2023-01-26T22:52:36Z                         
  Command       =                                              

Event Logs
STATE   EVENT   SOURCE  TIMESTAMP                       INFO 
started start   flyd    2023-01-26T17:52:36.678-05:00
created launch  user    2023-01-26T17:52:33.348-05:00

서비스

fly services list로 구성된 서비스를 확인하세요.

```bash cmd fly services list ```
Services
PROTOCOL        PORTS                   FORCE HTTPS 
TCP             80 => 8080 [HTTP]       True       
                443 => 8080 [TLS,HTTP]  False 

공용 IP 주소

fly ips list로 앱의 공용 Anycast IP와 프라이빗 Flycast IP를 찾을 수 있어요.

```bash cmd fly ips list ```
VERSION	IP                 	TYPE             	REGION	CREATED AT
v6     	2a09:8280:1::2d:678b	public (dedicated)	global	Sep 1 2023 19:47
v6     	fdaa:2:45b:0:1::23  	private          	global	Mar 16 2024 18:20
v4     	66.241.124.63      	public (shared)  	     	Jan 1 0001 00:00

공용 네트워킹과 프라이빗 네트워킹에 대해 더 알아보세요.

내부에서 확인하기

fly ssh console을 사용하면 앱의 Machine에서 프롬프트를 얻을 수 있어요(Machine의 Docker 이미지에 sh가 포함된 경우). 특정 Machine에 연결하고 싶다면 fly ssh console -s로 연결할 수 있어요:

```bash cmd fly ssh console -s ```
? Select Machine: iad: e286065f969386 fdaa:0:3b99:a7b:8aeb:fea3:148b:2 rough-tree-1360
Connecting to fdaa:0:3b99:a7b:8aeb:fea3:148b:2... complete
# 

특정 명령을 실행하고 싶다면 -C 플래그를 사용해 바로 실행하는 게 더 빠를 수 있어요. 예를 들어 Machine 파일시스템의 여유 공간을 확인하려면 다음을 실행할 수 있어요:

```bash cmd fly ssh console -C df ```
Connecting to fdaa:0:3b99:a7b:7e:3155:9844:2... complete
Filesystem     1K-blocks   Used Available Use% Mounted on
devtmpfs          103068      0    103068   0% /dev
/dev/vda         8191416 172748   7582856   3% /
shm               113224      0    113224   0% /dev/shm
tmpfs             113224      0    113224   0% /sys/fs/cgroup
/dev/vdb         1011672   2564    940500   1% /storage
셸, IEx, Django 관리 명령, Rails 콘솔 등 대화형 명령을 실행한다면 `--pty` 플래그를 사용해야 할 수 있어요. 이 플래그는 SSH 서버가 명령을 의사 터미널(pseudo-terminal)에서 실행하도록 지시해요. (OpenSSH에 익숙하다면 `ssh`의 `-t` 플래그와 비슷해요.)

배포된 앱 또는 Machine의 현재 구성 확인하기

Machine은 개별적으로 구성할 수 있지만, Fly Launch는 fly deploy 시 앱이 관리하는 모든 Machine에 앱 구성을 적용해요. fly config show로 앱 구성을 JSON 형식으로 표시할 수 있어요.

앱 구성 표시하기

fly config show -a testrun

Machine의 구성 표시하기

fly machine status 출력에 특정 Machine의 현재 구성을 붙이려면 -d 플래그를 추가하세요. Fly App에 속한 Machine은 보통 fly deploy로 관리되므로 앱과 동일한 구성을 가져요.

```bash cmd fly m status e784459b655483 -d ```
Machine ID: e784459b655483
Instance ID: 01GQTQV0EMGV8XY4NYJN68247W
State: started

VM
  ID            = e784459b655483                               
  Instance ID   = 01GQTQV0EMGV8XY4NYJN68247W                   
  State         = started                                      
  Image         = testrun:deployment-01GQTQTJB5RCS03FKGX9K2H60B  
  Name          = red-feather-7761                             
  Private IP    = fdaa:0:3b99:a7b:92:9336:667f:2               
  Region        = iad                                          
  Process Group =                                              
  Memory        = 256                                          
  CPUs          = 1                                            
  Created       = 2023-01-27T23:08:41Z                         
  Updated       = 2023-01-27T23:09:10Z                         
  Command       =                                              

Event Logs
STATE   EVENT   SOURCE  TIMESTAMP                       INFO 
started start   flyd    2023-01-27T18:09:10.855-05:00
created launch  user    2023-01-27T18:08:41.361-05:00

Config:
{
  "init": {},
  "image": "registry.fly.io/testrun:deployment-01GQTQTJB5RCS03FKGX9K2H60B",
  "metadata": {
    "fly_platform_version": "v2",
    "fly_release_id": "QgDeJ3o11V2D7fkXVQGvPBON",
    "fly_release_version": "1"
  },
  "restart": {},
  "services": [
    {
      "protocol": "tcp",
      "internal_port": 4999,
      "ports": [
        {
          "port": 80,
          "handlers": [
            "http"
          ],
          "force_https": true
        },
        {
          "port": 443,
          "handlers": [
            "tls",
            "http"
          ]
        }
      ],
      "checks": [
        {
          "type": "tcp",
          "interval": "15s",
          "timeout": "2s"
        }
      ],
      "concurrency": {
        "type": "connections",
        "hard_limit": 25,
        "soft_limit": 20
      }
    }
  ],
  "guest": {
    "cpu_kind": "shared",
    "cpus": 1,
    "memory_mb": 256
  }
}

앱 로그 보기

fly logs를 실행하면 앱의 로그가 발생하는 즉시 표시돼요. 로그에는 애플리케이션의 모든 인스턴스 콘솔 출력이 포함돼요. 다음은 아무것도 하지 않고 그냥 대기하지만 볼륨이 마운트되어 ssh로 접속해 파일을 만들 수 있는 앱의 로그예요.

```bash cmd fly logs -a testrun ```
2023-03-07T16:17:48Z runner[5683606c41098e] lhr [info]Pulling container image
2023-03-07T16:17:51Z runner[5683606c41098e] lhr [info]Unpacking image
2023-03-07T16:18:00Z runner[5683606c41098e] lhr [info]Setting up volume 'data'
2023-03-07T16:18:00Z runner[5683606c41098e] lhr [info]Uninitialized volume 'data', initializing...
2023-03-07T16:18:00Z runner[5683606c41098e] lhr [info]Encrypting volume
2023-03-07T16:18:05Z runner[5683606c41098e] lhr [info]Opening encrypted volume
2023-03-07T16:18:07Z runner[5683606c41098e] lhr [info]Formatting volume
2023-03-07T16:18:08Z runner[5683606c41098e] lhr [info]Configuring firecracker
2023-03-07T16:18:08Z app[5683606c41098e] lhr [info]Starting init (commit: 08b4c2b)...
2023-03-07T16:18:08Z app[5683606c41098e] lhr [info]Mounting /dev/vdb at /storage w/ uid: 0, gid: 0 and chmod 0755
2023-03-07T16:18:08Z app[5683606c41098e] lhr [info]Preparing to run: `sleep infinity` as root
2023-03-07T16:18:08Z app[5683606c41098e] lhr [info]2023/03/07 16:18:08 listening on [fdaa:0:3b99:a7b:7e:3155:9844:2]:22 (DNS: [fdaa::3]:53)

fly logs는 중지할 때까지(ctrl-C) 계속 열려 로그를 지켜봐요.

Fly.io의 로깅에 대해 더 알아보세요.

더 알아보기 (Learn more)