1. はじめに
Linuxを学習する際、毎回EC2を手動で作成して環境を用意していました。
ただ、この作業は学習のたびに行う必要があり、少し手間だと感じていました。
そこで今回、AWS CDKを使ってLinux学習用のEC2環境をコードで構築できるようにしました。
これにより、
- 学習環境をすぐに作成できる
- 同じ環境を再現できる
- IaCの練習にもなる
といったメリットを得ることができました。
この記事では、AWS CDKを使ってLinux学習環境を構築した方法を紹介します。
2. 背景
Linuxの学習では、実際にサーバーを触りながらコマンドを試すことが重要です。
しかし、学習用の環境を毎回手動で構築する場合、
- EC2の作成
- セキュリティグループの設定
- VPC の作成
- Session Manager の作成
などの作業が必要になります。
このような作業は毎回同じ手順であり、**自動化できる作業(Toil)**だと感じました。
そこで、AWS CDKを使って学習環境をIaC化することにしました。
3. 作ったもの
Linux学習用のEC2環境を、AWS CDKで簡単に構築できるプロジェクトを作成しました。
GitHubはこちらです。
https://github.com/kohei-iwamoto-wa/linux_learning
主な特徴は以下です。
- AWS CDKによるインフラ構築
- Linux学習用EC2の自動作成
- SSHですぐに接続可能
- CDK destroyで環境削除可能
- EventBridge Scheduler で CloudFormation スタックを定時で削除(リソース削除忘れ防止のため)
4. 構成
今回の構成はシンプルです。
AWS CDK VPC ↓ EC2 (Amazon Linux) ↓ Linux学習
CDKでEC2インスタンスを作成し、SSHで接続してLinuxコマンドの学習を行います。
5. CDKを使うメリット
今回CDKを使ったことで、次のメリットがありました。
5.1. 環境構築の自動化
手動でEC2を作成する必要がなくなり、
コマンド一つで学習環境を構築できるようになりました。
5.2. 再現性のある環境
IaCとして管理することで、
いつでも同じ構成の環境を再現できます。
5.3. IaCの練習になる
CDKを使うことで、インフラをコードとして管理する
実践的な練習にもなりました。
6. 使い方
基本的な流れは以下です。
- リポジトリをクローン
- CDKをデプロイ
- Linuxコマンドを学習
不要になった場合は、CDK destroyで簡単に環境を削除できます。
7. まとめ
Linux学習環境をAWS CDKで構築することで、
- 環境構築の手間削減
- 再現性のある学習環境
- IaCの実践的な練習
- AWS リソース削除の手間の削減
を同時に実現することができました。
学習環境もInfrastructure as Codeとして管理することで、
より効率的に技術学習を進められると感じました。
Linux学習やIaCに興味がある方の参考になれば幸いです。