プログラマメモ2 - programmer no memo2

2025-10-13.月にAWS認定(AWS Certified Data Engineer - Associate (DEA-C01) )受けましたよ。 2025/10/14
2025/10/19

 

閑話休題

Perfumeがコールドスリープだそうですね。ちょっと寂しい気分になっております。

動機

全冠の夢再びということで、あと5つの最初の1つ目ということで。

僕の所属している会社は、AWSのパートナーではないので、全冠取ったとしても名前はどこにものらないです。ですが、2ヶ月半で取る人は取る全冠。あこがれでしょ、それなにり学習しないといけないわけですし。 

 

結果

 スコアは786で合格.が、危ういですね。甘くみすぎていた..というのも、このテストは

今年{2024-01-12.金}にAWS認定(DEA-C01)受けましたよ。 おちました。

だったんです。その時は、英語でベータ版で受けたのですが。当時は637でした。 

さすがに今回は勉強したので、なんとかいくだろうと思ってはいましたが、前々日にskillbuilderの模試で68%だったので、ああああああ、Orz..となっていたわけです。

1問あたり2分かかっていて、あとは、まちがう場合は時間がかかっているような気がしています。50秒ぐらいで解答できる場合は、これは完璧OKみたいな。 

学習方法

skillbuilder、サブスクです。15時間のコースがあったので、それを受講して、全体を把握。が、試験とはまあ違いますが、全体を見渡せるようになれる気がする。動画は1.25倍速。日本語字幕。受け身だとどうしても睡魔が。でも、よくできていますよねー、英語で理解できたら、まあ、いいんだろうなーと思いつつ、なんせ、AWSのドキュメントでの自動翻訳のタイトルのひどさは、あれはひどいよなーと思っているのですが、あれは普通なのでしょうか。

 

学習期間は2週間と少しだったかな。あと禁酒しましたよ。禁酒したから受かるというわけではないですが、覚悟ですよ。覚悟。こんなときに限って呑みさそわれてするわけでして、友達少ないから、ああ、となるわけです。 

今回は、あまり印刷しなかったですかね。chatgpt,claudeさんに質問しながら、サービスとか製品、用語の確認をしましたね。chatgpt、claudeさん上にAWS認定ようのプロジェクトを用意して、やりとりをあとから参照しやすくはしています。

 

クラウドライセンスも今回利用させてもらっています。問題は少なめでした、やはり試験の雰囲気を掴めるのがいいですよね。解説のリンクがAWSの公式のドキュメントにたいしてあるのがいいですね。そんこと期待している人はそうそういないとは思いますが、問題の的中なんてないんだからそういところに期待してはだめだと思いますよ。 

 

 

 

感想、そして反省

 今回は試験の見直しをぎりぎりまでしました。が、選択肢かえて、見直してしまって、そこでタイムオーバーになってしまし、選択を戻すことができず、この問題、絶対落としたと、鬱でした。試験が終わって、有楽町のドイツビール屋さんで、ぐわっとヴァイスビアをのんだのでした。

毎回、次こそはしっかり勉強して夢の900点台と思うのですが、無理だろうなー、どういうふうに勉強すればよいのかわからないです。

 

 

 

 

他の受けた試験について

2025-02-24.月にAWS認定(SCS-C02)受けましたよ。 2025/03/16
2025/10/19

動機

学習している感じが好きだから。

いままで、低スコアのぎりぎりの合格だったので、ここいらで900点オーバのハイスコア合格を目指したい....だったのだけど。

結果

スコアは766点で合格できました。

ぎりぎりでした。いままでの中で一番ぎりぎりかも。

学習方法

skill builder(Exam Prep Enhanced Course: AWS Certified Security - Specialty (SCS-C02 - 日本語))がメインですね。約2周しました。

二周目でようやく用語が頭にはいりはじめました。

AWS Well-Architedcted フレームワークのセキュリティの柱(https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/security-pillar/welcome.html)を印刷して読みました。大体230ページぐらいです。現場のお昼休みを使ってこつこつ読んだのですが、あまり身にならなかったのが悔やまれます。

