Rのつく財団入り口

ITエンジニア界隈で本やイベント、技術系の話などを書いています。

【AWS】AWS認定『ソリューションアーキテクト- アソシエイト』(SAA)に未経験から合格した話:ふりかえり

 AWS認定の代表的な入門位置に属する資格『ソリューションアーキテクト- アソシエイト』(以下SAA)に実務未経験から一発合格できまして、多くの方にお祝いをいただきました。ありがとうございます。
 いかに突破してきたかを試験後に振り返ってみるエントリです。まずは直接の学習に関わらない全体の振り返りから。

f:id:iwasiman:20190921201357p:plain

挑戦への経緯

きっかけ

 僕のところもグループ全体としてはAWSパートナーのなんかランクが高いやつを得ており、クラウド系事業を主力にしている集団もあるし、中にはAWS日本ユーザーグループのJAWS-UGで活躍されているような方もおられます。やってるところはやってるし遅れてるところは遅れているという、大きめの会社にありがちな状態です。

jaws-ug.jp

 リモートワークを取り入れたりフロアを改装したりで変化に対応しようとしているへーしゃでも最近教育制度が整ってきて、クラウド領域にも対応できるエンジニアをもっと増やしていこう的な計画が始まり、予算を使って社員に教育の機会が与えられたりで動きが起こってきました。

 普段からお使いの方ならわかる通り、クラウド技術は革新的である一方、アプリ開発やDB・ネットワークにインフラなどなど既存技術の延長上にあり、エンジニアの基礎教養的なところやトレンドに追随する力が必要な部分があります。
これはSIerにくくられるであろう大企業の辛みなんですが、社内には開発してない人・プログラミングなんてまったくできない人もいるわけで、まあクラウド時代に全員はたぶんついていけない訳です。この教育計画も各部門で選抜された適任者中心にやっていくことになります。
 僕も所属部門で(たぶんいち早く)スペシャリスト候補として選抜されたので、これをチャンスと捉えて活動を進めることにしました。

 ジョブチェンジや大幅な異動、大幅な職務内容変更があるわけではないので、全面的にインフラエンジニアに鞍替えするわけではないです。
現在のSIerのSEだけど技術を主軸に置いたほぼソフトウェアエンジニア・ソフトウェアアーキテクトの立ち位置は維持しつつ、雲海の向こうに無限に広がるクラウド領域にも手を伸ばしてさらに武器を増やす。
所属集団の中で先陣を切って資格を取ってプレゼンスを高め、今後面白そうな仕事や動きに加われるチャンスを少しでも増やす。
そうしてエンジニアとしての生存能力をさらに高めて、楽しくサバイブしていく…というのが主な作戦目標となります。

書いている人のスキルセット(笑)

 エンジニア歴ウン年です。研究試作からエンタープライズな業務システムまで、小規模から大規模まで、社内システムから社外向けのザ・SIer的案件まで、フレームワークやライブラリを活用したり社内FWを使ったり果てはFWを作ったり、部品化や標準化やプロジェクト内教育や新人教育をしたり、いろいろやってきました。よく出てくる技術が世の中の最先端に追いつけていないのはあるにせよ、社内ではそれなりに開発のほぼ一線に立ってきたと思います。

  • アプリケーション開発:主にエンタープライズ向けの伝統的な3層アーキテクチャ的なWebアプリは複数言語、複数フレームワークでいろいろやってきました。
  • ミドルウェア:Webサーバー/WebAPサーバーも各種。NoSQL系は機会がありませんでしたが主要RDBSQLもテーブル設計もだいたいカバーしています。
  • ネットワーク・インフラ系:仕事でもあまり関係しないので苦手意識のあるところ。実際VPC周りで苦戦しました。「しーあいでぃーあーるって何だったっけ?」的なレベルです。(そもそもCIDRを「サイダー」と読めていないw)
  • OSとか:メインはWindowsLinuxもコマンド打ったりはできるけどそんなに得意な程でもないというレベル。Macは仕事では出てこないですね。iOS/Android開発は分野外です。マシンのメモリが人権を満たしていないことが多く、Docker周りのコンテナ技術を試せずにいます。

 資格は情報処理試験システムアーキテクト、情報処理安全確保支援士(旧セキュリティスペシャリスト)、応用、基本、ITパスポート。データベーススペシャリストは午後IIで僅差で落ちた後、RDBの重要度の変化に伴いPendingしています。プロジェクトマネージャーは取ると管理職へ引き寄せられそうなので近寄らずにいます。
