短縮URLがURLを短縮する仕組みの説明です。
短縮URLは長いURLを短いURLに短くすることができます。これはどのような仕組みで行われているのでしょうか。
短縮URLをファイルで管理
特定のファイルにアクセスがあった場合、そのファイル対するアクセスはあらかじめ指定したURLに転送する処理をファイルに付与する事によりURL転送を実現します。
この方式でURLを短縮する場合、対象URL数が5個程度以下なのであれば最も効率が良く、実装も素早く対応でき、一番良い手法になります。
また、独自ドメインでの利用もできますので、一番おすすめです。
しかし、対象URLが増えてきた場合、管理の観点で煩雑さが出てきてしまいます。要件として対象が少ないという事が必須条件になります。
短縮URLをS3で管理
詳細は以下で説明されています。

AWSのクラウドストレージサービスS3を利用する方法です。
こちらの手段を利用した場合、以下2点のメリットがあります。
- 実質無限
- サーバーレス
まず、S3を利用している時点で、対象URLが1憶でも10億でも関係なく無制限に作成が可能になります。また、AWSのサービスを利用しているため、サーバーレスという選択肢も取れるという事になります。
しかし、サーバーレスで、サーバーの維持費がかからないというメリットがすごく煌びやかに聞こえる人もいるかも知れませんが、AWSを利用すること自体が、非常に学習コストが高いという事にもなります。
短縮URLをデータベースで管理
データベースを利用する方法が一番簡単ではないでしょうか。
ファイルを利用した場合と仕組み自体は同じですが、その管理性が容易になります。短縮URLに対するアクセスはPythonやPHPと言ったプログラム言語を経由したアクセスになりますので、データベースで管理した方が、扱いが容易です。
そのため、データベースを使った前提で、説明します。
データベースでどのように短縮URLを管理しているのか
最も簡易で且つ操作性が高い手段がNoSQLを利用した方法です。
NoSQLを使って短縮URLを管理する際に、最も利点が強くなるのがS3を利用した場合と同じく、管理の上限がほぼないからです。
NoSQLはRDBと異なり、厳密なACID態勢を考慮しないため、超高速にデータの取り出しを行う事ができます。また、Key-Value形でデータを管理するため、
- Key:アクセス元
- Value:アクセス先
と言った、短縮URLを構成するためのようなデータ格納ができるのです。
あと、このアクセス元とアクセス先の対応表をプログラムの中で管理し、〇〇にアクセスがあった場合、◇◇に転送する と言った処理を行えばよいだけです。
基本的にはファイルで管理しようともデータベースやS3で管理しようとも、この〇〇にアクセスがあったら◇◇に飛ばすという仕組みで処理がうごいています。
コメント