1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

AWS Protonを試して何に使えるか考える

Posted at

何が起こるか把握する

まずは触ってみて、何が起こるか見てみます。

image.png

使用を開始する

image.png

ガイドに従って以下を作成していきます。

  1. 環境テンプレート
  2. サービステンプレート
  3. 環境
  4. サービス
  5. サービスインスタンス
  • ※今回はFargateのサンプルバンドルを選択する
  • ※名前が必要なものは連番で sampleN と付けていくことにする

結果を確認

エンドポイント

ALBのパブリックエンドポイントが生成されてアクセスできるようになりました。

image.png

Proton

リソース 結果
環境テンプレート image.png
サービステンプレート image.png
環境 image.png
サービス image.png
サービスインスタンス image.png

CloudFormation

image.png

Proton 結果
環境 template1-designer (4).png
サービス
(サービスインスタンス)
template1-designer (5).png
サービス
(CI/CD piepline)
template1-designer (6).png

ソースも確認する

今回使ったサンプルはこちらから確認できます。

image.png
image.png

分かったこと

  • 環境を作成すると、VPC一式と空のECSクラスターが作られる
    • ※DBやRedisなどが必要な場合はここで作ることになりそうか
  • サービスを作成すると、作成ウィザードの中でサービスインスタンス用の設定も聞かれ、サービスインスタンスも作られる
    • ※Fargateの場合、サービスインスタンスで ECS Service ECS TaskDefinition ALB ALB TargetGroup などアプリケーション一式を作るイメージか
  • サービスインスタンスの作成が終わればALBのエンドポイントが出力される
    • そのURLにアクセスするとNginxの画面が見える
  • サービスのスキーマにpipeline_infrastructureがある場合CodePipeline 周りも作成される模様
    • ECRが作られる
    • Codepipelineが作られる
      • Sourceステージ
        • ウィザードで選択したアプリケーションのGitリポジトリはここに紐づけられている
      • Buildステージ
        • CodeBuild
        • アプリケーションのDockerfileをビルドしてECRにプッシュする
      • Deployステージ
        • CodeBuild
        • Protonのサービスインスタンスのパラメーターを上書き(サンプルではimage)して新バージョンに更新する
        • 新バージョンの更新が終わるまで待つ(aws cliの--waitオプション)

何に使えるか考える

さて、ここからが面白い作業ですね。
何に使えるか考えていきましょう。

※この先は今後随時追加していくと思います。

ブランチプレビュー環境

ウィザードでリポジトリとブランチをポチポチ選んでFargateのデプロイができてしまうのであれば、まず思いつくのはやはりこれではないかと思います。
手作業で作って消してもよいですし、GithubActionsで自動化しても面白そうですね。

フロントのコーディングだけ確認したい版

  • 課金少なめになるよう工夫できれば嬉しい
    • DBはタスク定義の別コンテナで建てるかSQLiteにでもする
    • 永続ストレージも不要なのでコンテナの一時ストレージを使う

ステージ環境

  • 本番に似た環境で課金少なめの構成も作れそう

パッケージアプリケーションのカスタマイズ版

OEM開発

自社である程度まで開発したアプリケーションをカスタマイズして別サービスとしてリリースするようなことってよくありますよね。
ベースが同じアプリケーションであればインフラのベースも(最初は)同じでよいので、予め作っておいたProtonで簡単に量産体制が作れるかもしれないですね。

買い切り

販売したパッケージのカスタマイズまで請け負わないケースもありますよね。
そういう場合も、初期デプロイと継続デプロイのセッティングまで行う納品をエンジニア不要で出来てしまうかもしれませんね。

よく使うちょっとしたAPI

本記事ではFargate版バンドルを試しましたが、Lambda版バンドルも試したところ簡単にAPI GatewayでCRUD APIが生成されたので、Fargate以外でも使い道がありそうです。

郵便番号検索API

郵便局のデータを使って郵便番号検索APIってよく作りますよね。
こんなのはもうパッケージにしておいて案件ごとにProton起動させて瞬殺にしてしまいたいですね。
CI/CD付きなので最新データへの更新も心配ないですね。

静的サイトのメールフォーム系

昨今、静的サイトを瞬殺デプロイできるサービスは様々ありますが、やはりメールフォームや申込フォームをどうするか悩みますよね。
そういうのも、Lambdaでさっと作ってあるものをProtonでデプロイできれば楽になりそうですね。
LambdaであればAWSコンソール上で編集までできるので、「ちょっと返信メールの文言変えたい」くらいの事がやはりエンジニア不要でできますね。

AWSアカウントを跨いだ納品

今回は試していないですが、別アカウントにデプロイする機能もあるようなので、
納品先のAWSの子アカウントの権限だけもらって、Proton自体は自社アカウントで作動させて納品完了ということもできるのかもですね。
※CodePipelineはどっちにできるんだろうか・・ 要調査

おわり

ある程度ベースを作っておけば、量産系の作業が楽になったり、エンジニアの作業範囲から外せてしまうものもありそうでとても良さそうですね。

1
0
0

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
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?