Amazon Lightsail のインスタンスの作り方

Amazon Lightsail を使ってみました。インスタンスを作成してsshでログインするところまでやりましたので、それについて書いておきます。Amazon Linux 2023の初期設定も少しほど記載しています。

まずはAmazonのアカウントを作成します。AWSアカウント作成の流れを参考にすると良いです。

アカウントを作成したら Amazon Lightsail のホームサイトにある「無料でお試しください」をクリックします。

サインインの画面に移るので、ルートユーザーを選びアカウント作成時のEメールアドレスを入力します。「次へ」ボタンをクリックします。

Amazon Lightsail の画面に遷移します。言語は日本語を選んでおきましょう。右上にはアカウント作成時のアカウント名が表示されます(赤丸のところです)。

インスタンスイメージを選択します。プラットフォームは「Linux/Unix」にして、設計図の選択では「オペレーティングシステム(OS)のみ」を選び、OSは「Amazon Linux 2023」にしました。

インスタンスプランの選択をします。ネットワークタイプを選択では「Dual-stack」にします。サイズを選択では目的に応じてサイズを選んでください。

なお、2024年5月1日以降はデュアルスタックの料金(メモリ512MB)は$3.50から$5.00に値上げされているようです。IPv6のみの場合は料金の変更はないようです。

インスタンスを確認のところでリソース名と数量を入力します。リソース名は任意で大丈夫です。最後に「インスタンスの作成」をクリックします。

インスタンスが作成されるとLightsailの管理画面が表示されます。この状態だとインスタンスはまだ「保留中」の状態です。

インスタンスにIPアドレスの紐付けをします。左側のリストの「ネットワーキング」を選び「静的IPの作成」をクリックします。

静的IPアドレスの作成の画面に移ります。インスタンスへのアタッチのところで作成したインスタンスが表示されていることを確認します。もしインスタンス名が表示されていない場合はAWSのコンソールのホーム画面に一度戻ってみてください(後述します)。

静的IPの指定をします。任意の名前(デフォルトのまま)でも良いです。「作成」ボタンをクリックします。

インスタンスへの静的IPのアタッチが完了します。静的IPアドレスのところにIPアドレスが表示されます。

左側のリストのインスタンスをクリックすると、インスタンスの状態が「実行中」になっています。インスタンスをクリックします。

インスタンスの画面に移ります。右上の停止、再起動でインスタンスを操作できます。「SSHを使用して接続」をクリックするとブラウザからSSH接続ができます。

「SSHを使用して接続」をクリックしてインスタンスに入ったときは、こんな感じです。

ブラウザからのSSH接続ではなく、SSHクライアントソフトから接続をする場合は秘密鍵をダウンロードします。接続に必要な情報は、接続先(IPアドレス)、ユーザー名、鍵ファイルとなります。IPアドレス、ユーザー名は画像では伏せています。

公開鍵はLightsailの接続ユーザーのホームディレクトリ配下 .ssh フォルダの authorized_keys に登録済みとなっています。ですので、以下のコマンドで(クライアントがLinuxの場合)接続できます。

$ ssh -i ダウンロードした鍵ファイル ユーザー名@IPアドレス

具体的には以下ような感じです。

$ ssh -i ./LightsailDefaultKey.pem LightsailUser@10.245.10.12

ダウンロードした鍵ファイルですが、権限が弱いとエラーになります。

Permissions 0664 for ‘./LightsailDefaultKey.pem’ are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.

この場合は権限をSSH接続する所有者しかアクセスできないように変更すれば、エラーは出なくなります(0664を0600にする)。

これで、SSH接続をしてLightsailのインスタンスを操作できるようになります。

静的IPアドレスの画面でインスタンスが表示されていない(アタッチできていない)場合ですが、AWSのコンソールのホーム画面に一度戻ってみてください。最近アクセスしたサービスにLightsailが表示されているので、そこをクリックして再度、静的IPアドレスの画面に移ります。インスタンスの表示がされるときがあります。

Amazon Linux 2023 の初期設定をしておきます。

