はじめに
Aレコード(ドメイン名をIPv4アドレスにマッピングするためのDNSレコードの一種)の変更作業はそれほど頻繁には発生しないかもしれませんが、複数のサイトを運営していると、この作業が必要になることがあります。Cloudflareに登録しているサイトのAレコード変更は、一般的にはブラウザから行いますが、ドメインが多数ある場合、対象の項目にたどり着くまでにかなりの時間がかかることもあります。そこで今回は、APIを利用してAレコードを変更する方法を試してみたいと思います。手順については、公式サイトやGoogleで検索して確認するのが一般的ですが、最近ではAIを活用して工数を削減することが一般的になっています。そこで、一例としてAIを利用した手順を紹介します。AIにはChatGPTやGemini、Claudeなどさまざまな選択肢がありますが、今回はPerplexityを用いた場合の簡易手順を紹介します。
Cloudflareとは
Cloudflareは、ウェブサイトのパフォーマンス向上とセキュリティ強化を実現するための多様なサービスを提供しています。主な機能には、コンテンツデリバリーネットワーク(CDN)、DDoS攻撃防御、Webアプリケーションファイアウォール(WAF)、DNS管理、そしてZero Trustセキュリティがあります。これにより、ユーザーは高速で安全なオンライン体験を享受でき、悪意のある攻撃からウェブサイトを保護することが可能です。また、Cloudflareは簡単な設定で導入できるため、多くの企業にとって利用しやすいソリューションとなっています。
Perplexity AIとは
Perplexity AIは、2022年に開発された対話型AI検索エンジンです。このプラットフォームは、自然言語処理や機械学習技術を活用し、ユーザーからの質問に対してリアルタイムで情報を検索し、出典元を明記した回答を提供します。特に、従来の検索エンジンとは異なり、ユーザーが自然な言葉で質問でき、その質問に対して直接的な回答が得られる点が特徴です
Cloudflareに登録のあるAレコード( IPアドレス)の変更作業の流れ
Aレコードの変更作業は、特に異なるFQDN(完全修飾ドメイン名)を扱う場合、慎重に行う必要があります。誤って全く異なるFQDNのIPアドレスを変更してしまうと、サイトに影響を及ぼす可能性があります。そのため、まず対象の”FQDNのIPアドレスを確認するためのスクリプトA”を作成し、現在のIPアドレスを取得して正確な情報を確認します。その後、”IPアドレス変更用のスクリプトB”を作成して実行し対象のIPアドレスの変更を行います。(スクリプトAはdigコマンドでも可能ですが、API経由での情報の取得確認も兼ねております)Cloudflare APIを利用したスクリプト作成はAIにヒアリングしながら進めていきます。これにより、手動での操作ミスを防ぎつつ、効率的にIPアドレスの管理が可能となります。
Perplexity AIを利用するため、https://www.perplexity.ai/にアクセスします
スクリプトA (IP確認用スクリプト)
プロンプトに以下の様に入力します
以下のようなレスがあります
スクリプトAの準備ができました。
しかし、スクリプトAを実施するにあたり、必要な情報(API_TOKEN、ZONE_ID)が不足しているため、さらに検索を行います。AIは前回の会話を記憶しているため、知りたい点だけを質問することで、効率的に情報を得ることができます。これにより、必要な情報を迅速に収集し、スクリプトの実行準備を整えることが可能です。
プロンプト: API_TOKENの確認方法は?
プロンプト: example.comのZONE_IDの確認方法は?
※ zoneですので、FQDNの www.example.com ではなく、example.com になる点に注意
これでスクリプトAを実行するにあたり、必要な情報が揃いました。ローカル端末にて、スクリプトA(a.sh)を作成します※ ”API_TOKEN”と”ZONE_ID”を適切に置換が必要です
スクリプトを実行する前に、以下の点を確認しておくと良いでしょう。1.APIトークンの取得: CloudflareのAPIトークンは、特定の権限を持つように設定されていることを確認してください。 特に、DNSレコードの編集権限が必要です。2.ゾーンIDの確認: 対象のドメインに関連するゾーンIDが正しいかどうかを確認します。 これには、Cloudflare APIを使用してゾーン情報を取得するコマンドを実行することができます。
スクリプトAの実行
結果を確認して、IPアドレスが正しく変更されたかどうかを検証します。問題が発生した場合は、エラーメッセージやログを参照し、必要に応じて修正を行います。このプロセスにより、安全かつ確実にIPアドレスの変更作業を進めることができます。
※実際には、www.example.comではなく、実在するFQDNで仮作業を行いましたが、設定していた「1.1.1.1」と正しいIPアドレスが表示されることを確認できました。(digコマンドでも確認できますので一致しているか確認も有効です)
スクリプトB(IP変更用スクリプト)
次に、IPアドレスを変更するためのスクリプトBを作成します。
スクリプトBの準備ができました。
※ b.shのスクリプトにおいてIPアドレスを変更する際には、$RECORD_IDが必要です。この部分が自動で取得できるように記述されている点は、工数の削減につながる重要な要素です。
スクリプトBの実行
ローカルの端末でスクリプトB(b.sh)を作成し実行します。さらに変更されたIPアドレスを確認するために再度スクリプトA(a.sh)も実行します。これにより、IPアドレスの変更が正しく行われたかどうかを確認できます。
IPアドレスが変更されていることが確認できました。(実在するFQDNで実施しているため一部修正してあります)
ただ、実行結果のメッセージ "ttl":1 が気になります
TTLが1秒という設定は気になります。非常に短いTTLは、DNSレコードのキャッシュが頻繁に更新されることを意味し、サーバーへの負荷が増加する可能性があります。このため、digコマンドを使用してIPを確認するとともに、権威DNSサーバーからTTLを確認してみることにします。
localhost% dig @権威DNS www.example.com
(実在するFQDNで実施しているため一部修正してあります)
変更後のIPアドレスの確認とともに、TTLが300秒であることが確認できました。1秒ではありませんでしたが、やはり短めな設定であると感じます。このため、普段の運用ポリシーに基づいてTTLを見直すことをお勧めします。
最後に
AIは手順の確認や補助的な役割として活用することが最も効果的です。AIを利用する際は、その利点を最大限に引き出すために必要な前提知識を持ち、自ら確認・判断することが重要です。特に、自動化されたプロセスは手動でのエラーリスクを低減し、工数削減にもつながりますので、積極的に取り入れていくべきです。また、変更した箇所以外の正常性確認を実施することも、システムやウェブサイトの運用において非常に重要であり、全体の安定性を保つためには欠かせないプロセスです。