AWSコラム
AWSエンジニアのためのブログメディア

「AWS Proton」とは?導入するメリットや機能概要を紹介

2021年04月07日

「AWS Proton」とは?


「AWS Proton」とは、「コンテナ」と「サーバーレス」向けにアプリケーションのデプロイを管理するサービスです。

具体的には、「AWS Proton」を利⽤することで、インフラ基盤に対する「プロビジョニング(ネットワークやコンピューター等のインフラ関連のリソースをいつでも提供可能な状態で用意しておくこと)」、「コードデプロイ」、「モニタリング(サーバーやCPU性能等の監視)」等、システム更新時に必要な多種多様なツールを接続及び連携させることが可能になります。

現在(2021年3月時点)では、東京以外に、バージニア、オハイオ、オレゴン、アイルランドのリージョンで利用可能となっています。

「AWS Proton」が登場した背景とは?

「AWS Proton」が登場した背景には、「マイクロサービスアーキテクチャ」の普及によるシステム運用作業の負荷増があります。

この「マイクロサービスアーキテクチャ」とは、「サービス」を構成している要素を「マイクロサービス」と呼ばれる小規模な「コンポーネント」に分解して開発するという手法です。2011年頃から提唱され始めた、まだ新しいアーキテクチャの考え方です。

「マイクロサービスアーキテクチャ」でサービスを開発していくと、これまでの開発よりも多くのコンポーネント数(数百以上)を扱うことになるため、これを従来型のCI/CD (継続的インテグレーション/継続的デリバリー)で管理するのが困難になってきました。

そこで、大量のコンポーネントのデプロイ作業を効率化するために、「AWS Proton」が登場しました。

「AWS Proton」を導入するメリットとは?


「AWS Proton」を導入するメリットとしては、「テンプレート活用」、「開発生産性の向上」、「ベストプラクティス活用」の3点があります。

AWS上で「マイクロソフトウェアアーキテクチャ」を実現するためには、「コンテナ」や「サーバーレス」のサービスで構成することになりますが、これらのメリットが役に立ちます。

それぞれのメリットについて、個別に解説していきます。

「AWS Proton」を導入するメリット1:テンプレート活用

「AWS Proton」を導入するメリット1として、「テンプレート活用」があります。

具体的には、開発者は「AWS Proton」に予め登録されている「テンプレート(※後ほど詳しく解説します)」を選択するだけで、アプリケーションを簡単にデプロイすることが可能です。

「テンプレート」の内容を変更するだけで、デプロイ作業に関してコントロールと柔軟性の両方をバランス良く確保できるため、開発者はコアな作業に特化することが可能です。

「AWS Proton」を導入するメリット2:開発生産性の向上

「AWS Proton」を導入するメリット2として、「開発生産性の向上」があります。

具体的には、「AWS Proton」を開発工程に導入することで、開発者は作業のペースを落とさずに、「Docker」等のコンテナ技術や「AWS Lambda」等のサーバーレス技術といった最新のテクノロジーを簡単に活用することができます。

またインフラ基盤の「プロビジョニング」作業とコードのデプロイ作業が、一つのユーザーインターフェイス(UI)で操作できるため、開発者はこれらの作業に時間を取られることなく開発作業に集中することが可能です。

「AWS Proton」を導入するメリット3:ベストプラクティスの活用

「AWS Proton」を導入するメリット3として、「ベストプラクティスの活用」があります。

具体的には、「AWS Proton」がAWSで提唱している「ベストプラクティス(AWS上で適切に設計するための指針となる設計原則集)」に準拠しているため、このコンソール画面上で簡単なクリック操作だけで、自動的にAWS上のベストプラクティスに沿ったアプリケーション更新が可能となります。

また「AWS Proton」にデプロイ作業を集約することで、チーム全体で共通したアーキテクチャを維持することができます。

「AWS Proton」の機能概要


「AWS Proton」の機能概要として、「コンテナ」と「サーバーレス」用の「テンプレート」の管理と運用を行う点です。

具体的には、インフラ基盤チームがサービスを構築するための「テンプレート」を作成して「AWS Proton」に登録します。

そして開発チームは、登録された「テンプレート」を選択するだけで、アプリケーションのデプロイ作業が簡単に行なえます。

それでは、「AWS Proton」の機能について詳しく解説していきます。

「AWS Proton」の機能1:セルフサービスインターフェイス

「AWS Proton」の機能1として、「セルフサービスインターフェイス」があります。

具体的には、「AWS Proton」のユーザーインターフェイスはカスタマイズが可能で、「AWSマネジメントコンソール」や「CLI」といった従来から提供されている管理ツールで構成されています。

このユーザーインターフェイスを利用して、共有のリソースを作成し、デプロイしていきます。

また「AWS CloudFormation」を利用することで、「コンピューティング」、「データベース(DB)」やその他リソースで構成されるインフラ基盤に対して、「宣言型スタイル」でデプロイする機能もあります。

「AWS Proton」の機能2:テンプレート管理

「AWS Proton」の機能2として、「テンプレート管理」があります。

「AWS Proton」においては、バージョン管理され再利用可能な「テンプレート」のことを「AWS Proton スタック」と呼んでいます。基盤チームがこの「AWS Proton スタック」を作成します。

この「AWS Proton スタック」に、サービスの「プロビジョニング」、「デプロイ」に必要なシステム要素(コンピューティング、コードパイプライン、モニタリング、ネットワーキング等)をすべて備えた「宣言型スタイル」のコード記述でテンプレートの内容を定義します。

開発者は、「AWS Proton コンソール」画面で、作成済みのスタックを利用することで、プロビジョニングの自動化やアプリケーションデプロイを実行します。そのため、コンポーネント(共有リソース、CI/CDパイプライン、可観測性ツール等)の個別プロビジョニングは不要です。

「AWS Proton」の機能3:アップグレードの合理化と自動デプロイ

「AWS Proton」の機能3として、「アップグレードの合理化」と「自動デプロイ」があります。

「アップグレードの合理化」とは、「スタック」のバージョン管理をサポートし、開発者に対して古いバージョンの自動アップグレード機能を提供しています。

「自動デプロイ」としては、開発者がスタックを活用して、API、CLI、ユーザーインターフェイス等でリクエストすることで、自動的にデプロイされます。

なおスタックには、「CI/CD パイプライン」や「可観測性ツール」が含まれています。

「AWS CloudFormation」との違いについて

「AWS Proton」と「AWS CloudFormation」との違いですが、実は「AWS Proton」の裏側では「AWS CloudFormation」が使用されており、「Compute」や「Load Balancing」等を一元管理できるようになっている点が異なります。

つまり、「AWS CloudFormation」では異なるUIで個別に設定していた作業を「AWS Proton」では単一のUIでまとめて作業できるようにしたのです。

また「コードデプロイ(Code deployment pipeline)」や「モニタリング(Monitoring and alarms)」を共通化することも可能です。

「AWS Proton」のユースケース


「AWS Proton」のユースケースとしては、「管理の合理化」や「Infrastructure as Code 導入」等のケースが考えられます。

例えば、組織に多数のサービスがあり、標準化するにはインフラ基盤チームの負荷が高い場合や、開発チームが独自ルールで開発することで開発スピードが遅くなっている場合、開発が外注されていて受け入れ作業に時間がかかる場合等があります。

これらのユースケースを踏まえて、自社のサービス開発の効率化を「AWS Proton」で挑戦してみてはいかがでしょうか。


AWS分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)