AWSでのWebサーバー作成とSSH接続のマニュアル

AWSでサーバー作成してSSH接続する

【はじめに】
ここのところ、企業の情報システム部門の方々から、クラウドサービスやAWS、Azureなどに関しての質問を受けることが多くなってきました。
Webの投稿記事などでも、AWSの使い方やサーバーの作成方法を見ることができますが、実態としては、システムに詳しい方向けに書かれたものが多いようです。

本稿では、システムにそれほど詳しくない方でも、AWSでのモデルケースとしてWebサーバーを作成して、ドメイン名を紐付けして、WebサーバーとしてWebサイトを見せることができるまでの手順を解説していきます。

多くの方がトライできるように、AWSの無料利用枠を前提に解説します。
なお、AWSのオンラインマニュアルでも紹介されている最も易しい方法で進めていきます。

AWSのオンラインマニュアルで紹介されているなかでも、もっとも易しい方法を選択する、できるだけコマンドは使わない、さらにftpも使わない、ということで、
・リモートログオンソフトのPuttyと
・それに連携したSSHクライアントアプリWinSCP
を利用します。

上記の2つのソフトウェアで、接続ならびにファイルの転送もできることから、ftpをインストールする必要がないので、工程を1つ削減することができます。

本稿は2020年11月現在のAWSのシステムをもとにしています。
工程や手順が変更されて参考とならない可能性もありえますことを、あらかじめご認識ください。


【工程の概要】

AWSでWebサーバーを構築する場合の工程の概要は、以下のようになります。

・サーバーの作成

・作成したサーバーへのセキュアな接続
(ファイアウォールの設定)※ここまでが本稿の内容です。

・OSの最新化とApacheのインストール

・HTTPプロトコルでサーバーに接続できるようにする
(ファイアウォールの設定)

・固定のIPアドレスのサーバーへの紐付け

・コンテンツのアップロード
(・ドメイン名とIPアドレスの紐付け)


【留意点】

作業を進めるにあたって、気をつけていただきたい点は以下のとおりです。

・いきなり作業に着手しないで、まずはどのような工程でどんなことをするのか、各工程の作業を始める前に、本稿やオンラインマニュアルなどに事前に目を通して、概要を把握してから行うこと。

・早く作業をすることよりも、一つ一つの工程を着実に正確に行うことが重要。工程ごとに時間帯や日を分けるなどして、間違いのない作業をすること。


【難しいポイント】

・SSHで接続するための、キーの作成

・SSHでの初回の接続


【マニュアルの前編はここから】※ちょっと長いですけど、とてもためになります!

以下のマニュアルは許諾やセキュリティの関係から、画面コピーは掲載しておりません。

IT業界のエンジニアの良心ということでご理解のほどお願いします。

□□にチェック印をつけるなどして、間違いのないように進めてください。

□□——————–
サーバーの作成やPCからの接続に関して、事前に見るべきAWSのオンラインマニュアルは以下の2点です。
いずれも公開されている資料で、アカウント作成をしなくても見ることができます。

(1)チュートリアル:Amazon EC2 Linuxインスタンスの開始方法
チュートリアルはこちら
( Linuxインスタンス用ユーザーガイド > 接続 > PuTTYを使用して接続 )

(2)PuTTYを使用したWindowsからLinuxインスタンスへの接続
チュートリアルはこちら
・インスタンスに接続するための一般的な前提条件
・PuTTYのダウンロードページ
・Linuxインスタンスへの接続
・WinSCPを使用したLinuxインスタンスへのファイル転送

※一般の方の投稿記事ではなく、AWSのチュートリアルをお読みになったほうが間違いありません。
ただし、少し長くて難しい箇所もあります。

□□——————–
【工程(0)】

AWS無料利用枠で、AWSアカウントを作成します。2020年11月時点では、12ヶ月間無料です。
2021年1月現在も条件は変わっていません。

・Eメールアドレス、パスワード、AWSアカウント名の3つを入力します。
SMSなどでのコード認証があります。クレジットカード情報などを入力して完了となります。

