開発

【図解】AWSでベーシック認証の検証環境を作成する方法

はじめに

お客さんにデザインを確認してもらうための検証環境を構築したい
頻繁に使用しないため従量課金のAWSで検証環境を構築したい

今回はこんな方向けに、Webサーバにベーシック認証を設定したAWS検証環境を作成する方法を解説します。

完成イメージおよび今回構築するAWS構成図は以下の通りです。

【完成イメージ】

ベーシック認証完成イメージ

【AWS構成図】

AWS構成図

本記事の内容

■ VPC・EC2インスタンス・サブネット等の作成方法

■ Webサーバ作成方法

■ ベーシック認証設定方法

■ SCPツールによるファイルアップロード方法

なお、今回VPCやサブネットはあらかじめAWS側で用意されているデフォルトのものを使用せずに、新規作成していきます。

VPCの作成方法

まず、AWSクラウド内に論理的に分離された仮想ネットワークを作成するため、VPCを新規作成します。

AWSマネジメントコンソールで「VPC」を検索し、以下のVPCの画面に遷移し、「VPCの作成」ボタンを押してください。

vpc新規作成画面

次にVPCの詳細設定をします。

VPC詳細設定画面

「IPv4 CIDRブロック」は以下のプライベートIPアドレスの範囲から指定します。
プライベートIPアドレスから外れるCIDRブロックも利用できますが、プライベートIPアドレスの利用が推奨されております。

10.0.0.0 – 10.255.255.255 (10.0.0.0/8)

172.16.0.0 – 172.31.255.255 (172.16.0.0/12)

192.168.0.0 – 192.168.255.255 (192.168.0.0/16)

今回は、AWS構成図にあわせて10.0.0.0/16を設定します。

作成ボタンを押したら、VPC作成完了です。

サブネットの作成方法

次にVPC内に配置するためのネットワーク空間であるサブネットを作成します。

AWSの使用上、VPCとサブネットは必ずセットで作成する必要があります。

画面左側のメニューのサブネットをクリックし、「サブネットの作成」ボタンをクリックします。

サブネット作成画面

サブネット詳細画面にて以下のように設定します。

サブネット詳細画面

名前タグ:どういうサブネット(public or private)、どのAZに所属しているかが分かる名前にすることをおすすめします。

VPC:先程作成したVPC

アベイラビリティゾーン:どれでもOKですが、今回は末尾が-1aのものを選択します。

作成ボタンを押したらサブネット作成完了です。

EC2インスタンス作成

次にWebサーバとなるEC2インスタンスを作成します。

AWSマネジメントコンソールの検索画面で「EC2」と入力し、下図のような画面へ遷移し、「インスタンスの作成」をクリックしてください。

インスタンス作成画面1

AMIの選択

「AMI」はEC2インスタンスで使用するOSやソフトウェアのテンプレートです。

今回は標準的なLinuxサーバが使用できればよいので、下図の赤枠のインスタンスを選択します。

AMI選択画面

インスタンスタイプの選択

こちらはEC2インスタンスの性能を選択する画面となります。

規模にもよりもますが、Webサイトの検証サーバとして使用するのであれば、「t2.micro」で問題ないと思います。

今回は「t2.micro」を選択します。

インスタンスタイプ選択画面

インスタンスの詳細設定

インスタンス詳細設定

ネットワーク:先程作成したVPCを選択

サブネット:先程作成したサブネットを選択

自動割当パブリックIP:有効にする。有効にすることで外部からアクセス可能なグローバルIPが発行されます。

終了保護の有効化:チェックする。チェックすることでインスタンスを削除しようとすると警告が出るようになります。

上記項目以外はデフォルトのままでOKです。

EC2インスタンスのストレージ(EBS)のタイプの選択

特に理由がない限りデフォルトのままでOKです。

EBS選択画面

タグの追加

こちらはEC2インスタンスに名前をつけるために、下記のようなNameタグを追加します。

タグ追加画面

セキュリティグループの設定

セキュリティグループの設定を行うことで、このインスタンスへのアクセス制限をすることができます。

デフォルトでSSHでの通信しか設定されていないのですが、今回Webサイトを表示するため、HTTPHTTPSも追加します。