クラウドライセンスの練習問題も利用しましたが、全部こなしたわけではなかったです。クラウドライセンスで試験前までの成果率は60%いっていない状態で試験は受けました。

今回は、参考書使おうかなと思い本屋にいってみたのですが、ちょっと内容がうすいような気がして購入はやめました(僕がいうのもなんですが)。

前前日に、skill builderのフル問題(65問)をやったらこれまた71%だったので、もうあきらめモードでしたよ。

あきらめモードでしたが、あきらめるわけにはいかないので模擬試験でまちがえた問題は、なぜまちがえたのかを含めて試験前日見直しをしました。そこそこ時間かかる作業です。解答に近づくための考え方が、重要かなと思います。選択肢をせばめる、根拠をもって選択するという作業をおろそかにしてはだめだなと。僕の場合、反射神経的に答えるがよくないかなと。

IAM大事です。いくつかの試験には合格してきましたが、いまの僕では実際の設計、運用はあやしいい...

勉強はしっかりしましょう。自分

お酒はひかえめに、そして運動したりリフレッシュしたほうがよいです。

運動は定期的にしたほうがよいと思います。ウォーキングしたり、遠いところみたりとか、ストレッチしたりとか、寒い日こそ、外で散歩したほうがよかったかなーと。

次こそは!

次は、アソシエイトのデータエンジニアを受験しようと考えています。この試験は、ベータ試験を受験をしておちたテストなのでした。次こそは、ハイスコア!

他の受けた試験について

2025-01-13.月にAWS認定(AIF-C01)受けましたよ。 2025/01/26
2025/10/19

動機

おととしはawsを使った開発をしているとこにいたので、周りに追いつかねばというモチベだったのですが、いま、まったく違う環境になってしまって、モチベはがたおちだったのですが、学習するのは好きなので、受けてみました。

しかし、昨年、試験予約して一週間まえあたりまで勉強してなくて、試験をリスケしようと思ったら、先の先まで予約でうまっていて...とりあえず、詰め込みで..

結果

スコアは813点で合格できました。

結果は、当日の20時ぐらいにわかりましたよ。

学習方法

昨年は、少しづつですが、skill builderを使ってちょこちょこ学習していたので、なんとか。

今回は、問題練習ははじめてudemyを利用してみましたよ。お正月割引!?があったので。あとはクラウドライセンスも課金しました。

mls対策時にいろいろ印刷して作っていた教材をすててなかったので、それをほりおこしつつ、skill builderで全体像を掴みました。

前日に、skill builderのフル問題(65問)をやったら71%だったので、かなり不安でした。

skill builderはいいですね。おすすめです。

悲報...

僕の現在、所属している会社では、MLS認定を昨年合格していたのでこの試験の報奨金がでないということに...
気持ちはわからないでもないけども.

次は、セキュリティを受験しようと考えています。その後で、G検定、そのあとで、残りAWS認定にチャレンジ。しっかりした点数で合格できるように計画的に学習していきたいですね。

他の受けた試験について

servelessでstepfunctionsをデプロイしてそのarnをパラメーターストアに保存したい。 2024/10/13

表題の通りなのですが、プラグインを使わないとえらく大変で、結局プラグインを用意して実現しました。
プラグイン自体はクロード(Claude)さんに生成してもらっています。
プラグインって大変だなーとはじめ思ってたのですが、やってみると案外簡単で、プラグインってデプロイ時のイベントで動いていると思えば、そのタイミングでやりたいことをやればよし。ここでは、'after:deploy:deploy'ですね。


import { SSMClient, PutParameterCommand } from "@aws-sdk/client-ssm";
import { CloudFormationClient, DescribeStacksCommand } from "@aws-sdk/client-cloudformation";

class StoreArnsPlugin {
  constructor(serverless, options) {
    this.serverless = serverless;
    this.options = options;
    this.hooks = {
      'after:deploy:deploy': this.storeArns.bind(this),
    };
  }

