【初心者向け】GitHubでAWS上に開発したコードをデプロイする方法

【初心者向け】 githubでAWS上に 開発したコードを デプロイする方法のアイキャッチ プログラミング

本記事では、以下の目的で作成しています。

  • GitHubの特徴と使い方が分かる
  • GitコマンドによってAWS上にコードをデプロイする方法が分かる

GithHbとは?デプロイについて

まず、GitHubとはなにか?そして、デプロイとは何か?についてご紹介していきます。

GitHubの特徴と使い方

GitHubとはGitというツールを用いたソースコードをバージョン管理するためのwebサービスです。web上に履歴を残しながらソースコードを保存していくことができます。また、自分以外のエンジニアも修正を加えて保存することが可能なため、チームでの作業のためのプラットフォームとしても利用されます。その他には、ソースコードを他のPCに移すために利用したり、エンジニア各々が公開用のソースコードをアップして自分以外のエンジニアに共有したりするために利用されています。

https://www.modis.co.jp/candidate/insight/column_30

GitHubでデプロイする

ローカルPCの開発環境で作成したアプリケーション等を公開するためには、web公開するサーバー上にソースコードを移していく必要があります。この作業をデプロイといい、GitHubを用いて行うことができます。デプロイについては、以下の記事が参考になるので、ぜひご覧ください。

デプロイとは?ビルド・リリースの違い、デプロイの方法【図解】
アプリケーションをサーバー上で利用できるようにするための一連の作業をデプロイといいます。システム開発では、開発工程が完了したら完成したモジュールを特定の環境で使えるようにする必要があります。つまいデプロイを行うことで、初めてアプリケーション...

本記事では、GitHubのアカウント作成後、リポジトリを作成し、ソースコードをリポジトリにpush(アップロード)することで、サーバーにデプロイするまでの流れを実践していきます。

AWSとは?EC2について

ここでは、AWSの特徴と、AWS内のサービスであるEC2でサーバーを構築する方法について紹介します。

AWSの特徴

AWSはAmazon Web Serviceの略でAmazonによって提供されるクラウドコンピューティングを使用したサービスです。クラウドコンピューティングの特徴としては、「初期費用ゼロ」、「従量課金であるためコスト低減可能」、「自在なサイジングが可能」といった特徴があります。また、「セキュリティ」、「ログ」、「バックアップ」などの機能や、その他WEBアプリ作成に必要となる豊富なサービスを保有していることが特徴です。

EC2でサーバーを構築する

webアプリケーションを公開するサーバーを作成するために、AWSではEC2を利用することが一般的な方法です。EC2(Elastic Compute Cloud)とはAWSのサービスの一つで、仮想サーバー構築サービスです。EC2を利用することで、OSを乗せた仮想環境をクラウド上にすばやく作ることができます詳細については以下の記事が参考になるので、ぜひご覧ください。

本記事では、AWSにおいてEC2のサーバーを作成し、GitHubにプッシュしたソースコードをEC2のサーバーに移すことでデプロイしていきます。

GitHubとAWSを始める

それでは実際に、GitHubを初めて、AWSのEC2サーバーを起動してみましょう!

GitHubを始める

まず、GitHubのアカウントを作成します。GitHubのアカウントの作成方法については、以下の記事をご覧ください。

1分もかからない!5ステップでGitHubアカウント作成 | アールエフェクト
プログラミング入門者の方の中にはまだGitHubを利用したことがないという人もいるかと思います。GitHubのアカウントを作成するには何が必要なのと不安な方もいるかもしれません。難しい箇所は一切ありませんが、GitHubのアカウント作成手順...

また、GitHubを使うためには、ローカルPCにgitをインストールする必要があります。Gitのインストール方法については、以下の記事をご覧ください。

Gitをインストールしてみよう!Windows/Macどちらも丁寧に解説 | 侍エンジニアブログ
この記事では「 Gitをインストールしてみよう!Windows/Macどちらも丁寧に解説 」について、誰でも理解できるように解説します。この記事を読めば、あなたの悩みが解決するだけじゃなく、新たな気付きも発見できることでしょう。お悩みの方は...

AWS EC2を始める

AWSのアカウントを未作成の方は、まずアカウントを作成します。AWSのアカウントの作成方法については、下記の記事が参考になりますので是非ご覧ください。

プロが教えるAWSアカウント作成方法 ~ルートユーザアカウント作成編~ | AWS導入支援の全工程をワンストップで提供 | TOKAIコミュニケーションズ AWSソリューション
プロが教えるAWSアカウント作成方法 ~ルートユーザアカウント作成編~をご紹介します。

AWSのアカウントを作成したらEC2インスタンスを作成します。EC2インスタンスの作成方法については、下記の記事をご覧ください。

GitHubを使ってAWS上にコードをデプロイする

GitHubを使ってAWS上にコードをデプロイしていきましょう!デプロイするまでの流れは以下のとおりです。

  • GitHubにリポジトリを作成する
  • リポジトリにファイルを格納する
  • AWSのEC2にファイルを移す

GitHubにリポジトリを作成する

リポジトリとは、GitHub上でファイルやディレクトリの状態を記録する場所です。また、リポジトリの管理下のファイルは変更履歴ごとに格納され、変更履歴を記録することができます。

