メインコンテンツまでスキップ

「AWS」タグの記事が4件件あります

全てのタグを見る

AWS認定クラウドプラクティショナー(CLF-C02)合格体験記

河野
開発一部第1課

こんにちは。開発一部の河野です。\

先日AWSクラウドプラクティショナー(CLF-C02)に合格することができたので、
簡単ではありますが体験記をまとめたいと思います。

試験受験のきっかけ

7~8年ほど前にオンプレミスサーバーからAWSへのマイグレーション案件に参画したことがあり、そこで初めてAWSに触れました。
短納期、且つメンバー全員がAWS初心者という中、何度も電話でサポートを受けながら進めていった記憶があります。
なんとか無事にリリースを迎えることができましたが、
トラブルで何度もスケジュールが遅れたり、自身の技術不足をとても痛感した案件でした。

その後多業種に転職し、数年間この業界を離れていましたが、この度SEとして再スタートするにあたり、
当時のことを思い出しながら、クラウドについて改めて基礎からしっかり学ぼうと思っていました。
そんなとき社長からAWSのパートナーティアを上げるためにAWS資格取得者を増やしていきたいという話を聞き、
微力ながら私もクラウドプラクティショナー資格を取得を目指すことにしました。

学習期間

学習期間としては2ヵ月ほどかかってしまいましたが、合計学習時間としては40時間程だと思います。
書籍での学習が4割、模擬問題集での学習が6割くらいの体感です。
当初1ヵ月程先で申し込みしていたのですが、学習時間が中々確保できず不安があったため受験日を延長しました。
2回までは無料で日程変更することができ、
3回目以降の変更でも試験予定の24時間前までは無料でキャンセル(全額返金)して再予約することができるので、
実質、合格の確信が持てるまで何度でも日程を変更することができます。
受験料も16500円と決して安くないので、慎重に挑みたいところですね。

書籍について

book
書籍は社長におすすめを教えてもらい、こちらの書籍を購入しました。
要点が完結にまとめられていて非常にわかりやすかったです。
ページ数が少し多めなので最後まで読めるか不安でしたが、
図を用いた視覚的な表現が多く、スラスラと読み進めることができました。
行き帰りの通勤時間を使って読み終え、あとは書籍に付属のPDFの過去問を正答率が8割くらいになるまで繰り返し解きました。

Udemyについて

その後、まだ少し不安があったので、
Udemyの「【CLF-C02版】これだけでOK! AWS認定クラウドプラクティショナー試験突破講座(豊富な試験問題300問付き)」も追加で購入しました。
セールで2000円くらいでした。
あまり期間がなかったので動画の方はあまりしっかりと見れなかったのですが、
家事の合間に再生したりして音声だけを聞き流していました。
「これだけでOK」と謳うだけあって、非常に丁寧に説明してくれているので、
ソリューションアーキテクトの学習に入る前に復習として再度こちらの動画を一周しておこうと思っています。

付属の模擬問題は、Udemyの仕様上すべて解き終えないと回答や解説が見れないようになっており、
個人的には一問ずつ正解と解説を確認したかったので、タブレットで問題を解きながら、スマホで解答ページを確認する形で解いていきました。
問題は全2種あり、どちらも8割以上の正答率になるまで学習しました。

試験会場について

試験は自宅からのオンライン受験と試験会場での受験のどちらにも対応していますが、
オンライン受験は事前のチェックやルールがややこしそうだと感じたので試験会場での受験を選択しました。

会場によるのかどうかわかりませんが、試験会場に入室した瞬間から参考書やスマホは一切見れなくなるので、
早めに到着して試験前に問題を見返したりしたい人は注意が必要です。
あとは身分証明書が2点必要となっているで、こちらも忘れないよう気を付けてください。

試験内容について

いざ試験本番。
メモに使う用のラミネート用紙を渡されましたが、計算問題もないので使用することはありませんでした。
自信を持って即答できる問題もあれば、
試験本番で初めて聞くサービス名もちらほらあってかなり焦りました...
ただ、この試験は引っかけ問題が比較的少ないのと、
ある程度リテラシーがある人なら「たぶんこれな気がする」というような直感で解けるような問題も多く感じました。
個人的にはネットワーク関連(CloudFront、Direct Connect、VPCなど)の問題が最後まで苦手で、
本番でもそのへんの問題は多分落としている気がします。
自信をもって答えられた問題と不安な問題、体感では五分五分くらいでした。
不安な問題にはマークをしておけるので、一通り解答を終えてからマークした問題を最後まで何度も見直しました。
かなりしっかり見直しましたが、それでもかなり時間が余ったので、
時間が足りなくなることはまずないと思います。

