AWSのネットワーク各機能の座学を行いましたが、いよいよ実践的に進めていきましょう!まずはドメインの取得と登録を行います。新しくドメインを取得し、それを各AWSサービスに割り当てて利用していきます。
【ハンズオン】ドメイン取得しRoute53で運用する

一部環境についてご注意
AWS Route53ではドメインの購入も可能ですが、一部学習環境では購入制限があります。今回は別途ドメイン取得できるサービスを併用し実習を進めていきます。
今回のハンズオンのゴールは、ドメインを取得しS3で静的コンテンツをその取得したドメイン名で公開するという内容です。

ドメインの取得については、通常ならば有料で購入が必要になるのですが、今回は無料ドメイン取得サービスを用います。
【ハンズオン:01】ドメインをFreenomで取得する
まずは無料でドメインを取得しましょう。freenomという無料ドメイン取得サービスがあります。

freenomで取得できる無料ドメインは以下4つです。
まずは好きなドメイン名が空いているか?トップレベルドメイン名も込みで調べてみましょう!

ドメインが未使用ならば利用可能です。

チェックアウトボタンを押して進めます。

確認画面が出てきますので、Continueボタンを押して次へ進めます。

金額確認と利用者認証の画面が表示されます。今回はGoogleアカウントを用いてSocial Sign inします。

Social sign inで用いるアカウントは、@gmail.comで終了する一般的なアカウントを用いてください。

Social sign inで用いるアカウントについて
企業や教育機関などで発行されるGoogleアカウントの場合ですとSocail sign inが使うことが出来ない場合があります。
Social sign inが終わると無事にドメイン取得が出来ました。メニューからMy Domainsを選択すると取得したドメインが表示されます。


取得できない場合は・・
ドメインが取得できてない場合は慌てずに、一旦Social sign in後に改めてドメイン取得作業を行ってください。
freenomは動作が不安定ですので、正常に取得できない場合もあるためです。
【ハンズオン:02】 取得したドメインをRoute53で登録する。
無料で取得したドメインですが、このままですと何も利用が出来ません。Route53で利用できるように準備をしましょう。
マネージメントコンソールよりRoute53を選択します。

一部環境によってはドメインの購入が出来ません。

しかし取得後のドメインの管理は可能です。ホストゾーンの作成を押しましょう。

freenomで取得したドメイン名を入力します。今回はインターネットへドメイン情報を提供しますのでパブリックホストゾーンのままにします。

ホストゾーンの作成ボタンを押します。

ホストゾーンの登録が完了しました。

【ハンズオン:03】freenomの登録情報を変更する
Route53でホストゾーンの登録が完了しました。これで取得したドメイン情報はAWSのネームサーバーで管理される事になります。

nsから始まるAWSのネームサーバーで取得したドメインを管理している旨、freenom側の登録情報を変更する必要があります。
freenomの管理画面より登録したドメイン欄にあるManage Domainを押します。

Management Toolsメニュー内よりNameserversを選択します。

Use custome nameserversを選択後、Route53で作成したホストゾーン情報内にあるネームサーバー情報を入力していきます。
末尾の.(ドット)に気をつけて!
Route53に登録されているネームサーバー情報の末尾には.(ドット)が含まれています。Freenomには.(ドット)は登録しないようにお気をつけください。

入力後、Change Nameserversボタンを押し更新作業を完了させてください。

【ハンズオン:04】ドメイン情報が反映されたか確認する
freenomで情報変更後、即時利用できる訳ではありません。長い場合ですと数時間末必要も出てきます。少し待った後にドメイン情報が更新されたか確認しましょう。
Windowsの場合:コマンドプロンプトやPowerShellを使います。
nslookup
set type=all
(取得したドメイン名入力)

nameserver欄が指定したAWSのネームサーバーになっていれば情報が更新されています。
MacOSの場合:ターミナルを使います。
dig NS (取得したドメイン名を入力)

更新に時間がかかる場合があります
ネットワーク環境により更新に時間がかかる場合があります。更新されなくても慌てず待ちましょう。
【ハンズオン:05】静的コンテンツ公開用のS3バケットを準備する。
独自ドメインの準備が出来ました。次は取得したドメイン名で静的コンテンツ公開用のS3バケットを準備しインターネットへコンテンツ公開しましょう!
S3をマネージメントコンソールより選択します。

