朝日ネット 技術者ブログ

朝日ネットのエンジニアによるリレーブログ。今、自分が一番気になるテーマで書きます。

楽しく! AWSでウェブサイト構築(第3回)

初めましての方は初めまして。お久しぶりの方はお久しぶりです。jttest0です。 AWS触り始めて一年半くらい経ちました。

早速ですが良いお知らせと残念なお知らせがあります。まずは良いお知らせから行きましょう。

今回は、全3回にわたる連載記事の記念すべき第三弾です。よくぞここまでたどり着きました!

そして、残念なお知らせです。

今回は、全3回にわたる連載記事の記念すべき第三弾です。つまり最終回です。そんなぁ……

万が一、まだ第一回&第二回を読んでない方は先にそちらを読んで来ていただけると嬉しいです。そして一緒にこの喜びと悲しみを分かち合いましょう↓

楽しく! AWSでウェブサイト構築(第1回) - 朝日ネット 技術者ブログ

楽しく! AWSでウェブサイト構築(第2回) - 朝日ネット 技術者ブログ

今回は、予告通り「Route 53」を使って好きな「インターネット名」を取得し、作ったウェブサイトにくっつけましょう! ……と行きたいところだったのですが。

非常に申し訳ないです。AWS的にではなく、社内申請的に新規「インターネット名」の発行はもの凄い手間がかかってしまうのです。そんなわけで一部、本当に一部だけ「ここから先はキミの目で確かめてくれ!」になってしまいますこと、ご了承いただければと……。

※いつも通り前置きが長いので、構築部分のみを読みたい方は目次の『ドメインを購入しよう』に進んでください。

Route 53ってなんぞ?

Routeとは、進路や道筋のことです。そして53は、素数です。素数とは、寄る辺のない孤独な数字です。

つまり「Route 53とは、暗闇の荒野に進むべき道を切り開くこと!」というAWSの覚悟の表れ……ではありません。サービスの主体が使うポートが53番だかららしいです。ロマンが無いですね。

そんなわけで、恒例のAIに聞いてみようのコーナーです。何事も三回続けば伝統と言いますしね。

  1. Route 53は、AWS(Amazon Web Services)が提供するスケーラブルで高可用性のあるDNS(ドメインネームシステム)ウェブサービスです。
  2. ドメイン名をIPアドレスに解決し、インターネット上のリソースへのアクセスを管理します。
  3. また、ドメイン登録やトラフィック管理機能も提供しています。

なるほど。……なるほど? どうやらこの「ドメイン名」なるものが肝のようですね。というわけで、GPTえもんに追加で聞いてみましょう。

  1. ドメイン名は、インターネット上で特定のウェブサイトやリソースを識別するための人間が読みやすい名前です。
  2. 例えば、「example.com」のような形式を持ち、IPアドレスと連携してアクセスを管理します。
  3. ドメイン名はDNSを介して解決され、インターネットのナビゲーションを簡素化します。

インターネット上のものにはIPアドレスと呼ばれる住所があり、実は皆さんはこの住所を元に色んなウェブサイトを表示しています。ですので、今見ているこのページも35.75.255.9と打ち込んでアクセスして来てくれているのだと思います。え? 違う?

はい。当然です。こんな数字の羅列、誰も覚えていられません。ですので代わりに、techblog.asahi-net.co.jpと打ち込めば35.75.255.9勝手に誘導されるような仕組みになっているのです。こちらなら、遥かに覚えやすいでしょう。

このtechblog.asahi-net.co.jpが「ドメイン名」、勝手に誘導が「IPアドレスに解決」です。

「ドメイン名」は基本的に先着順です。g〇〇gle.comと打って複数の、それも全然違う場所に辿り着いたら困りますよね。また、登録した「ドメイン名」の管理も行う必要があります。

これを丸っとやってくれるのが、今回触る『Route 53』というサービスになるわけです。

aws.amazon.com

docs.aws.amazon.com

さて、肝心のお値段についてなのですが。ドメインのお値段は、ピンキリです。本当に、上から下まで差がすごいです。

Amazon Route 53 Pricing for Domain Registration

