このページの本文へ

JAWS-UG首都圏勉強会レポート 第4回

満員御礼!大人のたしなみ「おコンテナ」は昇華した

JAWS-UGコンテナ支部で垣間見えたDockerやECS活用のコツ

2016年07月12日 07時00分更新

文● 青木由佳(JAWS-UG広報)

  • この記事をはてなブックマークに追加
  • 本文印刷

6月27日、第5回勉強会を目黒のアマゾン ウェブ サービス ジャパン(以下AWSJ)にてに開催された。コンテナがまだ新しい技術ということもあってか、告知をするや否や瞬く間にキャンセル待ちとなった、人気の勉強会である。

とどまることを知らないAmazon ECSアップデート

 2015年9月に発足し、東京でコンスタントに勉強会を開催しているJAWS-UGコンテナ支部。今回で第5回目を迎えるJAWS-UGコンテナ支部の勉強会は、アマゾン ウェブ サービス ジャパン 岩永さんによるECSのアップデートについてのお話からスタート。2015年12月から2016年6月までのAmazon ECS(Amazon EC2 Container Service)のアップデートを中心に紹介した。

Amazon ECSについて説明するアマゾン ウェブ サービス ジャパン 岩永亮介さん

 Amazon EC2インスタンスのクラスター全体にDocker対応アプリケーションを実行・管理できるAmazon ECSについては、EC2ContainerRegistryのリリースなど、計7つのニュースがあった。

 フルマネージド型のDockerコンテナレジストリであるEC2 ContainerRegistryは、まだ東京リージョンには来ていないが、現在利用可能なNorth Virginia、Oregon、Irelandなどのリージョン以外からもpush/pullは可能になっている(ただし転送料が発生する)。また、Service Updateリソース利用率について設定可能になったほか、リソースの下限・上限も変更できるようになった。さらに、Cloud Watchでのメトリクス追加、利用可能なリージョンの拡大、awslogs経由でのコンテナログの収集がサポートされている。

 ほかにも、サービスのオートスケール対応、ECS optimized AMIのDocker1.11対応、Amazon ECR用のCredential Helperの公開など、この6ヶ月ほどで10回近くのアップデートがあったとのこと。「フィードバックを絶賛募集しています」と岩永さん。今後のアップデートは、希望が反映されるかもしれない。

ミドルウェアのアップデートが楽になった-VASILY神崎さんの挑戦

 岩永さんに続いて登壇したのはVASILYの神崎さん。「EB with multi-container Dockerをproductionで1年間運用して起きたこと」と題して、AWS ElasticBeanstalkのマルチコンテナDockerの運用について講演した。

 VASILYは、女性向けファッションアプリ「iQON」及び外部アプリに広告配信を行なっているADネットワーク「iQONAD」を担当している。VASILYのバックエンドエンジニアとして活躍する神崎さんは、「Dockerの利点はカジュアルにイメージを入れ替えられること。ミドルウェアのアップデートが楽になった」と語る。

 Docker imageの肥大化という課題も、ADサーバーのDocker imageをalpine linuxベースのイメージに置き換えることで、容量を最大時の約6割まで削減に成功した。今後は「Elastic Beanstalkに依存しない方法も考えていきたい」と、挑戦する姿勢を続けていくようだ。

クックパッドのECS利用、そしてデプロイツールの開発へ

 「ECSを利用したデプロイ環境」というタイトルで登壇したクックパッドの鈴木さん。鈴木さんは、Dockerを利用したアプリケーションサーバー基盤の開発や運用に携わっている。

 2014年12月からDockerを利用しているクックパッドでは、2016年1月から社内サービスでECSの利用を開始。5月からはいよいよ本番での導入もスタートしたという。

 鈴木さんはまずECS導入前の環境について、Dockerを利用したことでアプリケーションサーバのオートスケールがやりやすくなったことはよかったが、デプロイ先のホストの指定が人力であることなどの苦労があったと指摘。これらを踏まえ、ECS化へ。「ECSを利用することで、デプロイ先の制御を任せることができるようになった」と鈴木さん。

 しかし、Route53などの設定などの課題から、Dockerコンテナをデプロイするためのツール「Hako」を自社開発することとなった。秘匿値を含む環境変数を扱うことのできるHakoは、デプロイ時にさまざまな処理を差し込むことが可能だ。Hakoができたことで、インスタンスを手動で作成せずに済むようになり、気軽に社内アプリが作られるようになったという。開発者としても、現場に対してよりよい環境をつくることができたようだ。

Railsのエキスパートから、ECS本番運用から得たTipsの披露

 著名な書籍の著者に会える!というのも勉強会の恩恵の一つである。「パーフェクトRuby on Rails」の著者である@joker1007さん(以下、jokerさん)は、「RailsアプリをECSで本番運用するためのStep by Step」のタイトルで登壇した。

 Jokerさんが勤めている企業の主要システムはほぼECSへの移行を完了しており、メインのWebサイト、APIの実装、各非同期処理ワーカーのほか、開発者用ステージング、QAサイト等にも利用している。なぜECS化したのかというと、まずミドルウェアのバージョン管理が容易にできるようになることを挙げた。他にも、オートスケールのためのAMI管理が不要になることなどの利点があった。

 現場ではDocker自体に習熟していないメンバーがいることにも言及し、メンバーが学習する際にdocker-composeで1発起動できるよう準備をしておくといった工夫も行なった。また東京リージョンにサービスのオートスケールがないことから、自ら実装したという驚きのエピソードも披露した。

 さらにTipsとして、「1プロセスに1コンテナをちゃんと守る」「できるだけ直接コンテナを見なくて済むようにする」「ネイティブライブラリのコンパイルオプションに注意」「環境変数を増やし過ぎないように工夫する」など、具体的なアドバイスをまとめてくれた。

登壇者はSNSで確保? イベントタイトルも工夫されたコンテナ支部

 今回、登壇したAWSJの岩永さんは「今回登壇されたみなさんの結論は、みな最終的に同じで、それがとても素晴らしかった」と語る。少しずつ増加傾向にあるコンテナの事例。

 SUPINFの中丸良さん、原康紘さん、本並菜々子さんが運営の中心メンバーとして活動しているJAWS-UGコンテナ支部。まだまだ普及しているとは言えないコンテナの事例だが、「登壇していただく方は、SNSで連絡してお願いすることもあります」(本並さん)とのことで、コンテナ技術について書かれたブログをチェックしたり、Twitterで連絡をとったという。今回の5回目勉強会も、その努力の甲斐あって、今回も豪華な登壇陣が揃った。

 コンテナ支部では募集ページにもちょっとしたウィットを効かせており、おもしろいキャッチコピーが毎度散りばめられている。今回の勉強会では「おとなのたしなみ、おコンテナ」と題し、タイトル自体も「JAWS-UGおコンテナ支部」と思い切った発信。過去にも「老若男女わっしょいわっしょい」「果てしないこの東京砂漠」など、ポエムなタイトルを冠している。コンテナと直接関係なさそうな文言も多いが、これを見てみると運営の顔が垣間見えるかもしれない。

 JAWS-UGコンテナ支部のページには、登壇者の発表資料のリンクもあるので、ぜひチェックしてみると良いだろう。次回は8月頃に、初心者向けの内容で開催される予定。また、JAWS-UG名古屋支部でもDocker及びECSについての勉強会が開催されるとのことで、注目だ。

カテゴリートップへ

この連載の記事