fly.ioへコンテナをデプロイ
- ccf代表
- 2月24日
- 読了時間: 3分
更新日:2月25日
当社が利用しているfreeeやboardから必要なデータを取得し、会社の傾向を掴むためのデータを抽出しようとコンテナでアプリを作りました。
アプリは、チームみらいさんのGithubレポジトリ(https://github.com/team-mirai/marumie)をベースにして一分必要な昨日や図表を表示するように、コードを書いています。
データ解析だけを目的としたSaaSは徐々に衰退し、基幹業務に必要となるSaaSはデータプラットフォーム(単なるデータ置き場)となる可能性はあると思っています。その場合、API利用料は徐々に上がっていくんでしょうね。
今回作成したアプリはコンテナ化していることもあり、社内のみで運用を想定していましたが、fly.ioを利用したのは、安いコンテナサービスを利用して見たいという好奇心です。
月に数百円で利用できるか、を試してみたいと思います。
前提条件
Dockerfileはローカルテスト済みのものを使用する
アプリはEntra ID認証を行い、社外の人がアクセスできないようにする
githubレポジトリをローカルにコピーし、デプロイする
必要な認証系の情報は環境変数として持つ
freeeやboardからデータ取得を頻繁に行わないように、一度取得したデータは再取得を指示しない限りは、永続的にストレージに保持(sqlite)
作業の流れ
3.開発環境にflyコマンドをインストール
サイトに有る通り、Linux用のコマンドを実行し、環境変数を再度読み込む
$ sudo curl -L https://fly.io/install.sh | sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 5167 100 5167 0 0 44516 0 --:--:-- --:--:-- --:--:-- 44162
######################################################################## 100.0%
set update channel to shell
Warning: Metrics token unavailable: no metrics token in config
flyctl was installed successfully to /home/xxxx/.fly/bin/flyctl
flyctl is not in your PATH. Would you like to add it automatically? (Y/n)
Y
flyctl PATH configured successfully in /home/xxxx/.bashrc
To start using flyctl in this terminal, run:
source ~/.bashrc
Or simply open a new terminal (flyctl will be available automatically).
$ source ~/.bashrc4.fly.ioへログイン
$ fly auth login
failed opening browser. Copy the url (https://fly.io/app/auth/cli/xxxx) into a browser and continue
Opening https://fly.io/app/auth/cli/xxxx ...
Waiting for session... Done
successfully logged in as xxx.xxxx@challenge-cf.jp5.Entra ID認証アプリ登録
設定箇所は以下の3つ
名前:任意
サポートされるアカウントの種類:***この組織ディレクトリのみ***
リダイレクトURI:https://xxxx.fly.dev/oauth2/callback
続いて、クライアントシークレットの作成し、”値”をメモ
6.デプロイ
githubからアプリを作成
$ git clone https://github.com/Challenge-Consulting-Firm/xxxx.git
$ cd xxxx
$ fly apps create xxxx日本リージョンに永続ボリュームを作成
fly volumes create app_data --region nrt --size 1環境変数にシークレットを設定
fly secrets set \
FREEE_CLIENT_ID=your_client_id \
FREEE_CLIENT_SECRET=your_client_secret \
FREEE_REDIRECT_URI=urn:ietf:wg:oauth:2.0:oob \
SESSION_SECRET=$(openssl rand -base64 32) \
BOARD_API_KEY=your_board_api_key \
BOARD_API_TOKEN=your_board_api_token \
AZURE_TENANT_ID=your_tenant_id \
AZURE_CLIENT_ID=your_azure_client_id \
AZURE_CLIENT_SECRET=your_azure_client_secret \
OAUTH2_PROXY_COOKIE_SECRET=$(openssl rand -base64 32 | head -c 32) \
APP_DOMAIN=xxxx.fly.devデプロイ
fly deploy

コメント