まずはrootユーザーのパスワードを変更しておきましょう。Lightsailのデフォルトではrootのパスワードは設定されていません。ですので、suコマンドでrootにスイッチユーザーしたあとに、passwdコマンドでパスワードを変更します。

以下のようにします。


$ sudo su - ← rootにスイッチユーザーする(パスワードなしのためrootになれる)
# 
# passwd ← rootのパスワードを設定する
Changing password for user root.
New password: 
Retype new password: 
passwd: all authentication tokens updated successfully.
# (ここからrootユーザーでの作業となる)

ロケールの変更をします。rootユーザーで作業します。


# localectl status
System Locale: LANG=C.UTF-8 ← 現設定の確認
    VC Keymap: (unset)
   X11 Layout: (unset)
#
# localectl set-locale LANG=ja_JP.utf8 ← ロケールの変更
#
# localectl status
System Locale: LANG=ja_JP.utf8 ← 変更後の確認
    VC Keymap: (unset)
   X11 Layout: (unset)
#

タイムゾーンも変更します。


# date
Sun May  5 07:08:04 UTC 2024 ← 現時刻の確認
#
# cd /etc 
# ls -l localtime
-rw-r--r--. 1 root root 114 Apr 25 19:29 localtime
#
# mv localtime localtime.20240505 ← バックアップの取得
# 
# ln -s /usr/share/zoneinfo/Asia/Tokyo /etc/localtime ← Asia/Tokyoのゾーンファイルのシンボリックリンクを作成
# 
# ls -l localtime*
lrwxrwxrwx. 1 root root  30 May  5 16:27 localtime -> /usr/share/zoneinfo/Asia/Tokyo
-rw-r--r--. 1 root root 114 Apr 26 04:29 localtime.20240505
# 
# date
Sun May  5 16:27:29 JST 2024 ← 時刻が変わっている事が確認できます
# 

# shutdown -r now でサーバーを再起動して、sshで再度、接続を行います。dateで時刻を改めて確認すると、ロケールの変更も反映されて日本語で表示されるようになります。


$ date
2024年  5月  5日 日曜日 16:34:47 JST ← 日本語表示になる
$ 
$ su -
パスワード:
最終ログイン: 2024/05/05 (日) 15:58:39 JST 日時 pts/0 ← 日本語表示になる
# 

yum list updates で Peer’s Certificate has expired のエラーが出た。

CentOS 7 で yum list updates を行ったときに Peer’s Certificate has expired. のエラーが出ました。エラーになったのは epel/x86_64/primary_db というもの。以下がその時のログ(抜粋)です。


# yum list updates
 :
epel/x86_64/primary_db         FAILED                                          
https://mirror.01link.hk/epel/7/x86_64/repodata/b5c06b35... : [Errno 14] curl#60 - "Peer's Certificate has expired."
他のミラーを試します。
It was impossible to connect to the CentOS servers.
This could mean a connectivity issue in your environment, such as the requirement to configure a proxy,
or a transparent proxy that tampers with TLS security, or an incorrect system clock.
You can try to solve this issue by using the instructions on https://wiki.centos.org/yum-errors
If above article doesn't help to resolve this issue please use https://bugs.centos.org/.
 :

システムクロックが正しくないと言っていますが、どうもそうではないらしい。調べてみるとCAの証明書が古いからのようです。yum upate すればCAの証明書(ca-certificatesのパッケージにある)も更新してくれると思い、そのままやってみました。もともと yum list updates のあとに yum upate をするつもりでした。以下がログ(抜粋)です。


# yum update
 :
---> パッケージ ca-certificates.noarch 0:2021.2.50-72.el7_9 を 更新
---> パッケージ ca-certificates.noarch 0:2022.2.54-74.el7_9 を アップデート
 :

yum upate の結果、2021年のパッケージだったものを2022年のものに更新したようです。もう一度、yum list updates をしてみたらエラーはなくなりました。

yum list updates のエラーログで「他のミラーを試します」と表示されましたが、他のミラーサイトもダメだったんでしょう。そもそもCA証明書が古かったのだから。そのため、英語のようなメッセージが表示されたのだと思いました。