2021/06/28

GitHubとは?AWSとGitHubを利用したデプロイについて解説

 
  

AWSとは?


AWSはAmazon Web Servicesの略で、世界でも最も広く採用しているクラウドプラットフォームです。

豊富な機能に最大規模のコミュニティを持ちながら、セキュアな環境でクラウド開発が可能です。さまざまな業種で利用ができ、広告やマーケティング、金融業、製造業など多様な業種の人々に利用されています。

もし今までオンプレミスデータセンターにてデータのバックアップを管理していた場合、AWSを利用することで負荷とネットワークの制約から解放されます。

AWSのメリットとデメリット


AWSを利用するうえで、知っておきたいメリットとデメリットが存在します。

AWSのメリットとしては主に利用料金について、デメリットとしては運用の自由度について紹介します。

メリット

AWSの大きなメリットとしては、初期費用が掛からず低価格で利用できることが挙げられます。

固定費は掛からず、利用料に応じた従量課金のみが掛かります。そのため、まだまだ事業計画の見通しが立たない場合でも将来の事業に応じてITリソースを使用できます。またAWSは継続的な値下げも行っており、2006年のサービス開始以降幾度となく値下げしています。

例えば、繁忙期ではAWSのITリソースを大きく使用し、そうでない時はあまり使用しないようにすることで、オンプレミス環境に比べ無駄なコストを削減することが可能です。

デメリット

AWSのデメリットには、保守運用での自由度がない点があります。

AWSはメンテナンスの時期を通知してはいるものの、予想通り保守イベントが行われないことも多々あります。また、AWSではインフラを提供しているだけであるため、トラブル時の対応は行ってくれません。

これにより、仕事が予定通りいかない可能性もオンプレミス環境に比べると比較的高いでしょう。

もし運用を自由にカスタマイズしたいのであれば、オンプレミス環境の利用の方が優れています。

GitHubとは、コードの管理サービスのこと


GitHubとは、無料で利用できる開発者のためのコミュニティです。

プログラムコードやデザインデータを保存・公開できるソースコードの管理はGitHubが行ってくれます。世界中の人々が自分のプログラムコードやデザインデータなどを保存し公開できます。

これにより、数百万人もの他の開発者と一緒にコードを評価しあうことや、アイデアを共有することで、皆がお互いに学びあえます。

例えば、開発者同士のコミュニケーション不足によりソフトウェア開発が進まないという場合、GitHubでその課題を解決することでよりスピーディーで効率的な開発することが可能になります。

AWS CodeDeployとは?


AWS CodeDeployでは、Amazon EC2インスタンスなどのアプリケーションサービスのデプロイを自動化できます。

プラットフォームに関わらず、全てのアプリケーションで利用可能です。複数のアプリケーションをデプロイしたい際も、同じインスタンスのセットで同時にデプロイ可能です。

例えば、オープンソースツールのJenkinsとPuppetをAWS CodeDeployで統合することも可能です。

GitHubからアプリケーションをCodeDeployする方法


GitHubからアプリケーションをCodeDeployする方法を踏む前に、ローカル環境にGitをインストールしておきましょう。

それでは、下記にて順を追ってGitHubからアプリケーションをCodeDeployする方法を説明します。

GitHub アカウントを設定する

GitHubのアカウントを作成します。

GitHubアカウント作成には、ユーザー名、Eメールアドレス、パスワードが必要になります。

もし今まで使用しているEメールアドレスとは別のメールアドレスを使用したい場合は、この手順を踏む前に新しいEメールアドレスを作成しておきましょう。

GitHub リポジトリを作成

2つ目に、GitHubリポジトリを作成します。

GitHubリポジトリの作成には、ローカルマシンでタイプ別にコマンドラインにて別のコマンドを打つ手順があります。

例えばローカルLinux、macOS、Unixマシンの場合は

mkdir /tmp/CodeDeployGitHubDemo


cd /tmp/CodeDeployGitHubDemo


touch README.md


git init


git add README.md


git commit -m "My first commit"


git remote add origin https://github.com/user-name/CodeDeployGitH


ubDemo.git


git push -u origin master


こちらのコードを1つずつ実行します。

GitHub リポジトリにサンプルアプリケーションをアップロード

3つ目に、GitHubリポジトリにサンプルアプリケーションをアップロードしましょう。

こちらの手順も、GitHubリポジトリにサンプルリビジョンをプッシュする際にローカルマシンのタイプ別に打つコマンドが異なります。

例えば、日本にてLinux、macOS、Unixマシンで作業する場合は、ターミナルを/tmp/CodeDeployGitHubDemoで開いたままにして、

aws s3 cp s3://aws-codedeploy-ap-northeast-1/samples/latest/SampleApp_Linux.zip . --region ap-northeast-1


unzip SampleApp_Linux.zip


rm SampleApp_Linux.zip


git add .


git commit -m "Added sample app"


git push


と1つずつ打ちましょう。

インスタンスを作成および設定

4つ目に、インスタンスを作成します。

CodeDeployにサポートされているOSいずれかで実行されているインスタンスにデプロイが可能です。

CodeDeployデプロイで利用するためのインスタンスを既に設定している場合は、このステップは飛ばして問題ありません。

アプリケーション、デプロイグループの作成

5つ目に、デプロイ用のアプリケーションおよびデプロイグループを作成します。

こちらの作成には、CodeDeployコンソールもしくはAWS CLIを使用します。

AWS CLIを使用する場合は、

aws deploy create-application --application-name CodeDeployGitHubDemo-App


こちらのコマンドでアプリケーションを作成し、その後create-deployment-groupコマンドを使用してCodeDeployGitHubDemo-DepGrpという名前でデプロイグループを作成します。

アプリケーションをインスタンスにデプロイ

6つ目に、アプリケーションをインスタンスにデプロイします。

デプロイするには、CodeDeployコンソールもしくはAWS CLIを使用します。ローカルマシンのOSによってデプロイ方法の手順は異なる部分があります。

もしこちらの手順書を作成したい場合、CodeDeployコンソールでのデプロイ方法はOSによる手順の差はないため、統一的な手順書を作成できます。

展開の監視と検証、クリーンアップ

デプロイが問題なく行われたのかの確認と、使用したリソースを終了しましょう。

確認には、CodeDeployコンソールまたはAWS CLIを使用します。確認が済んだ後は、使用したCodeDeployデプロイコンポーネントレコードなどを削除しましょう。

もしAmazon EC2インスタンスや関連リソースの終了を怠った場合、予期しない追加料金が発生する可能性があります。

AWSとGitHubを組み合わせて、スマートなデプロイ機能を構築しよう!


AWSとGitHubを組み合わせることで、デプロイ機能を自動化できます。

1つのインスタンスに限らず、数千のインスタンスへ比較的手間も少なくデプロイができます。

まずは少額から、こちらのサービスを試してみてください。

ITエンジニアへのキャリアチェンジならキャリアチェンジアカデミー

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニア
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞

おすすめの動画

  • 【未経験からIT業界へ転職するなら】相談窓口とスキルの獲得はここで解決!IT転職が一気に有利に!【キャリアチェンジアカデミー】

  • 【費用一切不要】未経験からIT業界へ転職するならまずはここへ相談!【キャリアチェンジアカデミー】

  • 【何のエンジニアになれるのか?】未経験からITエンジニアを目指すとこんな道がある【キャリアチェンジアカデミー】