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 ← 日本語表示になる
# 

DNS64 / NAT64 の仕組みについて

IPv6ネットワークの環境からIPv4ネットワーク環境へ通信する必要がある場合、DNS64/NAT64という技術を使うことで通信ができるようになります。

以下が概念図です。

①〜⑥について、説明します。

①.DNSへの名前解決
端末が目的のWEBサーバーの名前解決をDNS64サーバーに依頼します。

②.DNSサーバーへの中継
DNS64サーバーは名前解決を中継してDNSサーバーに問い合わせます。

③.「A」レコードの返却
DNSサーバーはアドレスレコード(「A」レコード)を返却します。目的のWEBサーバーはIPv4アドレスであるため「AAAA」レコードの返却ではありません。

④.「AAAA」レコードへの変換
DNS64サーバーは「A」レコードを「AAAA」レコードに変換して端末に返します。IPv6アドレスへの変換方法ですが、IPv4アドレスの前に「64:ff9b::/96」のプレフィックスを付与します。

例えば、DNSサーバーが返した「A」レコードが 192.1.1.10 だった場合、192.1.1.10 を2進数表記に直すと 11000000 00000001 00000001 00001010 となります。これを更に16進数表記にすると C001:010A となります。

その結果、「AAAA」レコードは 64:ff9b::c001:10a となります。

⑤.WEBサーバーへのアクセス
端末は④で返されたアドレスにアクセスします。

⑥.IPv4アドレスの変換
NAT64機能を搭載したルーターは、IPv6アドレスのプレフィックスを外して(IPv4アドレスに変換して)目的のWEBサーバーにリクエストを中継をします。WEBサーバーからのレスポンスについては、IPv6に変換して端末に返します。