🐣

EC2のサーバー初期設定まとめ

に公開

はじめに

こんにちは!
駆け出しエンジニアのはやちです。

この記事は「AWSのEC2インスタンスを作成したときの備忘録」です。
サーバーへの接続方法と初期設定手順をひと通りまとめてみました!

今回作成したEC2インスタンスの概要は以下の通りです。

  • OS:Amazon Linux 2023
  • インスタンスタイプ:t4g.small
  • アーキテクチャ:64ビット(Arm)

sshでサーバーに接続する

SSHとは、ネットワークを介してリモートコンピュータと通信するためのプロトコルです。
SSHを用いた通信は暗号化されているため、安全なやり取りをすることができます。

キーペアの権限を変更

以下のような設定で作成したキーペアを使って接続していきます。

  • キーペアのタイプ:RSA
  • プライベートキーファイル形式:.pem

まず、キーペアファイルの権限を変更します。
以下のコマンドを叩いて、PCのオーナーにのみ読み取り権限を付与します。

chmod 400 "[キーペアファイルの名前]"

サーバーに接続

権限が変更出来たら、sshコマンドでサーバーに接続します。

ssh -i "[キーペアファイルの名前]" ec2-user@[EC2インスタンスのIPアドレス]

画像の様な鳥さんマークが表示されたら接続成功です!

サーバーの初期設定

パッケージの更新

Amazon Linux 2023のデフォルトのパッケージ管理ツールはdnfです。
まず初めに、システムにインストールされているパッケージを最新の状態にアップデートします。

sudo dnf update

ホスト名の変更

続いてEC2インスタンスのホスト名を変更します。
インスタンスを起動するたびにホスト名が変わらないようにする意図があります。

# ホスト名の確認
hostnamectl

# ホスト名の変更
sudo hostnamectl set-hostname [新しいホスト名]

タイムゾーンの変更

以下のコマンドを実行して日本時間に変更します。

# タイムゾーンの確認
timedatectl

# タイムゾーンの変更
sudo timedatectl set-timezone Asia/Tokyo

ロケールの変更

ロケールとは、ある特定の言語や地域に合わせた表示形式や動作をするための設定のことです。
日本語表記にしたい場合はロケールを変更する必要があります。

# ロケールを確認
localectl status

# ロケールを変更
sudo localectl set-locale LANG=ja_JP.UTF-8

ec2-userの削除

デフォルトのログインユーザーであるec2-userはパスワードなしでsudo権限が使えます。
この周知のユーザー名を使い続けるのはあまりよろしくなさそうなので、消してしまおうと思います!

管理者用ユーザーを作成

ec2-userと同じ権限をもつユーザーを新たに作成します。

# ユーザーの作成
sudo adduser [ユーザー名]

# パスワードの設定
sudo passwd [ユーザー名]

# sudo権限の付与
sudo usermod -aG wheel [ユーザー名]

# sudo権限があるかどうか確認
sudo -l

作成したユーザー名とパスワードによるssh接続を許可

/etc/ssh/配下にあるsshd_configファイルを編集します。
設定ファイルを編集する際は必ずバックアップを取っておくようにしてください!

# バックアップの作成
sudo cp -ap sshd_config [バックアップファイルの名前]

# 設定ファイルの編集
sudo vim sshd_config

# sshd_configで以下のように変更(no -> yes)
PasswordAuthentication yes

一度ログアウトして、作成したユーザー名とパスワードでログイン出来ることを確認します。

ssh [ユーザー名]@[EC2インスタンスのIPアドレス]

ec2-userの削除

作成したユーザーでログインが出来ることを確認したら、デフォルトユーザーを削除します。

sudo userdel -r ec2-user

おわりに

これでEC2のサーバー初期設定が完了しました!
少しでも参考になれば幸いです!

Discussion