本稿では、Developers Summit(以下、デブサミ)を通じて見えたAWSJの取り組みについて紹介していく。記事の末尾には、マイクロサービスについてその概念と、AWSを使った実装方法を丁寧に解説したホワイトペーパーのダウンロードも可能になっているので、併せて活用いただきたい。
Amazonのサービスを支えるソフトウェア開発の要諦とは?
まずはメイン会場にて行われた、アマゾン ウェブ サービス ジャパン株式会社 技術統括本部 シニアソリューションアーキテクトの西谷圭介氏によるセッション「The Amazon Way~Amazonのソフトウェア開発~」を紹介する。
このセッションは、そのタイトルのとおり、Amazon.comおよび、そのクラウドサービスであるAmazon Web Services(AWS)におけるソフトウェア開発の根底に流れるもの、そして今までの数々のイノベーションを支えるカルチャーについて取り上げられた。AWSのプロダクトやサービスの紹介はほとんど行われず、同社の差別化の根底にはソフトウェア開発があることが再認識された、今までのAWSJのセッションとはひと味違うものであった。
Amazonのビジネスは購買決断
西谷氏は、Amazonのビジネスの本質は、普段我々が接しているAmazon.co.jpなどのECサイトを通じたモノ売りではなく、サイトを訪問するお客様の「購買決断」を助けることだと強調する。そしてそれを追求するためにAmazon、およびAWSでは、日々イノベーションを追求しているのだと続ける。こうしたお客様を起点にしたプロダクト開発の背後にある重要なビジョン「地球上で最もお客様を大切にする企業であること」も紹介された。
さらに、話はAmazonの創業当初から受け継がれるビジネスモデルにも及んだ。この図は、創業者でありCEOのJeff Bezos氏がレストランのナプキンに描いたことでも知られている。
この図は、品揃えを増やすことでトラフィックが増え、それが結果的に出品者を増やし、さらなる品揃えの充実や低コストな仕組みを構築することにつながり、それが顧客体験の向上につながるという一連のサイクルを表している。
AmazonおよびAWSに流れる特徴的なカルチャー
西谷氏の話題は、ビジネスモデルを支えるAmazonおよびAWSのカルチャーに続く。同社には、「Our Leadership Principles」という14の原則があり、すべての従業員はこの原則に立った判断が求められることなどが紹介された。そしてユニークな取り組みとして、新しい製品やサービスの開発を行う際にはプレスリリースから書き上げる、という特徴的なプロセスについても紹介された。プレスリリースから構想を練っていくことで、本当にお客様のためになる製品作りが可能なのかを検討するためだという。
Amazonにおけるマイクロサービスとそれを支えるチーム運営
Amazonはマイクロサービスを積極的に取り入れていることでも有名で、その事例が数多く取り上げられている。今回のセッションでは、マイクロサービスに関する考え方、そしてそれを支える開発組織論としての「Two Pizza Rule」なども紹介された。そして、AmazonにおけるDevOpsといった、マイクロサービスとも関連するチーム運営に関しても紹介が進んだ。例えば、AmazonにおけるDevOpsではOps(運用メンバー)が不在で、オンコールもチーム全体で対応するのが一般的という珍しい体制をとっているのだという。
マイクロサービス化を検討している方必見! AWSでの設計ポイントが分かる最新資料
本資料は、マイクロサービス化を検討している方や、マイクロサービスアーキテクチャの運用の複雑性を軽減したいと考えている方を対象に、AWSでどのようにマイクロサービスを実現できるかを記述したものです。マイクロサービスの特徴と、構築における主な課題を踏まえ、これらの課題克服のためにどのようにAWSを活用できるかを説明します。
re:Inventで発表されたAWSのデベロッパー向け新サービスも紹介
デブサミでは、メイン会場以外にも「AWS Amazon Alexa 特別トラック」と称した特別展示室において、AWSJおよびアマゾンジャパン合同会社が合同で、ソリューションの展示およびハンズオンを行っていた。このパートでは、AWSJのソリューションアーキテクトによるミニセッションのハイライトを紹介していく。
AWSのフルマネージドな環境でCI/CDをやってみよう! AWS Cloud9からAWS Fargateへの継続的デプロイをご紹介
本セッションはAWSJの福井厚氏による進行で、昨年末に開催されたAWSのグローバル年次イベントであるAWS re:Inventで発表されたばかりの新サービスAWS Cloud9とAWS Fargateを活用して継続的インテグレーションや継続的デリバリをどのように実現するかが解説された。AWS Cloud9はクラウド上に用意された統合開発環境(IDE)であり、リモートペアプロ機能が用意されているなど、新時代の開発環境と言えそうだ。この製品の特徴としては、最近人気のサーバーレスアプリケーションの開発やデプロイにも対応している点がある。今後注目の製品と言える。
本番環境で使うContainer - ECS/Fargate/EKS-
AWSJの浅野佑貴氏が担当した当セッションでは、AWSのコンテナサービス群について、それぞれの特徴やメリットなどが解説された。AWSは、コンテナに関連するサービスに注力しており、昨年のAWS re:Inventで発表されたAmazon Elastic Container Service for Kubernetes(Amazon EKS)や、福井氏のセッションでも紹介されたAWS Fargateにも注目が集まった。
Amazon EKSは、コンテナの選択において最有力の地位を占めつつあるKubernetesのマネージドサービス。マネージドであることによる運用管理工数の軽減が期待でき、かつオープンソースならではのエコシステムも活用できることがメリットであるという。なお、Kubernetesの開発推進団体であるCNCF(Cloud Native Computing Foundation)の調査によると、Kubernetesクラスタの6割はAWS上で稼働しているのだそうだ。
AWS Fargateは、これまで提供されていたAmazon Elastic Container Service(Amazon ECS)というAWS独自のコンテナオーケストレーションサービスから、Amazon EC2のインスタンス運用管理が不要になったものだ。このサービスによって開発者は、コンテナそのものやアプリケーション開発にさらに集中することが可能になる。
Building Real-time Application With AWS AppSync 〜GraphQLの始め方〜
AWSJ 塚越啓介氏は、GraphQLを実現するサービスであるAWS AppSyncの紹介と実際にそれらとReact Nativeを利用したモバイルアプリケーション開発に関して解説を行った。GraphQLとは、Rest APIの次のパラダイムとも一部で言われており、今後さらなる期待が寄せられているAPIのクエリ言語だ。
AWS AppSyncはこのGraphQLによるバックエンドの実装を、既存のAWSサービスを組み合わせることで簡単に行うことができるフルマネージド型のサービス。今回のセッションでは、このAWS AppSyncを用いたアプリケーションの構築方法がデモを交えながら紹介された。
Machine Learning on AWS
AWSJの桶谷拓也氏は、AWSが提供する機械学習サービスを紹介した。AWSでは、画像認識サービス、動画認識サービス、音声読み上げ(Text to Speech)、さらには、音声の読み取り(Speech to Text)などのサービスがAPIを通じて提供されている。従来はこのような機械学習をもとにした機能を実現するには膨大なモデルを用意した上で学習させることが必要であり、機械学習の専門家を必要とした。それが今や、あらかじめ学習済みのモデルを利用したサービスをAPIなどから簡単に呼び出して利用することができるようになる。開発者やデータサイエンティストが機械学習を利用するハードルが下がったと感じられたセッションであった。
マイクロサービスをAWSサーバーレス&コンテナで実装する方法
最後に、AWSJの清水崇之氏からは、西谷氏のセッションでも触れられていたマイクロサービスを実装する際にAWSのサービスをどのように活用すると良いのかという点について解説が行われた。マイクロサービスを実現するには、アプリケーション開発や組織面だけでなく、その実行基盤をいかに効率よく、手間をかけずに実現していくかが非常に重要なのだという。主にAWSのコンテナ関連サービスや、昨今話題となっているAmazon API Gateway、AWS Lambdaを活用し、サーバーレスでマイクロサービスを実現していくための具体的な方法が解説された。マイクロサービスというスケーラビリティが高く、俊敏性の高いアーキテクチャを実現するためには実行基盤も同様の特徴を持つものを採用することが近道の一つであると言える。
マイクロサービスの理解に向けたホワイトペーパー
特に関心の高いマイクロサービスについて、周辺技術も含めて体系的に理解したいと考えている読者にお勧めなのが、AWSJが提供しているホワイトペーパー『AWSにおけるマイクロサービス』である。
この文書は、マイクロサービスアーキテクチャの概念の平易な解説から、実際にAWSが提供中のサービスへの適用例なども示した実践的な資料となっている。今回のイベントセッションの資料と併せて活用頂くことで、各要素技術の理解、各要素技術のつながり、その根底にある概念が体系的に理解できるであろう。
マイクロサービス化を検討している方必見! AWSでの設計ポイントが分かる最新資料
本資料は、マイクロサービス化を検討している方や、マイクロサービスアーキテクチャの運用の複雑性を軽減したいと考えている方を対象に、AWSでどのようにマイクロサービスを実現できるかを記述したものです。マイクロサービスの特徴と、構築における主な課題を踏まえ、これらの課題克服のためにどのようにAWSを活用できるかを説明します。