・サポートプラン選択
ベーシックプランの「無料」ボタンをクリックします。
時間があれば、チュートリアル動画などを学習すると良いでしょう。

なお、Amazon Lightsailの紹介やお勧めが表示されるかもしれません。
Lightsailは、Webサイトの開設向けに必要な機能が揃っているレンタルサーバーのサービスで、有償のサービスです。
本稿で紹介する例は、Lightsailではありません。

・コンソールにサインイン
AWSのページからサインインします。
ルートユーザーで、Eメールアドレスとパスワードを入力して、コンソールに入ります。
「コンソールにサインイン」ボタンです。

この後、仮想サーバー(インスタンス)の作成に入りますが、その前に
オンラオインマニュアル1に必ず目を通してください。

すると、要約していますが、以下の2つの重要な記載があります。

その1:インスタンス(仮想サーバー)を作成した後で、接続するには、
秘密キー(専用のファイル)が必要だということがわかります。
※後の◆◆印で開設しますので、絶対に見落とさないように!
なお、◆印は無料で進めるために注意するポイントです。

その2:サーバーを画面に表示されたタイプから選んで作成しますが、
Amazon マシンイメージ (AMI)と呼ばれているサーバー群の
・一番上のAmazon Linux 2を選択して、
・さらに、Choose an Instance Typeというページで、t2.micro という
無料利用枠のインスタンスタイプの選択が推奨されています。

□□——————–
【工程(1)】

・インスタンスの作成
コンピューティング > EC2 >インスタンス を選択します。
あるいは、すべてのサービス の検索ボックスでEC2を入力します。

インスタンス > インスタンス をクリックして、「インスタンスを起動」ボタンをクリックします。

特になにもしないと必ずしも、日本のサーバーとは限りません。
筆者の場合は米国でしたが、気にせずにそのまま行きました。

続いて、Amazonマシンイメージ(AMI)が表示されて、インスタンスの作成は、以下の7つのステップとなることがわかります。
上部のメニューバーに7つのステップが表示されるので、この順番に進めていきます。

ステップ1:AMIの選択
→ 一番上の「Amazon Linux2 AMI(64ビットの86)」でいいでしょう。
もちろんそのほかの無料サーバーもあります。

ステップ2:インスタンスタイプの選択
→ ◆「t2.micro 無料利用枠の対象」を選択します

ステップ3:インスタンスの設定
→ ◆自動割り当てパブリックIPのところで
「サブネット設定を使用(有効)」を「有効」に変更します
◆キャパシティーの予約のところで
「開く」を「なし」に変更します。
◆ここを、「なし」にしないと費用がかかります。
テナンシーのところで、「共有―共有ハードウェアインスタンスの実行」となっていることも、ねんのため確認をしてください。
このステップ3で、注意をしていないと、追加料金が必要となります。

ステップ4:ストレージの追加
→ ◆サイズとボリュームタイプが無料利用枠であることを確認します
デフォルトの8GB・汎用SSDとします。

ステップ5:タグの追加
→ 例文を参考にして値を入れておきます。

ステップ6:セキュリティグループの設定
→ タイプ プロトコル ポート範囲 ソース
SSH  TCP     22     0.0.0.0/0
が自動的に表示されます。

「!警告で、0.0.0.0/0を指定すると、・・・ 既知のIPアドレスからのみアクセスできるようにすることを・・」が表示されますが、とりあえず、そのままにして次に進みます。

ステップ7:確認
→ 「確認と作成」をクリックします。
すると、再び、「!マークでインスタンスのセキュリティを強化してください・・・・
既知のIPアドレスに・・・」 と表示されます。

そこで、一度、ステップ6に戻って、0.0.0.0/0のところを
Localhostの 127.0.0.0/8 に変更します。
127だけを入れると、一番上に表示されるので、選択してください。
もちろん、ステップ7に至る前に、ステップ6の時点で変更できることが望ましいです。

再びステップ7に戻って、画面をスクロールして、再確認をして、「起動」をクリックします。

