1
/
5

【TECH BLOG】既存のAkamai設定をTerraformでIaC化して便利に

こんにちは、技術本部SRE部ZOZO-SREブロックの鈴木です。普段はSREエンジニアとしてZOZOTOWNの裏で動いているオンプレミスとクラウドの構築・運用・保守に携わっています。

ZOZOTOWNのインフラは大半がIaC化されていますが昔からあるリソースに関してはその限りではありません。弊社で導入しているAkamaiもIaC化されていないリソースの1つでしたが、頻繁な更新などによって重複した設定が入っている箇所がある等、長く運用しているとどうしても陥ってしまう沼にハマっていました。本記事ではこの沼から抜け出そうと部分的にもIaC化を導入して問題を解決したことを、Akamaiのネットワークリストを例に紹介します。同様の問題を抱えていた方の参考になれば幸いです。

はじめに

まずはじめに、本記事で登場するキーワードであるInfrastructure as Code(以下IaC)について簡単に説明します。

IaCとは、インフラ構成をコード化して、コードの内容を自動でプロビジョニングすることです。コード化することによってソフトウェア開発における便利なツールが使えるようになり、様々な恩恵を受けられます。

ZOZOTOWNにおいては大半のリソースがIaCによって管理されているものの、昔からあるリソース、そもそもIaC化にかかるコストが効果に見合わないものはIaC化されないという柔軟な運用になっています。弊社では数多くのSaaSを導入しており、今回テーマとなるAkamaiも費用対効果が見合わないものとして導入当時にIaC化されていなかったリソースです。

Akamaiは弊社で利用しているCDNサービスであり、様々な用途で利用されています。以下のブログでもAkamaiを利用した事例について書かれています。


ZOZOTOWNにおけるAkamai Application Load Balancerの導入 - ZOZO TECH BLOG
こんにちは、SRE部の秋田と鈴木です。ZOZOTOWNのオンプレミスとクラウドの運用・保守・構築に携わっています。 現在、ZOZOTOWNはリプレイスプロジェクトの真っ只中です。そのため、いくつもの壁にぶつかりつつも、それらを1つずつ解決してプロジェクトを進めている状況です。 ...
https://techblog.zozo.com/entry/zozotown-akamai-alb


既存のAkamai設定をTerraformでIaC化して便利に - ZOZO TECH BLOG
こんにちは、技術本部SRE部ZOZO-SREブロックの 鈴木 です。普段はSREエンジニアとしてZOZOTOWNの裏で動いているオンプレミスとクラウドの構築・運用・保守に携わっています。 ...
https://techblog.zozo.com/entry/akamai-iac-with-terraform#:~:text=techblog.zozo.com-,techblog.zozo.com,-Akamai%E3%82%92%E3%81%84%E3%82%8D%E3%81%84%E3%82%8D


Akamaiをいろいろなところで使うに従って設定情報は増えていきます。Akamaiの設定のうち、頻繁に変更するものとして「ネットワークリスト」があります。ネットワークリストはIPおよびGEOを単位としたリストを作り、ネットワークファイアウォールのブロック制御等を行うことができます。弊社では特定のIPのみ通信を通したいときなど、用意しておいたネットワークリストにIPを追加することで通信を許可できるように設定しています。



課題

Akamaiをしばらく運用するに従い、いくつか課題点がでてきました。

ネットワークリストの更新はAkamaiのコンソールから行っていました。ネットワークリストの更新が頻繁になるにつれ、このIPはなんのために追加したものなのか、いつ誰が追加したものなのかを追うのが困難になっていました。Akamaiのコンソール上にも設定変更の履歴が表示されるものの変更内容の詳細までは表示されません。それぞれのネットワークリストにはコメントをつけられるものの文字数制限があり、必要な情報すべてを書けませんでした。リストの内容の検索ができなかったため、内容の重複するようなリストがいくつも作成されるなど、次第に積み重ねによる使いにくさがどんどん増えていきました。

「設定の内容が可視化できていない」ことが私達の課題点でした。

これらの解決策としてパラメータシートのような資料を作り、設定を記録していくことが考えられますがメンテナンス性に難があります。そこで私達はAkamaiの設定情報をIaC化することで解決を図りました。今回のIaC化はひとまずネットワークリストのみに対象を絞ります。目標としては「ネットワークリストの設定変更の履歴を追える」「CI/CDを用いたデプロイが可能」の状態を目指し、AkamaiのすべてをIaCを目指すところまでは行わないことに決めました。

