LoginSignup
1
1

More than 5 years have passed since last update.

Route53でホステッドゾーンを作る(ついでに可能ならドメインも買う)

Last updated at Posted at 2016-06-07

AWS SDKでRoute53の作業を横着するシリーズ

  • 「route53domains.checkDomainAvailabilit」でドメインが購入可能か確認
  • 取得可能なら「route53domains.registerDomain」でドメインを購入
  • 取得できない場合は「route53.createHostedZone」でホステッドゾーンだけ作る

そんな感じのスクリプトです。

    var domain = "example.net";
    var AWS = require('aws-sdk');
    var route53domains = new AWS.Route53Domains({
        apiVersion: '2014-05-15',
        accessKeyId: "ACCESS_KEY_ID",
        secretAccessKey: "SECRET_ACCESS_KEY",
        region: "REGION"
    });
    var params = {
      DomainName: domain,
    };
    route53domains.checkDomainAvailability(params).promise().then( (data) => {
        var response = .domain + ' is ' + data.Availability;
        if ( data.Availability == 'AVAILABLE') {
            console.log('Register your Domain in Route53Domains');
            var params = {
              AdminContact: contacts,
              DomainName: domain,
              DurationInYears: 1,
              RegistrantContact: contacts,
              TechContact: contacts,
              AutoRenew: true,
              PrivacyProtectAdminContact: true,
              PrivacyProtectRegistrantContact: true,
              PrivacyProtectTechContact: true
            };
            return route53domains.registerDomain(params).promise();
        } else {
            console.log('Create Route53 Hosted Zone');
            var params = {
              CallerReference: "XXX",
              Name: domain,
            };
            var route53 = new AWS.Route53({
                apiVersion: '2014-05-15',
                accessKeyId: "ACCESS_KEY_ID",
                secretAccessKey: "SECRET_ACCESS_KEY",
                region: "REGION"
            });
            return route53.createHostedZone(params).promise();
        }
    }).then( (data) => {
        console.log(data);
    });

ドメイン取得した場合の戻り値

{ OperationId: 'fee25dbf-04d4-44df-8861-eff2312a4c8f' }

HostedZone作った場合の戻り値

{
  Location: 'https://route53.amazonaws.com/2013-04-01/hostedzone/XXXX',
  HostedZone: {
    Id: '/hostedzone/XXXXXX',
    Name: 'example.net.',
    CallerReference: 'XXXX',
    Config: {
      PrivateZone: false 
    },
    ResourceRecordSetCount: 2 
  },
  ChangeInfo: {
  Id: '/change/XXXXXXXX',
     Status: 'PENDING',
     SubmittedAt: Tue Jun 07 2016 19:56:54 GMT+0900 (JST) 
  },
  DelegationSet:  {
    NameServers:  [
      'ns-XXX.awsdns-38.co.uk',
      'ns-XX.awsdns-01.com',
      'ns-XXX.awsdns-05.net',
      'ns-XXXX.awsdns-41.org' 
    ] 
  }
}
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1