試験結果

見直しを終えて、試験終了ボタンを押すときは手が震えましたが、
簡単なアンケートに答え、最後に合格の文字が画面に表示された瞬間はほっと胸をなでおろしました...
AWS試験の中で、試験直後に画面で結果を確認できるのはクラウドプラクティショナーだけのようです。
画面上でわかるのは合格か不合格かの情報のみで、
それ以外の試験結果の詳細は「5営業日以内にアカウントに掲載」と公式発表されていますが、
当日の21時頃には掲載されていました。合格証書もこの時点からダウンロードすることができました。

あとがき

これまでAWSのハンズオン系のセミナーにも参加しましたが、
AWSにどんなサービスがあるのかなど、ベース知識がないまま参加したので
作業の意味もわからず言われたまま手を動かすだけとなってしまうこともありました。
クラウドプラクティショナーの学習をしたことで、
「だからあのときこうやっていたのか...!」と後から繋がることが多かったです。

次はソリューションアーキテクトを目指して、引き続き頑張っていきたいと思います!

AWS認定 ソリューション・アーキテクト アソシエイト(SAA-C03)合格体験記

野田
野田
社長

こんにちは、ディアシステムの野田です。

つい先日、AWS認定 ソリューション・アーキテクト アソシエイト(SAA-C03) に合格しました!
合格までに学習したことを体験記にまとめます。

試験挑戦前のスキルレベル

私が初めてAWSを触ったのは今から約10年前、2014年~2015年頃まで遡ります。
「AWS Lambda」が登場してまだ間もない頃でした。

まだ業務でAWSが必要となることはありませんでしたが、とりあえずどんな技術なのか試しておこうと思い立ち、簡単なチュートリアル本を購入して一通り試してみました。

Amazon Web Services 基礎からのネットワーク&サーバー構築 : 玉川 憲, 片山 暁雄, 今井 雄太

この書籍は現在でも出版されていて、現時点で第4版まで改訂されているようですね。
その後、2015年~2016年あたりからEC2・RDS・S3を使ったシステムの開発に関わるようになりました。 2017年頃からAPIGateway・AWSLambda・DynamoDBといった、所謂サーバーレス・アーキテクチャを使い始め、 ちょうどタイミングよくAWS Lambdaの本が発売されたので直ぐに購入し読破しました。

AWS Lambda実践ガイド (impress top gear) | 大澤文孝 |本 | 通販 | Amazon

今は第2版が発売されているようです。私が購入したのは第1版の方です。
その後、AWSを使ったクラウドネイティブなシステムの開発に継続的に関わってはいるのですが、 直近の5年間くらいは自分の手でAWSを触ることはなくなってしまいました。
その間、技術が完全に錆びつかせない程度にUdemyで勉強したり、書籍を何冊か買ってかいつまんで読んだりしていましたが、 完全に読み通したのはこの本くらいです。

AWSで実現するモダンアプリケーション入門 〜サーバーレス、コンテナ、マイクロサービスで何ができるのか | 落水 恭介, 吉田 慶章 |本 | 通販 | Amazon

なので、SAA試験挑戦時点のスキルレベルはというと、

  • AWSは初心者ではないが、知識や経験がサーバーレスに偏っている
  • 実務から数年離れているため、もはや使い方を忘れつつある

といったところです。

試験挑戦のきっかけ

弊社内で、AWSのパートナーティアを上げるためにソリューションアーキテクト資格取得者を増やそうという動きがあり、それに協力するため、SAAの取得を目指すことにしました。
目標期限は2024/8/31までで、思い立ったのが2024年6月初頭、期限まで残り3ヶ月となった頃です。 まずは手始めとして AWS認定 クラウド・プラクティショナー(CLF-C02) を取得し、それに合格したら次はAWS認定 ソリューションアーキテクト アソシエイト(SAA-C03) へと、順番に挑戦していくことにしました。

AWS認定 クラウド・プラクティショナー(CLF-C02)への挑戦

通称 "黒本" で学習しました。
この本自体は1年程前に購入したもので、何故買ったのかは憶えておらず読んだ形跡もありませんでした。

徹底攻略 AWS認定 クラウドプラクティショナー教科書 | トレノケート株式会社 高山裕司 |本 | 通販 | Amazon

