春からPlatform Engineerということで、事前学習をするために学習ロードマップをエーアイさんと一緒に考えたのでメモでおいておきます。
Platformエンジニアになるための学習ロードマップ
以前はWindows ServerのインフラエンジニアだったのでそこからPlatform Engineerへステップアップするための学習ロードマップとなっています。なお、クラウド環境はAWSを想定しています。
一応KubernetesやOpenstackなどを使ったことがあるのでそれらを活かしながら学習を進める想定となっています。
基本的な土台作り
Windows Serverのインフラエンジニアが前提となっているので、Linuxの基礎から始めているようですね。AWSでもEC2などでlinuxに触れる機会があると思うので、Linuxは業務で使っていましたが復習としてやっておこうと思います。
- Linux基礎の習得
- Windows Server中心からクラウドに移行する際、Linuxサーバの管理やツール操作は必須スキルとなります。
- 基本的なLinuxコマンドやプロセス管理、ネットワーク設定などを身につける。
- セキュリティ(SELinux, sudo, ファイアウォール設定など)の概要も押さえる。
- ネットワークとプロトコルの基礎
- TCP/IPやDNS、ロードバランサやプロキシなどの仕組みを理解する。
- Kubernetesなどのコンテナオーケストレーションを支えるネットワークの考え方を再確認する。
- 仮想化技術・コンテナ技術のおさらい
- 既にKubernetesやOpenStackを扱ったことがあるので、基礎はできていると思われます。
- Docker等のコンテナ技術、Kubernetesの概念(Pod/Service/Ingress/Deployment/StatefulSetなど)を改めて整理しておく。
- HelmパッケージマネージャやOperatorsについても概要を押さえるとより実践的。
まずは基礎を固めてくださいということで、Linuxの基礎からコンテナの基礎もやっていこうと思います。記事に出来たら投稿します。
AWSの基礎習得
Azureの資格は持っていますが、あれはほぼ利用していないのに付け焼き刃で取ったようなものなので、AWSに関してはしっかり利用しながら学習していこうと思います。
- クラウドの基本概念理解
- AWS、GCP、Azureなど主要クラウドの基本サービス(Compute/Storage/Networking)と料金モデルの理解。
- IaaS, PaaS, SaaSといったクラウドサービスモデルの意味合いを再確認。
- AWSの主要サービス学習
- EC2(仮想マシン)
- S3(オブジェクトストレージ)
- VPC(ネットワーク)
- IAM(認証・権限管理)
- RDS(マネージドDB)
- Elastic Load Balancing / Auto Scaling
- CloudWatch(監視/ログ)
- 最初はAWS公式ドキュメントやBlack Belt Online Seminar、公式トレーニングなどで一通り概要を掴む。
- ハンズオンやチュートリアルを通じて各サービスを試し、どんなユースケースで使われるのか感覚を養う。
- AWS資格学習(推奨)
- AWS Certified Solutions Architect – Associate や AWS Certified SysOps Administrator – Associate を目指すと学習範囲を体系的にカバーできる。
- 資格勉強により実践しやすい演習問題も手に入るのでおすすめ。
IaC(Infrastructure as Code)・自動化スキルの強化
ここはほとんど触れたことがないところなのでしっかり学習して記事にしていきたいと思います。
- Terraform or AWS CloudFormation
- AWS上のリソースをコードベースで管理し、バージョン管理できるようにする。
- Terraformがマルチクラウド対応で人気だが、AWS単体であればCloudFormationでも充分学習価値は高い。
- どちらにせよ、「コードでインフラを構築・変更・破棄する」流れを体得することが大事。
- CI/CDパイプライン構築
- JenkinsやGitLab CI、GitHub Actionsなどでの自動ビルド&デプロイを学ぶ。
- AWS CodePipeline, CodeBuild, CodeDeployなどAWSネイティブサービスの利用も検討。
- Dockerイメージビルド、ECRへのプッシュ、ECS or EKSへのデプロイまでの流れを把握する。
コンテナオーケストレーション・クラウドネイティブ設計
Kubernetesに触れたことはあってもEKSはないのでしっかり学習して記事にしたいと思います。
- Amazon EKS (Elastic Kubernetes Service)
- 既にKubernetesに触れた経験を活かしつつ、AWS上でマネージドKubernetesを運用する方法を学習。
- ネットワーク周り(CNIプラグイン)、EKS Clusterのセットアップ、Node Group管理などに慣れる。
- Auto ScalingやFargateとの連携による運用効率化も重要。
- クラウドネイティブアプリケーション
- 12 Factor Appの概念やマイクロサービスアーキテクチャを理解する。
- サービスメッシュ(Istio, Linkerdなど)やサーバレス(AWS Lambda)などクラウド特有の設計パターンにも触れると視野が広がる。
モニタリング・ログ管理・セキュリティ強化
ログはZabbixやPrometheusは触れたことありますが、Fluentdなどは触れたことがないのでそのあたりを触りつつログについて記事にできたらなと思います。
- Observability(可観測性)の構築
- CloudWatch, AWS X-Ray, Prometheus, Grafanaなどを使った監視・可視化。
- FluentdやFluent Bit, Logstashなどでのログ集約・分析。
- セキュリティ対策・権限管理
- AWS IAMポリシーのベストプラクティス(最小権限の徹底など)。
- AWS Organizations, Control Tower, Security Hubなどを使ったアカウント管理手法。
- ネットワークセキュリティ(セキュリティグループ、NACL、VPCエンドポイント、WAF/Shieldなど)。
SRE的視点と運用自動化
Windows ServerインフラエンジニアはGUIの操作が多く、手動でいろいろやることも多かったのでこの辺りもしっかり学んでいきたいと思います。
- 信頼性向上と運用効率化の考え方
- SLO(Service Level Objective)やエラーバジェットなどの考え方を学ぶ。
- インシデント管理、ポストモーテム文化などの運用プロセスを整備。
- 自動化・Infrastructure as Codeの徹底
- プラットフォーム構築を「手動でやらない」方針を徹底し、ドキュメントとコードを連動させる。
GolangやPythonを触る
これは考えてもらっていないのですが、Kubernetesや自動化ツールなどを触るときにツールがGolangやPythonで書かれていることがあるので、トラブルシューティングはそれらの言語を取り扱うケースがあると思います。そのため、GolangやPythonを触れていこうと思います。
- Golangの環境整備・土台作り
- Golangは触ったことがないので環境から作成してみます。
- Pythonの復習
- Pythonでアプリケーションを作ったことはありますが、復習をしておこうと思います。
実践プロジェクトで経験を積む
これは上記様々な記事を作成するときに実際に環境を作ってみるという感じで実践してみようと思います。
- 小規模でもいいので一連の流れを試す
- AWSアカウントを作成し、実際にネットワークを構築(VPC, Subnet, IGWなど)→サーバデプロイ(EC2など)→IaCコード管理→Kubernetesをセットアップ→CI/CDを整備→監視・運用までの流れを構築する。
- 社内/個人プロジェクトでEKS環境やTerraformを活用し、「AWS上でKubernetesを運用する」経験を得られると大きなアドバンテージに。
[まとめ]学習ステップの優先度目安
- 最優先: AWS基礎, Linux/ネットワーク再確認
- 次点: Terraform等のIaC, EKS運用
- 最後に: SRE/セキュリティ/オブザーバビリティの強化
以上のように、まずはAWSの基礎を押さえ、次にIaCやKubernetes環境構築を含む、より自動化された運用プロセスを身につけることが、Platform Engineerへの近道となります。
プライベートクラウド構築でのKubernetes経験は十分活かせるので、パブリッククラウド向けのサービスやツールに置き換えながら少しずつプロジェクトを進めると実践力が高まります。
ということなので、AWSの資格勉強や、実践記事などを今後やっていこうと思います。