特定のIPのみに公開制限したい場合は、ソース部分にIPを指定してください。

今回はフルオープンを設定しております。

セキュリティグループ設定画面

次に進むとこれまで設定した内容の確認画面に遷移しますので、問題なければ「起動」ボタンを押します。

インスタンス確認画面

キーペア作成

「新しいキーペアの作成」を選択して、秘密鍵を新規作成してください。

キーペア名を入力したら、「キーペアのダウンロード」を押してください。

こちらEC2インスタンスにログインするための秘密鍵で、のちほど使用しますので、大事に保管しておいてください。

ダウンロード完了しましたら、「インスタンスの作成」ボタンを押してください。

キーペア作成

EC2インスタンス起動確認

EC2インスタンス一覧画面で以下のようにステータスが「running」となっていればEC2インスタンス作成完了です。

インスタンス一覧画面

Elastic IPの設定

Elastic IPはEC2インスタンスのグローバルIPを固定するための機能です。

設定してないと、EC2インスタンスを再起動したら、毎回グローバルIPが変わってしまうため、設定しておきましょう。

まずは、AWSマネジメントコンソールから「VPC」を検索し、VPCの設定画面に遷移します。

次に、「Elastic IP」を選択し、「新しいアドレスの割り当て」をクリックします。

ElasticIP作成画面

次に詳細画面に遷移したら、デフォルトの設定のままで「割り当て」ボタンをクリックします。

ElasticIP詳細画面

次に作成したElastic IPを先程作成したEC2インスタンスに割り当てます。

作成したElastic IPを選択し、アクション>アドレスの関連付けをクリックしてください。

アドレスの関連付け

アドレスの関連付け設定画面に遷移したら、下図のように設定して「関連付け」ボタンを押して設定完了です。

アドレスの関連付け設定画面

試しにEC2インスタンスを再起動して、パブリックIPが変わらないことを確認してください。

インターネットゲートウェイの作成

次に、EC2インスタンスがインターネットへ接続できるよう「インターネットゲートウェイ」を作成します。

VPCの画面より、「インターネットゲートウェイ」を選択し、「インターネットゲートウェイの作成」ボタンを押してください。

internet-gateway作成画面

以下のように名前をつけ、「作成」ボタンを押してください。

internet-gateway詳細画面

次に作成したインターネットゲートウェイを先ほど作成したVPCにアタッチします。

作成したインターネットゲートウェイを選択し、アクション>VPCにアタッチをクリックしてください。

internet-gatewayVPCにアタッチ

詳細画面にて、先ほど作成したVPCを選択し、「アタッチ」ボタンを押してください。

internet-gatewayアタッチ詳細画面

ルートテーブルの編集

AWSのルートテーブルは、サブネット内にあるインスタンス等がどこに通信にいくかのルールを定めたものです。

つまり、ルートテーブルはパケットの宛先(IPアドレス)を見て、どこに通信を流すかが書かれている表です。

インターネットゲートウェイ経由で外部アクセスするため、ルートテーブルに今回作成したインターネットゲートウェイを設定する必要があります。

まずは、VPCの画面よりルートテーブルをクリックし、先ほど作成したVPCに紐づくルートテーブルを選択します。

※ VPC作成時に自動でルートテーブルが作成されております。

ルートテーブル一覧画面

対象のルートテーブルを選択した状態で、「ルートの編集ボタン」をクリックします。

ルートの編集

「ルートの追加」ボタンを押して、下図のように先ほど作成したインターネットゲートウェイを設定します。

ルート編集画面

次に、どのサブネットからの通信の制御をするのかを設定するため、サブネットの関連付けを行います。

対象のルートテーブルを選択した状態で、「サブネットの関連付け」を選択し、「サブネットの関連付けの編集」ボタンをクリックします。

サブネットの関連付け

下図のように今回作成したパブリックサブネットにチェックし、保存ボタンを押し、設定完了です。

サブネット関連付け設定画面
ここまででAWSサービスの設定は完了です!
お疲れ様でした!
少し休憩して、次はWebサーバを構築していきましょう!

Webサーバの作成

EC2インスタンスへのログイン

