この記事はAmazon Web Services Advent Calendar 2017 21日目の記事です。
早速ですが、皆さんBloxを覚えてますでしょうか?
昨年のre:Invent 2016でAmazon ECS
のカスタムスケジューラとして発表され、しかもAWSにしては珍しくOSSということで発表時は話題になったあのBloxです。
今年のre:Invent 2017ではAmazon EKS、Amazon Fargateとコンテナ関連の新サービスが2つも発表され賑わっているAWSのコンテナ界隈ですが、そんな中Bloxが今どうなっているのか気になったので軽く調べてみました。
※Bloxについては「Amazon ECS対応のスケジューラBloxを試してみた」や「第二回 合同勉強会 in 福岡 で Blox と ECS について発表しました 」がとても詳しいです。
Bloxとは
BloxはAmazon ECS
で動作するコンテナのカスタムスケジューラーです。
ユーザーが独自に開発したコンテナのスケジューラをAmazon ECS
に組み込むことを可能としてくれます。
v0.3.0とv1.0
Bloxにはv0.1.0~0.3.0
とv1.0
(未リリース)が存在します。
v0.1.0~0.3.0
はBloxを利用する上で必要なAWSリソース(CloudWatchEvent、SQS)を構築した上で、カスタムスケジューラーをローカル or AWSに用意する必要がありました。
カスタムスケジューラー自体はDockerでコンテナを起動するだけなので、それほど手間がかかるわけではありませんが、構築の必要があったことに変わりはありません。
方針としては「各々がBloxで手軽にカスタムスケジューラーを構築する」だったのかと思います。
ですが、v1.0
ではAmazon ECS
の機能の一つ、つまりマネージドサービスとして提供するという方向に大きく舵をきるようです。
GithubのREADME.mdをみても、Amazon ECS
の管理コンソール、APIおよびCLIから提供されると記載があります。
方針が大きく変わったのに合わせてv0.3.0
以降は開発言語も変わっています。
v0.1.0~v0.3.0
はGoで開発が進められていましたが、v0.3.0
以降はJavaに変更となっています。
何故方針が変わったのか
上記のようにv0.1.0~0.3.0
とv1.0
では大きく内容が変わっており、
その理由は正式に発表等があった訳ではないので本当の所は分かりませんが、個人の見解ではAmazon EKS
の存在があるのかと思います。
皆さんご存知の通り、Amazon EKS
はコンテナ管理のソフトウェアであるKubernetes
をAWSから利用できるようになるものです。
このKubernetes
は非常に高機能でスケジューリングも柔軟に行うことが可能なので、Bloxでカスタムスケジューラーを用意しなくてもAmazon EKS
を利用すればカスタマイズしたスケジューリングを行えるということになります。
また、Bloxが方針を変えたのはGithubを見てるとおそらく8月頃ですが、これはKubernetes
の開発をホストするCloud Native Computing FoundationにAWSがプラチナメンバーとして参加した時期と重なります。
なので、AWSはこの頃にはAmazon EKS
を提供することを決める、もしくは考えていて、Bloxはそれに合わせてAmazon ECS
をマネージドでより便利にする方向に舵を切ったのかなと思います。
Bloxの開発状況は?
Githubを見てる限りでは、少しずつ前に進んでいるようです。
v1.0はいつになるのか?
これは不明です...。
ただ、前には進んでいるようなので、その内動きがあるのかと思います。
まとめ
簡単ですがBloxのことについて書きました。
大きく方針の転換があったBloxですが、マネージドサービスとして提供されるようになれば、Amazon ECS
がより便利になるのは間違いないと思います。
Amazon EKS
、Amazon Fargate
だけでなくBloxも忘れずに:-)!