1. はじめに
未経験からクラウドエンジニアを目指すにあたり、AWS Lightsailを用いてポートフォリオを構築しました。
「お名前.com」で購入したドメインとの連携や、bncert-toolでのSSL化でつまずいたポイントを詳細に記録します。
ターゲット
- AWS Lightsailで手軽にWordPressを立ち上げたい方
- 独自ドメインの設定やSSL化(HTTPS)で詰まっている方
- 最低限のセキュリティ設定(要塞化)まで終わらせたい方
2. インフラ構成
- サーバー: AWS Lightsail (Bitnami WordPressパッケージ)
- ドメイン管理: お名前.com
- 証明書: Let's Encrypt (bncert-tool使用)
- セキュリティ: SSH鍵認証限定 / 不要ポート閉鎖
3. 構築手順
① インスタンス作成と静的IPの固定
- Lightsailコンソールで「インスタンスの作成」をクリック。
- プラットフォーム:
Linux/Unix、ブループリント:WordPressを選択。 -
重要: 作成後、「ネットワーキング」タブから**「静的 IP の作成」**を行い、インスタンスにアタッチします。
- これを忘れると、インスタンス再起動のたびにパブリックIPアドレスが変わってしまい、サイトにアクセスできなくなります。
② お名前.comとのDNS連携
- Lightsailの「ドメインとDNS」タブ → 「DNSゾーンの作成」で自分のドメインを登録。
- 表示された4つのネームサーバー(
ns-1.awsdns...など)をメモします。 - お名前.comの管理画面へ行き、ネームサーバー設定に先ほどの4つを貼り付けます。
-
注意: 末尾の「
.(ドット)」が含まれている場合は、削除して入力してください。
-
注意: 末尾の「
③ DNSレコードの設定
LightsailのDNSゾーンに以下の2行を追加します。
| レコードタイプ | 名前 | 解決先(値) |
|---|---|---|
| Aレコード | example.com |
自分の静的IP |
| CNAMEレコード | www.example.com |
example.com |
注意(重要!)
wwwのレコードを忘れると、次のステップのSSL化実行時にエラー(NXDOMAIN)が発生する原因となります。
④ bncert-toolによるSSL化
SSHで接続し、Bitnami提供のツールを実行します。
sudo /opt/bitnami/bncert-tool
-
Domain list:
example.com www.example.com(スペース区切りで入力) -
設定内容: HTTPからHTTPSへのリダイレクト等は、基本すべて
Y(Yes) で進めて問題ありません。 - トラブル対応: 反映されない場合は、DNSの浸透(ステップ③の設定が世界に広まるまで)を少し待ってから再試行してください。
4. セキュリティ強化
「公開して終わり」にしないための重要な設定です。
⑴ SSH設定の変更(鍵認証のみに制限)
パスワード総当たり攻撃(ブルートフォース攻撃)を防ぐため、設定ファイルを編集します。
sudo nano /etc/ssh/sshd_config
以下の項目を探し、書き換えます。
PermitRootLogin no # rootログインを禁止
PasswordAuthentication no # パスワード認証を禁止
保存(Ctrl+O -> Enter)して終了(Ctrl+X)後、設定を反映させます。※注意:設定を間違えるとログインできなくなるため、現在のSSH接続は維持したまま、別のウィンドウで新しく接続できるか確認してください。
sudo systemctl restart ssh
⑵ 不要なポートの閉鎖
Lightsailの「ネットワーキング」タブの「IPv4 ファイアウォール」を確認します。
HTTP (80): 削除してOK(HTTPSへリダイレクトされるため不要)。
HTTPS (443): 維持。
SSH (22): 自分のIPアドレスからのみに制限すると、より安全性が高まります。
⑶ 初期ファイルの削除
初期パスワード等が記載された、セキュリティリスクになり得るファイルを削除します。
rm $HOME/bitnami_application_password
rm $HOME/bitnami_credentials
5. さいごに
今回の構築を通して、DNSの挙動やサーバーの要塞化について実践的に学ぶことができました。
特に、**「ドメインの浸透待ち」や「wwwレコードの有無」**がSSL発行に大きく影響する点は、実地ならではの学びでした。
完成したポートフォリオ: https://kawakami-portfolio.com