Amazon Web Servicesは9月27日、コンテナに関する説明会を開催した。説明会では、同社のコンテナサービスを紹介するとともに、同社のコンテナサービスを導入しているメルカリの最高技術責任者である名村卓氏も登壇し、自社での利用状況を紹介した。
コンテナの課題解決をサポートするAWSのサービス
システム開発や運用にコンテナ技術を活用するケースが増えている。コンテナ技術が利用される理由はいくつかある。例えば、目的ごとに環境を用意しやすいことや、開発環境と運用環境を同一の状態にすることでデプロイ後に発生する問題を回避しやすいといったことがある。エンジニアが実際に求める機能がコンテナには用意されているといった状況だ。
しかし、コンテナ技術は完璧かといえば、そうではない。コンテナ技術には次のような課題がある。例えば、コンテナ技術であるDockerを利用する場合は次のような課題がある。
- Dockerのデプロイやリソースに対するバランスをどうやって管理するのか
- Dockerのイメージをどこでストアするのか
- Dockerを動作させるクラスタはどうやって管理するのか
- モニタリングやサービスメッシュはどうするのか
課題は主にコンテナ技術の外側にある。Dockerに限らず、コンテナ技術の課題はマネジメントにあることが多い。コンテナを使うようなケースでは、多数のコンテナを同時に運用することが多く、こうした環境をどのように簡単に管理するかが課題と言われている。
Amazon Web Services Japan シニアソリューションアーキテクトの塚田朗弘氏は、同社はこうしたコンテナの課題に対し、次のようなサービスを提供していると説明した。
サービスの種類 | サービス |
---|---|
オーケストレーション | Amazon ECS、Amazon EKS |
イメージレジストリ | Amazon ECR |
ホスティング | Amazon EC2、AWS Fargate |
その他の関連サービス | AWS App Mesh、AWS Cloud Map、Amazon CloudWatch Container Insights |
それぞれのサービスを簡単に説明すると次のようになる。
- Amazon ECS (Elastic Container Service) - コンテナを管理するためのオーケストレータ
- Amazon EKS (Elastic Kubernetes Service) - Kubernetesマスタをマネージドで提供するサービス
- Amazon ECR (Elastic Container Registry) - マネージド・プライベート・コンテナイメージ・レジストリ
- Amazon EC2 - 仮想マシン
- Amazon Fargate - EC2インスタンスのプロビジョニングなどAWSのIaaSの管理サービス
- AWS Cloud Map - サービス・ディスカバリ・サービス
- AWS App Mesh - アプリケーションレベル・ネットワーク
- Amazon CloudWatch Container Insights - コンテナ・ワークロード・モニタリングサービス
塚田氏は、コンテナを活用する場合、コンテナ技術のみに注目するのではなく、「全体を俯瞰して設計する必要がある」と指摘した。また、「コンテナありきのように考える人もいるが、ビジネス要件に応じて適切なサービスを選択することが重要」と説明した。
メルカリの機械学習はAWSを活用
塚田氏に続き、Amazon Web Servicesのコンテナ関連サービスの事例として、メルカリの最高技術責任者を務める名村卓氏が同社の採用状況を紹介した。
メルカリのアプリには画像を撮って検索をかけることができる「Image Search」という機能が用意されている。例えば、赤いコップを撮影してImage Searchを実行すると、登録されている同じような赤いコップがヒットする。
「億単位である画像をマシンラーニング(機械学習)で学習し、似たような画像を検索できるようにしている」と名村氏。こうした大量の画像学習にはAmazon EKSが使われている。画像データをAmazon S3に保存しているため、このデータを活用する手段としてAmazon EKSが自然な選択肢だったそうだ。
加えて、名村氏は「Amazon EKSを使うことでKubernetesの面倒な部分を全部やってもらえる」と、その利便性についても言及した。
メルカリは新たなビジネスとして、スマートフォン決済「メルペイ」に取り組んでいるが、同サービスにおいてもAWSのサービスが活用されている。メルペイの場合、コンテナ技術以外にもログ収集パイプラインとしてAmazon Kinesisなども使われている。
名村氏はコンテナ技術を利用する、メリットとして、以下を挙げた。
- 役割ごとに最小限で最適な環境を構築できる
- 開発から本番まで統一したイメージを使用できる
- マニフェストベースの運用自動化と再現性の確保が可能
- マネージドによるコスト削減と属人化回避が可能
AWSを利用する理由として、新しいサービスが毎月のようにリリースされる状況を挙げ、「常に最新の技術に触れ続けることができること」といったことにも言及していた。
AWS活用の鍵はサービスを適切に組み合わせること
Amazon Web Servicesは毎年新しいサービスを提供している。包括的なビッグサービスを提供するというスタイルではなく、目的ごとに新サービスを提供するというのがAWSのやり方だ。サービスの総数はすでに160を超えており、今後も増加が見込まれている。
コンテナ技術についても、単一のサービスがあるわけではない。コンテナもあくまでひとつの技術であり、それらも含めて適切なサービスを選んで組み合わせることが重要になる。