AkamaiのIaC化

AkamaiをIaC化する上で使えるツールとしては「Akamai API」「Akamai CLI」「Terraform」の3つがあります。

Akamai APIを用いることでAkamaiの提供する機能をAPIで操作できます。APIを直接利用して操作するため、コーディングが必要となりますが自由度が高く複雑なインフラも簡単に構築できます。


Akamai API入門 Part 1 - API Client & EdgeGrid | Akamai Japan Blog
2010 年代以後、IT 技術と環境の飛躍的な発展が進む一方、世界的な少子化の影響もあり IT 業界に従事するエンジニア数は減少傾向にあります。その結果、情報資産管理自動化の必要性が増し、運用管理文化の改革を求める DevOps 概念の普及が推し進められました。そして DevOps や自動化を可能とする、異なる操作方法を持った機種間の汎用操作インターフェース技術として API が広く使われるようになりました。 Akamai も DevOps への全面的な参加を表明し、Akamai {Open} プロジェク
https://www.akamai.com/ja/blog/developers/akamai-api-part1-api-client-edgegrid


Akamai CLIはAkamaiを操作するためのCLIツールです。GUIを使わずにAkamaiを操作でき、工夫次第でIaC化などにも有用なツールです。


Akamai API入門 Part 3 - 手軽API実行ツール、Akamai CLI
Akamai CLI (Command Line Interface) はターミナルで操作するツール群です。 - Akamai CLI は、用意された機能の集まり(パッケージ)を活用するためのベースとなるプログラムです。 Akamai CLI とは、Akamai が外部公開した API 機能を簡単なコマンドで実行可能とするツールです。Akamai CLI より API ユーザーは API の動作スキームや認証プロセスに沿った開発工数を省いてすぐ API を実行できます。2021 年時点、Akamai CL
https://www.akamai.com/ja/blog/developers/akamai-api-part3-akamai-cli


Terraformは代表的なIaCツールであり、Akamai社がTerraformのProviderを提供しているため、ほとんどの設定がTerraform上で管理可能です。代表的なIaCツールであり、IaC化したコードのデプロイ等の機能だけでなく、インポートや実際の環境との差分検知など便利な機能が多数あります。

Akamai CLIを用いてTerraformの設定ファイルを生成も可能です。初期構築の際など複雑な設定をする際にはこちらの機能を利用するとお手軽にIaC化を進められます。弊社でもWEARチームがAkamai CLIからTerraformの設定ファイルを作成して適用する流れをProperty Managerの設定の際に利用しています。


既存のAkamai設定をTerraformでIaC化して便利に - ZOZO TECH BLOG
こんにちは、技術本部SRE部ZOZO-SREブロックの 鈴木 です。普段はSREエンジニアとしてZOZOTOWNの裏で動いているオンプレミスとクラウドの構築・運用・保守に携わっています。 ...
https://techblog.zozo.com/entry/akamai-iac-with-terraform#:~:text=%E3%81%97%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82-,techblog.zozo.com,-%E3%81%9D%E3%82%8C%E3%81%9E%E3%82%8C%E3%81%AE%E3%83%84%E3%83%BC%E3%83%AB


それぞれのツールについて簡単に比較したものが以下になります。

観点        Akamai API Akamai CLI Terraform
柔軟な設定     ◎     ◎     ○
既存設定のインポート △     △     ◎
導入スピード    △     △     ○

各種機能が揃っており、代表的なIaCツールでありメンバーも特別な学習をすることなく利用できる点に魅力を感じ、今回はTerraformを用いてIaC化を行いました。特にすでにあるAkamaiの設定を手軽にインポートできる機能はAkamaiをすでに長く利用していた私達の求めていたものでした。

続きはこちら

株式会社ZOZOからお誘い
この話題に共感したら、メンバーと話してみませんか?
株式会社ZOZOでは一緒に働く仲間を募集しています
1 いいね!
1 いいね!

同じタグの記事

今週のランキング

株式会社 ZOZOさんにいいねを伝えよう
株式会社 ZOZOさんや会社があなたに興味を持つかも