Javaがまだ太陽の元で燦然と輝いていた2000年代に取った資格SCJPや、(今もIBMの次のクラウド6番手ぐらいにいますが)Oracleがもっと勢いのあった頃に取ったOracle Master、その他教員免許などなどいろいろ持っています。TOEICの自己ベストは820点です。

 クラウドの何たるかぐらいはもちろん知っているのですが、実務の機会がなかったのもあってあまり深掘りできずにいました。2000年代にGoogleの凄さが注目された頃や2006年にかのエリック・シュミット氏から「クラウドコンピューティング」という言葉が出てきた頃に本を読んだり。
比較的最近の入門者向けのムック系だと『クラウドエンジニア養成読本』『AWSエキスパート養成読本』あたりは目を通したんですが、深いところはあまり理解できなかった記憶があります。よく勉強会なんかでAWSを活用したサービス構成の図が出てきたりしますが、これも深いところになると「なるほど、わからん」状態でした。

クラウドエンジニア養成読本[クラウドを武器にするための知識&実例満載! ] (Software Design plusシリーズ)

クラウドエンジニア養成読本[クラウドを武器にするための知識&実例満載! ] (Software Design plusシリーズ)

AWSエキスパート養成読本[Amazon Web Servicesに最適化されたアーキテクチャを手に入れる! ] (Software Design plus)

AWSエキスパート養成読本[Amazon Web Servicesに最適化されたアーキテクチャを手に入れる! ] (Software Design plus)

AWSの実務経験とよく使うサービス

 というわけで実務経験ゼロです。(※死亡フラグ)
管理コンソールを実際に弄れたのは結局集合トレーニングの時ぐらいでした…

やったこと

気持ちを切り替える

 最初に話があったのは別の開発プロジェクトが丁度ピーク、相次ぐバグ討伐に心が荒んで「くぉのクッソ忙しい時に~!」的な時期でした。人間得てしてこういう時は目の前に気を取られて近視眼的になるもので、そういう時は長期的な視野に気持ちを切り替える必要があります。
 よくよく考えればクラウドAWS2019年の抱負エントリに書いた通り、そのうち追おうと思っていた技術領域のひとつ。そしてこういう機会に資格を取ったり部内で詳しい人(あるいは詳しそうな人)と認知されておくと、社内で動きがあったときによく声がかかるのは今までの経験からしても確実。ピンチをチャンスと思ってやっていくことにしました。

 この時点では難易度などなどよくわからなかったので、ボーナスに影響する会社の業績目標的なやつには「上期中に合格を目指す」などゆるく書くだけにしておいてスケジュールも定めず、まずは情報を集めていくことにしました。

資格に挑戦することを宣言し、気持ちを高めていく

 勉学や資格、英語やランニングや禁煙やダイエットや就職活動に転職活動と、継続的な活動でよく聞く話。周りに宣言してコミットすると本人のやる気も上がるというやつですね。これを意識して自分の中でも気持ちを高めていくことにしました。

  • AWSなんも分からんけどイベントのAWS Summit Tokyo 2019に行ってみちゃう
  • 既にAWSワールドにいる人の話を聞く
  • 同日行われたイベント『しがないラジオMeetup#3』の公開収録で、資格に挑戦することを宣言しちゃう
  • ご縁のあるコミュニティ『エンジニアの登壇を応援する会』のSlackにジョインした際、自己紹介書き込みで「最近AWS始めました」とか書いちゃう
  • 技書博および技術書典7で頒布のおやかたさんの『ワンストップPodcast』にアンケート寄稿した際、巻末の執筆者紹介で「2019年はAWSの学習を始めてみました」とか書いちゃう
  • AWS Summitの戦利品に目を通してAWSな感じに気持ちを持っていく
  • AWS Summitの戦利品でAWSステッカーをもらったので、実務で使ってないくせにプライベート用のMacに貼っちゃう
  • Twitterのニックネーム欄に「@AWS門中」とか書いちゃう

booth.pm

イベントに行ってみる

 ちょうどAWS Summit Tokyo 2019が幕張メッセでやっていたので、何はともあれ気持ちを高めるためにここに行きました。

