
学習時間 | 15時間 |
---|---|
難易度 | 中級 |
質問投稿 | 可 |
【現役エンジニア向け】AWSでシングル構成の環境からスケーラブルな環境を構築するノウハウを学ぼう with Terraform
サーバ1台のシステム環境から、スケーラビリティ・可用性・セキュリティ・ハイパフォーマンスを考慮したシステムの構築を通して、ネットワーク・セキュリティ・データベース・コンピューティング・ストレージの基礎知識を理解し、自身でインフラを構築できるようになることを目指す。
明日から実務に活かせる実践的なインフラ活用スキルを身につけよう
本教材はAWSを用いて、シングル構成で運用しているサーバをクラウドの特徴を活かしたスケーラブルな本番環境を構築します。
1台の構成からスケーラブルな環境にするにはAWSの基本的な機能をフル活用します。セキュリティ、可用性、パフォーマンスの観点を解説しながらステップごとに作成します。
本教材ではアプリケーションとしてWordPressを用いますが、RailsやLaravelなどで作られたアプリケーションでも何でも良いです。主にAWSのサービスを用いてスケーラブルに構築していく大まかな流れを把握してもらうことを一番の目的としておりますので、本教材終了後は自社のアプリケーションをスケーラブルにすることを進めていただければと思います。
学習内容 / 本教材を終えたらどのような状態になっているか
サーバ1台のシステム環境から、スケーラビリティ・可用性・セキュリティ・ハイパフォーマンスを考慮したシステムの構築ができる。
具体的には以下の基礎知識を理解し、構築できるようになっている。
- ネットワーク、セキュリティ
- VPC、サブネット、NATゲートウェイ、踏み台(SSM)、CloudFront、アプリケーションロードバランサー
- データベース
- RDS、ElastiCache
- コンピューティング、ストレージ
- EC2、AutoScaling、EFS
本教材で構成するインフラの全体像
本教材では、最終的には次の図のように2つのアベイラビリティーゾーンでロードバランサー、Webサーバ、データベースサーバを展開し、スケーラビリティ、高可用性、セキュリティを考慮した構成を構築します。
1台の環境から1つ1つ拡張しながら、各サービスの重要な機能、セキュリティ、コストの注意点などの解説を進めます。
本教材の対象者
本教材は現役エンジニア向けの教材です
- AWSを契約済み
- どの言語でも良いのでサンプルアプリケーションを作り、EC2などのサーバ上で動かしたことがある方
- 一般的なWeb三層構造でAWSを活用すると何が良いのかを把握したい方
- 本番サービスとして耐えうる環境(スケーラビリティ・可用性・セキュリティ・パフォーマンス)に興味がある方
受講における必要条件
- 1台構成のアプリケーション・システムの構築ができる。
学ばないこと
- AWSのサービスを用いてスケーラブルに構築していく大まかな流れを把握してもらうことを一番の目的としておりますので、アプリケーションの細かな説明、挙動、特定のフレームワークの解説はありません。
- AWS環境はTerraformで構築しますが、Terraform自体の使い方などは最低限になっています。需要があれば別教材で解説いたします。
本教材の対応バージョン
- AWS CLIバージョン1
- Terraform 0.12系
- macOS Catalina +
本教材で質問対応可能なOSや環境
- macOS
本教材の構成について
0章:はじめに
本教材を進める上での環境を整えたり、設計を解説していきます。
1章: 1台構成のアプリケーションを作成する
本教材では、最終的にはスケーラビリティ、高可用性、セキュリティを考慮したシステムを構築しますが、本章では、その第一歩となるEC2の1台構成のアプリケーション環境を作ります。
2章: VPCを活用し高セキュリティのネットワークを構築する
本章では、高セキュリティの基礎となるVPCを作成します。
3章: RDSを活用し高可用性なデータベースを構築する
本章では、RDSを作成しRDSを利用するようにアプリケーションに変更を加えます。
高可用性なデータベースを構築するにあたり、RDSを利用することでHA(ハイアベイラビリティ)クラスターを簡単に作成でき、バックアップやリストアなどの運用も楽になります。
4章: ALBを活用しスケーラブルなロードバランサーを構築する
本章では、ロードバランサーとしてALB(アプリケーションロードバランサー)を利用します。 ALBを利用することでスケーラビリティ、高可用性、セキュリティに関して安価に次の効果が得られます。
5章: オートスケーリングを活用しEC2をスケーラブルにする
本章では、ASG(オートスケーリンググループ)を作成し高負荷時に自動でスケールアウトし、障害時に自動復旧させる環境を作ります。 合わせて複数のEC2環境で同じコンテンツを参照できるように、共有ストレージのEFS(エラスティックファイルシステム)も利用します。 最後に負荷試験を行いオートスケールの動きを確認します。
6章: AWSのサービスを活用しパフォーマンスを向上させる
本章では、コンテンツキャッシュとDBキャッシュを活用しパフォーマンスを向上させる環境を作ります。
7章: 作成したリソースの削除
最後に、本章ではこれまでTerraformで作成したリソースの削除を行います。
カリキュラム
- 2-1 VPCを活用し高セキュリティのネットワークを構築する