はじめに
このシリーズでは、AWSのIaC(Infrastructure as Code)を習得するまでの学習記録をまとめていきます。
現在はまだ基礎学習の段階ですが、Git → Terraform → CloudFormationと進めていき、最終的にはAWS環境をコードで構築・管理できるようになることを目標にしています。
同じようにこれからIaCを学ぶ方の参考になれば嬉しいです。
学習ロードマップ
- Git
- GitHub 👈(今ここ)
- Terraform
- CloudFormation
- IaC実践(CI/CDなど)
3行まとめ
Githubは
1.クラウド上でコードを保存・共有・管理する場所
2.Gitと組み合わせることでチーム開発ができる
3.作成したコードを公開できる
Githubの概要
GitHubは、全世界のエンジニアがソースコードを
保存・管理・共有できる“ソフトウェア開発プラットフォーム”です。
Gitというバージョン管理システムを土台にしている。
一言で表すと、「クラウド上でコードを保存・共有・管理する場所」。
Gitとの関係
Gitはソースコードを管理できるツールで、基本的にはローカルPC上で動作する。
各エンジニアはGitを使ってソースコードを編集し、変更履歴を自分のPCに保存できる。
ただし、ローカルに保存しただけでは他のエンジニアと共有できない。
そこで、GitHubを使うことで、Gitで管理しているソースコードをインターネット上に保存し、チーム全員で共有・閲覧・編集が可能になる。
つまり、
- Git:ローカルで履歴管理するツール
- GitHub:そのデータを共有する場所
という関係になる。
できること
・ソースコードをクラウド上に保存出来る
・複数人で同じソースコードを編集できる
・誰が、いつ、どこを編集したかの変更履歴を残せる
・変更内容をチェックしてから反映できる
・作成したコードを公開できる
・誰かが公開したコードを閲覧できる
なぜ必要なのか
① クラウド上にコードを保存できるから
Git(ローカルPC)内に保存しているコードは、インターネットに公開されていないため、他のPCから閲覧や編集ができない。
ローカルに保存することで第三者に見られないというメリットがあるが、万が一PCが故障した場合、コードが失われるリスクがある。
GitHubにコードを保存することで、クラウド上にデータが保存されるため、PCが故障してもコードは失われない。また、インターネットがあればどのデバイスからでもアクセス・編集が可能である。
② 共同開発を効率的に行えるから
Git単体でも複数人で開発することは可能だが、コードの受け渡しが複雑になる(メールやUSBなど)。
GitHubを使うことで、コードを一元管理し、複数人で同じプロジェクトを効率的に編集・共有できる。
また、変更内容を確認してから取り込む機能(Pull Request)など、開発を安全に進めるための機能が備わっている。
※各機能の詳細は今後の記事で記載予定
IaCとの関係
IaC = インフラをコードで書く
GitHub = そのコードを管理する場所
個人で必要?
GitHubについて学習を進めているが、Gitだけでもローカル環境でコードの編集・管理は可能なため、絶対に必要というわけではないと理解した。
ただし、以下の理由から個人学習においても利用したいと考えた。
・実務に近い環境で学習できる
→ 実務では複数人で開発を行うため、GitとあわせてGitHubが使用されることが多い。そのため、個人学習の段階からGitHubを扱うことで、実務に近い開発フローを体験できる。
・アウトプットの場になる
→ 作成したコードや成果物をGitHub上に公開・保存することで、学習内容をアウトプットとして残すことができる。
・ポートフォリオになる
→ 作成した成果物を公開することで「何を作れるか」の証明となり、将来的に就職・転職活動においてアピール材料として活用できる。
まとめ
クラウドの知識があったため、GitHubの「保存」の観点は理解しやすかった。
一方で、共同開発のメリットについてはまだ実感できていない部分がある。
このあたりは実際に使ってみることで理解が深まると感じているため、
今後はGitHubを使ってIaCに挑戦していきます。