ターミナルで以下のコマンドを実行し、EC2インスタンスへログインします。

ログインするためには以下の情報が必要なのでご準備ください。

■ EC2インスタンスのパブリックIP(EC2インスタンスのIPv4パブリックIP部分に記載されている)

■ ダウンロードした秘密鍵

Webサーバ(Apache)のインストール

ターミナルで以下のコマンドを実行し、Apacheをインストールします。

サンプルファイルの作成

次にWebブラウザに表示するためのサンプルファイル(HTML)を作成します。

今回はブラウザに「hello world!!」と表示するHTMLファイルをサンプルで作成します。

Webサイトへアクセス

以下のコマンドでWebサーバを起動してください。

Webサーバが起動したら、以下のURLをブラウザへ入力してください。

http://パブリックIPアドレス/

以下のような画面が表示されたらOKです。

Webサイトサンプル

ベーシック認証の設定

パスワードファイルの作成

まず、ベーシック認証でログインする際のIDとパスワードを記載したファイル(.htpasswd)を以下のコマンドで作成します。

今回はIDとパスワードは以下の前提で行います。

ID user
パスワード password

Webサーバ設定ファイルの修正

次に、Webサーバ設定ファイル(.htaccess)へベーシック認証するための設定を追記します。

ベーシック認証の確認

以下のコマンドでWebサーバを再起動してください。

Webサーバが起動したら、以下のURLをブラウザへ入力してください。

http://パブリックIPアドレス/

以下のようなベーシック認証のログイン画面が表示されたらOKです。

ベーシック認証完成イメージ

また、ログインして以下の画面が問題なく表示されるかも確認してください。

Webサイトサンプル

SCPツールでサーバへファイルをアップロードする方法

Win-SCPやCyberDuckなどのSCPツールでファイルをアップロードする場合は、以下のように設定してください。

通信方式 SFTP
サーバ パブリックIP
ポート 22
ユーザ名 ec2-user
パスワード 入力せず、秘密鍵を指定するよう設定(ツールによって指定方法が異なるため、設定方法は省略)

また、ファイルをアップロードする際、ec2-userでファイルをアップロードすることになるため、以下のコマンドでec2-userに書き込み権限を与えてください。

さいごに

記事を読んで、環境構築は問題なくできたけど、VPCやサブネットの仕組みやAMI、EBSが何なのかいまいち理解できない。。。

そんな方は以下の教材がおすすめです。

これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座(SAA-C02試験対応版)

AWS認定ソリューションアーキテクト試験とタイトルにありますが、初心者向けにわかりやすく解説されており、ハンズオン形式で網羅的にAWSの主要サービスについて学べます。

「せっかくだから資格も取りたい」という方は、以下の記事を参考にしていただければと思います。

【SAA-C02対応】AWSソリューションアーキテクトに1ヶ月で合格するための勉強法AWSソリューションアーキテクト-アソシエイト(SAA-C02)に1ヶ月間の勉強で合格することができたので、合格体験をもとに1ヶ月で合格するための勉強法やおすすめ教材を紹介します。また、資格概要や試験内容、難易度、申込み方法等網羅的に解説しております。...

さいごまでお読みいただき、ありがとうございました。

フリーランスエンジニア転職完全ロードマップ

知り合いから
「フリーランスエンジニアになれば、年収800万円以上の高報酬でかつ、自由な働き方をチョイスできる」
というのを聞いて、フリーランスエンジニアに興味を持ったのですが、
当時SIer企業でエンジニアをやっていたボクはなかなか一歩踏みだせませんでした。

というもの以下のような不安があったからです。

■フリーランスエンジニアってかなりの技術力がないとなれないのではないのか?

■フリーランスエンジニアって不安定なのではないのか?

■フリーランスエンジニアって人脈やコネ、営業力が必要なのではないのか?

しかし、実際にフリーランスエンジニアになってみて気づきました。

これらはすべて間違いです。

過去のボクのようにフリーランスエンジニアに興味あるけど一歩踏み出せないという方向けに
『フリーランスエンジニア転職完全ロードマップ』
という記事を書きました。

この記事読めば、どうすればフリーランスになれるのかが分かりますので、ぜひ一読ください。