👋

AWS Cloud Quest を終えてみた感想

2024/03/07に公開

AWS Cloud Questを大体2週間ちょっとかけて終えました。
CloudQuestは、3Dのゲーム内で街の色々な問題をAWSを使って解決する、といった形式で
色んなサービスに触れて学習していきます。

無料で学べるのはCloud Practitionerというロールで、後述する12のチャレンジから構成されています。

持っていた事前知識

https://aws.amazon.com/jp/events/aws-event-resource/hands-on/
AWS初心者向けハンズオンをいくつかやっていました。
例えば、以下二つ。
https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-1st-Step-2022-reg-event.html?trk=aws_introduction_page
https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-Serverless-1-2022-reg-event.html?trk=aws_introduction_page

IAMアカウントは持っていて、サービスとしてはlambdaやDynamoDBをチュートリアルで触れたことがある、程度の知識しか持っていませんでした。

動機

  • AWSを使いこなすことで、個人サービスを簡単にデプロイ出来るようになりたい。
  • 将来、AWSが業務で必要になることが確実なため。
  • CloudQuestがゲーム感覚で学べて無理なく続けられそうだと考えたため。
  • ネットワーク周りの知識をクラウド技術を通じて実践的に学習したかったため。

各チャレンジ雑感

クラウドコンピューティングの基本

S3にファイルをアップロードしてウェブサイトホスティングを行う方法、バケットポリシーとはなんぞや、ということがなんとなくわかりました。

クラウド、はじめの一歩

EC2インスタンスを2つのアベイラビリティーゾーンに配置することで可用性を向上する、というコンセプトを学びました。

コンピューティングの基礎

EC2インスタンスのタイプをt2.smallからm4.largeに変えるなど、インスタンスタイプの変更方法を学びました。
インスタンスへのターミナルなどの接続方法もsshを始めセッションマネージャーなど色々あるということがわかりました。

クラウドのコスト見積もり

AWS Pricing Calculator というログイン不要でAWSの料金計算ができるツールの使い方を概観しました。
そもそもこんなツールがあるということすら知らなかったので、AWSサービスを個人開発で利用する前に料金計算してみると良さそうです。
実際にlambdaなどで料金見積もりすると、まだ色々知らない単語や概念が出てくるので、これを取っ掛かりに勉強するのも悪くないかも知れません。

ネットワークの概念

VPCの概念や、セキュリティグループについて学びました。
private subnetは、VPC内の別のインスタンスからのアクセスのみを許容するようにセキュリティグループを設定することでインターネットから直接DBが叩かれたりしないようにできます。

VPCへの接続

一番最後に行ったモジュールです。実践ラボでも設定項目が多くて一番難しかった気がします。
VPC peering接続を使って、異なるVPC同士で通信ができるように設定するチャレンジでした。
VPC peeringの設定だけでなく、routing table, セキュリティグループなども設定が必要でした。

リレーショナルデータベースの実装

個人開発では料金面が怖くて避けがちなRDSの実装。
プライマリDBとは別のAZでスタンバイレプリカを用意して、可用性を向上させられるのがコンセプトと知りました。
リードレプリカなども簡単に作れるとわかって、たしかに自分でEC2でDBを実装するより楽だな...と感じました。

セキュリティのコアコンセプト

ユーザーに適切なIAMポリシーをアタッチする課題です。
AWSアカウントを作ったころ、まずIAMの概念が一番最初につまづいたところでした。
整理すると案外と難しくない概念だとわかりました。

クラウド上のファイルシステム

EFSについて学ぶチャレンジです。
S3となにが違うのか?というのがさっぱりだったのですが、ちょっとだけわかりました。
リモートのファイルシステムにマウントしたいとき、出番はありそうです。
EBSとかの違いがよくわからない、と感じていましたが、下記の記事でなんとなく用途の違いがわかりました。
https://www.acrovision.jp/service/aws/?p=2103

アプリケーションの自動修復とスケーリング

Auto Scalingについて学びました。
AWSについて学ぶ前はEC2インスタンスを作って、サーバーへのリクエストが増え始めたら勝手にインスタンスが増えたりするのかと思っていたのですが、さすがにそんなことはなく、実際にはAuto Scalingが必要ということがちゃんとわかりました。
他にも、launch templateの設定が必要だったりと色々手間がかかるようでした。
(個人サービスでここまで必要になること、なさそうな気がします。。)

高可用なウェブアプリケーション

EC2, CloudWatch, S3, CloudFront, Elastic Load Balancing など、色んなサービスを使って
高可用なウェブアプリを作る課題です。
EC2インスタンスを手動で終了しても、Auto Scalingが自動で再起動してくれるのがちょっと感動でした。

ただHealth Check Path を途中で設定させられるのですが、これの意味がよくわからなかった...
ヘルスチェックの概念はk8sにもあったのでなんとなくわかりますが、このハンズオンではこの設定のあるなしでどう変わるのか、というところまでは把握できず...

NoSQLデータベースの実装支援

DynamoDBのテーブルを作ったり、レコードを追加したり、などを行う課題です。
個人開発でも使っていきたいサービスなので、コンソール上でのDynamoDBの扱い方がわかったのは収穫でした。

感想

専用のコンソールが毎度作成されるので、学習環境としては非常にやりやすかったです。
ゲーム形式で学ぶということでワクワクしながらはじめましたが、まあぶっちゃけゲームとしては全然楽しくないです。

実際には指示に従いながらコンソールを開いて学習していく時間がほとんどで、
別にゲームである必要は特段なかったと言えばなかったかもしれない...

あと思い当たる悪いところで言えば、復習には使いづらいというところ、ゲームのロードが長い点ですね。
ここでの学習内容、スライド等がまとめて別のウェブサイト等に公開されているとわかりやすいのですが、このゲームで学んだことはこのゲームを開かないと振り返れないようです。
ゲームのロードも速くはないので、リファレンスとしては使いづらそうです。

もちろん、良いところもたくさんありました。以下3つです。
まず1点目、専用のコンソールを立ち上げた際、最初からインスタンスが作られていて学習しやすい点です。
自分の環境を利用するハンズオンなどでは、Auto Scalingの学習をする際にもまずEC2インスタンスを作って,,, などと準備に時間がかかると思いますが、ラボを使えば最初から用意されていて事前の手間が少ない、というのが良かったです。
実際の業務では全くのゼロから環境を作ることは少なく、既にあるインスタンスを利用したりなどのケースもあると思うので、そういった想定で訓練ができるというのもこのラボならではの良さだと思います。

2点目、課金の心配なく完全無料で安心して学習できるところです。
課金が心配されるRDS、性能高めのEC2インスタンスなどのサービスが完全に無料で安心して作れるというのは大きなメリットだと思います。

3点目、チュートリアルのあとには自分で考えて問題を解くような機会があること、です。
これもぶっちゃけそこまで難しくなく、内容を深く理解していなくても解けるものばかりといえばそうでしたが、それでもチュートリアルの沿うだけでなく、自分で考えてコンソールをいじる経験が得られ、良い学びになりました。

CloudQuestを終えるだけで、AWSの基本的なサービスの概略とその動かし方がなんとなくわかる、というところまでは到達できますが、個人開発でガンガン利用できるほどのトレーニングにはならなかったかと思います。

より一層深く学ぶためには、やはり実際に自分で何かサービスを作るほかない、ということでしょうか。

GitHubで編集を提案

Discussion