翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
DNS レコードを Amazon Route 53 プライベートホストゾーンに一括移行する
作成者: Ram Kandaswamy (AWS)
環境:本稼働 | テクノロジー: ネットワーキング; CloudNative DevOps;; インフラストラクチャ | AWS サービス: AWS Cloud9、Amazon Route 53、Amazon S3 |
[概要]
ネットワークエンジニアとクラウド管理者は、Amazon Route 53 のプライベートホストゾーンにドメインネームシステム (DNS) レコードを追加する効率的で簡単な方法が必要です。Microsoft Excel ワークシートのエントリを Route 53 コンソールの適切な場所に手動でコピーする方法は、手間がかかり、エラーが発生しやすくなります。このパターンは、複数のレコードを追加するのに必要な時間と労力を削減する自動化されたアプローチについて説明します。また、複数のホストゾーンを作成する手順を繰り返すこともできます。
このパターンでは、AWSCloud9 統合開発環境 (IDE) を使用して開発とテストを行い、Amazon Simple Storage Service (Amazon S3) を使用してレコードを保存します。データを効果的に操作するために、パターンは JSON形式を使用します。これは、そのシンプルさと Python ディクショナリ (dict
データ型) をサポートする機能があるためです。
注: システムからゾーンファイルを生成できる場合は、代わりに Route 53 インポート機能を使用することを検討してください。
前提条件と制限
前提条件
プライベートホストゾーンのレコードを含む Excel ワークシート
A DNSレコード、名前権限ポインタ (NAPTR) レコード、SRVレコードなど、さまざまなタイプのレコードに精通していること (サポートされているDNSレコードタイプを参照)
Python 言語とそのライブラリを理解していること
制約事項
このパターンは、すべてのユースケースシナリオを網羅しているわけではありません。例えば、change_resource_record_sets
呼び出しでは、 で使用できるすべてのプロパティが使用されませんAPI。 Excel ワークシートでは、各行の値は固有であると想定されます。完全修飾ドメイン名 (FQDN) ごとに複数の値が同じ行に表示されることが予想されます。そうでない場合は、このパターンで提供されるコードを修正して、必要な連結を実行する必要があります。
このパターンでは、 AWS SDK for Python (Boto3) を使用して Route 53 サービスを直接呼び出します。コードを強化して、
create_stack
およびupdate_stack
コマンドのAWS CloudFormation ラッパーを使用し、 JSON値を使用してテンプレートリソースを入力できます。
アーキテクチャ
テクノロジースタック
トラフィックをルーティングするための Route 53 プライベートホストゾーン
AWS 開発とテストIDE用の Cloud9
出力JSONファイルを保存するための Amazon S3
このワークフローは、前の図と「エピック」セクションで説明したように、以下のステップで構成されています。
レコードセット情報を含む Excel ワークシートを S3 バケットにアップロードします。
Excel データをJSON形式に変換する Python スクリプトを作成して実行します。
S3 バケットのレコードを読み取り、データをクリーンアップします。
プライベートホストゾーンにレコードセットを作成します。
ツール
Route 53 –Amazon Route 53 は、ドメイン登録、DNSルーティング、ヘルスチェックを処理する可用性とスケーラビリティの高いDNSウェブサービスです。
AWS Cloud9 – AWS Cloud9 は、複数のプログラミング言語とランタイムデバッガー、および組み込みターミナルをサポートする豊富なコード編集エクスペリエンスIDEを提供する です。また、ソフトウェアのコード作成、ビルド、実行、テスト、デバッグに使用するツールのコレクションが含まれ、クラウドへのソフトウェアのリリースに役立ちます。
Amazon S3 — Amazon Simple Storage Service (Amazon S3) は、オブジェクトストレージサービスです。Simple Storage Service (Amazon S3) を使用すると、いつでもウェブ上の任意の場所から任意の量のデータを保存および取得できます。
エピック
タスク | 説明 | 必要なスキル | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
レコード用の Excel ファイルを作成します。 | 現在のシステムからエクスポートしたレコードを使用して、完全修飾ドメイン名 (FQDN)、レコードタイプ、存続期間 (TTL)、値など、レコードに必要な列を含む Excel ワークシートを作成します。NAPTR および SRVレコードの場合、値は複数のプロパティの組み合わせであるため、Excel の
| データエンジニア、Excel のスキル | ||||||||
作業環境を確認します。 | AWS Cloud9 でIDE、Python ファイルを作成して Excel 入力ワークシートをJSON形式に変換します。(AWSCloud9 の代わりに、Amazon SageMaker ノートブックを使用して Python コードを使用することもできます)。 Python のバージョン 3.7 以降を使用していることを確認してください。
pandas パッケージをインストールします。
| 全般 AWS | ||||||||
Excel ワークシートデータを に変換しますJSON。 | Excel から に変換する次のコードを含む Python ファイルを作成しますJSON。
ここで、 | データエンジニア、Python スキル | ||||||||
JSON ファイルを S3 バケットにアップロードします。 | S3 バケットに | アプリ開発者 |
タスク | 説明 | 必要なスキル |
---|---|---|
プライベートホストゾーンを作成します。 | create_hosted_zone
などの Infrastructure as Code (IaC) ツールを使用して、これらのステップAWS CloudFormation を、適切なリソースとプロパティを持つスタックを作成するテンプレートに置き換えることもできます。 | クラウドアーキテクト、ネットワーク管理者、Python のスキル |
Amazon S3 から詳細をディクショナリとして取得します。 | 次のコードを使用して S3 バケットから読み取り、JSON値を Python ディクショナリとして取得します。
| アプリ開発者、Python のスキル |
スペースと Unicode 文字のデータ値を消去します。 | データが正しいことを確認するための安全対策として、
| アプリ開発者、Python のスキル |
レコードを挿入します |
ここで | アプリ開発者、Python のスキル |
関連リソース
リファレンス
「ゾーンファイルをインポートしてレコードを作成する」 (Amazon Route 53 ドキュメント)
「create_hosted_zone メソッド
」 (Boto3 ドキュメント) 「change_resource_record_sets メソッド
」 (Boto3 ドキュメント)
チュートリアルと動画
「Python チュートリアル
」 (Python ドキュメント) DNS Amazon Route 53 を使用した設計
(YouTube ビデオ、AWSオンライン Tech Talks)