◆◆ここで、<既存のキーペアを選択するか、新しいキーペアを作成します。>のメッセージが表示されます。
新しいキーペアの作成を選択して、わかりやすいキーペア名を入力して、「キーペアのダウンロード」をクリックします。

すると、キーファイルがダウンロードフォルダにダウンロードされます。
このファイルの拡張子は.pemとなっています。

このあと、インスタンスの作成に入っています。
<インスタンスは現在作成中です>のメッセージが表示されます。
インスタンスIDも表示されます。

セキュリティグループの作成、インバウンドルールの許可、作成の開始のそれぞれで成功が表示されて、<作成が完了しました>の表示があります。
予想請求額の通知を受け取る、の設定をすることもできます。

□□——————–
【工程(2)】

Windows PCからLinuxインスタンスへの接続の準備として
PuTTYでキーペアを変換、さらにPuTTYでの接続 の
オンラインマニュアル2の最初のほうに、PuTTYのダウンロードページがあります。
ここからPuTTYをダウンロードしてインストールします。

オンラインマニュアル2のなかの「プライペーとキーを変換するには」の項目にしたがい、さきほどのpemファイルをppkファイルに変換します。

PuTTYgenのPuTTY Key Generatorで行います。
正しく進むと、ダウンロードした.gemファイルを選択する画面に至ります。
変換したキーを保存しますが、インスタンス作成のときと、同じ名前をつけて保存してください。

ここは、重要ですのでおさらいしておきますと、自身のPCにPuTTYをインストールして、PuTTY Key Generatorで、先ほどダウンロードしたキーペアを、オンラインマニュアル2にしたがって、SSH-2 RSAで変換します。

ダウンロードしたキーペアは、「つけた名前.pem」というファイルでしたが、「つけた名前.ppk」というファイルが新たに出来上がります。最初につけた名前と同じ名前のppkファイルを作成すると、後で問題なく接続することができます。

・PuTTYでの接続
接続の前に、「Linuxインスタンスに対するインバウンドSSHトラフィックルールの追加」をします。
やることの意味は、自分のPCからセキュアに接続できるように、自分のマシンのIPアドレスを登録して、さきほどの作成したキーで認証を受けます。

・EC2 Management Consoleのセキュリティグループを選択します。
最上段に表示されるlaunch-wizard-1を選択します。

・「インバウンドルールを編集」をクリックします。
インバウンドルールの画面で、「ルールを追加」をクリックします。
タイプはSSH、ソースはマイIPで、自分のIPアドレスを入れます。
正しく接続されていると、IPアドレスの値が自動的に表示されます。
オンラインマニュアルのなかに、Check IPがあるのでそこからも取得できます。
そして、「ルールを保存」をクリックします。

<インバウンドセキュリティグループのルールが、セキュリティグループで正常に変更されました>と表示されるとともに、インバウンドルールカウントが2アクセス許可エントリと、2つに増えています。

続いて、PuTTY側での設定です。
PuTTYのConfigurationの画面で、パブリックIPv4 DNSをHost Nameに入力します。
マニュアルのHost Nameの例では
ec2-user@ec2-**amazonaws.comとなっています。
Portはもちろん22です。
ec2-userはAmazon Linux AMIのユーザー名です。

さらに、先ほど作ったppkファイルを、「開く」で選択します。

「Open」で接続ができます。

無事に接続ができると、Amazon Linux AMIの黒画面が表示されます。
□□——————–


【おわりに】
ここで、前編は終了です。
サーバーの例として、Webサーバーを作成したい方は、後編に進んでください。
もちろん、このほかにもサーバーへの接続の方法はありますが、最も簡単な方法を選択しています。

本マニュアルのPDF版が以下のページよりダウンロードもできます。
AWSのクラウドサービスを試していただくと、現在の最先端のクラウドサービスの利便性を理解いただけるかと思います。
是非、楽しみながらやってみてください!

マニュアル:AWSでのインスタンス・サーバー作成とSSH接続はこちら

マニュアル:AWSでWebサーバー作成(Apache・SSH接続・WinSCPを利用)はこちら