aws.amazon.com

 約束として、AWS認定合格者だけが入れる認定者ラウンジを目に焼き付けて、次はここに入れるように!と決意を固めました。
 僕は高度な話はまだ分からないし人気セッションは混んでいたので、主にミニセッションで学習方法やAWS認定の話を聞いたりしていました。capytanさんがブログでまとめられています。

blog.capytan.net

 変化が激しいので自分から学びに行くSelf Learningが重要、インプット→アウトプット→フィードバック→ループのサイクルを繰り返すとよいという話ですね。
このインプットとアウトプットの連鎖の話はエンジニア界隈でよく見聞きしますし、僕と縁のあるコミュニティですと『エンジニアの登壇を応援する会』の皆さんなどが発しているオピニオンでもよく見かけます。

booth.pm

Day3の同ミニセッションでは楽しく学ぶとよいというような話も聞きました。この楽しさドリブンの活動は、エンジニア界隈で僕が見知っている色々な方にも共通することです。こういう姿勢をAWS公式自らが推奨しているというのは面白いと感じました。
 またこの日は、はてなブロガー繋がり&Podcastリスナー繋がりの id:kdnakt さんともリアルでご挨拶することができましたー。既にアソシエイト級を超えて『DevOpsエンジニア - プロフェッショナル』保持、ワイからしたら雲の上の天上人(笑)に等しいわけで、現場のクラウドエンジニアと会えて刺激を受けました。

kdnakt.hatenablog.com

 ノベルティをたくさんもらったのでこの日はその足で銀座開催の『しがないラジオmeetup 3』へ。ここでも公開収録で今年はAWS挑戦宣言をしたところ懇親会でインフラ・クラウド関係の皆さんから声を掛けられたり。
同日既に認定者ラウンジに入ってからMeetupにやってきた、マネーフォワードさんでご活躍中のさる方に「いわしまんさん資格取得はよ」など圧を受けたりで、これらも良い刺激になりました。

iwasiman.hatenablog.com

学習記録をつけてみる

 今回は時間を集計してエンジニアっぽく例の「可視化」というやつをやってみようと思っていたので、ちょっと調べて学習管理アプリの中ではもっとも有名らしいStudyplusを使うことにしました。

www.studyplus.jp

教材を登録しておいてその分かかった時間を記録でき、参考書も管理できたり目標を設定したり機能色々。集計も様々な単位で出せて、無料のアプリとしてはかなり機能充実です。SNS的な機能もあって、互いの勉強記録にいいねをつけたり目標達成をお祝いしたりもできます。
 記録時は必ずひとことコメントをつけるようにして、結果はTwitterにも同時放流しました。こうするとアウトプットを出してる感が出せて、Twitter上でもいいねがつくのがけっこう励みになります。学習した本の作者さん自らから反応もあったりしてありがたいことです。
 アプリ側のSNS要素で僕のアカウントの周囲に見えたのは、IT業界で資格取得に励んでいる方もいましたが、ふだんの勉強や受験勉強に使っている方が多かったですね。恥ずかしながら今頃この手のアプリを初めて使ったのですが、今どきの中/高/大学生の皆さんはこういうのを使って勉強して刺激を与えあっているのだなあと思います。

 開発者ブログを拝見すると、このStudyplusもAWS上でRuby on Railsアプリとして動いているんですね。2019年8月のAWS障害時は、AWS本の勉強記録を付けようとしたらそのアプリがAWSのせいで動かないという、なかなか面白い体験をしました。

tech.studyplus.co.jp

ネット上の合格エントリを参考にする

 AWS認定に受かったら合格しました!と記事を書くのは密かにブームになっている感があり、特にこのSAAは探すとブログやQiitaでかなり見つかります。かなりあちこち見て回ってはてなブログならスターを付けて、Qiitaならいいねストックしていきました。
 書いている皆さんAWS経験やエンジニア経験、会社や職種など様々なのでそのへんも考慮に入れつつ情報を統合していくのが大事なのですが、かなり有益な情報もたくさん得られました。

 もしこのエントリを今ご覧になったあなたも以前書いたことのある方でしたら、ありがとうございます。かなりあちこち見て回ったので、もしかしたら僕も拝見しているかもしれません。

