技術用語を比喩から学ぼう ! - 第 5 回「キャッシュ」
Author : 吉田 慶章
builders.flash 読者の皆さん ! こんにちは ! テクニカルトレーナーの吉田慶章です。
builders.flash には様々なカテゴリがありますが、本記事は「How to be a Developer」というカテゴリーに所属しています。エンジニアを目指している方やインフラエンジニアからアプリケーションエンジニアにロールチェンジを目指している方などを読者層とし「どうやってエンジニアになれば良いのだろう ?」をテーマにしています。
そして、本記事は「初学者が理解しにくい技術用語を現実世界の比喩で紹介する」シリーズです。トレーニングの場でも比喩を使って説明することが重要になり、私自身とても意識しています。
第 5 回「キャッシュ」
比喩シリーズ 第 5 回の技術用語は「キャッシュ」です。
- 「キャッシュ」を使ってデータベースにアクセスする回数を減らす
- 「キャッシュ」を使ってワークロードのレイテンシーを削減する
- 定期的に「キャッシュ」を入れ替える
といった例文などを目にすることもあるのではないでしょうか ?
比喩
「キャッシュ (綴りは Cache)」を日本語にすると「貯蔵する」や「貯蔵所」になります。名前の通り、何かを貯めておく役割として使います。では「何を」そして「何のために」貯めるのでしょうか ?
現実世界の例を出してみましょう。例えば、皆さんの読まれる本を部屋の本棚と倉庫 (トランクルーム) に置いておくことを想像してみるのはいかがでしょうか ? もう少し具体化しましょう。よく読む本は部屋の本棚に置いておき、読む機会の減った本は倉庫に置いておくこともあるでしょう。よく読む本ほど近くに置いてあるとすぐに読めて便利だからです。これは、よく読む本を近くの本棚に「キャッシュする (貯蔵する)」と考えることができます。
メリット
では、現実世界の例をさらに深堀り、メリットを考えましょう。
1. 倉庫に移動する回数を減らせる
昨日読んだあの本の続きを読みたいな ! と思ったときに本を近くに置いていないと、毎回倉庫まで移動する必要があります。移動する時間もかかりますし、ゴチャゴチャになった倉庫の中から本を探し出す時間もかかるかもしれません。最近読んだ本や何度も読み直したくなる本などは、部屋の本棚に置いておくことで、倉庫に移動する回数を減らせます。これは大きなメリットと言えるでしょう。
2. 家族が読んだ本を自分もすぐに読める
昔ベストセラーになった本など、思い出のある本を家族が久し振りに読んでいたりすると、気になって自分も読みたくなってくることもあるでしょう。昔の本などは、倉庫の奥に隠れてしまっていることも多いですが、家族が倉庫から探し出し、部屋の本棚に置いておいてくれると、すぐに読むことができます。読みたい人が増えれば増えるほど、近くに置いてあることのメリットが大きくなるでしょう。
3. 本棚と倉庫の本を入れ替えられる
毎日読む本もあれば、毎月読む本もあります。そして数年に 1 度だけ読む本もあるでしょう。部屋の本棚に置いておける冊数はある程度決まっているため、本棚にスペースがなくなってしまった場合は、最近読んでいない本を倉庫戻すこともできますし、ランダムに選んだ本を倉庫に戻す人もいるかもしれません。このように、よく読む本を本棚に置きつつ、定期的に本棚と倉庫の本を入れ替えることができます。
まとめ
本記事では、部屋の本棚と倉庫 (トランクルーム) に本を置くことを比喩に「キャッシュ」を紹介しました。よく読む本などを近くに置いておくことですぐに読めて便利です。実際のワークロードでは、例えば Amazon ElastiCache を使って Amazon RDS のデータを「キャッシュ」することにより、高パフォーマンスなアプリケーションを構築できます。本棚と倉庫の本を入れ替えるところでは Amazon ElastiCache for Redis のパラメータ maxmemory-policy (Evictions) の比喩も含めてみました。他にも Amazon CloudFront を使って Amazon S3 のオブジェクトを「キャッシュ」することにより、低レイテンシーにコンテンツを配信できます。
皆さんも比喩を考えてみてください ! ではまた次回 !
この連載記事のその他の記事はこちら
- 選択
- 第 1 回「疎結合」»
- 第 2 回「パブサブ」»
- 第 3 回「イミュータブル」»
- 第 4 回「ロードバランサー」»
- 第 5 回「キャッシュ」»
- 第 6 回「テンプレート」»
- 第 7 回「命令型と宣言型」»
- 第 8 回「DNS の名前解決」 »
筆者プロフィール
吉田 慶章
アマゾン ウェブ サービス ジャパン合同会社
トレーニングサービス本部 テクニカルトレーナー
ウェブエンジニア/プログラミング講師などの経験から AWS テクニカルトレーナーに。教えることを本職とし、効果的な学習メソッドを考え続けている。教えることは最高の学習である。Keep on Learning 👍
AWS を無料でお試しいただけます