この Zenn 本は「仮想通貨botter Advent Calendar 2023」 16 日目の記事です。
この本はなに?
この本では、仮想通貨 bot をデプロイするための技術と運用方法を紹介します。 まずデプロイの基盤になる技術であるコンテナ化の基礎を学びます。 次にコンテナをクラウド環境にデプロイする方法を紹介します。 最後にデプロイの自動化の方法を説明します。
またコンテナ化した bot のログを監視したり実行を停止するなどの運用方法も紹介します。
それではこの本でデプロイに関する必要知識や実践的な運用を身に着けて、あとは bot 開発に集中できるよう学習を進めていきましょう!🚀
前提条件
- プログラミング言語は Python を例として説明します。 ただしこの本では実装的な極力減らしているので他の言語に置き換えて読んで頂けるかと思います。
- クラウド環境を利用する為に AWS アカウントが必要です。
- ソースコードを管理、ワークフローの自動化を行う為に GitHub アカウントが必要です。
デプロイってなに?
デプロイ(英:deploy)とは
作ったプログラムをしかるべき場所に置いたり、あれやこれやの設定をしたりして、使える状態にすること
つまり botter にとってデプロイはそのままの意味で「bot を稼働させる」ことです。
デプロイプロセスには、色々な下準備などがありますが、デプロイの最終レイヤーとしては botter の誰もが知っている次の最も原始的なコマンドを実行することです。
最も簡単なプロセスとしては自身の PC で上記コマンドを実行して PC の電源を付けっぱなしにしておく事でしょう。
しかし電源を付けっぱなしにしおくことは多くの人とって難しいです。 これを解決しようとする人たちはクラウド環境に bot をデプロイします。
その次に発生する問題は、開発した bot をどうやってクラウド環境にデプロイするかです。 bot のソースコードをアップデートしたらクラウド環境に配置しているソースコードもアップデートする必要があります。 クラウド環境に入るには通常 SSH を利用しますが、いちいちそのようなコマンドを叩いてソースコードをアップデートするのは面倒で骨が折れます。
(VS Code の SSH 拡張機能でクラウド環境に接続して、直接コードを編集して開発するなどしてデプロイの手間を省く手段もありますが、それはサーバーの可用性の観点からもあまりおすすめできません。)
また大抵の bot では外部ライブラリを利用するので実行する前にはインストールしておく必要があります。 また新しいバージョンの Python を利用したい場合、サーバーで Python をビルドしておかなければなりません。
特定の取引所の地理的に近いサーバーを利用したい場合などがあります。 または 1 つのサーバーを長く使用していたら色々なソフトウェア入れすぎて何かの不具合が発生するかもしれません。 そうした時に新しいインスタンスを建てる必要がありますが、上記のような、ソースコードの更新、依存ライブラリ、Python バージョン などの面倒をみながら bot を運用しようと思うと大変な労力がかかります。 きっとこの内のいくつかの要素は管理しきれません。
それらを解決できる技術が Docker をはじめとするコンテナ技術です。
そしてこの本では最終的にこれらの作業を自動化できます。
Docker でネット検索して出てくる情報の殆どは Web アプリケーションの用途ですが、この本では bot をコンテナ化することを目的した botter 向けの内容となっています。
まず次の章では Docker の基礎を学んでいきましょう!🐋