概要
- Amazon Linux 2 が発表
- EC2だけでなく、Docker や VMwareやVirtualBox、Hyper-V などの仮想環境で使用可能
- ローカルの開発環境で使いたい!
Amazon Linux 2 とは
↓ここを参照
イメージのダウンロード
↓ここから
Amazon Linux 2 仮想マシンイメージ
VirtualBox で Amazon Linux 2 起動する
ポイント
ログインユーザーのパスワードやSSHの公開鍵は cloud-init で設定する
↓詳しくは
README.cloud-init
cloud-init のファイルを格納したISOイメージを作成
AWS re:Invent 2020 で発表された AWS CloudShell を使用しました。 (2020/12/22 更新)
( genisoimage が使用できればどこでも良いはず)
↓AWS CloudShell について
2017/12/17
Mac で cloud-init のファイルを格納したISOイメージを作成する方法を その他 に記載しました。
genisoimage コマンドのインストール
$ sudo yum -y install genisoimage
meta-data ファイルを作成
meta-data ファイルの内容
(ホスト名はお好みで)
local-hostname: localhost.localdomain
user-data ファイルを作成
user-data ファイルの内容
(パスワードに secret
を設定する場合)
#cloud-config
chpasswd:
list: |
ec2-user:secret
【注意】 ec2-user:secret
の間にスペースを入れてはいけません
ISOイメージの作成
$ genisoimage -output seed.iso -volid cidata -joliet -rock meta-data user-data
注意: ボリュームIDは cidata
を指定
VirtualBox に新規仮想マシンを追加
- ハードディスクにダウンロードした Amazon Linux 2 のイメージを指定
- cloud-init のファイルを格納したISOイメージを起動ドライブにマウント
VirtualBox の仮想マシンを起動
ユーザー ec2-user
/ パスワード user-data で指定したパスワード
でログインできます
その他
Mac で cloud-init のファイルを格納したISOイメージを作る方法
公式のドキュメントでは cloud-init のファイルを格納したISOイメージを genisoimage で作成しています。
実際には以下の条件に合うイメージであれば利用可能です。
- ファイルシステムが ISO9660 (JOLIET) である
- ボリュームIDが cidata である
このイメージを Mac で作るときは hdiutil を使用します。
hdiutil で cloud-init のファイルを格納したISOイメージを作成する
ディレクトリ cidata
に、ファイル user-data
と meta-data
を格納する
(ディレクトリ名がボリュームIDになります)
.
└── cidata
├── meta-data
└── user-data
hdiutil でISOイメージを作成する
$ hdiutil makehybrid -iso -joliet -o seed.iso cidata
ISOイメージがカレントディレクトリの seed.iso に出力されます。
SSHで使用する公開鍵を user-data で登録する方法
↓設定方法のサンプル
Cloud config examples — cloud-init 20.4 documentation > Configure instances SSH keys
まとめ
Amazon Linux がオフラインの開発にも使用できるようになりました。
現在はまだ LTS Candidate ということなので、LTS バージョンがリリースされるのが楽しみです。
【2018/6/27更新】LTS バージョンがリリースされました!
Announcing Amazon Linux 2 with Long Term Support
つづき
Amazon Linux 2 を Vagrant で使用するための Base Box の作り方を書きました
Amazon Linux 2 の Vagrant Base Box を作成する