バケットの作成を行います。注意すべき点としてバケット名はインターネットで公開する際のドメイン名で作成する事です。
作成するリージョンについて
学習環境によって利用できるリージョンが固定化されている場合があります。作成先リージョンの選択は気をつけてください。

インターネット上で不特定の方へ公開する為に、ブロック機能であるブロックパブリックアクセス設定のチェックは外します。

公開確認もチェックを入れて承諾します。

バケットを作成ボタンを押します。

残る機能設定は2つです。
- 静的ウェブサイトホスティング設定
- バケットポリシー設定
まずは静的ウェブサイトホスティング設定を有効にしましょう。作成したバケット名を選択後、プロパティタブを押します。

一番したにある静的ウェブサイトホスティング機能の編集ボタンを押します。

機能を有効にし

インデックスドキュメントやエラードキュメント欄も入力します。

最後に変更の保存ボタンを押します。

次にバケットポリシーの設定です。アクセス許可タブより

バケットポリシーを入力します。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "PublicReadGetObject",
"Effect": "Allow",
"Principal": "*",
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::バケット名/*"
}
]
}

上記バケットポリシーが入力できない場合
バケットポリシーの入力ができない場合には、ポリシージェネレーターでポリシーを作りましょう!
編集ボタンを押します。

ポリシージェネレーターのボタンを押します。

別ウィンドウでポリシーをウィザード形式で設定できるのが、ポリシージェネレーターです。

まずはSelect Type of PolicyではS3を選択します。

次にEffectはAllow,Principalは*を入力します。

ActionsではGetObjectを選択します。

ARN部分はAmazonのリソース指定形式で作成したS3バケットを入力します。

arn:aws:s3:::バケット名/*
入力後はAdd Statementボタンを押します。

すると設定一覧に追加されます。その後Generate Policyボタンを押します。

バケットポリシーがJSON形式で表示されますのでコピーします。

コピー後のポリシーをバケットポリシー編集画面に貼り付けます。

変更の保存ボタンを押します。

保存後はパブリックアクセス可能になります。

作成バケットには公開用に適当なインデックスドキュメント(ファイル名:index.html)を保存してください。

念の為プロパティタブの静的ウェブサイトホスト機能にて設定されているURLにアクセスし、コンテンツが閲覧できるか確認します。

【ハンズオン:06】Route53で作成済S3のレコード割当を行う。
ドメイン情報の準備、公開コンテンツの準備、それぞれ終わりました。あとは関連付けの作業となります。
Route53を選択します。

登録したホストゾーンがあるのでクリックします。

ホストゾーン一覧画面より登録したホストゾーンをまたクリックします。

静的ウェブサイトホスト用のレコードを作成します。レコードの作成ボタンを押します。

レコード作成ですが2種類の方法があります。
- ウィザード形式
- クイック作成方式
今回はクイック作成形式でレコード作成を行いましょう。

S3バケット作成ではホスト名無しのドメイン名で登録しました。レコードも同様にレコード名入力無しにします。
その後S3を選択する為にエイリアスのボタンをONにします。

エイリアスのボタンがONですと、AWSリソースから選択が可能になります。S3ウェブサイトエンドポイントへのエイリアスを選択。

リージョンはS3バケットを作成したリージョンを選択します。

作成したバケットがリストから選択できますので選びます。

最後にレコードを作成ボタンを押します。

レコードの作成が終わります。

【ハンズオン:07】ブラウザで動作確認を行う。
ホスト名無しのドメイン名でS3バケットの作成やRotue53レコードの作成を行いました。静的コンテンツがそのホスト名無しのドメイン名で公開されましたので、ブラウザでアクセスし動作確認します。

レコード作成後、反映に時間がかかる場合があります。ブラウザなどを一旦終了し少し時間を開けてアクセスしてみてください。

プロトコルはhttpです
S3で公開された静的コンテンツはhttpで提供されています。ブラウザでアクセスする際にhttpsでアクセスしないよう気をつけてください。
まとめ
今回は簡単なドメイン設定を行うRoute53+S3のハンズオンでした。
無料のドメインサービスFreenomにて新規ドメインを取得しましたが、ビジネスで使うには支障もありますのであくまでも勉強用と割り切って利用してください。ビジネスなどで用いる場合には正規のレジストラからドメイン購入するほうが良いかと思います。
S3バケットやRoute53のレコード情報は削除してください
利用料金が発生しますのでS3バケットとRoute53のレコード情報は削除してください。
なおホストゾーンは今後もハンズオンで用いますので残すよう気をつけてください!