2周ほど読んで特典のダウンロード模擬問題を解いてみました。
合格点が取れそうな手ごたえだったので、2024/6/10に挑戦し、結果無事合格しました。 合格点が700/1000 のところ得点は790/1000でした。

3f7dc93a.png

学習期間は1週間強といったところです。 黒本は読みやすく、特に詰まるところもなく読み進めることができました。
私が持っていた本は CLF-C02 ではなく、その前の版である CLF-C01 向けの本だったようですが、その点は特に問題なく、この1冊だけで十分合格できました。

AWS認定 ソリューションアーキテクト アソシエイト(SAA-C03)への挑戦

CLFと同じく "黒本" のSAA版を購入し、CLF合格後立て続けに学習を開始しました。

徹底攻略 AWS認定 ソリューションアーキテクト − アソシエイト教科書 第3版[SAA-C03]対応 徹底攻略シリーズ | 鳥谷部 昭寛, 宮口 光平, 半田 大樹 | 工学 | Kindleストア | Amazon

とりあえず2週間ほどテキストの通読と問題演習を繰り返した後、 AWSから提供されている公式練習問題集を解いてみたところ、正答率は半分程度といったところです。
公式練習問題集を解いた感覚だと、黒本の内容だけでは合格は厳しいかな?と感じました。
足りない知識は問題演習を増やすことでカバーすることにしました。 しかし、問題演習に入る前に、AWS Control Tower というサービスを使った マルチアカウントアーキテクチャ のことが気になっていたので、一旦試験勉強から離れてそちらを研究をすることにしました。
その過程で下記の書籍を購入して通読しました。

エバンジェリストの知識と経験を1冊にまとめた AWS開発を《成功》させる技術 | 高岡 将, 佐々木 亨 |本 | 通販 | Amazon

2週間ほど脱線した後、2024/7/8から試験勉強を再開しました。
問題演習用の教材として、Ping-t に無料で使えるSAA-C03用の問題集があったので、そちらを使って学習することにしました。

Ping-t

このPing-tのSAA-C03問題集ですが全部で733問あり、全て解き終わるまで20日ほどかかりました。 Ping-tは解説が大変充実しており、ひょっとするとPing-tだけで試験対策としては十分ではないかと思うくらいです。
間違えた問題のやり直しも含めると毎日50問くらいのペースで進めていた計算です。
このPing-t、問題量が豊富すぎるくらい豊富で、全て解き終えるまでかなり大変でした。
毎日50問を机に向かって解くような時間はなかなか取れないので、1回に5問ずつに小分けして、朝/通勤時間/昼休み/移動時間/夕食後/寝る前等、スキマ時間を使ってひたすら問題演習を繰り返しました。

2024/7/29にPing-tの問題集を1周解き終えることができたので、その3日後の2024/8/1に本番試験に挑みました。
結果は合格点が720/1000 のところ、得点は 801/1000 で、無事合格することができました。

20427da1.png

SAA-C03 試験の振返り

今回、スキルアップを目指してではなく、SAAの資格をとることそのものを目的として挑戦し始めたわけですが、 これまで体系だってAWSを勉強することを疎かにしてきたことが今さらながら悔やまれます。もっと早くに挑戦しておくべきでした。
これまで自分の知る範囲のサービスを組み合わせでシステム構成を提案していたのですが、やはりSAAを取得した今の方がたくさんの選択肢を思いつくことができます。あの構成はベストではなかった、こういった構成にすべきであったという風に、過去手掛けたアーキテクチャについて反省することしきりです。

今後について

今回の試験勉強を通じて知ったサービスの中で使ってみたいものが色々出てきたので、しばらくはいろいろ試してみようと考えております。
AWS認定 デベロッパーアソシエイト(DVA-C02) の方にも挑戦したくなってきたので、近いうちに挑戦してみるつもりです。

AWS認定ソリューションアーキテクト - アソシエイト (SAA) の合格体験記

箕浦
箕浦
開発二部

こんにちは。開発 2 部の箕浦です。

ディアシステムでは、AWSパートナーティアと呼ばれるランクの取得を目標に掲げており、
その一環としてAWS認定資格の取得を推進しています。

このたび、無事ソリューションアーキテクト - アソシエイト (SAA) 試験に合格することができましたので、
簡単ではありますが合格までの道のりを綴ります。

まず、AWS認定ソリューションアーキテクト - アソシエイト (SAA) について簡単に説明します。

