教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。
その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。
プログラミングに入門して Web アプリケーションの実装がある程度できるようになると、ステップアップとして「AWS へのデプロイ」に挑戦することをおすすめされることが多いです。
しかし、「デプロイ」と言われても何なのかよく分からないという方は多いです。
そこで本パートでは、そもそも「デプロイ」と何かを説明します。
Web アプリケーションは、PC のブラウザと実装したプログラムが通信して動作します。
開発中は 1 台の PC の中でブラウザも Web アプリケーションも起動して動作確認することが多いです。
一方、このアプリケーションをインターネットに公開するためには、実装したプログラムをサーバにアップロードして、サーバ上で実行する必要があります。
実装したプログラムを本番などのサーバに配置することや、配置したプログラムを実行することを「デプロイ」と言います。
例えば、AWS などでサーバを借りてデプロイすれば、自分が実装した Web アプリケーションをインターネットに公開できます。
実際には、実装したプログラムをサーバにアップロードして実行するだけでなく、
といった対応も必要です。
また、例えばデータベースについて言えば、
といった様々な構成があります。
このように、「Web アプリをデプロイする」と言っても様々な選択肢があります。
このような選択肢の中から、各構成の特性や前提条件などを踏まえて、適した構成を選択することになります。
また、Web アプリケーションを動かす (つまりデプロイする) 環境としては、サーバを用意して直接動かす以外にも
など、様々な選択肢があります。
例えば AWS を使う場合、
といったサービスのうち、どれを使って Web アプリケーションをデプロイするのか選択する必要があります。
これらのサービスのうち、どれを使うべきかは一概には言えません。
やはり各サービスの特性や前提条件を踏まえて、適したサービスを選択することになります。
そして、使用するサービスによって、Web アプリケーションをデプロイするときの設定方法などは大きく異なります。
このように、「AWS にデプロイ」と言っても、具体的な構成や手順は無数に考えられます。
それでは、初学者が「AWS へのデプロイに挑戦したい」という場合は、どうすればいいのでしょうか?
一番おすすめは、Linux サーバ (EC2 インスタンス) を 1 つ用意して、その中で、実装したアプリケーションやデータベースなどを全て動かしてみることです。
本教材では、このような構成の環境構築について学びます。
ここまで「デプロイ」について説明してきましたが、このような理屈の説明だけではイメージがつきにくいと思います。
そこで次のパートで、実際にデプロイを体験してみます。
次のパートでは、例として Ruby on Rails (以後、Rails) を使った Web アプリケーションのデプロイを行います。
しかし、どんなプログラミング言語・フレームワークを使っていても、デプロイの手順で実施することには、ある程度の共通点があります。
ふだん他のプログラミング言語を使っている方も、「デプロイ」のイメージをつかむため、ぜひ取り組んでみてください。
それでは次のパートに進みましょう。