【永久保存版】0からAWSを勉強するならこのロードマップに従え！

![bandicam 2023-10-13 06-28-58-488.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/6ef884c5-2eef-5419-8bba-a0c840a1e1a7.jpeg)

# はじめに

<h3>こんにちは！！@Sicut_studyです！</h3>

先日出しました記事が多くの方に見ていだきました！

https://qiita.com/Sicut_study/items/78910cd8d103b8d45a73

今回は<font color="red">**AWS**</font>のロードマップの紹介です。

AWSを勉強しようとしている人からよく聞くのが

#### <font color="red">AWS勉強したいけど何からしたらよいかわからないから資格の勉強しています</font>

資格を勉強するのもいいですが最速でAWSを**実践的に使える**ということを目的にするなら、その方法は個人的には微妙かなと思います。
私もこのロードマップを行ったあとに試しに資格をとってみましたが、あまり実務に速攻的に役立つという感じではありませんでした (高度なものなら違うかもしれません)

私も2年前は**AWS**についてまったく知りませんでした
しかし、とあるタイミングで

#### <font color="blue">先輩がやっているようなAWSの環境を作って管理するのを私もできるようにならないと高みにいくことはできない</font>

このように思うようになり、**ロードマップに沿って**に1から学習をすすめました。
そしてある程度自信が持てましたし、新しいことをしようとしたときに**ドキュメント**などを駆使してある程度のことが実現できる力ができました

またこのロードマップの再現性を検証するために、同僚のAWSの知識がない方に挑戦してもらってその方も無事ある程度使えるようになりました。

そんな方法を今回は紹介します。

# この記事の対象者

- AWSを勉強してみたいが何からしてよいかわからない
- 自分のアプリをデプロイしたい
- Webアプリを開発している

# ロードマップ

このロードマップで目指すところは最終的に<font color="red">**自分で作成したアプリをAWS上に1から環境構築してCI/CDできるようになる**</font>ところを目指しています

前回の記事に引き続いてですが、**実践的**に学ぶことを意識して作成しています。
なのでかなり最後までやるのは大変かもしれません。
私自身はロードマップを終えるのに**1ヶ月**かかりました。
しかし、ここでの経験はその後のエンジニア生活に大きな自信につながったのでぜひ頑張っていただきたいです。

##### 1. 書籍でAWSの全体像を掴む

##### 2. EC2にデプロイする

##### 3. ECSにデプロイする

##### 4. Code系サービスを使いこなす

##### 5. CICDを行う

##### 6. IaCに挑戦する

# <font color="white">1. 書籍で全体像を掴む</font>

![bandicam 2023-10-14 15-37-16-178.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/4594c2b0-53ac-f531-2bd5-e7c2b72933ce.jpeg)


まずは書籍で必要なサービスの使い方を学びます。
ここでは1冊を手を動かしてハンズオン形式で学びます。

