AutoScalingを理解したいなら、ほどほどに混み始めたクリエイトに行けば分かる

先週投稿を忘れていたので、二つ投稿しておきます。

AWSには「AutoScaling」と言う機能があります。これは名前は違うかも知れませんが他のクラウドサービスだったりコンテナオーケストレーションのツールにもあるかと思います。

図にすると、こんな感じですかね。

上のはcacaponの個人サイトで投稿していたAWSの模擬問題解説記事から拝借したgif動画なのですが

処理したいメッセージが貯まりまくったら、新しい処理するコンピュータ(EC2インスタンス)を増やして対応し、

メッセージが少なくなったら、余分なコンピュータを停止させるといった感じで、

処理したい量と処理する量のバランスを取って、リソースを効率的に使おうって機能です。多分。


私はMachinationsという動くモデルが作れるツールで書いて動作の理解を深めていたのですが、

どうせだったら身近な現実世界に、AutoScalingの例があるともっと理解できそうですよね…


ところで話は変わりますが、この前の休日に近所にあるドラッグストア、クリエイトに行ってきました。

最近は養命酒を買ったり、安くて面白そうな商品が売っているのでよく行ってます。ドラッグストアはクリエイト派なcacaponです。


その日も買う商品が決まったのでレジに並びました。

Cacaponが並んだ時点で待ち二人、レジが一人くらいの状態です。

しばらく待っていたのですが、ちょうど買うタイミングが重なっていたのか、3・4人後ろに並ぶことに。結構長い列になってきました。

すると、どこからともなくアナウンスが…

「三番レジ開放をお願いします!」


アナウンスが流れた途端、棚卸しをしていた店員さんがレジに入りレジは二人体制に。するとみるみるうちに列が捌かれていきました。

もちろん私もそこまで待たされることなくお買い物を終えることができました。めでたしめでたし。


その時cacaponに電流走る。「なるほど、これがAutoScalingか」


実際コンピュータ上でやっているAutoScalingって、「レジの人が行列をどうやって早く捌くのか」を考えるのと同じだと思うんですよね。

クリエイトでは混んできた場合、別の役割を担っている店員さんをレジに回すことで、行列の処理能力を2倍にして対応していました。

AWSのAutoScalingも処理担当のCPU使用率なりが高くなったら、もう一個作って処理を分散させる形で対応します。*1

こうやって見てみると、新しいIT技術とかでも「それ、他で言うOOだよね」ってアイデアとかコツはいっぱいありそうですね。良い気づきを得られたなぁと思うcacaponなのでした。

それではまた。

*1:CPU自体を良いものにして処理できるようにする対応方法もありますが、ここでは割愛