一番安いので、$3 くらいでしょうか。円安でAWS料金が嵩みがちな昨今でも、ワンコインで買えちゃいます。逆に、みんな大好き「.jp」なんかは $90 もします。文字通り桁が違いますね。

ちなみに、co.jpやor.jpは選べません。AWSの仕様です。弊社(asahi-net.or.jp)とおそろっちにしようしても、Route 53では出来ません。仕様には抗えないですね。

また、これはあくまでも初期費用です。

ここに「ホストゾーン」と呼ばれるドメインを管理する場所の維持費と、お客様からのアクセスによって「ドメイン名をIPアドレスに解決」するたびに料金が発生しますのでご注意ください。

とはいえ、そこまで震えなくても大丈夫です。前者は 月100円弱、後者はなんと今回の構成では無料です! お買い得!

ドメインを購入しよう

それでは実際の構築に移っていきましょう。

まずは前回同様、AWSのコンソールにログインしてください。

もう手慣れたものですね。前回から 1Q 経てしまっているので、ところどころUIが変わっていますが気にしないで行きましょう。

いつも通り画面上部の『検索』ボックスに「Route 53」と入力し、Route 53のサービスページを開きましょう。

次に、『Route 53 の使用開始』から、『開始する』をクリックしてください。

続いて、『ドメインを登録』が選択された状態で再度『開始する』をクリックしてください。

すると、ドメインの購入にあたっての諸々が始まります。

先ほどお伝えした通り、ドメイン名は早い者勝ちです。使おうとしているドメインが、誰かに既に使われているかを、ここで確認することが出来ます。例えば!

はい、「asahi-net.jp」は弊社で既に使っています。ちなみにこちらもこの一連のブログと同じ構成となっていますので、ぜひアクセスしてみてください。

それはそれとして、AWS君は非常に親切(?)なので、末尾*1が違うだけのものや微妙~に違う「よく似た別のドメイン」も提案してくれます。

一番下の候補は最早別会社なのでは……?🤔 と思いつつ、ここで一つ注意喚起です。使いたかったドメインが使えなかったからと言って、寄せにいくのはネチケット*2としてやめておきましょう。(あと普通にフィッシング詐欺*3とかで使われる手法なので気を付けましょう)

自作のウェブサイトは、自分の子供も同然です。大切なお名前ですので、(お財布と相談しつつ)素敵な名前を付けてあげてくださいね。

誰にも使われていないドメインがあったら、よこっちょの『選択』を押してください。すると、カートに入ります。そのまま『チェックアウトに進む』に行きましょう。

すると、購入に必要な情報の入力画面になります。

期間 (まとめ買い割引とかは特にありません) を選択し、必要な連絡先情報を入力し、『送信』まで進んでください。

そして、おもむろに魔法の呪文を唱えます。

オロロンチョチョパァ……

すると、あら不思議。Route 53にて購入したドメインを管理するホストゾーンの出来上がりです。いやー、長く苦しい戦いでした。

……はい。言いたいことはわかります。ここに来て説明をスキップするんじゃないよと。

ですが。ですが……! 社内規定やらドメイン管理やらコストやら諸々がうわ何をすくぁwせdrftgyふじこlp にゃーん (社会性フィルター)

大変申し訳ございません。ドメイン購入 ~ ホストゾーン作成までは、公式ドキュメントか他社様の技術ブログをご確認ください……おすすめはこちら (弊社に技術支援いただいている株式会社サーバーワークス様のすばらしい技術ブログです)

さて。気を取り直して。

購入したドメインの、ホストゾーンが作成されました。されました。されたのです。おめでとうございます。

(ここからは海苔のお弁当くらいマスキングマシマシで行きますがご容赦を。あとマスキングした名前が校長先生のお話くらい長いかもしれませんが、気にしないで下さい)

ちなみに、『NS』と『SOA』の二種の『タイプ』のレコードが既に存在していると思います。これらはAWSからあなたへのプレゼント(AWSが発行したドメインだよーの証みたいなもの)なので、弄らずそのままにしておいてください。

証明書を作ろう

それでは前回作ったCloudfrontのディストリビューションに、この「ドメイン名」をくっつけて……

