LoginSignup
0

More than 3 years have passed since last update.

AWS Protonを触ってみる

Last updated at Posted at 2020-12-04

こんにちは、株式会社アトラエのエンジニアの遠矢です。
この記事は、Atrae Advent Calendar 2020 の4日目の記事です。

AWS Protonとは

EKS, ECS, Fargateなどのコンテナアプリケーションやサーバレスアプリケーションの
インフラや管理、監視・デプロイを行うことができるフルマネージドサービスです。

詳しくは Develpers.IOさんの記事や公式ドキュメントをご覧ください。

https://dev.classmethod.jp/articles/aws-proton/
https://aws.amazon.com/jp/proton/features/

現在はプレビュー版で、下記リージョンで利用可能です。

  • us-east-1: 米国東部(バージニア北部)
  • us-east-2: 米国東部(オハイオ北部)
  • us-west-2: 米国西部(オレゴン北部)  
  • ap-northeast-1: アジアパシフィック(東京)
  • eu-west-1: 欧州(アイルランド)

AWS Proton自体は無料で利用できます。
作成されるリソースやCloudFormationで課金されます。

利用する際の大まかな流れ

AWS Protonはテンプレートというものを管理して、環境やサービスを構築・運用していきます。

テンプレートには下記の2種類が存在します。

  • 環境テンプレート
  • サービステンプレート

環境テンプレートはVPCやネットワークなどの構成を管理します。
サービステンプレートは、FargateやLambda、ロードバランサーやデプロイの設定などの構成を管理します。

これらのテンプレートを利用して、環境・サービスを構築すると裏側でCloudFormationが走り、必要なリソースが作成されていきます。

よってProtonを利用する際の大まかな流れとしては、

  • 環境テンプレート/サービステンプレートを作成・更新する
  • 環境/サービスを上記のテンプレートにしたがって構築・更新する

という感じになります。
こちらも詳細は公式ドキュメントを参照してください。
https://docs.aws.amazon.com/ja_jp/proton/latest/userguide/Welcome.html

実際に触ってみる

なにはともあれとりあえず触ってみました。

AWS Protonにアクセスする

下記のページがProtonのTopページです。
https://ap-northeast-1.console.aws.amazon.com/proton/home?region=ap-northeast-1#/

環境テンプレートを作成する

左側のメニューから環境テンプレートを選択してください。
環境テンプレートを作成をクリックして画像のような情報を入力してください。

setting_env_template.png

環境テンプレートを公開する

作成したテンプレートはDraft状態になっています。
このままだと利用できないので、v1.0を公開します。 をクリックしてください。

publish_env_template.png

サービステンプレートを作成する

左側のメニューからサービステンプレートを選択します。
サービステンプレートを作成をクリックして画像のような情報を入力します。
環境テンプレートは上記で作成したものを選択する

setting_service_template.png

サービステンプレートを公開する

こちらも環境テンプレートと同様にDraftになっているので公開します。

パイプライン用のアカウントロールを追加する

CI/CDのためのIAMロールを作成します。
左側のメニューからアカウントロールを選択してください。
画像のような情報を入力して、新規にIAMロールを作成します。

setting_account_role.png

環境を作成する

ここまでで準備は整いました。
あとは環境とサービスを構築するだけです。

左側のメニューから環境を選択してください。
環境を作成するをクリックして必要な情報を入力していきます。

create_env_1.png
create_env_2.png
create_env_3.png

設定が完了するとCloudFormationでスタックが作成されます。

create_env_resource.png

サービスを作成する

環境の作成が完了したら、左側のメニューからサービスを選択して下さい。
サービスを作成をクリックして必要な情報を入力していきます。

create_service_1.png

create_service_2.png

create_service_3.png

設定が完了すると環境と同様にCloudFormationでスタックが作成されます。

スクリーンショット 2020-12-03 1.32.37.png

CloudFormationが無事完了したら、実際にサービスができているか確認してみましょう。
今回はFargateのテンプレートを選択したため、下記のようにClusterやServiceが作成、実行されていました。

スクリーンショット 2020-12-03 1.33.48.png

削除

サービスや環境を選択し、削除を行うとCloudFormationでリソースの削除が行われます。
Protonでできたリソースは軒並み削除されていきます。

スクリーンショット 2020-12-03 1.38.25.png

感想

各種サービスのデプロイを統一のインターフェイスで行えることが一番メリットかもしれません。
また、ProtonはAWSが公式に提供するベストプラクティスの一つと言えます。
これからAWSを触るぞ!ってエンジニアはまずはProtonを触ってみて、どのようなリソースができるのか?そのリソースはどういうものなのか?
などを学んでいくきっかけにしてみてはいかがでしょうか?

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0