この講座で学べること
1. なぜコンテナを学ぶのか
コンテナは現代のアプリケーション開発・運用におけるデファクトスタンダードです。「開発環境では動くのに本番環境では動かない」という環境差異の問題を解消し、どこでも同じように動くアプリケーションの実行環境を実現します。AWS上でコンテナを動かすには、ECRやECS/Fargateの理解が必須です。
この講座では、Dockerの基本操作から、AWS上でコンテナアプリケーションをデプロイするまでを段階的に学びます。
1.1 こんな方におすすめ
- アプリケーションの本番環境構築を担当するインフラエンジニアの方
- 開発環境と本番環境の差異に悩んでいる方
- マイクロサービスアーキテクチャの基盤を学びたい方
- AWS上でコンテナを動かす方法を知りたい方
1.2 学べること・身につくこと
この講座を修了すると、以下のスキルが身につきます。
| スキル | 内容 |
|---|---|
| Dockerの基本操作 | コンテナの起動・停止・削除・ログ確認などの基本コマンドを使いこなせる |
| Dockerfileの作成 | Dockerfileを書いてアプリケーションのコンテナイメージをビルドできる |
| マルチステージビルド | 不要なファイルを除いた最適なイメージを構築できる |
| コンテナ間通信 | Dockerネットワークを使ってコンテナ同士を連携させられる |
| データ永続化 | ボリュームとバインドマウントでコンテナのデータを永続化できる |
| 複数コンテナ管理 | Docker Composeで複数コンテナを一括で起動・停止できる |
| AWSへのデプロイ | ECR/ECS/Fargateを使ってAWS上にコンテナアプリケーションをデプロイできる |
2. 章一覧
| 章名 | 種別 | 概要 | 目安時間 | 料金の目安 |
|---|---|---|---|---|
| コンテナとは | 座学 | コンテナ技術の概要と仮想マシンとの違い | 20分 | – |
| Dockerの基本操作 | 総合 | コンテナの起動・停止・削除などの基本コマンド | 45分 | – |
| Dockerfileの基本文法 | 総合 | Dockerfileの命令とイメージのビルド | 45分 | – |
| マルチステージビルド | 総合 | マルチステージビルドによるイメージの最適化 | 30分 | – |
| Dockerネットワーク | 総合 | コンテナ間通信の仕組みとネットワーク設定 | 30分 | – |
| Dockerストレージ | 総合 | ボリュームとバインドマウントによるデータ永続化 | 30分 | – |
| Dockerで3層アーキテクチャを構築しよう | ハンズオン | Dockerを使ったフロント・API・DBの3層構成の構築 | 90分 | – |
| Docker Compose | 座学 | 複数コンテナの定義と一括管理 | 45分 | – |
| Docker Composeで3層アーキテクチャを構築しよう | ハンズオン | Docker Composeによる3層構成の構築 | 60分 | – |
| Amazon ECR概要 | 座学 | コンテナレジストリの仕組みとイメージ管理 | 20分 | – |
| Amazon ECS / Fargate概要 | 座学 | ECSとFargateによるコンテナ実行環境 | 30分 | – |
| ECSとFargateでシンプルなWebアプリケーションをデプロイしよう | ハンズオン | ECS/Fargateへのコンテナデプロイ | 90分 | 約200〜500円 |
| ECSとFargateで本格的なWebアプリケーションをデプロイしよう | ハンズオン | VPC・RDS・ECSを組み合わせた本格的なデプロイ | 120分 | 約300〜800円 |
| 応用課題 | 課題 | タスク管理APIをコンテナ化し、Docker Composeで起動した上で ECS/Fargate にデプロイ | 240分 | 約200〜800円 |
3. 学習の流れ
3.1 事前に学んだほうが良い講座
本講座を始める前に、以下を学んでおくと理解がスムーズです。
| 講座名 | 事前に学ぶ理由 |
|---|---|
| Python講座 | 本講座でコンテナ化するアプリケーションが FastAPI で実装されており、Python の基本を先に理解しておくため |
3.2 この講座を学んだら
本講座の後は、以下を実施するのがおすすめです。
| 講座名 | おすすめの理由 |
|---|---|
| Terraform講座 | 本講座で構築した ECS/Fargate 環境を Terraform でコード化して管理できるようになるため |