資格の位置づけ:

SAAはAWS認定資格の中でも最もポピュラーな資格の一つで、アソシエイトレベルに位置づけられています。

対象者:

約1年程度のAWSアーキテクトとしての実務経験を持つエンジニアを想定。

試験内容:

  • 試験時間: 140分
  • 問題数: 65問(択一選択問題と複数選択問題)
  • 合格点: 1000点満点中720点以上

出題分野:

  • セキュアなアーキテクチャの設計 (30%)
  • 弾力性に優れたアーキテクチャの設計 (26%)
  • 高性能アーキテクチャの設計 (24%)
  • コストを最適化したアーキテクチャの設計 (20%)

必要なスキル:

  • AWSの主要サービス(コンピューティング、ネットワーキング、ストレージ、データベース)の理解
  • セキュリティ、信頼性、パフォーマンス効率、コスト最適化を考慮したアーキテクチャ設計能力
  • AWSのベストプラクティスとWell-Architectedフレームワークの理解

資格のメリット:

  • AWSに関する幅広い知識の証明
  • キャリアアップや昇進のチャンス拡大
  • 顧客からの信頼性向上
  • AWSパートナーシップ取得への貢献

SAAは、AWSクラウドの基本的な設計原則から実践的なアーキテクチャ設計まで、幅広い知識とスキルを要求する資格です。
この資格を取得することで、AWSクラウドを活用したソリューション設計能力を証明できます。

AWS認定資格の必要性とメリット

AWS認定資格を取得することには、以下のようなメリットがあります:

  • AWSサービスに関する包括的な知識の習得
  • クラウドアーキテクチャ設計スキルの向上
  • キャリアアップや昇進のチャンス拡大
  • 顧客からの信頼性向上
  • AWSパートナーシップ取得への貢献

特に、SAAは多くの企業で重視される資格であり、クラウドプロジェクトにおいて重要な役割を果たします。

合格までの道のり

使用した教材

  1. Udemy 【SAA-C03版】これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座

今回上記のUdemyのみで挑みましたが、これだけで合格するにはさすがに厳しいと思われます。
私の場合、ある程度のAWSの知識がありましたので、ハンズオンは特に必要なかったのですが、 AWSに触れたことがない方であれば、ハンズオン&専門の参考書での学習をおすすめします。

学習のポイント

  1. ユースケースに応じたAWSサービスの特徴と違いを理解する

    • 各サービスの特性を把握し、適切な選択ができるようにする
  2. Well-Architectedフレームワークを理解する

    • AWSのベストプラクティスを学び、設計の基本を押さえる
  3. 模試で75%以上の正答率を目指す

    • 本番試験の合格ラインを意識して学習を進める

学習時間と戦略

総学習時間は約44時間でした。効率的に学習を進めるために:

  • アウトプット(問題演習)に4時間
  • インプット(講義視聴など)に40時間

を費やしました。
YouTube動画(AWS Black Belt Online Seminar)も活用し、音声での解説を聞くことで効率的に学習を進めました。

試験後の感想

思っていたよりもかなり難しかったと思います。
聞いたことのないサービス名がちらほら出てきており
最初の15問くらいが難易度高めで、受験者の出鼻をくじいてくるような問題が集中していたと思います。

SAA取得により、AWSサービスの理解が幅広く深まり、クラウドアーキテクチャの設計スキルが向上しました。
この資格は、弊社のAWSパートナーティア取得に向けた重要なステップとなりました。

今後は、取得した知識を実務に活かすとともに、さらに上位の認定資格にもチャレンジしていきたいと考えています。
AWS認定資格の取得は、個人のスキルアップだけでなく、会社全体の技術力向上にも大きく貢献すると実感しています。

AWS SDK for JavaScript v3 への移行

箕浦
箕浦
開発二部

こんにちは。開発 2 部 箕浦です。
サーバーレスの開発には欠かせないAWS Lambdaですが、ランタイムバージョンのサポートが切れると、
AWSはセキュリティパッチ等を適用しなくなり、サポート切れの関数はテクニカルサポートの対象ではなくなります。
さらに、新規作成や更新もできなくなるので、ランタイムのバージョンアップが必要になってきます。

今回はとある案件で、構築時はNode.js 16.xで作成していたLambda関数でしたが、
Node.js 16.x の 2024 年 6 月 12 日のサポート終了に伴い、Node.js 20.x へ移行いたしました。
その際、AWS SDKのバージョンもv2からv3へ移行する必要がありました。

