hello foo bar Saba note | Amazon Linux 2 AMIでサーバー構築

Amazon Linux 2 AMIでサーバー構築

2018.9.5 (水)

ちょっと数年前はものすごく使いづらいところあったAWSですが最近はドチャクソ使いやすい。
Amazon Linux 2 AMIはとてもCentOSっぽいというだけで特に選択した理由はないです。

  1. EC2インスタンスの作成
  2. Elastic IPの設定
  3. EC2インスタンスにログイン
  4. rootになる
  5. 基本設定
  6. Tools類(絶対使うやつ)

EC2インスタンスの作成

AWSのコンソールにログインしてEC2に移動。左メニューのインスタンスを選択すると次のページの上部に青いボタンで「インスタンスの作成」というボタンがあるので、そこから新しいインスタンスを作成します。

  1. AMIの選択で「Amazon Linux 2 AMI (HVM), SSD Volume Type」を選択。
  2. 無料枠のt2.microを(とりあえず)選択します。クラウドなのでこのあたりは後から変更します。
  3. インスタンス作成の確認画面で右下の「作成」ボタンを押下します。これで完了。
  4. SSHの設定でキーの選択画面が出ます。既存のものがある場合はそっちを使った方がいいです。はじめての場合新規で作成します。キーペアを選択して「インスタンスの作成」ボタンを押します。

インスタンスを作る際にキーペア(秘密鍵と公開鍵)が作成されるわけですが、作成したばかりのインスタンスへの接続のみに利用して開発や運用に入ってゆく場合は自分のつかっているいつものSSHKEYを登録してゆくというのがベストかと。(私は思っています。)なのでAWSで上記で作成するキーペアは初期ログイン用というだけに使うのが私の中でのベスト・プラクティス。

Elastic IPの設定

ちょっとしたサンドボックスだったら問題ないですが、普通に使うとしたらElastic IP(固定IP)を取得します。上記で作成したインスタンスと紐づけて固定IPで接続できるようにします。
ちなみにこのElastic IPはAWSのサービスの構造上(あるはセキュリティー上)インスタンス本体のIPアドレスと違うものになります。つまりこのElastic IP(固定IP)はあくまでも仮想的なもので物理的にこのインスタンスに割り当てられているものではありません。なので「ip a」とかコマンド打つとElastic IPとは別のグローバルIPが割り振られています。
(※感覚として、Elastic IPはプロキシサーバーとかLBとかに近い感覚)

  1. 「新しいアドレスの割り当て」ボタンを押して新規でElastic IPを作成します。
  2. 作成されたElastic IPを右クリックして「アドレスの関連付け」を選択します。
  3. インスタンスの項目にプルダウンできるメニューがあるので、その中から紐づけたいインスタンスIDを選択します。
  4. 「関連付け」ボタンを押して完了。

これで新しい固定IPアドレスが付与されます。
ちなみにElastic IPは

  • Elastic IPを作成して起動しているEC2インスタンスに関連付けをしていたら無料
  • Elastic IPを作成して停止しているEC2インスタンスに関連付けをしていたら有料
  • Elastic IPを作成してインスタンスと関連付けがない場合は有料

となってます。ややこしい。

EC2インスタンスにログイン

左メニューの「インスタンス」に移動して、ログインしたいインスタンスに接続してから上部にあるアクションを選択します。その中に接続という項目があるのでそれを選択します。
そこにかなり丁寧にログインの案内がでてきて、コマンドまで出てくるので問題ないでしょう。

ssh -i "KEY_PATH" ec2-user@18.206.79.xxx

特殊なのがAmazon Linux 2の場合は必ずec2-userでログインするというところです。これがデフォルトのユーザーで最初からWheelユーザーになっています。(rootに昇格できるものになります。)

これでログインした後はAWSのコンソール上からキーペアを変更できます。キーペアのインポートという逆の機能になります。予め自分で作成したキーペアの公開鍵を登録する方式です。左メニューのキーペアを選択してから、上部の「キーペアのインポート」を押下します。公開鍵の登録画面が出てくるので名前をつけて公開鍵を登録します。このキーペアをインスタンスと紐付けると自作のキーペアでログインできます。

rootになる

ec2-userじゃなんもできないのでrootになります。これも多少特殊といえば特殊で予めrootになれるようにAWSの方でパスワードなしでrootになれるようにしてくれてます。

$ sudo su
#

これだけ。パスワードの設定はしないよりしておいた方がいいでしょう。

基本設定

パッケージの更新

# yum update -y

パッケージの自動更新(cronでyum updateする)

# sudo yum install yum-cron -y
# sudo sed -i "s/^apply_updates.*$/apply_updates = yes/g" /etc/yum/yum-cron.conf
# sudo systemctl status yum-cron
# sudo systemctl start yum-cron
# sudo systemctl enable yum-cron

タイムゾーン設定(日本にする)

# timedatectl status
# timedatectl set-timezone Asia/Tokyo

日本語ロケール追加

# localectl status
# localectl set-locale LANG=ja_JP.UTF-8
# localectl set-keymap jp106

Tools類(絶対使うやつ)

  • git
  • nmap
  • mailx
  • lynx

Gitインストール

(現時点では2.14.4が入ります。比較的いい感じ)

# yum -y install git
# git --version
git version 2.14.4

nmapインストール

ポートスキャンできていればOK

# yum -y install nmap
# nmap localhost

mailコマンドのインストール

# yum -y install mailx

lynxインストール

# yum -y install lynx

Product環境とかガチのサーバーだったら

  • SSHのポートの変更して
  • 他の秘密鍵の登録して
  • メインのドメインあてて
  • hostnameの設定とか
  • ….