さて、連載も佳境に入ってきました。
これまでの連載はご覧になっていただけましたか?
第1話
第2話
第3話
第4話
第5話
第6話
第7話
第8話
第9話の今回のテーマは「拡張性と伸縮自在性」です。
なお、ストーリーはフィクションであり、実在の人物・団体とは一切関係ありません。
第9話 真実
「さてと…。」
いつもより少し硬く感じるキーボードを叩きながら、Aはつぶやいた。
「今日は、、、拡張性と伸縮自在性?」
AWS 認定ソリューションアーキテクト – プロフェッショナルレベル試験要覧を読むと、次のようにある。
7 ドメイン 7.0: 拡張性と伸縮自在性
7.1 疎結合されたシステムを設計する能力をデモンストレーションする
7.2 最も適切なフロントエンドスケーリングアーキテクチャを実装する能力をデモンストレーションする
7.3 最も適切な中間層スケーリングアーキテクチャを実装する能力をデモンストレーションする
7.4 最も適切なデータストレージスケーリングアーキテクチャを実装する能力をデモンストレーションする
7.5 垂直スケーリングと水平スケーリングの間のトレードオフを判断する
「…。恋は拡張しますか?愛は、伸縮自在ですか?」
夜の帳がもたらす気だるさからか、記憶が呼び起こす忌々しさからか、Aは独り言をつぶやき続けている。
「…。疎結合な僕らの関係。恋愛デモンストレーション。Wow。」
「…。さっぱりだな。さっぱりわからん。もう、僕には何も分からない。」
Aは、PCをそっと閉じた。
「S先輩、結婚するんだ。。。」
大通りの喧騒が漂う部屋の片隅で机に向かってAが思い出していたことは、たまたま聞いてしまった、S先輩の電話だった。
『…ええ、わかったわ。それじゃぁ式場はそこね!そうね。…』
苦い感情とともに、先週立ち聞きした内容を思い出す。
「そうだよな。S先輩、素敵だもんな。そういう話もあるよな。」
鉛を飲み込んだような感覚。悔やまれるのは、自分の自信のなさ。
少しでも、先輩に追いつこう。せめて仕事だけでも。
PCを開き、再び試験要項を読む。
「拡張性と伸縮自在性と聞いて、最初に思い浮かぶのは、利用のされ方によってサーバを増減させることだよな。」
「疎結合とは、サービスをサブシステム化して、各システム間をAPI通信、たとえばRESTで結合することによって、サービスの拡張性、および信頼性を担保することだよね。インフラ面でいうと、メモリ負荷がおおいサービスとCPU負荷が多いサービスをわけて、スケールアウトとスケールアップをわけて検討できるようにしておくとか。マイクロサービスアーキテクチャという言葉もはやってるし、多分そのことだよね。」
「フロントエンドスケーリングアーキテクチャとは何だろう?フロントエンド、つまりUI周りのアーキテクチャだよね。いまだと殆どのアプリはWebで作るだろうから、WebUI周りのアーキテクチャ、それのスケーリング?あとは、中間層、つまりはビジネスロジックを持つ、コントラーとなる処理のスケールと、データ保存のスケールが出来るようなアーキテクチャが作れればいいのか。」
ーーググッて見る。
「お?アーキテクチャセンター?いろんなリファレンスアーキテクチャが載ってるのか。フムフム。e コマースウェブサイト向けに伸縮自在なウェブフロントエンドを構築か。みてみよう。」
PDFを見ると、以下の様な構成を担保していることが伺える。
- CloudFront経由でサービスにアクセスすることで、ユーザから近いエッジロケーションで処理を受け付けることで高パフォーマンスを実現する。
- Beanstalkを使うことによって容量のプロビジョニング、負荷分散、スケーリングが自動化される。
- サービスごと(MARKETING AND RECOMMENDATION SERVICE、E-COMMERCE WEB SITE、CHECKOUT SERVICE)にBeanstalkを分けることによって、サービスごとに負荷が偏った時にも正しくスケールが行われる。MARKETING AND RECOMMENDATION SERVICEとE-COMMERCE WEB SITEはAPI結合、CHECKOUT SERVICEはユーザが直接アクセス可能なようにフロントエンドの処理を委譲する。
- ElastiCacheを使い、Sessionデータを保存することで、可用性を上げ、スケールアウトが可能な構成とする。
- DynamoDBを使い、高可用性やスケーラビリティーを担保する。
「フムフム。勉強になるな。他のアーキテクチャも見てみるか。次はe コマースウェブサイトパート 2: チェックアウトパイプラインだ。」
…こうして、Aはアーキテクチャセンターのドキュメントを読み込んでいった。
「あ、もうこんな時間か…。」
「よく分からないところもあるな…。とくに『デモンストレーションする』ってなんだろう…。」
「…。」
「S先輩に聞いてみるか…。」
「うぅ…。いつもどおりに話せるかな…。」
-翌日----
(うぅ…。話せないまま、業務時間が終わっちゃった…。)
(S先輩ももう席にいないし、帰るか…。)
Aは重い足取りでエレベーターホールに向かった。
(なんか、今日は、いつもより疲れたたな…。)
「あ、A君、いま帰り?」
今日、一日中、話をする機会を伺いつつも話せなかった相手がそこにいた。
「うぉっっ!S先輩!?」
「あはは。驚きすぎ。いま帰りなの?晩ごはんでも一緒にいく?」
え?あれ?いいんですか?
「はい!お願いします!ちょうど、AWSで聞きたいこともあったので!」
会社近くの飲み屋にはいり、ビールで乾杯をした。
「そうなんです。「デモンストレーションする」っていうのがよくわからなくて。」
「あぁ、それはね。そんなにこだわらなくてもいいよ。」 S先輩は、英語の原文を教えてくれた。
「だから、デモンストレーションするっていうのは、能力が備わっていること、くらいに読み替えてもいいと思うよ。」
「言葉に迷ったら、英語を見てみるといいよ。」
「なるほど。」
「…。そういえば、結婚されるらしいですね。おめでとうございます。」
ジョッキを握ったS先輩の動きが止まった。
「…。誰に聞いたの?」
「あ、先輩が電話で話しているのを小耳に挟んでしまって…。」
冷たい沈黙が続く。AはS先輩の手元を見つめるしかなかった。
「ぶっ、あははははは!」
S先輩が急に吹き出した。
「あ、ごめんごめん。すごい切羽詰まった顔してたよ。A君。」
「そう。結婚するの。妹が。海外で結婚式するから。そのためにお休みもらうの。」
「え!そうなんですか!あ、勘違いしました!」
トーンが急に明るくなったAの声を聞いて、S先輩がまた笑い出した。
「あははは!ふふふ…。はぁ。。。んー。すごい暗い顔してたね。…。どうして暗い顔してたの?」
小悪魔のような顔で覗きこんでくるS先輩。Aはその前では顔を真赤にして下を向くしかなかった。
さて!次回は最終回。
「クラウド移行およびハイブリッドなアーキテクチャ」をテーマにお送りします。よろしくお願いします