v3自体は、Node.js 18.x から登場し、利用可能だったようですが、16のまま放置していたので、今回初めて移行を試みました。
今更な情報かもしれませんが、その際、いろいろソースコードを変更する箇所がありましたので、一部紹介します。

今回SDKにて利用しているサービスは、Lambda、S3、Cognito、DynamoDB、SES でしたのでこれらをピックアップします。

ポイントとしては、

  • ①インポート
  • ②呼び出し
  • ③エラーハンドリング

の3か所です。

インポート

従来は以下のように aws-sdk 自体をインポートして、それぞれのサービスのクライアントを生成する必要がありました。

aws-sdk v2
const aws = require('aws-sdk');
const documentClient = new aws.DynamoDB.DocumentClient();

v3 では以下のように個別のモジュールをインポートする必要があります。 面倒ですが、SDKをまるごとインポートするよりも個別にインポートした方がサイズを削減することが可能です。

aws-sdk v3
const { DynamoDBClient } = require("@aws-sdk/client-dynamodb");
const { DynamoDBDocumentClient, DeleteCommand } = require("@aws-sdk/lib-dynamodb");
const documentClient = DynamoDBDocumentClient.from(new DynamoDBClient({ region: 'ap-northeast-1' }));

cognito, lambda, s3, ses の場合は、

aws-sdk v3
const {
CognitoIdentityProviderClient,
AdminCreateUserCommand,
AdminDeleteUserCommand,
} = require("@aws-sdk/client-cognito-identity-provider");
const { LambdaClient, InvokeCommand } = require("@aws-sdk/client-lambda");
const { S3Client, GetObjectCommand } = require("@aws-sdk/client-s3");
const { SESClient, SendEmailCommand } = require("@aws-sdk/client-ses");
const cognito = new CognitoIdentityProviderClient({});
const lambda = new LambdaClient({});
const s3 = new S3Client({});
const ses = new SESClient({ region: 'ap-northeast-1' });

このような感じです。

呼び出し

v2では、各サービスのAPIの呼び出し方は、一般的には クライアントが提供しているAPIに対応しているメソッドにパラメータを直接渡す方法でした。

aws-sdk v2
    const params = {
TableName: TABLE_NAME,
Key: {
UserName: user_id,
},
};
await documentClient.delete(params).promise();

v3 では、APIに対応しているCommandにパラメータを渡してコマンドを生成して、 それをクライアントのsendメソッドに渡してやります。

aws-sdk v3
    const params = {
TableName: TABLE_NAME,
Key: {
UserName: user_id,
},
};
await documentClient.send(new DeleteCommand(params));

さらにLambdaの場合は、戻り値のPayloadのParseの部分にも修正が必要でした

aws-sdk v2
    const ret = await lambda.invoke(params).promise();
const result = JSON.parse(ret.Payload);
aws-sdk v3
    const ret = await lambda.send(new InvokeCommand(params));
const result = JSON.parse(Buffer.from(ret.Payload).toString());

エラーハンドリング

v2 では、以下のように、例外が発生した際に、catchに渡される例外オブジェクトのcodeメンバを参照することで、
エラーハンドリングが可能でしたが、v3ではこの記述はだめでした。

aws-sdk v2
    try {
const ret = await cognito.send(new AdminCreateUserCommand(params));
} catch (e) {
if (e.code === 'UsernameExistsException') {
response.statusCode = 400;
body.resultCode = 'E0007';
} else if (e.code === 'InvalidPasswordException') {
response.statusCode = 400;
body.resultCode = 'E0016';
} else {
response.statusCode = 500;
body.resultCode = 'E0001';
}
response.body = JSON.stringify(body);
callback(null, response);
return;
}

v3では以下のように、instanceof を使ってハンドリングする必要がありました。

aws-sdk v3
    try {
const ret = await cognito.send(new AdminCreateUserCommand(params));
} catch (e) {
if (e instanceof UsernameExistsException) {
response.statusCode = 400;
body.resultCode = 'E0007';
} else if (e instanceof InvalidPasswordException) {
response.statusCode = 400;
body.resultCode = 'E0016';
} else {
response.statusCode = 500;
body.resultCode = 'E0001';
}
response.body = JSON.stringify(body);
callback(null, response);
return;
}

今回取り上げたサービスはほんの一部ですが、それ以外のサービスでは他にも変更点はある可能性はあります。
もし、同じ境遇の方いましたら、ご参考までに。