【AWS】CLIでRoute 53を操作する方法を徹底解説!レコード作成・一覧確認・削除コマンド完全ガイド
生徒
「AWSのRoute 53をCLIで操作できるって聞いたんですが、本当にコマンドだけでDNSレコードの作成や削除ができるんですか?」
先生
「はい、AWS CLIを使えば、Route 53のホストゾーン管理やDNSレコードの作成、一覧取得、削除までコマンドで操作できます。」
生徒
「コンソールを開かなくても、AレコードやCNAMEレコードを設定できるんですね?」
先生
「その通りです。インフラの自動化やCI/CDでもよく使われます。それでは、AWS CLIでRoute 53を操作する方法を基礎から見ていきましょう。」
1. AWS Route 53とは何か
AWS Route 53とは、AWSが提供するフルマネージド型のDNSサービスです。ドメイン管理、DNSレコード管理、ヘルスチェック、ルーティングポリシー設定などを行うことができます。Webサイト公開やAPIサーバー運用では欠かせないサービスです。
Route 53では、ホストゾーンという単位でドメインを管理し、その中にAレコード、AAAAレコード、CNAMEレコード、MXレコードなどのDNSレコードを作成します。
AWS CLIを使うことで、これらのDNS設定をコマンドラインから操作できるため、インフラ自動化や構成管理に非常に役立ちます。
2. AWS CLIでRoute 53を操作する前準備
まずはAWS CLIがインストールされていることを確認します。インストール確認は次のコマンドです。
aws --version
aws-cli/2.15.0 Python/3.11.0 Linux/5.10 exe/x86_64
続いて、AWS CLIの認証設定を行います。まだ設定していない場合は次のコマンドを実行します。
aws configure
AWS Access Key ID [None]: AKIAxxxxxxxxxxxx
AWS Secret Access Key [None]: xxxxxxxxxxxxxxxxxxxx
Default region name [None]: ap-northeast-1
Default output format [None]: json
Route 53はグローバルサービスですが、IAMユーザーにroute53の操作権限が付与されている必要があります。ポリシー設定も事前に確認しておきましょう。
3. ホストゾーンの一覧を確認する方法
まずは、現在作成されているホストゾーンの一覧を確認します。AWS CLIでの確認コマンドは次の通りです。
aws route53 list-hosted-zones
{
"HostedZones": [
{
"Id": "/hostedzone/Z123456ABCDEFG",
"Name": "example.com.",
"CallerReference": "example-reference"
}
]
}
Idの値が非常に重要です。このホストゾーンIDは、DNSレコード作成や削除時に必ず使用します。後ほどのコマンドで必要になりますので控えておきましょう。
4. DNSレコード一覧を確認するコマンド
特定のホストゾーン内のレコード一覧を取得するには、list-resource-record-setsコマンドを使用します。
aws route53 list-resource-record-sets --hosted-zone-id Z123456ABCDEFG
{
"ResourceRecordSets": [
{
"Name": "example.com.",
"Type": "A",
"TTL": 300,
"ResourceRecords": [
{
"Value": "1.2.3.4"
}
]
}
]
}
このコマンドで、AレコードやCNAMEレコードなどのDNS設定状況を確認できます。DNSトラブルシューティングや設定確認時によく使用されます。
5. Route 53でAレコードを作成する方法
DNSレコードの作成や変更は、change-resource-record-setsコマンドを使用します。JSONファイルを使って定義するのが一般的です。
まずは変更内容を記述したJSONファイルを作成します。
{
"Comment": "Create A record",
"Changes": [
{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "test.example.com.",
"Type": "A",
"TTL": 300,
"ResourceRecords": [
{
"Value": "5.6.7.8"
}
]
}
}
]
}
次に、CLIで実行します。
aws route53 change-resource-record-sets --hosted-zone-id Z123456ABCDEFG --change-batch file://change.json
{
"ChangeInfo": {
"Status": "PENDING"
}
}
StatusがPENDINGからINSYNCに変われば、DNSレコード作成は完了です。
6. CNAMEレコードを作成する方法
CNAMEレコードも同様にJSON形式で定義します。ALBやCloudFrontと連携する場合にもよく使われます。
{
"Comment": "Create CNAME record",
"Changes": [
{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "www.example.com.",
"Type": "CNAME",
"TTL": 300,
"ResourceRecords": [
{
"Value": "example-alb-123456.ap-northeast-1.elb.amazonaws.com"
}
]
}
}
]
}
実行コマンドは同じです。
aws route53 change-resource-record-sets --hosted-zone-id Z123456ABCDEFG --change-batch file://cname.json
{
"ChangeInfo": {
"Status": "PENDING"
}
}
7. DNSレコードを削除する方法
削除する場合はActionをDELETEに変更します。ただし、削除するレコード内容は完全一致している必要があります。
{
"Comment": "Delete A record",
"Changes": [
{
"Action": "DELETE",
"ResourceRecordSet": {
"Name": "test.example.com.",
"Type": "A",
"TTL": 300,
"ResourceRecords": [
{
"Value": "5.6.7.8"
}
]
}
}
]
}
aws route53 change-resource-record-sets --hosted-zone-id Z123456ABCDEFG --change-batch file://delete.json
{
"ChangeInfo": {
"Status": "PENDING"
}
}
AWS CLIでRoute 53を操作できるようになると、DNS管理を自動化でき、インフラ構築やDevOpsの現場で非常に役立ちます。手動設定から卒業し、コードによるDNS管理を実践してみましょう。
まとめ
今回はAWS CLIを活用してRoute 53を操作する方法について、ホストゾーン一覧の確認からDNSレコードの作成、一覧取得、削除までを一通り解説しました。AWS Route 53はクラウド環境におけるDNS管理サービスであり、ドメイン管理、Aレコード設定、CNAMEレコード設定、TTL指定、レコード削除といった基本操作をコマンドラインから実行できる点が大きな特徴です。
特にaws route53 list-hosted-zonesやaws route53 list-resource-record-setsコマンドを使うことで、現在のDNS構成を可視化できることは運用管理において非常に重要です。インフラ構成管理やCI CD環境での自動化では、コンソール操作ではなくCLI操作が標準となります。AWS CLIを用いたRoute 53操作は、Infrastructure as Codeの実践にも直結します。
change-resource-record-setsコマンドではJSON形式の変更定義ファイルを利用しました。CREATEやDELETEアクションを指定することで、DNSレコードの新規作成や削除を安全に実行できます。AレコードやCNAMEレコードの作成時にはホストゾーンIDの指定が必須であり、事前にlist-hosted-zonesコマンドで確認しておくことが大切です。
DNS設定はWebサイト公開やAPIサーバー接続、メール設定などあらゆるクラウドシステムの基盤となります。Route 53をAWS CLIで操作できるようになることで、DNS管理の自動化、設定ミスの削減、構成の再現性向上につながります。開発環境、本番環境、ステージング環境それぞれで同じJSONファイルを使い回すことも可能です。
ここで、Route 53の操作手順を簡単に振り返ってみましょう。まずAWS CLIのバージョン確認と認証設定を行い、IAMユーザーに適切なroute53権限を付与します。その後、ホストゾーン一覧を確認し、対象のホストゾーンIDを取得します。次にDNSレコード一覧を取得して現在の状態を確認し、必要に応じてJSONファイルを作成してレコードの作成や削除を実行します。この一連の流れを理解することが、AWS Route 53を安全に操作するための基本となります。
Route 53操作の流れサンプル
以下はホストゾーン確認からAレコード作成までの代表的な流れです。実務でもよく使われる基本パターンです。
aws route53 list-hosted-zones
{
"HostedZones": [
{
"Id": "/hostedzone/Z123456ABCDEFG",
"Name": "example.com."
}
]
}
aws route53 list-resource-record-sets --hosted-zone-id Z123456ABCDEFG
{
"ResourceRecordSets": []
}
{
"Comment": "Create A record",
"Changes": [
{
"Action": "CREATE",
"ResourceRecordSet": {
"Name": "app.example.com.",
"Type": "A",
"TTL": 300,
"ResourceRecords": [
{
"Value": "10.0.0.10"
}
]
}
}
]
}
aws route53 change-resource-record-sets --hosted-zone-id Z123456ABCDEFG --change-batch file://a-record.json
{
"ChangeInfo": {
"Status": "PENDING"
}
}
このようにAWS CLIとJSONファイルを組み合わせることで、Route 53のDNSレコード管理を効率化できます。手作業によるコンソール設定と比較して、履歴管理や再利用がしやすくなる点も大きなメリットです。クラウドエンジニアやインフラエンジニアを目指す方にとって、Route 53とAWS CLIの理解は必須スキルといえるでしょう。
生徒
Route 53はコンソールだけでなくAWS CLIでも操作できることが分かりました。ホストゾーンIDが重要なんですね。
先生
その通りです。まずlist-hosted-zonesでホストゾーンを確認し、対象のIDを取得することが基本です。
生徒
DNSレコードの一覧確認はlist-resource-record-setsでしたね。現在の設定を把握してから変更することが大切だと理解しました。
先生
はい。いきなり変更せず、必ず現状確認を行うことが安全な運用につながります。
生徒
AレコードやCNAMEレコードの作成はJSONで定義してchange-resource-record-setsを使うのですね。CREATEやDELETEを切り替えるだけで管理できるのは便利です。
先生
その理解で完璧です。AWS CLIを使えばDNS管理を自動化でき、インフラ構築やDevOpsの現場で大きな武器になります。Route 53とAWS CLIの操作を繰り返し練習して、確実に身につけていきましょう。