<aside> ⛩️ こちらは仮想通貨botter Advent Calendar 2021の12日目の記事です
</aside>
<aside> 📖 目次
</aside>
はじめまして、あがり⬆︎です。 最近botを作りはじめ、まだ一つですがbotを運用しています。 本業はpythonやSQLでデータを眺めたりしています。
さて、皆さん開発したbotはどこで動かしていますでしょうか? ローカル環境だったり、AWSやGCPやConohaなどでマシンリソースを借りてクラウドで運用なんて人も多いのではないでしょうか。
今日は某所で教えていただいた、oktetoというサービスでbotを動かすお話をしたいと思います。 oktetoはいわゆるKubernetes as a Serviceで、とても簡単にクラウド上でDockerイメージを動かすことができるサービスです。(Dockerだけとは限りませんが最も一般的ということで) リスクもありますので、実際に使う方は最後までお読みいただけると幸いです。 内容に誤りがありましたら、教えていただければ助かります。 一応、コンテナ化やkubernetesなどをご存知ない方でもできるように書いていきたいと思います。
botのサンプルをoktetoで稼働させることを目標にやっていきましょう!
<aside> ⚠️ 2021/12/04現在oktetoの新規登録が順番待ちになっています。 私の場合は土日を含めて5日ほどで順番が来ました。
</aside>
oktetoでbotを動かすまでの流れ
oktetoは先ほども紹介しましたが、Kubernetes(以下k8s)のフルマネージドサービスです。 私たちユーザーがk8sの管理をすることなくk8sの恩恵を受けられるサービスとなっています。
k8sに関しては私もまだまだ理解が浅く間違っている点があるかもしれませんがご了承ください。 以下に今後必要になるk8sで扱う概念を書きます。
Pod
アプリケーションを動かす最小基本単位です。 コンテナをいくつか含めることができますが、今回は1podで1コンテナということで。
Workload
単体または複数のPodの集合です。 複数のPod(アプリ)で構成される1サービスを表すことが多い?
Namespace
さらに上位の集合。 複数のWorkloadを内包できProjectレベルを表現するために使うことが多い?
無料プランと有料プランがあります。
2021/12現在で、以下のようになっています。より詳細なものはこちら。
リソース | 無料版 | $19/month |
---|---|---|
Namespaces | 5 | 10 |
Storage/Namespace | 5GiB | 20GiB |
Pods/Namespace | 10 | 20 |
Memory/Pod | 3GiB | 6GiB |
CPU/Pod | 1.0 | 2.0 |