
このコースの概要や実装する題材、対象者や前提知識を確認します。
このコースを受講するときの進め方について説明します。
このコースで発生する可能性のある、AWS の料金について説明します。
AWS の概要や操作方法、「クラウド」の定義を学びます。
AWS が提供する「コンピューティングサービス」について、それぞれの概要や違いを整理します。
AWS で Web アプリケーションを動かす典型構成を学びます。
このセクションで実施する内容を確認します。
マネジメントコンソールで VPC を作成します。
VPC の作成時に登場した「リージョン」「AZ」「サブネット」の概要と、VPC の基本構成を学びます。
以後のセクションで使用する RDS のインスタンスを作成します。
RDS の料金の基本と、RDS インスタンス停止時の注意事項を説明します。
コンテナを本番などの環境にデプロイするときの流れの基本を学びます。
このコースで使用するサンプルアプリケーションの概要と、コンテナイメージをビルドする環境について説明します。
AWS Cloud9 の概要を学び、環境を作成します。
サンプルアプリケーションを Cloud9 上に用意して、実行してみます。
Cloud9 上でサンプルアプリケーションのイメージをビルドします。
ECR のリポジトリを作成し、サンプルアプリケーションのイメージを push します。
このセクションで実施した内容をまとめます。
このセクションで実施する内容を確認します。
コンテナを実行する環境として、VPC 内に EC2 インスタンスを作成します。
EC2 Instance Connect を使用して EC2 インスタンスに接続します。
Docker 公式のスクリプトを使用して、EC2 に Docker をインストールします。
EC2 で docker run コマンドを実行し、この時点ではエラーになることを確認します。
EC2 で docker login コマンドを実行し、この時点ではエラーになることを確認します。
AWS の認証認可を担う IAM について、IAM Policy・IAM User・IAM Role の概要を学びます。
ECR からイメージを pull するための IAM Role を作成し、EC2 インスタンスに設定します。
IAM Role の設定が完了した上で、docker login と docker run を再度実行してみます。
ブラウザからサンプルアプリケーションにアクセスするため、セキュリティグループの設定を変更します。
データベースの接続情報を環境変数に設定したうえで、docker run コマンドを実行し直します。
サンプルアプリケーションからデータベースにアクセスするため、セキュリティグループの設定を変更します。
このセクションで実施した内容をまとめて、以後のセクションで不要なリソースを削除します。
コンテナオーケストレーションの必要性や、近年 ECS on Fargate が採用されることが多い理由を学びます。
ECS の基本概念である「クラスタ」「タスク定義とタスク」「サービス」の概要と関係を学びます。
マネジメントコンソールで ECS のクラスタを作成します。
サンプルアプリケーションを実行するためのタスク定義を作成します。
手動でタスクを実行してサンプルアプリケーションにアクセスしてみることで、「サービス」を作成する必要性を学びます。
サービスに設定するための ALB を作成します。
ECS のサービスを作成して、サービスにタスクを起動させます。
ブラウザからサンプルアプリケーションにアクセスするため、ALB のセキュリティグループの設定を変更します。
ALB からサンプルアプリケーションにアクセスするため、タスクのセキュリティグループの設定を変更します。
データベースの接続情報を Systems Manager Parameter Store に保存します。
タスク定義を更新して、Systems Manager Parameter Store からデータベースの接続情報を取得し、コンテナの環境変数として設定するようにします。
Systems Manager Parameter Store にアクセスするための IAM Role を作成します。
Systems Manager Parameter Store にアクセスするために作成した IAM Role を、タスク実行ロールとして設定してタスクを起動し直します。
サンプルアプリケーションからデータベースにアクセスするため、データベースのセキュリティグループの設定を変更します。
このセクションで実施した内容をまとめて、以後のセクションで不要なリソースを削除します。
よく語られる、ECS と EKS の難易度の違いについて補足します。
ECS の環境構築に Copilot CLI などのツールを使用する理由を説明し、よく使われるツールを紹介します。
AWS 公式のツールである Copilot CLI の概要と、登場する概念を説明します。
Cloud9 で Copilot CLI を使うために、Managed Temporary Credentials ではなく、自作した IAM Role を使用するよう設定します。
Cloud9 に Copilot CLI をインストールします。
Cloud9 上に作業用のディレクトリを作成し、サンプルアプリケーションのソースコードを配置します。
Copilot CLI を使って、ECS on Fargate の環境構築を実施します。
Copilot CLI での環境構築がうまくいかない場合の対応方法を補足します。
Copilot CLI で実行したタスクからデータベースに接続するための、環境変数の設定を追加します。
サンプルアプリケーションからデータベースにアクセスするため、サンプルアプリケーションのセキュリティグループを変更します。
サービスのオートスケーリングを設定してみます。
ECS Exec でコンテナに接続する方法を学び、接続してみます。
ECS Exec でコンテナに接続し、負荷をかけるコマンドを実行することで、オートスケーリングの動作確認をしてみます。
このセクションで実施した内容をまとめます。
クラウドやコンテナの性能を活かしたアプリケーションの特徴である Twelve-Factor について学びます。
Git や GitHub に慣れていない方のために、Git と GitHub の概要を説明します。
GitHub の SSH の設定を行い、Cloud9 から GitHub に接続可能にします。
GitHub にサンプルアプリケーション用のリポジトリを作成します。
GitHub にサンプルアプリケーションのソースコードを push します。
CI/CD の概要と構成例を学びます。
Copilot CLI を使い、prod 環境を追加で構築します。
Copilot CLI で CI/CD パイプラインを構築します。
アプリケーションのソースコードを更新して、CI/CD パイプラインを動作確認します。
このセクションで実施した内容をまとめて、以後のセクションで不要なリソースを削除します。
AWS の注目の新サービスである App Runner の概要を学びます。
App Runner でサンプルアプリケーションをコンテナとして実行してみます。
オートスケーリングを試すツールとして、Cloud9 に hey をインストールします。
hey を使用して App Runner のスケーリングを試し、App Runner の挙動について学びます。
このセクションで実施した内容をまとめます。
近年、アプリケーションの実行環境としてクラウドの利用例は多く、特に AWS を使用する場面は非常に増えています。
AWS でアプリケーションを動かせるサービスはいくつもありますが、最近は特にコンテナを使うサービスを採用するケースが増えています。
そんな中、実務で急に AWS のコンテナサービスを使うことになったものの、そもそも AWS 自体の知識も足りず、苦戦するという方は少なくありません。
また、EC2 や RDS などをなんとなくさわったことがあっても、ECS などのコンテナサービスをさわった経験はない方や、Infrastructure as Code・CI/CD までを整えた実践レベルの環境構築までは経験がない方も多いです。
他にも、Docker や Docker Compose を使うなどしてコンテナでローカル開発環境の構築はできても、コンテナで本番環境を作る知見はないという方も多いです。
そこでこのコースでは
AWS 自体の基本やコンテナサービス ECS の基礎に始まり...
Copilot CLI というツールを使用した実践的な環境構築(Infrastructure as Code・オートスケール・CI/CD)
さらには注目の新しいコンテナサービス App Runner まで
すべて手を動かしながら学びます。
■前提知識について
このコースでは、Docker やコンテナの基礎は前提知識としているため解説しません。
Docker やコンテナは、以下の知識があることが前提条件となります
「コンテナ」と「イメージ」の違いをしっかり理解していること
Docker を使って自力で Web アプリケーションの開発環境を構築できること
もしも前提知識に不足を感じる場合は、このコースの前に「Linux とネットワークの基礎から学ぶ Docker 入門」を受講することをおすすめします。
更新履歴
2023/05/12:レクチャー「(補足)マネジメントコンソールの ECS の画面について」とレクチャー「(補足)「App Runner でコンテナを実行」で設定するコマンドについて」を追加
2024/01/10:レクチャー「(補足)マネジメントコンソールの ECS の画面について」を更新
2024/08/05:「(追記)AWS Cloud9 新規利用終了のための代替環境について」を追加
2026/05/05:「(追記)App Runner の新規利用終了について」を追加