ぬん🦌

残念ながら、怒られてしまいました。

書いてあることを要約すると、作ったお店に「ドメイン名」をくっつけるためには「証明書」が無いといけないらしいです。

cogito ergo sum的な話ではなく、「くっつけようとしているドメイン名は私が所有しているものだ!」という話です。厳密には違いますが、そんな感じの理解で一旦大丈夫です。

簡単に例を出すと「自分が作ったお店に勝手にg○○gle.comとかyah〇〇.co.jpとか付けたらダメよ」ということですね。

ドメイン名は「住所」寄りの話でしたが、証明書は「看板と営業許可証」みたいなイメージを持っていただければと思います。正確 & 詳しく知りたい方は、「SSL/TLS 証明書」とかで調べてみてください。

さて。というわけで証明書を作らなければいけなくなりました。

こんな時は、まずは聞いてみましょう。

「Q. GPTえも~ん AWS上で使える証明書を出して~」

「A. あいよ、のび太くん! AWS上で使える証明書ね! それなら、「AWS Certificate Manager(ACM)証明書発行機(はっこうき)」 はいかがかな?」

最近ちゃんとタヌキ型ネコ型ロボットを見る機会が無かったのですが、こんな感じでしたっけ……? なんにせよ求めていた秘密道具は出してくれました。

ACM証明書発行機は、AWSの中で動く特別な機械なんだ。この機械に「証明書が欲しい!」ってお願いすると、AWSで使える証明書を簡単に作ってくれるんだよ。 まず、ACMの画面を開いて、「証明書をリクエスト」っていうボタンを押すんだ。 次に、証明書を使いたいウェブサイトの名前(例えば、nobita.com とか)を入力するんだ。 すると、ACMが「本当に君のウェブサイトなの?」って確認してくるから、メールとかで答えるんだ。 確認が終わると、ACMが自動で証明書を作ってくれるんだ!

ついでとばかりに、使い方も教えてくれました。やはり21世紀から来たお餅大好き22世紀から来たどら焼き大好きロボットは親切ですね。とはいえ、やはり画面が無いとあまり想像が出来ません。

手順は一見複雑そうだけど、やれば簡単だぜ! ということもあるので、実際にやってみましょう。

……というわけで「ACM(AWS Certificate Manager)」のサービスページにたどり着きました。もう画面上部から検索するなんてお手の物でしょう。

はい、ここで一点、落とし穴があります! 右上のリージョン設定を、『米国 (バージニア北部)』に変えましょう!!!

第2回の記事でふわっと触れましたが、CloudFrontはグローバルなサービスです。ワールドワイドなサービスです。逆に言えば、「日本のサービス」ではありません。そして基本的*4に、異なるリージョンのサービス間では連携は出来ません。

ですので、右上の「リージョン設定」が『アジアパシフィック (東京)』のままだと、せっかく作った証明書がCloudFrontに紐づけられずやり直しになってしまいます。気を付けましょう…… (一敗)。

ACMのトップページから『証明書をリクエスト』をクリックすると、リクエストの画面に飛びます。そのまま『次へ』。

証明書の詳細についての画面が出てきます。ここで、お店の名前を入力していきます。

ちなみに、入力欄のすぐ下にある『この証明書に別の名前を追加』は、将来的に支店を増やす想定があったりするときに便利です。

例として techblog.asahi-net.co.jp や mypage.asahi-net.or.jp 等ですね。最近はあまり見ませんが、「www.」の様に頭に草を生やしたい場合にも必要になります。

他はそのままで、『リクエスト』をクリックしましょう。すると……

保留中の状態になりました。これは画面上部にも書いてある通り、証明書の検証と承認を待っています。より具体的に言うと、「入力したドメイン名は本当にあなたの所有物ですか?」ということです。よその住所の証明書を勝手に作ることが出来たら大変だからですね。なので、存在証明をしてあげる必要があります。

画面真ん中ちょい右あたりの『Route 53でレコードを作成』をクリックし、

遷移した先で『レコードを作成』をポチっとすると……

