
ユーザーが独自のインスタンス (VM) を作成し、課金時間に基づいて料金を請求する (DO と同様) シンプルなアプリを構築しようとしています。私のアプリは、すべての面倒な作業を実行するためにバックエンドとして OpenStack を使用します。
質問は、アプリ内のユーザーを OpenStack デプロイメントに関連付ける最適な方法についてです。
アプリ内の各ユーザーを OpenStack のユーザー/プロジェクトにマッピングする必要がありますか? アプリ内のすべてのユーザーを OpenStack の単一のプロジェクトにマッピングする必要がありますか? ユーザーに課金するためにインスタンスの使用状況情報を取得する必要があることを考慮すると、これを行う最適な方法は何ですか?
答え1
考慮すべき点が 2 つあります。
自分自身に質問してください:
ユーザーは自分の VM とアプリへのアクセスのみを必要としますか?
また、アプリはユーザーに関連する API 呼び出し (、、
power off
VMなど)power on
を実行しますか ? その場合、ロールとアクセス制御をそこで維持するだけで済むため、アプリははるかにシンプルになる可能性があります。reboot
それとも、ユーザー自身が OpenStack API や Horizon ダッシュボードに直接アクセスできるようにしますか?
そうすると、OpenStack レベルでのユーザー間の分離がさらに重要になり、各エンドユーザーに独自のプロジェクトを提供することが唯一の意味のあることとなります。
すべての OpenStack デプロイメントで同じ機能が提供/有効化されるわけではないので、まずは何ができるかを調べてください。機能をインストールできますか? ceilometer は利用できますか? それとも課金を有効にするために独自のリソース使用状況追跡を行う必要がありますか?