教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。
その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。
Web アプリケーションの実装に入門した次のステップアップとして、AWS を学ぼうと考える方は多いです。
特に、自分の作ったアプリケーションを「AWS にデプロイ」 する方法を学びたいという声はよく耳にします。
「AWS へのデプロイ」を学ぶには、いくつものステップがあります。
その第一歩は、「AWS に Linux サーバを 1 台だけ用意して、そこで環境構築する」ことです。
そこで本教材では、「AWS へのデプロイ」を Linux サーバ 1 台という最小構成で実現することを目標として、Linux・ネットワークの基礎知識に始まり、Web アプリケーションの環境構築の基礎を学んでいきます。
本教材では、プログラミングの基礎を学んだ段階から、AWS を学び始める準備ができるくらいまでのステップアップを目指します。
具体的には、
を学び、Linux サーバで基本的な Web アプリケーションの環境構築ができる状態を目指します。
本教材では、Linux サーバでの Web アプリケーションの環境構築の第一歩として、Web サーバ・アプリケーションサーバ・データベースを疎通させる方法を学びます。
実際にアプリケーションを公開する際に必要になる、ドメインの取得や DNS の設定・SSL 証明書の設定までは解説しません。
題材として練習するのは、Ruby on Rails・Laravel・Spring Boot を使った、サーバサイドで HTML を生成する方式の Web アプリケーションです。
Web API を使う方式のアプリケーションや、SPA などのデプロイ方法は解説しません。
また、AWS については EC2 に触れる程度にとどめ、AutoScaling や VPC、RDS などその他のサービスについては解説しません。
本教材では、AWS の Linux サーバを 1 台使用して、Ruby on Rails・Laravel・Spring Boot を使った Web アプリケーションのデプロイを学びます。
下図のように、Ruby on Rails・Laravel・Spring Boot のアプリケーションに加えて、Web サーバ (nginx) やデータベース (PostgreSQL や MySQL) もセットアップする、非常に典型的な構成の環境を構築していきます。
本教材では、AWS を使用し、その中でも EC2 と EBS というサービスの料金が発生します。
AWS のアカウントを作成して 1 年以内の場合、無料枠が適用される可能性があります。
無料枠が適用されない場合、目安として、月額で 10 ドルを少し超えるくらいの料金が発生する可能性があります。
後で説明する流れで EC2 を停止・削除することで、費用を削減することもできます。
より詳細な料金体系は以下のページから確認できます。
執筆者は、サーバサイドやクラウドインフラを中心に携わっているエンジニアです。
AWS については、Web アプリケーションの稼働環境の構築やデータ分析基盤の構築といった多数の経験があり、AWS Certified Solutions Architect - Professional の資格を保有しています。
現在は、「実務につき始めたエンジニア」向けの研修や教材作成などの活動中です。
本教材の概要や、進め方を説明します。
また、後の各章で必要な EC2 の起動・停止方法を解説します。
まずは「AWS へのデプロイ」を一通りざっと体験してみます。
体験を通して、「AWS へのデプロイ」ができるようになるには、どんな知識を学ぶ必要があるのかを確認します。
Linux サーバに接続する方法と、ディレクトリやファイルの基本操作を学びます。
また、「コマンド」「インストール」「PATH」といった基本概念を学びます。
シンプルな Web サーバの環境構築を通して、Web サーバの概要と Linux のプロセスの概念を学びます。
Web アプリケーションの環境構築で壁になりやすい、ネットワークと Web の仕組みに入門します。
5 章から 7 章では、いくつかのプログラミング言語を使って、仕組みを学びながら環境構築に挑戦します。
5 章では Ruby (Rails) を使った Web アプリケーションの環境構築に挑戦します。
初学者が混乱しがちな「Rack」や、Puma・Unicorn といった「アプリケーションサーバ」などの関係も学びます。
6 章では、PHP の実行方式を学び、PHP (Laravel) を使った Web アプリケーションの環境構築に挑戦します。
「FastCGI」や「php-fpm」がキーワードです。
Java の実行方式の基本を学び、Java (Spring Boot) を使った Web アプリケーションの環境構築に挑戦します。
その中で、アプリケーション開発に関わり始めたばかりではイメージしにくい、「ビルド」という概念も学びます。
最後に、Python・Go・Node.js といった、その他の言語の Web アプリケーションのデプロイ方法について概要を説明します。
また、今後のステップアップとして、より実践的な構成や、そのために学習すべき知識を紹介します。