なんと、必要な作業を裏で色々してくれたっぽいですね*5。これはらくちんです。そしてしばらくしてから画面をリロードすると、ステータスが発行済みに変化しています。これで、証明書の作成完了です。

完成の時

再度、Cloudfrontのディストリビューションのページを開いてください。右上の『編集』から、今度こそ自分だけの「ドメイン名」をくっつけましょう。

『Alternative domain name (CNAMEs) - optional*6』の下にある『項目を追加』ボタンを押すと、入力フィールドが出てきます。そこに、ここまでに作ったご自身の「ドメイン名」を入力しましょう。

続けて、『Custom SSL certificate - optional』の下にある『Choose certificate』プルダウンを開き、先ほど作った証明書を選びましょう。追加で表示されたオプションは、特に気にしなくてOKです。

そのまま一番下まで行って、『変更を保存』を押してください。

ディストリビューションの『代替ドメイン名』と『カスタムSSL証明書』が登録されました! ちなみに右上の『最終変更日』が『デプロイ』になるまで、少し待つ必要があります。

さて待っている間に、最後の工程を済ませてしまいましょう。いよいよです。

「Route 53」のサービスから、ご自身のホストゾーンを開いてください。先ほど証明書を作ったときのレコードが、いつの間にか追加されていると思います。

真ん中右の『レコードを作成』をクリックし、レコード作成メニューを開きましょう。

何やらいろいろ出てきますが、『エイリアス』スイッチをクリックし、右にずらします。すると、『値』と表示されていた入力欄が、『トラフィックのルーティング先』に切り替わります

『エンドポイントを選択』のプルダウンから『CloudFrontディストリビューションへのエイリアス』、次に出てくる『ディストリビューションを選択』の検索ボックスから作成したディストリビューションを選択します。

後はそのまま、右下の『レコードを作成』をクリックしましょう。

戻ってきたホストゾーンの画面を見てみると、今作成した四つ目のレコードが登録されていると思います。登録されていればOKです。

そんなこんなで再度、CloudFrontディストリビューションの様子を見に行ってみましょう。こちらも『最終変更日』が日付表示になっていればOKです。ちなみに「UTC」表示なので、+9時間して考えてください。

さて。第1回からここまで苦節1年。しかも今回に関しては当初の締め切りを二か月もオーバーしていまい申し訳ない限りですが、やっと準備が整いました。

ご自身のドメイン名に、アクセスしてみましょう……!

\( 'ω')/ ウオオオオオアアアーーーッ!

おわりに

いかがでしたでしょうか。

大変でしたでしょうか。私はかなり大変でした。このブログを完成させるのが、ですが。

なんと嬉しいことに、実はAWSでの環境構築はまだまだやれることが山積みです。

ログの設定を行ったり、自分で作ったエラーページを設定したり、セキュリティ強化のためWAFを設定したり、等々。出来ることはたくさんあります。

なんてったって、ようやくのぼりはじめたばかりだからな……このはてしなく遠いAWS坂をよ……。

とはいえ、ここで一区切りになると思います。当初予告していた三回分を無事書ききりましたし、今回は特に締め切りを激しくぶち抜いてしまったので続編の依頼はもう来ないかもしれません。大変申し訳ございません。

それはそれとして、この記事をきっかけにAWSに興味を持っていただけた方、続きが気になる方、その他森羅万象、弊社朝日ネットはいつでも門戸を開いております。是非、下記採用情報からアクセスしてみてください。

それでは引き続き、丁寧なインターネット生活をお過ごしいただければと思います。またいつかどこかでお会いできるのを、楽しみにしております。

採用情報

朝日ネットでは新卒採用・キャリア採用を行っております。

新卒採用 キャリア採用|株式会社朝日ネット

*1:「TLD」、トップレベルドメインと言います

*2:internet etiquetteの略。老人会で頻出するインターネット古語

*3:実は "fishing" ではなく "phishing"です。釣られたクマーは関係ないです

*4:あくまでも「基本的に」であり、可能なサービスはいくつかあります

*5:具体的には、後述の通り、所有しているホストゾーンに証明書用のレコードを追加してくれています

*6:前回の記事のスクショ見たら、ここ日本語でしたね……またいつの間にかUI変更されてますがな