最大の難関:学習時間の確保に立ち向かう

 ふだんから通勤電車で技術書を読んだりしているのでこちらを学習に充てました。帰りはよく技術系Podcastを聴講して感想をツイートしたりしているのですが、分からなかったところのまとめやUdemyなどスマホ上に情報が集積できてきた試験直前は、禁酒禁煙ならぬPodcast期間を設けて帰りもAWSに充てるようにしました。ブラウザから見られるように情報が集まってきた後は、仕事中も息抜きにちょいと見たりしたり。

 そして……自分にとっての最大の難関はAWSのサービスの多さや難しさではなく、むしろ休日の学習時間の確保でした(笑)。うちも子供が小さいもので、休みの日は家の掃除に食事の後片付け、洗濯物入れたり買い物行ったり子供の世話をしたり相手したりでまあいろいろあります。エラスティックに急成長を続ける子供にとって、乳幼児期の親との触れ合いは情操発達やその後人格形成、人生そのものにも大きく影響します。こちらもおろそかにはできませぬ。
 エンジニア界隈では時折「休日もXX時間勉強しないようではWebエンジニアとは言えない(キリッ」みたいな意識高い言説も見かけますが、まあそういうのは実際の子育ての前では雲散霧消するわけです。

 IT力がだいぶ低い嫁氏にも、Amazonが物を売る以外にもクラウドというものをやっていて大事な資格試験があることをいちど説明。僕は週末に妻子が寝静まった夜中に自分の時間を過ごすのが好きなのですが、夜更かしを控えて朝いつもよりちょい早く起きるように。
 なるべく午前中に買い物や公園に出かける予定をスケジュールドして子供をたっぷり遊ばせて、スケールアップしていくこどもエネルギーをなるべく発散させる。そして午後に満足してこどもエネルギーが徐々にスケールダウンしていったり、Huluで劇場版アンパンマンを見始めたり、昼寝前の挙動がこどもウォッチでアラームが上がってきた……あたりですみやかにばいばいきんして退散。休日午後~夕方に集中して学習に充てる、という作戦で行くことにしました。
 まあ小さい子供って基本的に不確実性の塊なので臨機応変にやるしかないのですが、このへんは現役子育て中のエンジニアの皆さんもいろいろ苦労されているのではないかと思います……。

得られたことをアウトプットしてみる

 これはAWS Summitのミニセッションでも聞きましたし、エンジニアとして何かを学ぶ際によく推奨されることです。まあそんなにたいそうなアウトプットは出せないのですが、上記のStudyplusで日々の学習記録をつける際も、いちおうアウトプット感は意識しました。いいねをつけてくれた皆さんありがとうございます。
 また当ブログでは技術書や技術同人誌の感想を時々書いたりしています。今も注目記事TOP5ですが、2018年にフロントエンドの基礎に再入門した時のJavaScript本まとめ記事もけっこう反応があって好評でした。
【JavaScript】Angular, React, Vue.jsの日本語で読める本まとめ(2018年4月)【フレームワーク】 - Rのつく財団入り口

 おっそういえばAWS認定の参考書をまとめた記事ってあまり見ないな……と思いたち、記事にしてみました。

iwasiman.hatenablog.com

 ちょうどAWS東京リージョンで障害が起こった2019/8/23の直後で話題になりやすかったこともあり、200はてブ達成、当ブログのバズリランキング3位が更新されました。多数のアクセスありがとうございます。ちなみにこの記事のカスタムURL、aws-certifiedaws-certifedになっているスペルミスがあります。気にしてるのは僕だけだと思いますがご容赦ください。
 こういうイベントがあると、「こういう記事書いてこれだけアクセスあってSAA受からない訳に行かないよな……練習問題の点数ぜんぜん低いけどそろそろナイスクラウドに向けて仕上げの時期行っとくか……!」と、ほどよいモチベーションの刺激とプレッシャーを受けました。

理解が進んでいることを自分でも実感する

 ところどころでこれを入れると前進しているのが実感できて良いです。別章で述べますが会社の教育でAWS入門的なやつを受けたりしたのですが、この時に既に参考書のオレンジ本を一通り読んで1周していたので、だいぶ理解度が違いました。

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト

AWS認定資格試験テキスト AWS認定 ソリューションアーキテクト-アソシエイト

 勉強会イベントの資料や技術ブログによく出てくる、ビルディングブロックを繋げたAWS構成図をネット上で見たときも、前よりはなぜどの線がどのアイコンと繋がっているのかだんだん分かるようになりました。
2019/8/23の東京リージョン障害の際もあちこちのブログなどを拝見したのですが、この時も何を言ってるのか以前よりだいぶ分かるようになりました。

 特にAWSはサービス名やサービス内の機能、重要キーワードがかなり多いので、まずはそれぞれが一言で説明するとなんなのか、自分なりに噛み砕いておくだけでもだいぶ違うと思います。

資格対策を苦行にしない

 AWS公式セッション等でも楽しくやることを推奨しています。試験勉強というととかく苦行になりがちなので、僕もこれは意識しました。具体的には次です。

技術の変遷を楽しみながら学ぶ

 まぁワタクシもIT業界の変遷を見てきたのでやっぱり面白いのはこれ。規模の小さい会社や個人でも世界を変えうるほどのサービスが作れるようになり、余計な作業をなくして開発に集中できるようになった各社パブリッククラウドサービスは「ゲームチェンジャー」とも呼ばれ、IT世界に破壊的革新をもたらしています。これらを活用してなにか作っていく際の設計思想には完全に新しい考え方も必要であり、AWSではWell-Architected Frameworkという言葉でまとめられています。
 その一方でクラウドは既存技術の延長で動いているわけで、ネットワークやDBやHTTPやセキュリティなどの一番の根っこは同じです。そしてIT業界の変遷の中でデファクトスタンダードになった技術要素、コモディティ化した技術要素、あるいは注目されている最新技術要素をAWS流に再解釈したり、AWSプラットフォームの仕組みの上で実現したり、AWS自体も進化を続けながら取り入れているわけです。キーワード的に言うとCI/CD、DevOps、コンテナ技術、マイクロサービスアーキテクチャ、サーバーレスアーキテクチャなどなど、間接的にアジャイルもですね。
 SAAは主要サービス全体にまたがる資格なので、このへんにも着目しながら学ぶとなかなか楽しかったです。(以下、回顧モード突入)

  • よくサイバーパンクSF小説の電脳空間描写に「リージョン」とか出てきたけど、もう東京リージョンが実在するんだ……もう現実が未来を追い越したんだ…とか。
  • あー駆け出しOracle Masterの頃の大炎上案件で、開発メンバの数だけスキーマ作ろうとしたらDBサーバーのCドライブが残り容量ゼロになって焦ったことがあったけど、噂のRDSだと容量無限でもう起こらなくなるのかーとか。
  • 通信フォーマットでREST以外にSOAPも対応してるのか! あー懐かしい2000年代のR&D案件でやったけどめんどくさくて結局流行らなかったなーとか。
  • 認証連携でSAML2.0が出てくる。あー懐かしいこれもむかし認証基盤の試作とかR&D案件で(ry
  • ElasticのcがつかないElastiCache、名前はこうだけど中身はMemcachedとRedisの2択なのね。あー懐かしい、Memcachedはむかし試作案件で(ry
  • EMRのネーミングはMapReduceからか。これも2000年代にGoogleの凄さや中の仕組みがが注目されたころにだいぶ話題になったなあとか。
  • オライリー本の『マイクロサービスアーキテクチャ』を読んだときは具体的な実現方法がいまいち思い当たらなかったけど、なるほどAWSAWSのプラットフォームの仕組みの中で、Lambda関数/SQS/SNS/API Gatewayあたりを活用して実現してるわけね、とか。
  • DevOpsのキーワードが出た頃に本を軽く読んだけど、なるほど今は世代が古いとされてるChefやPuppetをもう導入した現場用がOpsWorksで、今どきのWebアプリ用はだいたいElastic Beanstalk。もっと広くなんでも一式作れるのがCloudFormationでAnsibleみたいなものかな、とか。
  • 噂のRDS、これ明らかにOracleSQLServerの扱いが低いw AWS謹製の最強のAurora激推しじゃんよ!www とか。

マイクロサービスアーキテクチャ

マイクロサービスアーキテクチャ

DevOps導入指南 Infrastructure as Codeでチーム開発・サービス運用を効率化する (DEV Engineer’s Books)

DevOps導入指南 Infrastructure as Codeでチーム開発・サービス運用を効率化する (DEV Engineer’s Books)

 さて次回は、実際の学習の流れや時間や費用などなどをまとめたいと思います。

→続きはこちら iwasiman.hatenablog.com