登場背景
AWSを自社サービス開発などで利用する場合、ほとんどの企業ではアプリ開発者とSRE(またはインフラ)が存在している。
SREの職務はアプリが動作する環境の準備や、非機能の面倒をみること、またアプリ開発・リリースの高速化となっているため、独自のツールや業務フローを規定していることが多い。
またインフラを開発者が逐一依頼をしているケースもまだまだ多いため、インフラの作成や依頼自体に時間がかかる。
Protonが解決すること
ProtonはSRE(インフラ)向けのサービスである。 (厳密に言うと開発者も恩恵を受ける)
SREが開発者向けに用意するインフラの構築手順書、またはTerraformのコードなどをProtonのテンプレートに置き換えることができる。
開発者はテンプレートを使い、AWSのコンソールから変数を設定するだけでSREが規定したインフラを構築することができるようになる。
全体の動き
詳細
引用元:re:Invent2020で発表されたAWS Protonとはなにか? - How elegant the tech world is...!
GUI画面
つまりProtonをSREと開発者のインターフェースにできる。
これにより以下の効果が見込めるので、開発者もSREも楽ができるようになる。
- 一定の品質でインフラを簡単たくさん作成できる
- 変数を変えるだけで別の環境作れる
- 環境の削除が簡単に行える
- テンプレートバージョンベースの会話ができる
- 新しいバージョンを適用するだけで環境を再構成する
- 開発者の権限を制限できる(Proton実行権限のみにできる)
Protonの課題/問題点
- 現状対応しているのはECS(Fargate)やLambda構成のみ
- AWS以外(Kubernetesや別クラウド)は非対応
- Terraformはproviderで第三者が欲しい機能を増やしていける
- サンプル見る限り結構ガッツリコードを書いている(バリデーションチェックのところなど)ので負荷が以外に高めかも?
Protonと比較すべきツール/仕組み
- Terraform
- Terraform Cloud
- 自作ツール