目次
この記事では、AWSを初めて利用する方を対象に、AWSアカウント作成からウェブサーバの立ち上げまでの手順を示します。
AWSをはじめとするクラウドサービスでは、サーバを簡単に構築できます。本記事では、初めてAWSに触れる方が手軽にウェブサーバを立てる経験を得ることを目指します。
ただし、この記事ではウェブサーバを動かしてみるところまでの最低限の手順しかご紹介しません。今後もサーバを運用する前提であれば、セキュリティの観点など本記事では考慮不足が多くあることに注意してください。
ゴール
この記事のゴールは、AWS上にウェブサーバを立て、テストページを表示させることです。手順を追いながら、実際にウェブサーバが動作するまでを確認してみましょう。
前提
まずはAWSアカウントの作成から行いますので、クレジットカードを用意しておいてください。今回の記事の手順ではAWSの無料枠の範囲内にしますが、AWSアカウント作成にはクレジットカードの登録が必要です。
手順
以下の流れで作業をします。
①AWSアカウント作成とアカウントの最低限の設定
- AWSアカウント作成
- ルートユーザーでログイン
- IAM設定
②ウェブサーバを立ててみる
- EC2インスタンス作成
- インスタンスに接続
- Apacheインストール
- ブラウザでアクセス
- 後片付け
手順の詳細をこのあとご説明していきます。まずはAWSアカウント作成からです。
※手順の説明では、画面のスクリーンショットを掲載していますが、画面の表示内容やレイアウトは頻繁に更新されていますので、みなさんが試すときには実際の画面と異なっている可能性があります。
AWSアカウントを作成
以下のページにアクセスし、「AWSアカウントを作成」のボタンを押します。
以下のようなフォームが現れます。
「ルートユーザーのEメールアドレス」と「AWSアカウント名」を入力します。
「ルートユーザーのEメールアドレス」はGmailなどのフリーのメールアドレスでも登録可能です。メールアドレス1つあたりAWSアカウントを1つだけ作成可能です。
AWSアカウント名は半角アルファベットのほかハイフンも使えます。
「認証コードをEメールアドレスに送信」ボタンを押すと、メールが届きます。認証コードの入力を求める画面に遷移しますので、届いたメールに記載の6桁の認証コードを入力します。
あとは画面に従って必要事項を入力していきます。以下のような項目を入力します。
- ルートユーザーのパスワード(AWSアカウント作成後は「ルートユーザ」を普段使うことがありません。普段使うログインパスワードはAWSアカウント作成後の「IAM設定」の手順でご説明します)
- 用途(「ビジネス」または「個人」の選択です。個人でAWSを試す場合には「個人」を選択すればよいでしょう)
- フルネーム(ローマ字で入力)
- 電話番号
- 住所(ローマ字で入力)
- クレジットカード番号
以下のような画面にたどり着くと、次は電話番号での認証です。手元にある携帯電話番号を入力し、セキュリティチェックにあるCAPTCHAの数字を入力し、ボタンを押します。
携帯にSMSで4桁の確認コードが届きます。届いたコードを入力すると、次のようなサポートプランを選択する画面になります。ベーシックサポートが無料プランです。
以下のような画面になれば、AWSアカウント作成に成功です。
画面上では数分程度でと書いてありますが、私が試したところ瞬時にメールが届きました。「AWSマネジメントコンソールへ進む」を押すとログイン画面になります。
ルートユーザーでログイン
さきほど登録したメールアドレスとパスワードはルートユーザーと呼ばれています。AWSアカウント作成直後はそのルートユーザーでマネジメントコンソールにログインします。以下のログイン画面で「ルートユーザー」を選択し、メールアドレスを入力し、次に進むとパスワードを入力します。
マネジメントコンソールにログインできると以下のような画面になります。
リージョンの選択
マネジメントコンソールの右上にリージョンが表示されています。リージョンが東京以外になっている場合は東京を選択しておいてください。リージョンとはAWSのデータセンターの場所です。この記事では東京のデータセンターにサーバを立てることにします。
マネジメントコンソールで作業をしていると、たまに作成したはずのEC2インスタンスがマネジメントコンソールから見えなくなる事象が発生します。マネジメントコンソールがいつのまにか別のリージョンを参照してしまっていることがほとんどです。
IAM設定
最初にIAM関係の設定をします。ここの手順を踏まなくてもウェブサーバを立ち上げることが可能ですが、作成したAWSアカウントを今後も使う可能性があるのならば、セキュリティのためにここでご紹介する最低限の手順を踏んでおくことをおすすめします。
IAMはAWSのサービスへのアクセス権限を設定する仕組みです。Identity and Access Managementの略で、「アイアム」と読みます。
ルートユーザのMFA設定
AWSアカウント作成時に同時に作成されたルートユーザーにMFAを設定します。AWSのルートユーザーにはMFAを設定することが推奨されています。
MFAとはMulti-Factor Authenticationの略で、日本語では多要素認証といいます。パスワードだけでなく、手元の携帯電話など複数の要素を使う認証方式です。
この記事ではスマホアプリを使う方法をご紹介します。物理的にそのスマホを持っていることを本人だと確認する方式です。アプリによってはMFAの認証キーをGoogleアカウントなどに同期する機能もあります。その場合は実質的にそのGoogleアカウントを持っていることが本人確認になります。
まず手元のスマホに認証アプリをインストールしてください。すでにAWS以外の用途で認証アプリが入っていればそれをそのまま使うこともできます。認証アプリは多くありますが、例として以下を挙げておきます。
- iOS向け Google Authenticator
- Android向け Google Authenticator
- iOS向け Microsoft Authenticator
- Android向け Microsoft Authenticator
アプリにQRコードを読み取る機能があるはずです。アプリをインストールしたら使い方を確認しておいてください。
アプリの準備ができたら、次はマネジメントコンソールでの操作に戻ります。
マネジメントコンソールの一番上に検索ボックスがあります。AWSの各サービスにアクセスするにはここにサービス名を入れるのが早いです。検索ボックスに「iam」などと入力すれば、IAMへのリンクが現れます。
IAMへのリンクをクリックしてIAMの画面に移動してください。
最初にIAMの画面に行くと、次のように表示されているはずですので、「MFAを追加」のボタンを押します。
以下の画面になったら「MFAを割り当てる」のボタンを押します。
次の画面では「認証アプリケーション」を選択します。
次のような画面になります。
「QRコードを表示」をクリックするとQRコードが表示されます。スマホでPC画面上のQRコードを読み取ってください。
アプリでQRコードを読み取ると6桁のコードがアプリに表示されます。このコードは30秒ごとに変わります。次にログインするときにはパスワードのほかにこの6桁のコードを入力することになります。
マネジメントコンソールのQRコードの下にMFAコードを入力する欄が2つあります。スマホアプリに正しくMFAが登録できたことを確認するための入力欄です。
1つ目の欄にいまスマホアプリに表示されている6桁のコードを入力してください。そして、スマホアプリのコードが変わるのを待ちます。変わったら新しい6桁のコードを、今度は2つ目の欄に入力してください。
最後に「MFAを追加」のボタンを押すとMFA設定が完了です。
ルートユーザーでの再ログイン
MFAを使ってログインできることを確認します。
まずはいったんログアウトします。右上のメニューから「サインアウト」をクリックします。
ログアウトすると、次の画面で「もう一度ログインする」などのボタンをクリックすると、ログイン画面に戻れます。または次のURLにアクセスしてもログイン画面になります。
https://console.aws.amazon.com/console/home
さきほどルートユーザーでログインしたのと同じようにパスワードまで入力すると、次のような画面になります。
ここでスマホアプリに表示されている6桁のコードを入力して「送信」ボタンを押します。すると、再びマネジメントコンソールに行けるはずです。
IAMユーザー作成
マネジメントコンソールで再びIAMの画面に進みます。画面の左に以下のようなメニューがあるはずです。
メニューの「ユーザー」をクリックするとIAMユーザーの一覧のページに進みます。
IAMユーザーはまだ1つもないはずです。右上の「ユーザーを追加」ボタンを押します。
作成するユーザーに関する必要事項を入力する画面になりますので、以下の通り入力します。
- ユーザー名:AWSアカウントの中でIAMユーザを識別するためのものです。半角英数字やハイフンなどの一部記号を使えます
- 「AWSマネジメントコンソールへのユーザアクセスを提供する」:チェックを入れます
- ユーザタイプ:「IAMユーザーを作成します」を選択
- コンソールパスワード:自動生成か任意に設定かお好みでどうぞ
- 「ユーザは次回のサインイン時に新しいパスワードを作成する必要があります」:これにチェックを入れると最初にIAMユーザでログイン時にパスワード設定が求められます。自分で試しているだけならば不要でしょう
「次へ」のボタンを押すと、「許可を設定」という画面になります。IAMユーザにどのように権限を設定するかの選択です。
「ポリシーを直接アタッチする」を選択し、AdministratorAccessという名前のポリシーを選択しておきます。本格的に運用するAWSアカウントであれば、通常は必要な権限を絞るところですが、つまづきポイントを減らすためにこの記事の手順では強い権限を付与しておきます。
最後に確認画面で「ユーザーの作成」ボタンを押すと、IAMユーザーの作成が完了し、パスワードを取得の画面に遷移します。
「コンソールサインインURL」がこのあと必要になりますので、コピペでメモしておいてください。
さきほどコンソールパスワードを自動生成に設定した場合は、この画面の「コンソールパスワード」の「表示」リンクをクリックするとパスワードが表示されますので、これもコピペしておいてください。
これでIAMユーザーが作成できました。今後はこのIAMユーザーで作業しますので、ルートユーザーはログアウトしてください。さきほどMFA設定後にログアウトしたときと同じく、右上のメニューから「サインアウト」をクリックします。
IAMユーザーでログイン
作成したIAMユーザーでマネジメントコンソールにログインしなおします。
さきほどメモしておいたサインイン用URLにアクセスします。
12桁のアカウントIDが初めから入力されているはずですので、残りのIAMユーザー名とパスワードを入力し、「サインイン」ボタンを押します。12桁のアカウントIDは、作成したAWSアカウントを識別するコードです。
IAMユーザーでマネジメントコンソールにログインできたら、ここからはウェブサーバの構築に進みます。
EC2インスタンス作成
EC2インスタンスとは、AWSの1台の仮想サーバのことです。ウェブサーバを立てるためにEC2インスタンスを1つ構築します。
マネジメントコンソールの右上のリージョン表示が東京になっていることを確認してください。
マネジメントコンソールの一番上の検索ボックス検索ボックスに「ec2」などと入力すれば、以下のようなEC2の画面に行くことができます。
このEC2の画面の中ほどにある「インスタンスを起動」のボタンを押します。すると、以下のようなインスタンスを立ち上げるのに必要な入力フォームが現れます。
入力画面の上のほうでは、OSイメージ、CPUやメモリの大きさなどを決めるインスタンスタイプなどを入力します。今回は無料枠のデフォルト設定から変更するほどの要件がありませんので、名前以外はデフォルトのままでよいです。
- 名前:サーバの名前を適当に決めて入力(上のスクリーンショットでは「mywebserver」と入力しています)
- Amazonマシンイメージ(AMI):デフォルトのAmazon Linux 2023 AMIを選択(無料利用枠対象)
- アーキテクチャ:デフォルトの64ビット
- インスタンスタイプ:デフォルトのt2.micro(無料利用枠対象)
「キーペア」の欄では、EC2インスタンスに接続するためのキーペアを生成し、キーファイルをダウンロードできます。ウェブサーバをEC2インスタンスにインストールする作業をするにはEC2インスタンスに接続する必要がありますが、ここでダウンロードするキーファイルはEC2インスタンスに接続するために必要なファイルです。
「新しいキーペアの作成」のリンクをクリックすると、キーペアを作成するためのフォームが現れます。
キーペア名はこのスクリーンショットではインスタンス名と同じにしました。今後多数のインスタンスを運用する場合にはキーペアをどの単位で作成するかや命名規則などを検討すべきですが、インスタンスをちょっと立ち上げてみるだけでしたら名前はなんでもよいです。
キーペアのタイプはデフォルトの「RSA」のまま、プライベートキーファイル形式もデフォルトの「.pem」のままでよいです。
「キーペアを作成」ボタンを押すと、即座にPCにキーファイルがダウンロードされ、EC2インスタンス作成画面に戻ります。
キーペア作成欄の下には、ネットワーク設定があります。
「HTTPトラフィックを許可」に追加でチェックを入れてください。
ネットワーク設定の下にはストレージ設定がありますが、今回はすべてデフォルト値のままで構いません。
その下にさらに詳細な設定欄がありますが、すべてデフォルト値のままで構いません。
画面の右下にある「インスタンスを起動」ボタンを押すと、インスタンスの起動が始まります。
ボタンを押した次の画面では「インスタンスの起動を正常に開始しました」と表示されるはずです。その表示にあるインスタンスのID(i-xxxxxxxxというような表示)をクリックすると次の画面になります。
この画面で再度インスタンスIDのi-xxxxxxxxというような表示をクリックすると、インスタンスの詳細情報が表示されます。
この中のパブリックIPv4アドレスをコピペしておいてください。
インスタンスに接続
作成したEC2インスタンスにはSSHクライアントを使って接続できます。SSHクライアントをすでに使える環境にある方は、さきほどのIPv4アドレスの情報と、さきほどダウンロードしたキーファイルを使ってインスタンスにSSH接続することができます。
SSHクライアントのインストールが手間、あるいは「SSHとは???」という方のために、ここではAWSのマネジメントコンソールからインスタンスに接続する方法をご説明します。ここの説明が不要な方は、SSH接続をしてから次のApacheインストールの説明に飛んでください。
EC2 Instance Connectで接続
インスタンスの詳細画面に行きます。もし迷子になった場合は、EC2の左のメニューにある「インスタンス」からたどることもできます。
インスタンスの詳細画面にある「接続」ボタンを押します。
接続のための画面が出てきます。
設定変更する項目はありませんので、そのまま「接続」ボタンを押します。
すると次のような黒い画面になります。
この黒い画面では、SSH接続と同じようにコマンド操作できます。誤って黒い画面を閉じてしまったとしても、また「接続」ボタンを押せばよいです。
Apacheインストール
黒い画面で3つのコマンドを実行します。1行ずつコマンドを入力してエンターを押すことで実行します。このコマンドは今回インスタンス作成時に選択したOSイメージであるAmazon Linuxで使えるコマンドです。
1つ目:パッケージの更新
1つ目のコマンドは、インストール済みのパッケージを最新のバージョンに更新します。以下のコマンドを入力してエンターを押してください。
sudo dnf update -y
以下の実行例では、すべてのパッケージがすでに最新になっており、更新がなかったことを示します。実行するタイミングによってはパッケージの更新があるかもしれません。
2つ目:Apacheインストール
2つ目のコマンドは、Apacheというウェブサーバのパッケージをインストールします。関連する多くのパッケージがインストールされます。
sudo dnf install -y httpd
3つ目:Apache起動
3つ目のコマンドは、インストールしたウェブサーバを起動します。
sudo systemctl start httpd
このコマンドは異常がなければなにも出力がなく、結果が見えませんが、裏でウェブサーバを起動しています。
ウェブサーバを立ち上げるところまでたどり着いたので、あとはブラウザでアクセスして確認します。
ブラウザでアクセス
EC2インスタンスのIPv4アドレスにブラウザでアクセスします。ブラウザのURLの欄にIPアドレスを入れてみてください。
以下のように表示されれば成功です。
この記事のゴールであるウェブサーバが無事立ち上がりました。
後片付け
作業が終わり、サーバ構築の体験に満足したらEC2インスタンスを削除しておきます。
インスタンスの詳細画面に戻り、右上にある「インスタンスを終了」をクリックします。終了するとインスタンスが削除されます。インスタンスに保存されているデータがあった場合はデータが削除され、復元手段はありません。ここまでの手順しか実施していない場合は削除されて困るデータはないはずですが、削除されては困る場合は「インスタンスを停止」を選択してください。
削除(終了)の際には確認画面が出てきます。インスタンスのストレージにあるデータが消失することの最終確認です。
(このスクリーンショットでは、確認画面の一番上の表記がカタコトで不自然な日本語ですね、日本語バージョンのAWSマネジメントコンソールではよくあることです。英語バージョンでは「Terminate instance?」と表記されています)
「終了」ボタンを押すと、シャットダウン処理が始まり、しばらくするとインスタンスが削除されます。
この記事に不足していること
この記事では、AWS初心者向けに、AWSアカウント作成からウェブサーバを1台起動するところまでの体験を手順としてご紹介しました。しかしながら、AWSを実際に運用するには、この記事では言及しなかった多くの重要な要素にも注意が必要です。以下のような要素がありますが、これがすべてではありません。
- HTTPS対応
- ドメイン取得とRoute 53設定
- ネットワーク構成(VPC、サブネット、NAT、VPNなど)
- メンテナンスの環境を検討(踏み台サーバ、VPNなど)
- セキュリティグループ
- データのバックアップ体制
- 監視とアラート(CloudWatchなど)
- オブザーバビリティ
- 冗長化構成と自動スケーリング
- 課金オプション(Savings Planなど)
- AWSアカウントの運用(AWS Organizations、請求代行サービスなど)
これらの要素を考慮せずに運用すると、セキュリティの問題やシステムの信頼性に影響があります。これらの要素は物理サーバでも同様のものも多いのですが、クラウドサービス特有のものもあります。
クラウド導入や活用で困ったことがあれば、AWSパートナーのような専門の企業に相談することをお勧めします。弊社もAWSパートナー企業として、適切なアドバイスとサポートを提供する準備ができていますので、お気軽にお問い合わせください。
- カテゴリー