AWSのアプリケーションデプロイで有名なものは
- Beanstalk
- CodeDeploy
二つとも、AWS AutoScalingに対応しているのがAWSのデプロイ手法で良い所です。
しかし、この二つの手法はどこがどう違うのでしょうか?
出来ることは違うのでしょうか?
結論、BeastalkもCodeDeployも手段は違っても出来ることはほぼ同じ
BeanstalkもCodeDeployも手段は違えども、デプロイとして出来ることはほぼ同じです。
ただし、カスタマイズにこだわるならば、Beanstalkの方が自動化する必要があります。
逆にカスタマイズにこだわらないならば、Beanstalkの方が楽とも言えます。(アプリケーションの自動インストールが不要ならば)
ここで言うカスタマイズとは?
ここで言う「カスタマイズ」とは、例えば、
- テンプレートに無いアプリケーションの導入とか(アンチウィルスソフトの導入や、ログ収集エージェントや、監視ソフトの導入)とか
- Apacheといったミドルウェアの設定とか
OSやミドルにこだわらず、ただのソースのデプロイだけするのであればBeanstalkは楽でお勧めです。
- カスタマイズをしたOSイメージから自動化をスタートするか(Codedeploy)
- テンプレートOSからカスタマイズから自動化するか(Beanstalk)
の違いです。ちなみに、Codedeplyもコマンドが実行できるので、頑張ればカスタマイズから自動化することも出来ます。
結局、出来ることは似たようなものと言えば似たようなものですが、CodeDeployの方がインフラレイヤとアプリレイヤのすみわけがイメージしやすいですね。
しかし、クラウド化が進めばインフラ技術者も自動化(yamlで)やデプロイも知らないわけにはいかなくなってきましたね。