カテゴリー
サインイン 新規登録

間違いや改善の指摘

内容の技術的な誤り・誤字脱字やミスのご報告・解説やトピックの追記/改善のご要望は教材をさらに良くしていく上でとても貴重なご意見になります。

少しでも気になった点があれば、ご遠慮なく投稿いただけると幸いです🙏

実際には誤りではなく勘違いであっても、ご報告いただけることで教材のブラッシュアップにつながります。

質問ポリシー①

教材受講者みなさんのスムーズな問題解決のために、心がけていただきたいことがあります。

教材の内容に関する質問を投稿しましょう

教材の内容に関係のない質問や教材とは異なる環境・バージョンで進めている場合のエラーなど、教材に関係しない質問は推奨していないため回答できない場合がございます。

その場合、teratailなどの外部サイトを利用して質問することをおすすめします。教材の誤字脱字や追記・改善の要望は「文章の間違いや改善点の指摘」からお願いします。

1-1

そもそもデプロイとは

プログラミングに入門して Web アプリケーションの実装がある程度できるようになると、ステップアップとして「AWS へのデプロイ」に挑戦することをおすすめされることが多いです。

しかし、「デプロイ」と言われても何なのかよく分からないという方は多いです。

そこで本パートでは、そもそも「デプロイ」と何かを説明します。

デプロイとは

Web アプリケーションは、PC のブラウザと実装したプログラムが通信して動作します。

開発中は 1 台の PC の中でブラウザも Web アプリケーションも起動して動作確認することが多いです。

Image from Gyazo

一方、このアプリケーションをインターネットに公開するためには、実装したプログラムをサーバにアップロードして、サーバ上で実行する必要があります。

Image from Gyazo

実装したプログラムを本番などのサーバに配置することや、配置したプログラムを実行することを「デプロイ」と言います。
例えば、AWS などでサーバを借りてデプロイすれば、自分が実装した Web アプリケーションをインターネットに公開できます。

実際には、実装したプログラムをサーバにアップロードして実行するだけでなく、

  • プログラムを動かすために必要なものをサーバにインストールする
  • データベースをインストールして起動する
  • 実装したプログラムがデータベースと接続できるよう設定する

といった対応も必要です。

サーバの構成

また、例えばデータベースについて言えば、

  • Web アプリケーションと同じサーバでデータベースも動かす
  • データベースは別のサーバで動かす
  • データベースのサービスを使う

といった様々な構成があります。

Image from Gyazo

このように、「Web アプリをデプロイする」と言っても様々な選択肢があります。
このような選択肢の中から、各構成の特性や前提条件などを踏まえて、適した構成を選択することになります。

「AWS へのデプロイ」とは

また、Web アプリケーションを動かす (つまりデプロイする) 環境としては、サーバを用意して直接動かす以外にも

  • コンテナ化して動かす
  • PaaS (Platform as a Service) で動かす
  • FaaS (Function as a Service) で動かす

など、様々な選択肢があります。

例えば AWS を使う場合、

  • EC2 (Elastic Compute Cloud)
  • ECS (Elastic Container Service)
  • EKS (Elastic Kubernetes Service)
  • Elastic Beanstalk
  • App Runner
  • Lambda
  • Amplify

といったサービスのうち、どれを使って Web アプリケーションをデプロイするのか選択する必要があります。

これらのサービスのうち、どれを使うべきかは一概には言えません。
やはり各サービスの特性や前提条件を踏まえて、適したサービスを選択することになります。

そして、使用するサービスによって、Web アプリケーションをデプロイするときの設定方法などは大きく異なります。

このように、「AWS にデプロイ」と言っても、具体的な構成や手順は無数に考えられます。

最初に挑戦すべきこと

それでは、初学者が「AWS へのデプロイに挑戦したい」という場合は、どうすればいいのでしょうか?

一番おすすめは、Linux サーバ (EC2 インスタンス) を 1 つ用意して、その中で、実装したアプリケーションやデータベースなどを全て動かしてみることです。
本教材では、このような構成の環境構築について学びます。

他の選択肢としては、「コンテナ化して動かす」「PaaS で動かす」「FaaS で動かす」といったものがあります。しかし、

  • コンテナ化して動かすためには、本教材の内容は前提知識として、さらに追加でコンテナの知識が必要
  • PaaS で動かす方法では、発展的な学習に繋がる基礎知識が身につきにくい
  • FaaS で Web アプリケーションを動かすには、特有の実装や対応が必要

といった理由から、まずは本教材のように Linux サーバで Web アプリケーションを動かしてみるのがおすすめです。

この章で実施する内容の説明

ここまで「デプロイ」について説明してきましたが、このような理屈の説明だけではイメージがつきにくいと思います。
そこで次のパートで、実際にデプロイを体験してみます。

次のパートでは、例として Ruby on Rails (以後、Rails) を使った Web アプリケーションのデプロイを行います。
しかし、どんなプログラミング言語・フレームワークを使っていても、デプロイの手順で実施することには、ある程度の共通点があります
ふだん他のプログラミング言語を使っている方も、「デプロイ」のイメージをつかむため、ぜひ取り組んでみてください。

それでは次のパートに進みましょう。

現在のパート (0)
全パート (1)
みんなで助け合おう!
現在のパートのディスカッション 全0件