馬とテニスのIT革命
馬とテニスとリラックマが好きな IT 系のエンジニアです。
AWS

AWSでWebサーバ用途にEC2(AmazonLinux)の環境を構築する

AmazonLinux2 が正式リリースされて 1 ヶ月以上が経過しました。

次に新しく EC2 を作るなら乗り換えるのもアリかなと思っていましたが、今回は古いアプリを動かしたいので断念。

これまでに何度も構築している AmazonLinux のディストリビューションでいきます。

AmazonLinux2 で提供されるパッケージを確認していないので何とも言えませんが、今回は PHP5 を動かしたいので無難に AmazonLinux にしてみました。

早く、AmazonLinux2 と PHP7 の構成で動作させてみたいところです・・・。

PHP も 7.3 の時代ですもんね。

EC2インスタンスの作成

EC2 のインスタンスページから「インスタンスの作成」ボタンをクリックします。

次回こそは AmazonLinux2 を選択したいところですが、今回は泣く泣く AmazonLinux でいきます。

イメージとしては AmazonLinux が CentOS6 に近く、AmazonLinux2 が CentOS7 に近いです。

ネットワークコマンドやパケットフィルタのサービスの動向を見る限りですけどね・・・。

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

お試しで使う人は t2.micro のインスタンスタイプを選択しましょう。

無料枠の対象となっています。

メモリ 1GB、CPU が 1 コア(Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz)のスペック構成です。

EC2の設定

最小構成で使う場合、VPC やサブネットは意識せずにデフォルトでいきましょう。

細かいことは、ELB や踏み台サーバ、NAT インスタンスなど、サービス運用を見据えた構成を考える時で OK です。

また、ここで重要なのは「自動割り当てパブリックIP」を「使用する(有効)」にしておくことです。

今回は外からのアクセスを直接受けるけることもありますが、外部へもアクセス可能としたいですからね。

ディスク容量は SSD で 30GB までなら無料枠の範囲なので、お試しの方はこれがオススメです。

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

セキュリティグループについてはデフォルトのままにせずちょっと考えます。

まず、今回は ELB(ロードバランサ)経由としないので、HTTP と HTTPS は許容します。

最終的に、サイト単位で HTTP は Web サーバ側(nginxなど)で HTTPS へリダイレクトさせますが、SSL のサーバ証明書を取得する段階で HTTP は受け付けます。

また、EC2 のインスタンス作成時に SSH が 22 番ポートで待ち受けているので最初は 22 番ポートを許可しておきます。

気休め程度ですが、最終的には 22 番は閉じ 10022 番や 20022 番などで SSH を待ち受け、鍵認証としておけば少しは安心でしょう。

もちろん、デフォルトの ec2-user も別ユーザに変更する前提ですが。

なので、一旦は以下のセキュリティグループの設定とします。

秘密鍵の作成

最後に ec2-user で EC2 に SSH でアクセスするための秘密鍵を生成します。

わかりやすい名前を付けてダウンロードしておきます。

ちなみに鍵のパスフレーズは空になっているので、ec2-user と別のユーザを作成する際には別の鍵を作り、ec2-user を削除する段階でこの鍵も始末します。

これで EC2 インスタンスの構築は完了です。

EC2へのSSHアクセス

では一旦、SSH でアクセスできるかどうか試しておきましょう。

EC2 のグローバル IP アドレスは以下で参照できます。

後々、EIP に変更して固定しますが、今はこちらのアドレスを使ってみます。

黒塗りだらけでわかりにくいですが、赤枠内に IP アドレスが表示されているハズえす。

IP アドレスと 22 番ポートを指定し、EC2 のインスタンス構築時にダウンロードした秘密鍵を選択します。

アクセスするユーザは「ec2-user」になります。

私の手元の poderosa というターミナルの場合はこんな感じの設定です。ちなみに愛用しているのは poderosa4 系です。

問題なければ接続完了です。

コマンド操作履歴の数を増やす

Linux ではコマンドの操作履歴が history コマンドで確認できますが、デフォルトでは最大で 1000 件分のみとなります。

いざという時に過去に打ち込んだコマンドを思い出したい場合もあります。

そのために、履歴に残しておく件数を 10000 件に増やしておきましょう。(件数は用途にあわせてください)

また、コマンドに実行日時も記録するようにします。

$ vi /root/.bashrc

HISTSIZE=10000
HISTTIMEFORMAT='%Y/%m/%d %H:%M:%S '

再度シェルにログインするか、以下のコマンドですぐに反映します。

$ source /root/.bashrc

ssh の 22 番ポートを 10022 番ポートに変更する方法や、EIP の割り当てについては以下の記事にまとめました。

あわせて読みたい
AmazonLinuxでsshの待ち受けポートを22番から別の番号に変更するEC2 で Web サーバを構築する手順に盛り込もうと思いましたが、ssh の待ち受けポートの変更だけで記事を独立させてみました。 ...
あわせて読みたい
AWSのEC2にEIP(ElasticIP)を割り当てる前回、AmazonLinux で EC2 を立ち上げました。 https://kumanotemo.com/archives/75...
Web API The Good Parts

オライリーの「Web API」に特化した本です。最近の多くの Web サービスは API が活用されていますが、その技術はこれまでの Web サイトとそれほど大きく変わりません。

今後、マイクロサービス化が進む中で知っておいて損はない内容が詰め込まれており、現場のエンジニアやこれから Web 系のエンジニアを目指す人にもオススメの一冊です。

created by Rinker
¥2,376
(2018/10/20 14:06:04時点 Amazon調べ-詳細)

あなたにオススメ