やっつけ不定記

好きなときに好きなことをちゃっちゃと書いてます

Amazon Linux 2のVM

EC2で何かしら試したいとき、課金を気にせずローカルでできると便利かなと思っていました。
Dockerイメージでもいいのですが、以前からVMも欲しいなと考えていました。
AWSの公式ドキュメント
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/amazon-linux-2-virtual-machine.html
にやり方は書いてあるのですが、ちょっと読み込みがいりそうでペンディングしていました。
今のご時世かつ雨模様の本日、やるなら今でしょということで作ってみました。

Windows10のVirtualBox6.1で動かすことを目標にやってみます。
基本は上記公式ドキュメントをさらって、わかりにくいところをググってるだけです。

(1)seed.iso起動イメージの作成
適当なLinuxを準備する(ここでは余っていたCentOS7のVMを使用)。
# yum install genisoimage
$ vi meta-data
---ここから---
local-hostname: localhost.localdomain
---ここまで---

※公式ドキュメントにはNW構成の記述もありますが、
 NWはVirtualBoxに任すためホスト名だけ設定。
 実際のホスト名はVM起動後に別途設定する思想にしてます。

$ vi user-data
---ここから---
#cloud-config
#vim:syntax=yaml
users:
# A user by the name `ec2-user` is created in the image by default.
- default
chpasswd:
list: |
ec2-user:ec2-user
# In the above line, do not add any spaces after 'ec2-user:'.
---ここまで---

※ec2-userのパスワードをec2-userにしてる以外は、公式ドキュメントの丸コピーです。
 もちろん、パスワードはVM起動後に任意のものに変更します。

$ genisoimage -output seed.iso -volid cidata -joliet -rock user-data meta-data
→seed.isoができあがるので、これを吸い出す。


(2)Amazon Linux 2 VMイメージのDL
上記公式ドキュメントから取得できます。これを書いている時点では
amzn2-virtualbox-2.0.20200304.0-x86_64.xfs.gpt.vdi
というファイルでした。


(3)VM起動
各種仮想化プラットフォームでのやり方が公式ドキュメントにありますが、
手元のVirtualBoxでのやり方を画像にするとこんな感じ。
マシン名は適当。マシンタイプのバージョンは、公式ドキュメントの32bitから
64bitに変更しました。メモリは一応2GB積んでいます。
ディスクは25GBあるようで、それなりにいろんなことができそうです。
起動するとcloud-initか何かでゲロゲロメッセージが流れますが、
とりあえず気にしないことにします。

f:id:chocopurin:20200613222522j:plain

f:id:chocopurin:20200613222527j:plain

f:id:chocopurin:20200613222531j:plain

f:id:chocopurin:20200613222536j:plain

f:id:chocopurin:20200613222541j:plain

f:id:chocopurin:20200613222545j:plain


(4)事後設定
VirtualBoxでのポートフォワーディング、OS側のホスト名と認証設定、
yum updateができたら、あとは自分好みにしていくという感じです。