AWSハンズオン教材として「ソリューションアーキテクト – アソシエイト試験突破講座」を使う

AWSの膨大でそれぞれに深さもあるサービス群に対して、初学者として「ある程度広くハンズオンで経験してみたい」と思うと、それにどれだけの学習量とAWS利用費用を見込めばいいのか、そもそもどう具体的な学習範囲と方法を決めて見積もればいいのか悩むところがあります。「AWS認定ソリューションアーキテクト - アソシエイトがカバーされるレベル」という線引きをし、対策講座コンテンツをハンズオン教材としたところ、わりと効率よく広範なハンズオンを体験できたと思うので、参考としてまとめておきます。

# 学習範囲を決める

私のスタート地点は、AWSについてはOrganizationsとIAMを中心に1年間触ったというかなり偏ったところからでした。AWSは学ぼうと思えばどこまでも学び続けられ、時間と費用を投じることができてしまいます。主要機能を体験し、その他はひとまず保留（除外）できる学習範囲の目安として、以下を設定しました。

* [AWS認定ソリューションアーキテクト - アソシエイト](https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/)が取得できるレベル

資格取得を、学習の区切りの目安に置いた形です。ただし、目標は主要な機能をハンズオンを交えて学ぶことなので、資格取得を目標はしませんでした。資格取得が目標であれば「模擬試験をひたすら説くのが効率的」との話もありますが、そういう学習パスは取らないことになります。

# 教材を探す

AWS認定ソリューションアーキテクト - アソシエイトをターゲットとした教材から、適当なものを探すことになります。「20サービス以上のハンズオン」「AWSの主要サービスを利用したインフラ構築が実施できるようになります」との説明を見つけて、以下のUdemy講座を選択しました。