  async storeArns() {
    const region = this.serverless.service.provider.region;
    const ssmClient = new SSMClient({ region });
    const cfClient = new CloudFormationClient({ region });
    const stackName = `${this.serverless.service.service}-${this.serverless.service.provider.stage}`;

    try {
      // CloudFormationスタックの出力を取得
      const { Stacks } = await cfClient.send(new DescribeStacksCommand({ StackName: stackName }));
      const outputs = Stacks[0].Outputs;

      // Step FunctionsのARNを見つける
      const stepFunctionOutput = outputs.find(output => 
        output.OutputValue.startsWith('arn:aws:states:') && 
        output.OutputValue.includes(':stateMachine:')
      );

      if (!stepFunctionOutput) {
        throw new Error('Step Functions ARN not found in CloudFormation outputs');
      }

      const stepFunctionArn = stepFunctionOutput.OutputValue;

      // ARNをParameter Storeにセキュアに保存
      const parameterName = `/my-service/${this.serverless.service.provider.stage}/step-function-arn`;
      await ssmClient.send(new PutParameterCommand({
        Name: parameterName,
        Value: stepFunctionArn,
        Type: 'SecureString',
        Overwrite: true,
      }));

      this.serverless.cli.log(`Securely stored Step Functions ARN in Parameter Store: ${parameterName}`);
      this.serverless.cli.log(`Step Functions ARN: ${stepFunctionArn}`);
    } catch (error) {
      this.serverless.cli.log(`Error storing ARN: ${error.message}`);
    }
  }
}

export default StoreArnsPlugin;

リソースが増える一方なこの世界 2024/10/13

生成AIすごいですよね。アイデアがあれば、コードさくっとね。 いろいろやっていきたいところです。
さて、たいした話ではないですが、クラウドフロントのオリジンは複数用意できるよというのと、ドメインも複数つけれる? で、なぜ、そういうことをいまさらなのかといいますと、リソースが増える一方なので、工夫というか設計というか、そのあたりでね。

Bloggerのテンプレート変更していくぞ計画 2024/09/21

ここでメモをしておけば、あとで見返すであろう(自分)。
https://blogger-learning-rab.blogspot.com/2020/08/blogger-jisaku-02.html#chapter-10
mustacheを使って細かくファイルにしていくのはうまくいきそうな感じなので、これはこれでよくて。
構造(テンプレー)にたいする理解がないからそっち補強しつつ。
記事ならpartial/postに記事用のデザイン部品とか集めておきたいよね。
とは思ったのだけど、テンプレートタグでフォルダきる?
includableは定義でidが必要。includeでincludableを取り込む。取り込む際に指定するのはname。
section>widget、includable、includeって感じなのか
整理しないと何年やってもピンとこないなー
sectionにはガジェットを乗せることができる。
Bloggerガジェット(=ウィジェット)ということらしい。
「セクションは主に「ヘッダー」「メイン」「サイドバー」「フッター」で使われる。」ということらしい
なのでpartial/*section*/でフォルダを作成してそこセクションにのせるものの管理をするとか。









本日の方式メモ - CSV一括登録 2024/09/16

https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/avoid-exec-failures.html
よくあるCSV一括登録をラムダ単体でなくstepfunctionsで組むはなし。
はじめ、stateからそのままデータを次に渡してやろうとしてはじめて256kbの壁にぶちあたったのであった。
クロードさんにお尋ねして、S3で小分けにしなよ、という話で、そういうふうにやったらうまくいった。おそらく、実行時間もいい感じなのだろう。
serverlessでやっていて、そこでつまずいて数時間時間を費やしたのは内緒でもない。
おもしろかったのは、ラムダの中でs3から値をとるのではなく、stepfunctionsのtaskを使って前段で値をとってそのまま流すという作り。後段のラムダは引数でもらったペイロードを処理するという感じ。切り分けでできているな。