目的
会社でAWSのサーバーを使うことになるかもしれず、勉強をしている。
会社からはAWSのEC2サーバーへ繋げられるが、自分のアカウントではないので自宅からは繋げられない。
EC2にはAmazoLinuxを使用しており、Linuxをコマンドだけで操作することに慣れたい。
練習のために自宅のパソコンのQEMU上にAmazonLinuxを入れてみたが、禁止されているのかパスワードでもSSHでもログインが出来なかった。
そこで代わりにUbuntuServerを導入することにした。
なるべくAWSに近い環境で練習したいのでこれからはSSH接続をしてその上で操作することにする。
普段Ubuntuを使っているので、そのUbuntu上で練習しようかとも思ったがどうしてもGUIでの操作に頼ってしまう為、自分を律するためにこのような環境を容易することにした。
導入
# ubuntu serverを取得
wget https://mirrors.aliyun.com/ubuntu-releases/24.04/ubuntu-24.04.3-live-server-amd64.iso
# 仮想HDD生成
qemu-img create -f qcow2 ubuntu-server.qcow2 20G
# インストールする
qemu-system-x86_64 \
-enable-kvm \
-m 2048 \
-cpu host \
-smp 2 \
-cdrom ubuntu-24.04.3-live-server-amd64.iso \
-drive file=ubuntu-server.qcow2,format=qcow2 \
-boot d \
-net nic -net user
# インストール後からは以下の命令で起動
qemu-system-x86_64 \
-enable-kvm \
-m 2048 \
-cpu host \
-smp 2 \
-drive file=ubuntu-server.qcow2,format=qcow2 \
-net nic -net user
SSH接続
-net user,hostfwd=tcp::2222-:22
をつけて起動
qemu-system-x86_64 \
-enable-kvm \
-m 2048 \
-cpu host \
-smp 2 \
-drive file=ubuntu-server.qcow2,format=qcow2 \
-net nic \
-net user,hostfwd=tcp::2222-:22
端末を開き繋ぐ
ssh -p 2222 testuser@localhost
確認
接続元からaaa.txtを作成し、サーバ側で確認すると作成されていることが確認出来る。
ホストとQEMU間で通信をする設定
qemu-system-x86_64 \
-enable-kvm \
-m 2048 \
-cpu host \
-smp 2 \
-drive file=ubuntu-server.qcow2,format=qcow2 \
-net nic \
-net user,hostfwd=tcp::2222-:22,hostfwd=tcp::8080-:80
ホスト側 localhost:2222 → VM の SSH
ホスト側 localhost:8080 → VM の Apache
ページを公開
apache2を入れる
sudo apt install apache2
apache2を起動
sudo systemctl start apache2
sudo systemctl status apache2
以下のHTMLが公開される
testuser@testserver:~$ ls /var/www/html/
index.html
ホスト側のブラウザから開く
http://localhost:8080/