![bandicam 2023-10-14 15-34-57-466.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/d8224a7e-a4cb-35f0-fbe0-d9d7dd248902.jpeg)
[AWSではじめるインフラ構築入門 第2版 安全で堅牢な本番環境のつくり方](https://www.amazon.co.jp/AWS%E3%81%A7%E3%81%AF%E3%81%98%E3%82%81%E3%82%8B%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9%E6%A7%8B%E7%AF%89%E5%85%A5%E9%96%80-%E7%AC%AC2%E7%89%88-%E5%AE%89%E5%85%A8%E3%81%A7%E5%A0%85%E7%89%A2%E3%81%AA%E6%9C%AC%E7%95%AA%E7%92%B0%E5%A2%83%E3%81%AE%E3%81%A4%E3%81%8F%E3%82%8A%E6%96%B9-%E4%B8%AD%E5%9E%A3-%E5%81%A5%E5%BF%97/dp/4798178004/ref=sr_1_9?__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&crid=1A6GS0UFMGVN2&keywords=AWS&qid=1697263891&sprefix=aws%2Caps%2C250&sr=8-9)

この本はいまでも私の中で大切にしている1冊です。
特に強いのはAWSの環境構築をするときに必要な**VPC**、**Subnet**、**ロードバランサー**などはじめに1回だけやるようなものを作るときに、この本をみればできるという<font color="blue">**安心感**</font>が得られます。

この本を読めば書いてあるから大丈夫というものを知っておくことがとても重要です。

エラーで躓いたときに、不安になるのは

#### <font color="red">このエラーは解決できるのか</font>

ということだと思います。ですが、そのエラーを解決できる人が近くにいると思うと聞けば良いので安心できます

#### まさにこの本はそのような安心感をくれる本です

まずはこの本をすべて手を動かして実践してみてください
この本を学ぶことで**EC2**や**RDB**などの使い方が学べます！

# <font color="white">2. EC2にデプロイする</font>

![bandicam 2023-10-14 15-40-14-560.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/08fba74b-3f1d-ef8b-31f6-2828612094eb.jpeg)


次に実際に自分のアプリを**EC2**にデプロイします。
EC2の環境、RDBの環境は書籍の内容でだいたいカバーできます。

あとはローカルのPCで起動しているのと同じようにEC2に入って、GitHubからクローンして起動するという同じ手順をすることでできるかと思います。

まずはここを達成することで

#### <font color="red">AWSに自分のアプリをデプロイする経験</font>

を得ることができます

もちろん私もこのステップをやってそこでの手順を記事にしています。
参考に見ていただけるとよいのかなと思います

https://zenn.dev/jinwatanabe/articles/e27b219d897fd5b85649

# <font color="white">3. ECSにデプロイする

![bandicam 2023-10-14 15-42-32-605.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/81604a29-000a-629a-042e-cf680c738717.jpeg)
</font>

次に**ECS**へのデプロイに挑戦していきます
ここではAWSコンソール上で手作業で作成をしていきます。

ここからは書籍でカバーできないことが増えていきます。
しかしネットには多くの情報があるので、まずは同じようなことをやっている記事などをみつけてその方法を真似て、問題がでてきたら1つずつ調べていくというステップを繰り返していきます。

https://zenn.dev/jinwatanabe/articles/c0ae66245d4fe46cea97

# <font color="white">4. Code系サービスを使いこなす

![bandicam 2023-10-14 15-44-37-779.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/7137f487-6d5f-041b-73b5-b7f5df6326b8.jpeg)
</font>

次にCI/CDの準備をしていきます。
まずはCIを実行できるように**CodeBuild**、**CodeCommit**、**CodePipline**の環境を作ります

そして実際にGitに更新がかかったら自動でAWSでテストが走るような環境を構築していきます。

ここもまずは同じようなことをやっている人の記事を探して真似ます。
わからないこと、問題がでてくるので1つずつ解決していきましょう。

https://zenn.dev/jinwatanabe/articles/39d8ee4424b0ba9717c9

# <font color="white">5. ECSにBlue/Greenデプロイする</font>

![bandicam 2023-10-14 15-48-39-240.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/9107eb49-9c3f-be1b-b8f3-4ce8eef8d7cf.jpeg)

ECSで**Blue/Greenデプロイ**するような環境を作ります

https://www.redhat.com/ja/topics/devops/what-is-blue-green-deployment

ここまでやると何度も同じようなAWS環境を作っているかと思います。
何度もVPCを作ったりする中で基本的なAWSの使い方は学べているかと思いますし、調べ方などもある程度勘所がつかめるようになっているはずです。

https://zenn.dev/jinwatanabe/articles/34a0dac56a9686bd4223

# <font color="white">6. IaCに挑戦する

![bandicam 2023-10-14 15-50-28-793.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/57a41453-5805-a783-54dc-0a5799b368c7.jpeg)
</font>

ここまで行けた方はぜひIaCに挑戦してみてください

https://udemy.benesse.co.jp/development/system/iac.html

私はAWSの**Cloud Formation**でB/Gデプロイするところまでの環境をすべて**IaC**にしました。

https://zenn.dev/jinwatanabe/articles/fddad29af441491dad07

IaCのやり方を理解しておくことで自分がよくつかう構成をすぐに立ち上げられるようになります。
同じものがいつでも使えることは再現性があり個人的には良いなと思っています。

手作業で作成していた時は意識しないでたまたま設定していたことが大事だったというようなことがあり、2回目作ったときに再現できないこともしばしあります。

IaCを学習するときは、ぜひ手作業でやりながらそこで入力したものをIaCに設定していく方法でつくってみてください
また全部一気に作るのではなく、まずは**VPC**からなど小さい単位でつくっていってみてください

# ここまでで大きく変わる

ここまでやりきったあなたは<font color="red">**AWSに自信がついている**</font>はずです。

私もこの経験があったことで、**転職がうまくいった**と思っています。
そして、新しいことを学ぶときの効率的な方法であったり、問題の解決方法であったりを身につけることができました

このロードマップをやっていた1ヶ月は<font color="blue">**深夜4時まで学習していました**</font>

そのくらいの覚悟で本気でこのロードマップに向き合っていただければエンジニアとして大きくステップアップすることが可能だと思います。

ぜひとも挑戦してみてください。

# おまけ

AWSは課金が発生するので私は毎日作成したリソースを削除していました
なので、毎回学習するたびにすべてのリソースを手作業で作成していました

かなり時間はかかって大変な作業ではありましたが、書籍を何度も擦り切れるまで読んだことでAWSの基本が身についたのでポジティブに毎回リソースを削除することをおすすめします

#### <font color="red">課金にだけは気をつけましょう</font>

# おわりに

今回は私が実際に行ったロードマップを紹介しました。
かなり大変なロードマップですが、苦しい経験は確実に力になりますので頑張っていただきたいです。
そして達成した方は是非コメントいただけたら嬉しいです。

ここまで読んでいただけた方はぜひ**いいね**と**ストック**よろしくお願いします。

また @Sicut_study をフォローいただけるととてもうれしく思います。

<h5>少し宣伝します🔥🔥🔥🔥🔥</h5>

これからエンジニアになろうとしている人を本気でコーチングして3か月の期間で立派なエンジニアにするようなチャレンジをしてみたいなと考えております。

もし、本気でエンジニアを目指してコーチングを受けてみたいという方がいれば、[Twitter](https://twitter.com/Sicut_study)に「プログラミング教えてほしいです」みたいなリプライ送っていただけたらなと思います！！

以上です。
今週もプログラミング頑張りましょう！

![bandicam 2023-10-04 20-58-54-525.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/f41a0065-b23e-1895-da22-66bf0e48c5fb.jpeg)

# おすすめの記事

https://qiita.com/Sicut_study/items/ac2d791b439aa7fcae30

https://qiita.com/Sicut_study/items/eb2427a733e287799c4c

# 参考

https://www.redhat.com/ja/topics/devops/what-is-blue-green-deployment

https://udemy.benesse.co.jp/development/system/iac.html