* [これだけでOK！ AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座（初心者向け22時間完全コース） | Udemy](https://www.udemy.com/course/aws-associate/)

定価12,000円ですが、Udemyは比較的頻繁にセールを行い、1,500～2,000円で購入する機会がしばしばあります。私の場合も、先に[AWS認定クラウドプラクティショナー](https://aws.amazon.com/jp/certification/certified-cloud-practitioner/)の学習をしている1週間で機会が訪れ、この価格帯で購入できました。

# 学習を進める

この教材は「600ページ以上の理論学習、20サービス以上のハンズオン」で構成されており、ハンズオン教材としてみれば「これから触るサービスの概要を学んでから、ハンズオンを行う」ことができる作りになっていました。ハンズオン対象は広く、またEC2周りではそれなりに深く、すぐに思い出せる範囲では次のようなハンズオンを経験できました。

1. EC2、VPC、パブリックサブネットとプライベートサブネットの設定。httpdインスタンスとMySQLインスタンスを構成する。
2. ELB（ALB）、AutoScalingの設定。httpdインスタンスを高可用で伸縮性のある構成にする。
3. Route53の設定。ELB構成のhttpdインスタンスをマルチリージョンで冗長化する。
4. RDSの設定。MySQLを構成し、簡単なテーブル作成やデータ投入を行う。マルチAZを構成する。
5. Aurora、DynamoDB、ElastiCache（Redis）を構成し、簡単なテーブル作成、データ投入等。
6. SNS、SQS、SES試用。
7. API Gateway、Lambdaの設定。DynamoDBも組合せ、APIを作成する。
8. CloudWatchの設定。メトリクスを確認しアラート、イベントを構成する。
9. CloudFormationによるEC2、VPC構築。

かなり手厚くなっているEC2周りなどはもちろんですが、簡単な構成を行っただけで終わるサービスでも、設定の手順と設定画面を一通り見ておくことで、かなり理解度が変わったように思います。

# トラブルシュートする

教材に沿ってスムーズに進められればそれが一番低コストで済みますが、私の場合は期待通り動かない状況が何度かあって、講師が目の前にいるクラスルームトレーニングではないので地力解決に挑むことになりました。解決できなければギブアップですから、「[ハードルをクリアできるのであれば、AWS公式のクラスルームトレーニング（集合研修）を受講するのが最も効果的](https://qiita.com/nakazax/items/20458e146d3d9f2aa615#%E5%9F%BA%E6%9C%AC%E7%9A%84%E3%81%AA%E5%AD%A6%E7%BF%92%E6%96%B9%E6%B3%95)」というのはこの辺も理由の一つかと。

この講座では、ハンズオンでのAWS利用料を抑えるため、不要になったリソースを消すようにこまめに指示されます。そこで消しすぎたりすると、あとで講師想定と実際のハンズオン環境が異なって、トラブルになります。私のケースでは、主にネットワークリソースまわりを見直すことで解消できました。以下がチェックした点になります。

* パブリックサブネットは構成されているか。
* パブリックサブネットにインターネットゲートウェイが構成されているか。
* パブリックサブネットのルートテーブルにインターネットゲートウェイへのルーティングがあるか。
* プライベートサブネットは構成されているか。
* パブリックサブネットにNATゲートウェイが構成されているか。
* プライベーとサブネットのルーティングテーブルにNATゲートウェイへのルーティングがあるか。
* httpdインスタンスやMySQLインスタンス/RDS等のセキュリティグループは適切か。
* デフォルトVPCやデフォルトサブネットを削除していないか。
* Elastic IPを削除していないか。

トラブルシュートから少し外れますが、リソース削除の対象リソースや削除手順が示されないのもある意味でポイントです。例えば「Auroraリソースは削除してください」とだけ指示されます。そこで「[Aurora DB クラスターのDB インスタンスを削除する - Amazon Aurora](https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/USER_DeleteInstance.html)」などを参照して、次のような手順を自分で見つけることになります。

1. Auroraを起動しておく。
2. リードレプリカを削除する。
3. DBインスタンスを削除する。
4. 最後のDBインスタンスが削除されたところでAuroraリソース自体が削除される。

最後まで進めたので、結果的には特にVPCまわりの理解を深めることができました。時間効率から言っても、割く価値のある時間だった気がします。

# リソースの消し忘れをチェックする

費用効率から言うと、各ハンズオンを速やかに進める（従量課金なので従量を抑える）ことと、もう使わないリソースを速やかに削除することが、AWS利用料抑制の鍵になります。ただ多数のサービス上で、複数のリージョンやアカウントにまたがってリソースを作成して、あとのハンズオンでの再利用のために作成時のハンズオンでは削除せずに残すものがあったりして、見落としは起こりがちです。

想定外のリソースが残っていて課金対象になっていないか、チェックするのに役立ったのがCost Explorerでした。講座中ではあまり触れられないサービスですが、これだけは下記資料などで簡単な使い方までは抑えるとよいと思います。

* [20200129 AWS Black Belt Online Seminar AWS Cost Explorer](https://www.slideshare.net/AmazonWebServicesJapan/20200129-aws-black-belt-online-seminar-aws-cost-explorer)

Cost Explolerを使うと、コストを1日単位の棒グラフで表示できます。日々、次のようにチェックをしました。

* サービス毎の集計で、どのサービスカテゴリでリソースが残っているかを確認。もう使ってないはずのELBやEIP、NATゲートウェイなどに課金が発生していれば、消し忘れがある。
* フィルタでリージョンを絞り込む。もう使ってないはずのリージョンで課金が発生していれば、そのリージョンに消し忘れがある。
* マスターアカウントのCost Explorerで、フィルタでAWSアカウントを絞り込む。もう使ってないはずのメンバーアカウントで課金が発生していれば、そのアカウントに消し忘れがある。

コスト最適化はAWS Well-Architectedの5本の柱の一つでもあり、その中ではこの不要リソースの削除も重視されているので、Cost Explorerでモニタリングをしておくこともよい経験になりました。

# 学習を終了し学習効率を振り返る

一通りのハンズオンを終了し、リソースの削除なども終われば、「AWS認定ソリューションアーキテクト - アソシエイトがカバーされるレベル」のハンズオンを経験できたことになります（そのはずです）。この時点で、私の環境でのCost Explorerの表示は以下のようになっていました。

<img width="486" alt="コスト - ハンズオン.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/55718/68a145ee-2985-d63d-b235-b01e240683bb.png">

所要期間は2月12日から21日までの10日間。AWS利用料は計17.03$です。このほかに、Route53の学習のために1円で `.work` の独自ドメインを取得しました。これは次年度更新等を切って、これ以上費用が発生しないようにしました。費用という意味では他に、前述した通りUdemy教材購入で2,000円弱を使っていました。つまり「学習を進める」に書いたハンズオンを経験したという効果に対して、所要期間は10日間、所要費用は4,000円程度ということになります。

# まとめ

クラウドコンピューティングは「従量課金」なので、ハンズオンにかける期間が、ハンズオンに使う費用にも跳ね返ってきます。手探りでこれだけのハンズオンを試みた場合を想像すると、それよりもある程度まとまった教材を購入してしまうことで、スムーズに、コンパクトにハンズオンを進められ期間的にも費用的にも効率は良かったのではないかなと思いました。

# 余談：AWS認定ソリューションアーキテクト - アソシエイトの取得まで

資格取得を学習の目標にはしないと書きましたが、学習の区切りの目安にはしたので、実際にはクラウドプラクティショナーとソリューションアーキテクト - アソシエイトまでは取得しました。蛇足かと思いますが、2月頭にAWSの知識を1からまとめ直す、1年間の経験を偏った内容のままにしておかないと決めてから、2月末にAWS認定ソリューションアーキテクト - アソシエイトを取得して一区切りとするまで、他にした勉強も概略をまとめておきます。

## AWS認定クラウドプラクティショナー取得まで

まずAWS認定クラウドプラクティショナーの取得を前半のマイルストンとして学習しました。これで、クラウドコンピューティングの概念と、主要なAWSのサービスの概要を知識として抑えることができました。以下を行いました。

**[AWS クラウドプラクティショナーの基礎知識 (第 2 版)](https://aws.amazon.com/jp/training/course-descriptions/cloud-practitioner-essentials/)の学習**。これはAWSが提供する無償のデジタルコースで、クラウドプラクティショナーのページの「推奨する学習の進め方」からリンクされているものです。全6ユニット、計約6時間の動画コンテンツで、クラウドコンピューティングとAWSの概念、AWSの提供しているサービスについて学べました。

**「[この問題だけで合格可能！AWS 認定クラウドプラクティショナー 模擬試験問題集](https://www.udemy.com/course/aws-4260/)」での学習**。定価3,600円のUdemyコンテンツですが、これもセール期間にあたれば特価になります。模擬試験を解き、知識の不足を洗い出し、解説やインターネット上の情報でその概要を理解しました。問題が本番試験そのまんまということはほとんどないので、丸暗記は試験対策としても意味がなくて、チェックリストとしての活用です。

**AWS認定クラウドプラクティショナー（CLF-C01）の受験**。受験費用は消費税込み12,100円でした。927点で一度目で合格したので、これ以上の受験費用は掛からずに済みました。

## AWS認定ソリューションアーキテクト – アソシエイト取得まで

まずAWS認定ソリューションアーキテクト – アソシエイトの取得を後半のマイルストンとして学習しました。これで主要なAWSサービスをハンズオンとして体験し、AWS Well-Architectedフレームワークに沿ったアーキテクチャの検討について学ぶことができました。以下を行いました。

**[これだけでOK！ AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座（初心者向け22時間完全コース） | Udemy](https://www.udemy.com/course/aws-associate/)の学習**。この記事で取り上げてきたもので、主要サービスの概要理解とハンズオンができました。

**「徹底攻略 AWS認定 ソリューションアーキテクト – アソシエイト教科書」での学習。**定評ある学習書籍で2,618円。ソリューションアーキテクト – アソシエイトの主眼であるWell-Architectedフレームワークに沿ったシステム構成の考え方を再整理しました。上記Udemy教材では座学部分に少しモヤリとしたものが残りもしたのですが、それもクリアされました。

**「[AWS 認定ソリューションアーキテクト アソシエイト模擬試験問題集](https://www.udemy.com/course/aws-knan/)」での学習**。定価3,600円のUdemyコンテンツですが、これもセール期間にあたれば特価になります。Udemy「突破講座」付録の模擬試験と合わせて解き、不正解個所は解説で理解、確認しました。その後、書籍「徹底攻略」購入者がダウンロードできる1回分の模擬問題を仕上げに解きました。

**AWS 認定ソリューションアーキテクト – アソシエイト（SAA-C01）の受験**。受験費用は15,000円+消費税ですが、[クラウドプラクティショナー認定時の特典](https://aws.amazon.com/jp/certification/benefits/)に受験費用半額のバウチャーコードがあり、これを利用して消費税込み8,250円でした。895点で一度目で合格したので、これ以上の受験費用は掛からずに済みました。