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. 使い方

基本的な流れは以下です。

  1. リポジトリをクローン
  2. CDKをデプロイ
  3. Linuxコマンドを学習

不要になった場合は、CDK destroyで簡単に環境を削除できます。


7. まとめ

Linux学習環境をAWS CDKで構築することで、

  • 環境構築の手間削減
  • 再現性のある学習環境
  • IaCの実践的な練習
  • AWS リソース削除の手間の削減

を同時に実現することができました。

学習環境もInfrastructure as Codeとして管理することで、
より効率的に技術学習を進められると感じました。

Linux学習やIaCに興味がある方の参考になれば幸いです。