めがね901の運用環境・開発環境
mgn901.iconでは、2022年よりVPSを借りてWebサービスに関する研究開発を行っている。
2024年1月からは、来たるそのVPS上でのWebサービスの運用開始に向けて、運用環境と開発環境の刷新を図っている。
実装の詳細
めがね901の運用環境・開発環境: マシン構成、ネットワーク構成
1つのグローバルIPアドレスで複数のサービスを運用し、サービスの運用にかかるコストを圧縮している。
Dockerなどを用いてIaC(Infrastructure as Code)を徹底することで、複数のサービスをスムーズに運用している。
余計なCLI作業を減らすべく、Docker Composeの使用、シェルスクリプトの作成、無人アップデートの利用などを行っている。
HashiCorp Vaultによる秘密情報の管理
各コンポーネントの管理ユーザのパスワード等を一元管理できるように、秘密情報を管理するソフトウェアが必要。
IDプロバイダー
監視システムや開発環境といったコンポーネントごとにユーザ情報を保存すると、コンポーネントを増やす毎に、扱う秘密情報が増えてしまう。すべてのコンポーネントに1つの認証情報でサインイン(シングルサインオン)できると便利である。
IDプロバイダーを構築するためには次のコンポーネントが必要。
LDAPサーバ:認証情報を保存するのに必要。LLDAPなどのソフトウェアを使って構築する。
認証・認可サーバ:クライアントがLDAPサーバに保存されているユーザ本人であるかを認証し、コンポーネントを利用する権限があるかを確認する。Autheliaなどを使って構築する。
電子メールサーバ:認証・認可についてのイベントをユーザに電子メールとして送信するために必要。構築方法は電子メールサーバを構築するを参照のこと。
監視(Observability)(ログ、メトリクス、追跡)
Coderによる開発環境
インターネットからアクセス可能なサーバ上でホストされた開発環境で、インターネット接続が可能であれば、自宅の内外など問わず、どこからでも開発環境での作業を行うことができる。
ポート転送機能を備えていて、開発環境で運用しているWebサービスを、本番環境で運用しているサービスと同様に利用できる。
つまり「Secure Contextでないと利用できない機能」や、ローカル開発環境では試せないことを、最初から試すことができる。
Secure Contextでないと利用できない機能をスマホからでも試すことができる。
CoderでリモートDev Containerをつくる
使用するソフトウェアの選定にあたっては以下の記事を参考にしています。
zenogawa「OSS ベースの自宅クラウドの構成」