ここでは、実際に任意の名前のリポジトリを作成します。以下がGitHub公式のリポジトリ作成方法となっておりますので、こちらをご覧いただきリポジトリを作成してください。
(”最初の変更をコミットする”以降については、この後の章で解説します。まずは、”Create repository”までを完了してください。)

リポジトリのクイック スタート - GitHub Docs
新しいリポジトリを作成し、最初の変更を 5 分でコミットする方法について説明します。

リポジトリにファイルを格納する

gitのリポジトリには、先程作成したGitHubのリポジトリと、ローカルPC上でのリポジトリが存在し、それぞれリモートリポジトリ、ローカルリポジトリと呼びます。また、ローカルリポジトリに登録する前に、リポジトリに追加する候補のとしてインデックスする領域をステージング領域と呼びます。ステージング領域の前の、ローカルPCで実際にソースコードを作成・更新している作業領域をワーキングツリーと呼びます。

全体の流れを以下の図に示します。まず、ファイルを作成・修正をワーキングツリー(作業領域)にて行います。次に、「add」コマンドによって、リポジトリに登録したいファイルを選択してインデックス(ステージング領域)に登録します。 そして、「commit」コマンドによって、インデックス(ステージング領域)に登録されているファイルをローカルリポジトリに格納します。 最後に、「push」コマンドによってGitHubで作成したリモートリポジトリへ格納します。

gitのワーキングツリー(作業領域)、インデックス(ステージング領域)、ローカルリポジトリ、リモートリポジトリを図解

ここからは、実際にコマンドを入力していきます。まず、ターミナルでソースコードのフォルダの場所に移動しコマンドを実行していきます。最初に、「init」コマンドによってgitを初期化した後で、「add」コマンドによって、ここでは全てのファイルをステージング領域へ追加します。

$ git init
$ git add --all .

次に、「commit」コマンドによって、ファイルをステージング領域からローカルリポジトリへ追加します。ここで、「-m」以降でコミットした内容についてメッセージとして残します。(今回は最初のコミットなので”first commit”としています。)

$ git commit -m "first commit"

ここで、GitHubのリモートリポジトリを登録していきます。以下のコマンドによって、GitHubによって作成したリポジトリを登録します。

$ git remote add origin https://github.com/{githubでのあなたのユーザー名}/{作成したリポジトリ名}.git

最後に、下記コマンドにてGitHubのリモートリポジトリにコードをpushします。

$ git push -u origin master

「origin master」の部分でブランチを指定します。GitHubのブランチについては、以下の記事が参考になるのでぜひご覧ください。

ブランチとは|サル先生のGit入門【プロジェクト管理ツールBacklog】
ようこそ、サル先生のGit入門へ。Gitをつかってバージョン管理ができるようになるために一緒に勉強していきましょう!

また、GitHubのユーザー名とパスワードを聞かれますが、パスワードにはアクセストークンを入力します。アクセストークンについては、以下の記事が参考になるのでぜひご覧ください。

GitHubのAccess token認証方法とは?Password認証の廃止 | ポテパンスタイル
GitHubでは2021年8月13日以降、 Password認証によるGit操作を廃止する対応が取られました。本記事では、GitHubでPassword認証に変わって利用可能なAccess token認証とSSH接続を利用する方法についてご

ここまで実施すると、GitHubのリポジトリにアクセス後、以下図の「master」のブランチを選択すると、GitHubのリポジトリ上にファイルが格納されていることを確認できます。

githubでブランチを確認する

AWSのEC2にファイルを移す

ここからは、EC2インスタンスにGitHubのリポジトリに格納したファイルを移すことによって、コードをEC2上にデプロイしていきます。EC2への接続方法については、以下の記事をご覧ください。

まず、ローカルPCと同様に、EC2インスタンス上にもgitをインストールしていきます。例えば、EC2インスタンスのOSでLinuxを選択した場合、以下のコマンドでインストールします。

$ sudo yum install git-all

gitのインストールが完了したら、ローカルPCと同様にGitHubのリポジトリを登録します。リポジトリの登録後、「pull」コマンドを使用してmasterブランチを指定することで、リモートリポジトリ上のファイルをEC2インスタンス内に移します。

$ git clone https://github.com/リポジトリ名/プロジェクト名.git
$ git pull origin master

EC2インスタンス内で、「ls」コマンドなどを実行し、ファイルが全て移されていることを確認できれば、デプロイは完了です。お疲れ様でした。

さいごに

これでGitHubを用いてAWS上にコードをデプロイする方法についての説明を終わります。

本記事は作成したアプリなどをインターネット上に公開するための準備工程の紹介までとなっています。実際にアプリケーションを作成してインターネットに公開するまでを知りたい、という方は、下記のリンクをぜひご覧ください!

【初心者向け】WEBアプリ作成して公開する方法(Django + Nginx + MySQL + docker + AWS)
このプランによって、Django x Nginx x mysqlのWEBアプリをdockerコンテナ環境でイチから作成し、AWSにてインターネットに公開することが出来るようになります。このプランは、初心者・独学でもWEBアプリの作成・公開ま...

コメント

タイトルとURLをコピーしました