68522


`CloudFormation`と`Elastic Beanstalk`の違いはなんですか？

[【CloudFormation入門】5分と6行で始めるAWS CloudFormationテンプレートによるインフラ構築 |
Developers.IO](https://dev.classmethod.jp/articles/cloudformation-beginner01/)
に [AWS Black Belt Online Seminar 2016 AWS
CloudFormation](https://www.slideshare.net/AmazonWebServicesJapan/aws-black-
belt-online-seminar-2016-aws-cloudformation) の 11ページへのリンクがあります。

この図によると  
`Elastic Beanstalk`は`Deploy`, `Provision`,
`Monitor`の3つをカバーしており、`CloudFormation`は`Provision`のみをカバーしているようです。

そもそも`Provision`というのはAWSでいうと、どこからどのあたりまでを指すのでしょうか？

[How to install Oracle Java 7 in an Amazon Elastic Beanstalk instance - Stack
Overflow](https://stackoverflow.com/questions/18968387/how-to-install-oracle-
java-7-in-an-amazon-elastic-beanstalk-instance) を見ると yum
について記述があるので、EC2の立ち上げからyumの実行までもろもろやってくれるのが、`Elastic Beanstalk`と考えていいんでしょうか？

`Elastic Beanstalk`にも設定ファイルがあるようなので、`CloudFormation`の利点であるInfrastructure as
Code (IaC)は`Elastic
Beanstalk`にもあると考えていいんでしょうか？あるとしてもIaC具合が`CloudFormation`の方がもっと凄いのでしょうか（`CloudFormation`よりも`AWS
CDK`の方が記述力が優れたように）？

* * *

今だともう `CloudFormation` じゃなくて`AWS CDK`の時代ですかね。参考:
[AWSによるクラウド入門](https://tomomano.gitlab.io/intro-
aws/#_%E3%81%AF%E3%81%98%E3%82%81%E3%81%AB)

`CloudFormation`の次世代版と思われる`AWS CDK`にそもそも
[deployコマンド](https://docs.aws.amazon.com/cdk/latest/guide/cli.html)
がありますし、カバー範囲がやはりよくわからない。おそらくこのdeployコマンドは文字通り配置くらいの意味合いしかないのかもしれないですが。


CC BY-SA 4.0
2020-07-12T07:21:11.813
68512
2020-07-12T10:22:37.740
2020-07-12T08:46:38.767
9008
9008
question
aws aws-cloudformation aws-elasticbeanstalk
CloudFormationとElastic Beanstalkの違いはなんですか？


CloudFormation は、あらゆる aws リソースを as code するものです。 terraform と同じレイヤーのものです。

Beanstalk は、heroku のような形でapplication
だけ書けばそれ以外をなるべく自動化するように設計された(主に)ウェブサーバーのための機構です。

ここで、Provion
とは何を指すか、という問題が発生しますが、何となくですが、個人的にはサーバーへのミドルウェアのインストールなどのことを指していたと思っています。(毎回のデプロイフローを回せるようになる前に行うこと諸々)そして実際、Beanstalk
は Provisioning について任意にカスタマイズできる形でそれを行う機構を提供しています。(Ansible の設定を書いてるような感覚です)

CloudFormation について話ししている時、元々 Provisioning とはそういうことを指すため、あまり Provisioning
を話題にすることはないと思います。

ここまで書いて、Provisioning の具体例として CloudFormation が amazon
のスライドに書いてあることに気づきました。であるならば、「毎回のデプロイフローを回せるようになるためのセットアップ全て」を指しているのではないか、と思っています。

最後にまとめとして、 heroku と terraform が比較不可能なのと同じように、 Elastic Beanstalk と
CloudFormation は比較不可能だと個人的には思ってます。


CC BY-SA 4.0
2020-07-12T10:12:00.293
68522
2020-07-12T10:22:37.740
2020-07-12T10:22:37.740
754
754
68512
answer