Akamaiとは
世界最大手のコンテンツデリバリネットワーク(CDN)事業者であるAkamai technologies, inc.が適用するサービスです。Akamaiが提供するEdgeサーバのキャッシュ機能を用いて、コンテンツ配信によるシステム負荷軽減を行うのが主な機能です。
あまり表に出てこないサービスではありますが、Akamaiを利用している企業は非常に多く、Akamaiで障害(※)が発生すると甚大な影響を及ぼす可能性がありますので、機能を理解しておくことは重要です。
※2021年に発生したAkamai障害が記憶に新しいです。私が担当しているシステムも被害を受けました。
https://xtech.nikkei.com/atcl/nxt/news/18/10626/
Akamai導入後のコンテンツ配信の流れ
Akamaiを導入することで、Akamai Edgeサーバにてキャッシュされたコンテンツがユーザに配信されるようになるため、オリジンサーバの負荷を軽減することができます。キャッシュされたコンテンツがAkamai Edgeサーバに存在する場合のアクセスフローを下記に記載します。
①ユーザがサービスを利用するためにURLにアクセスした際、ローカルDNSサーバに対して名前解決要求を投げる。
②ローカルDNSサーバはシステムが提供しているDNSサーバに対して名前解決要求を投げる。
③DNSサーバはAkamaiアクセス向けのCNAMEを返却する。
※事前にAkamaiアクセス向けのCNAMEをDNSサーバに登録しておく必要がある。
④ローカルDNSサーバはAkamai DNSサーバに対して名前解決要求を投げる。
⑤Akamai DNSサーバはローカルDNSサーバに最適なAkamai EdgeサーバのIPアドレスを返却する。(ダイナミックマッピング機能)
⑥ローカルDNSサーバはAkamai EdgeサーバのIPアドレスをユーザに返却する。
⑦ユーザがAkamai Edgeサーバにリクエストを送信する。
⑧Akamai Edgeサーバがコンテンツのキャッシュを保持している場合、ユーザにコンテンツを配信する。
Akamai Edgeサーバにキャッシュがない場合の処理フロー
Akamai Edgeサーバにすべてのキャッシュがあるわけではありません。キャッシュが存在しない場合はシステム側で構築しているオリジンサーバにアクセスしに行く必要があります。Akamai Edgeサーバにキャッシュがない場合の処理フローを下図に示します。
①ユーザがサービスを利用するためにURLにアクセスした際、ローカルDNSサーバに対して名前解決要求を投げる。
②ローカルDNSサーバはシステムが提供しているDNSサーバに対して名前解決要求を投げる。
③DNSサーバはAkamaiアクセス向けのCNAMEを返却する。
※事前にAkamaiアクセス向けのCNAMEをDNSサーバに登録しておく必要がある。
④ローカルDNSサーバはAkamai DNSサーバに対して名前解決要求を投げる。
⑤Akamai DNSサーバはローカルDNSサーバに最適なAkamai EdgeサーバのIPアドレスを返却する。(ダイナミックマッピング機能)
⑥ローカルDNSサーバはAkamai EdgeサーバのIPアドレスをユーザに返却する。
⑦ユーザがAkamai Edgeサーバにリクエストを送信する。
⑧Akamai Edgeサーバがコンテンツのキャッシュを保持していない場合、Akamai Edgeサーバはオリジンサーバ(システムが提供しているWebサーバ等)の名前解決要求を投げる。
⑨DNSサーバがオリジンサーバのIPアドレスを返却する。
⑩Akamai Edgeサーバがオリジンサーバに対してリクエストを送信する。
⑪オリジンサーバがAkamai Edgeサーバに対してレスポンス(コンテンツ)を返却する。
⑫Akamai Edgeサーバはユーザにコンテンツを配信する。
Akamai Edgeサーバの変更について
ユーザからアクセスするAkamai Edgeサーバは、ユーザのロケーションから最適なEdgeサーバが選択されます。Akamai導入時の設定でTTL(Time To Live)の値を設定できるので短い期間であれば同じEdgeサーバにアクセスさせることは可能ですが、基本的にはアクセスするEdgeサーバは変わるものという前提で設計をしていく必要があります。
一方で、セキュリティ観点からオリジンサーバにアクセスできるEdgeサーバを制限したいという要件があるシステムもありますよね。その場合は、ある程度の期間、オリジンサーバにアクセスするEdgeサーバを固定することも可能(SiteShield機能)ですので検討してみて下さい。ただしEdgeサーバ変更の都度、ファイアウォールのアクセス制限設定等を変更する必要がありますのでご留意ください。
Akamai Edgeサーバ故障時の挙動
Akamai Edgeサーバが故障した際は、当該Edgeサーバを切り離し、正常なEgdeサーバに迂回してアクセスすることが可能です。Edgeサーバは世界中に分散配置されているため、可用性が非常に高くなっています。
Akamai Edgeサーバとオリジンサーバ間故障時の挙動
おわりに
最後まで読んでいただき、ありがとうございました。ほかにもAkamai関連の記事を配信していますので、ぜひ目を通してもらえると嬉しいです。
コメント