Architecting on AWSを受講して
Standing on the shoulders of giants, named “Amazon”.
ウイングアーククラウド統括部MotionBoard Cloud開発部所属新人のnakamura.kaと申します。好きなAWSのサービスはLambdaです。
今回は所属するクラウド統括部のご厚意で、去る 2019/10/16–18 の3日間にかけてArchitecting on AWSというAWSの公式トレーニングを受講させていただきましたため、そのご報告も兼ねて記録を残しておきたいと思います。
Architecting on AWSとは?
“このコースでは、AWS プラットフォームで IT インフラストラクチャを構築するための基礎を扱います。参加者は、AWS の各サービスがクラウドベースのソリューションにどのように適合するかを理解して AWS クラウドを最適化する方法を学びます。さらに、AWS で最適なITソリューションを設計するための AWS クラウドのベストプラクティスと設計パターンを探り、ガイド付きのハンズオン演習でさまざまなインフラストラクチャを構築します。また、このコースでは、初心者向けのアーキテクチャを作成し、堅牢で適応性の高いソリューションを構築する方法についても説明します。” — Architecting on AWSより引用
Architecting on AWSとは、AWSが公式で行っているトレーニングクラスです。
これは、AWSの各サービスを用いてソリューションをどのように設計(Architect)していくかということを、実際にインフラストラクチャを構築しながら学ぶことができるハンズオンのクラスルームトレーニングになります。
また、こうしたAWSの公式トレーニングは同じくAWS公式の認定資格にも対応しており、今回のArchitecting on AWSでは、上図中央のAssociate――つまり準、真ん中くらいの――Solutions Architectの試験に向けた試験対策の勉強にもなるようです。
会場の雰囲気
入り口入ってまず目にすることになるのは巨大なボルダリングウォール。
裏はウイングアークにもある階段式の会議スペースになっており、お昼にはそこで一緒に参加した同期の人間と昼食を食べていました。
実際の会場はとても広く、ウイングアークの他にも102名ほどの企業さんが参加。
また、お昼のお弁当だけでなく、それに加えて3時のおやつにシュガードーナツが出るのがすごいアメリカの企業感ある。
最終日の3日目にいたっては朝食としても用意していただきました。
Day-1, 2
まずは講師の方の自己紹介や今回のトレーニングの目的などについてお話がありました。
特に今回のトレーニングはAPNパートナー企業向けのトレーニングであることから、
- 大規模であり、一人の講師が大量の人数のハンズオンを持つことは困難であること
- どちらかというと構築うんぬんというよりは、前述した、今回のトレーニングに対応する認定試験を合格することが目的であること
などの理由から、公式が出している字面通りハンズオンでのソリューション構築メインというよりは、1–2日目にかけては講義形式でAWS上の各コンポーネントについてみっちり詰め込み、3日目に集中して試験対策とハンズオンを行う、という構成になっていました。
以降、仮想的なAWS上のシステムをもとに、アーキテクチャ図に対してたとえばより可用性のあるデータベースや、そうした可用性を向上させるロードバランサーなど、各種モジュールを追加していくような形での講義となります。
具体的には、それぞれモジュールに対応する具体的なAWSのコンポーネントを名前を挙げながら、利点と欠点、またトレードオフの関係を理解することで、どのような課題に設計原則にもとづいたソリューションを提案、構築できるかといったことを、クラウドシステムのデザインパターンに加え、実際のユースケースもあわせて学んでいきます。
また、さらにここでは、前述のようにSolutions Architectの認定試験の対策はもちろんなのですが、それだけではなく、実際のビジネスロジックでの課題や解決方法、より上位のProfessionalも見据えたTipsなども同時に学ぶことができました¹。
詰め込み型の講義であるぶん途中眠くなる場面もあるかとある程度は覚悟をしていたのですが、講師の方から定期的に休憩をとるように指示していただいたり、Amazonさん側からも大量のコーヒーが振る舞われたりなど、ちゃんと無理なく継続して受講する環境を与えていただけて十分に講義を受けることができたように思います。
講義の内容としては、一応ウイングアークの新人研修や入社前にHello Worldくらいは試していたこともあって、そこまで絶望的に難しくなかったですが、ネットワーク周りに関しては自分自身そもそもの知識が弱いというのもあり、ついていくのに精一杯な箇所もありました。ですので、もしかすると座学のみで、もしくは本当にクラウド環境を触ったことがないという方には少し難しいかもしれません。
ただし、おそらく今回のようなAPNパートナー向けの特別版でなければもう少し講義の量も抑えめであいだあいだにもハンズオンが挟まれるかと思いますので、まずは試験が目的というよりも、また別の、つまり一般向けのトレーニングを、一度AWSがどんなものか体験してみようくらいの気持ちで気軽に受講してみるのもよいかと思います²。
[1]: これは、今回担当していただいた講師の方がとても優秀な方だったからだと思います
[2]: ただし値段がぜんぜん気軽ではないですが
Day-3
前半の午前では、試験の概要と問われる各分野の再確認をしつつ練習問題を解いていき、後半の午後はQwiklabsという動的にAWSの環境を生成するサービスを用いてハンズオンを行っていきます。
前回書いた記事でも、最後に課題としてコンポーネントの構築自体の自動化を挙げていましたが、上の画像のCloudFormationという機能を用いてAWSのコンポーネントの生成、およびそれらの結びつきを自動化させるハンズオントレーニングなどだいたい6つほどのハンズオントレーニングを通して、1日目2日目の理解しづらかった箇所を補完していきます。
また、この時間では講師の方が助っ人としてAWSに所属するパートナーソリューションアーキテクトの方々を呼んでくださり、実際に教室内を見て回ってくださって、質問があればすぐに答えてくださるような環境になっていました。
さらに、ハンズオン後にはさきほどのパートナーソリューションアーキテクトの方のセッションもあり、AWS側からパートナー企業への思いをラフに語っていただいたり、音頭をとって乾杯したり⁴と最後までとても楽しく参加することができました。
[3]: 少し解説を加えると、Application Load Balancerによって自動的にネットワークからの通信を複数AZにバランシング、なおかつアプリケーション層のEC2インスタンスではAuto Scaling、データベース層ではRDSをmulti-AZ配置することにより耐障害性・可用性を向上させています(横軸)
また、同一AZ内においても、Public・PrivateとSubnetで分割しそれぞれの層はそれぞれの層としか通信を行えない設定にすることで、外部からの攻撃および内部におけるヒューマンエラーを防いでいます(縦軸)
[4]: なんと酒まで出ました
最後に
AWS自体がAmazonの苦悩やそれに対する回答を体現する建築物であることは疑いありません。
それは、(そこにはもちろん高い耐障害性、可用性なども含まれますが、むしろそれ以上に、)あらゆるコンポーネントをマイクロサービスとしてAPIを用い分離させていくことで、隠蔽されたサービスとして計算機資源を使いたいときだけ使い捨てで扱えるようにするという設計思想――真の意味でわれわれが自由になることのできる設計思想による建物です。
もちろん自由には代償がつきものです。パートナーソリューションアーキテクトの方のセッション中でも述べられていましたが、おそらく今後、クラウドエンジニアは「クラウド環境にオンプレを載せる」だけでなくデータベース、ネットワークインフラストラクチャなどより広範な知識が求められるようになっていくのではないでしょうか⁴。
自分自身も、AWSのArchitectを理解・実践することで今後ともより素晴らしいシステムを設計していきたいと思います。
……もちろん、こういったトレーニングやセッションにもっともっと参加し、さまざまなドメインに触れていくことも大切ですよね。こちらもぜひよろしくおねがいします。
というわけで、最後になりましたがこのようなトレーニングに参加させていただきありがとうございました。この場を借りてお礼申し上げます。
[4]: これはでもよくよく考えるとクラウドエンジニアだろうがなかろうがあまり関係ない気もしますね