1. ホーム
  2. amazon-web-services

[解決済み] .NETプロジェクトにおけるElastic BeanstalkとCloudFormationの違いは何ですか?

2022-04-28 20:48:35

質問

.NET MVCアプリケーションを開発し、AWSとVisual Studio Toolkitを使ったデプロイメントを開始しました。私は、ツールキットのElastic Beanstalkオプションを使用して、アプリケーションのデプロイに成功しました。

ツールキットを使って.NETアプリをAWSにデプロイするためのチュートリアルを調べていたところ、以下の方法でデプロイするためのチュートリアルがあることに気がつきました。 Elastic BeanstalkとCloudFormationの両方が使えます。 . この2つの違いは何ですか?

私が知る限りでは、どちらも本質的には同じことを行っているように思えます - AWSクラウドへのアプリケーションのデプロイを容易にする(EC2インスタンスの設定、ロードバランサー、オートスケーリングなど)ことです。両者について調べてみましたが、私には同じことのように聞こえるバズワードの束以外に何も得られないようです。さらに よくある質問 AWSのウェブサイトでは、この質問に正確に答えることになっていますが、私は本当に理解していません。

どちらを使うべきですか?両方?

どのように解決するのですか?

実は、この2つはかなり違うんです。Elastic Beanstalkは、開発者の生活を楽にすることを目的としています。 CloudFormationは、システムエンジニアの生活を楽にすることを目的としています。

Elastic Beanstalkは、AWSのIaaSサービスの上にあるPaaSのようなレイヤーで、基盤となるEC2インスタンス、Elastic Load Balancer、オートスケーリンググループなどを抽象化するものである。 これにより、システム関連の処理を嫌う開発者が、AWS上にアプリケーションを迅速にデプロイできるようになる。 Heroku、EngineYard、Google App Engineなど、他のPaaS製品と非常によく似ています。 Elastic Beanstalkでは、基盤となる魔法の仕組みを理解する必要はありません。

一方、CloudFormationは、自動的に何かをするわけではありません。 単に、デプロイに必要なすべてのリソースを巨大なJSON/YAMLファイルに定義する方法なのです。 したがって、CloudFormationテンプレートは、実際には2つのElastic Beanstalk環境(本番とステージング)、2つのElasticCacheクラスタ、DynamoDBテーブル、そしてRoute53の適切なDNSを作成するかもしれません。 そして、このテンプレートをAWSにアップロードして立ち去ると、45分後にはすべてが準備されて待っているのです。 このテンプレートはプレーンテキストのJSON/YAMLファイルなので、ソースコントロールに貼り付けることができ、アプリケーションのデプロイメントをバージョン管理する素晴らしい方法となります。 また、再現可能な、「既知の良い」設定を持つことができ、別の地域に素早くデプロイできるようになります。