[{"data":1,"prerenderedAt":589},["ShallowReactive",2],{"detailaws-saa-certification":3,"$fYzh_K8hYUBg33Pe1TBon_jwsXH2TMB1sFxRHDteuM0c":176,"$fS4sOnCUpoF-wMfw16HWwnBnngwddN9OaX5p2KHuFyVA":211,"works":423},{"id":4,"createdAt":5,"updatedAt":6,"publishedAt":7,"revisedAt":6,"title":8,"content2":9,"eyecatch":10,"tag":14,"heading_list":46,"recruit":19,"is_html":19,"description":47,"related_articles":48,"recommended_articles":175,"is_migration":19},"aws-saa-certification","2026-06-19T04:35:15.826Z","2026-06-22T04:55:47.068Z","2026-06-22T04:53:58.852Z","AWS Certified Solutions Architect - Associate を受験した話","\u003Cp>悪夢しか見ないおかげで、悪夢についてのインタビューを受けました。\u003C/p>\u003Cp>この記事は、社内イベント「\u003Ca href=\"https://www.s2factory.co.jp/blog/tea/\" target=\"_blank\" rel=\"noopener noreferrer\">お茶会\u003C/a>」での発表内容をもとにまとめたものです。\u003Cbr>今回は、弊社の otsuka が\u003Cstrong>「AWS Certified Solutions Architect - Associate」\u003C/strong>の受験について話しました。\u003C/p>\u003Chr>\u003Cp>\u003Cbr>今年の 4 月に、\u003Ca href=\"https://aws.amazon.com/jp/\" target=\"_blank\" rel=\"noopener noreferrer\">AWS\u003C/a> 認定試験のひとつである\u003Cstrong>「\u003C/strong>\u003Ca href=\"https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/\" target=\"_blank\" rel=\"noopener noreferrer\">\u003Cstrong>AWS Certified Solutions Architect - Associate（SAA）\u003C/strong>\u003C/a>\u003Cstrong>」\u003C/strong>を受験しました。\u003Cbr>受験に向けてどのように勉強したのか、実際に受けてみてどうだったのかを振り返りたいと思います。\u003C/p>\u003Ch2 id=\"h66b306ae14\">試験について\u003C/h2>\u003Cp>AWS 認定試験には、いくつかの\u003Cstrong>レベル\u003C/strong>があります。\u003C/p>\u003Cul>\u003Cli>\u003Cstrong>Foundational\u003C/strong>：AWS 初心者向け\u003C/li>\u003Cli>\u003Cstrong>Associate\u003C/strong>：実務で AWS に触れている人向け\u003C/li>\u003Cli>\u003Cstrong>Professional\u003C/strong>：上級エンジニア・アーキテクト向け\u003C/li>\u003Cli>\u003Cstrong>Specialty\u003C/strong>：特定分野の専門家向け\u003C/li>\u003C/ul>\u003Cp>今回受験したのは、Associate レベルの \u003Cstrong>AWS Certified Solutions Architect - Associate(SAA)\u003C/strong> です。\u003C/p>\u003Cp>SAA では、AWS を使ったシステム設計を中心に、以下のような知識が問われます。\u003C/p>\u003Cul>\u003Cli>\u003Cstrong>高可用性\u003C/strong>\u003C/li>\u003Cli>\u003Cstrong>セキュリティ\u003C/strong>\u003C/li>\u003Cli>\u003Cstrong>コスト最適化\u003C/strong>\u003C/li>\u003Cli>\u003Cstrong>ネットワーク\u003C/strong>\u003C/li>\u003C/ul>\u003Cp>\u003Cstrong>試験時間は 130 分で、問題数は 65 問。1000 点満点のうち 720 点以上で合格\u003C/strong>です。\u003Cbr>ちなみに受験料は 22,000 円。申し込みには AWS のアカウントとは別のアカウントが必要で、少し手間取ったところもありました。\u003C/p>\u003Ch2 id=\"h89be2e6da8\">AWS認定試験を受けようと思った理由\u003C/h2>\u003Cp>受験前は、業務で AWS に触る機会はあるものの、\u003Cstrong>細かいオプションやサービスごとの使い分けまでは十分に理解できていない状態\u003C/strong>でした。\u003Cbr>なんとなく触っている状態から、\u003Cstrong>もう少し体系的に知識を身につけたい\u003C/strong>と思ったことが、受験しようと思ったきっかけです。\u003C/p>\u003Cp>また、S2ファクトリーには\u003Cstrong>社員のスキルアップを支援する資格試験支援制度\u003C/strong>があります。\u003Cstrong>試験費用のほか、勉強に必要な参考書や有料講座なども補助対象になる\u003C/strong>制度です。\u003C/p>\u003Cp>AWS 認定試験は受験料が決して安くないため、こうした制度があることで挑戦しやすくなったと感じています。\u003C/p>\u003Ch2 id=\"h59fab18ef3\">勉強方法\u003C/h2>\u003Cp>AWS 認定試験の体験談を見ていると、\u003Ca href=\"https://www.udemy.com/\" target=\"_blank\" rel=\"noopener noreferrer\">Udemy\u003C/a> を使って勉強している人が多い印象でした。\u003Cbr>ただ、動画で学ぶのがあまり得意ではなかったため、別の方法で勉強することに。\u003C/p>\u003Cp>最初に試したのは参考書です。見やすそうだと思って選んだものの、読んでいてもなかなか頭に入らず、思うように勉強が進みませんでした。\u003C/p>\u003Cp>そこで使い始めたのが、\u003Ca href=\"https://mondai.ping-t.com/g\" target=\"_blank\" rel=\"noopener noreferrer\">\u003Cstrong>Ping-t \u003C/strong>\u003C/a>\u003Cstrong>という問題演習サイト\u003C/strong>です。AWS 認定試験の受験経験がある社内メンバーに教えてもらったサイトで、最終的にはこれを中心に勉強しました。\u003Cbr>\u003Cbr>\u003C/p>\u003Cdiv class=\"iframely-embed\">\u003Cdiv class=\"iframely-responsive\" style=\"height: 140px; padding-bottom: 0;\">\u003Ca href=\"https://www.s2factory.co.jp/blog/aws-certified/\" data-iframely-url=\"https://iframely.net/api/iframe?card=small&amp;url=https%3A%2F%2Fwww.s2factory.co.jp%2Fblog%2Faws-certified%2F&amp;key=c271a3ec77ff4aa44d5948170dd74161\">\u003C/a>\u003C/div>\u003C/div>\u003Cscript async src=\"https://iframely.net/embed.js\" charset=\"utf-8\">\u003C/script>\u003Cp>\u003Cbr>自分の勉強スタイルとしては、こんな感じです。\u003C/p>\u003Cul>\u003Cli>Ping-t で問題を解く\u003C/li>\u003Cli>解説を読んで、分からなかった内容を確認する\u003C/li>\u003Cli>要点がまとまったページを iPad で書き写して暗記\u003C/li>\u003C/ul>\u003Cp>スマホで少しずつ進められるところが自分には合っていて、最終的には \u003Cstrong>800 問\u003C/strong>ほど解きました。\u003C/p>\u003Cp>Ping-t には無料で解ける問題もありますが、SAA の問題集をしっかり進めたかったので、\u003Cstrong>有料プランを利用\u003C/strong>しました。\u003Cbr>当初は 1 ヶ月で進めるつもりでしたが、途中で受験日を少し後ろにずらしたこともあり、結果的には 2 ヶ月ほど使っています。\u003C/p>\u003Ch2 id=\"haaf1d50dfc\">試験内容\u003C/h2>\u003Cp>試験では、サービス自体の知識をそのまま問うというより、\u003Cstrong>「こういう場面ではどのサービスを使うのがよいか」を考える問題\u003C/strong>が多い印象。\u003C/p>\u003Cp>実際には、このあたりの内容が出ました。\u003C/p>\u003Cul>\u003Cli>可用性・耐障害性\u003C/li>\u003Cli>ディザスタリカバリ\u003C/li>\u003Cli>コスト最適化\u003C/li>\u003Cli>セキュリティ（IAM / KMS / VPC）\u003C/li>\u003Cli>サーバーレス構成\u003C/li>\u003Cli>S3のストレージクラス\u003C/li>\u003Cli>SQS / SNS を使った構成\u003C/li>\u003Cli>S3 / EBS / EFS などのストレージ選択\u003C/li>\u003C/ul>\u003Cp>選択肢の中には「間違いではないけれど、そこまでしなくてもよさそう」と思うものもあり、問題文を読みながら、\u003Cstrong>要件に対して過不足のない答えを選んでいく\u003C/strong>イメージです。\u003C/p>\u003Cp>本番では、勉強した内容も多く出てきて安心した一方で、EventBridge のイベントバスなど、あまり触れていなかった内容もあり、まだまだ知らないことが多いと感じました。\u003C/p>\u003Ch2 id=\"hf980b243ef\">試験当日\u003C/h2>\u003Cp>認定試験は、\u003Ca href=\"https://aws.amazon.com/jp/certification/certification-prep/testing/\" target=\"_blank\" rel=\"noopener noreferrer\">\u003Cstrong>テストセンターで受ける方法\u003C/strong>と、自宅やオフィスから\u003Cstrong>オンライン監督付きで受ける方法\u003C/strong>\u003C/a>があります。\u003Cbr>オンラインの場合は、画面共有と Web カメラを通じて試験監督員の確認を受けながら受験するそうです。\u003Cbr>\u003Cbr>私は、\u003Ca href=\"https://www.pearsonvue.com/jp/ja/test-takers.html\" target=\"_blank\" rel=\"noopener noreferrer\">ピアソンVUE\u003C/a>のテストセンターで受けることにしました。\u003Cbr>\u003Cstrong>テストセンターは池袋や新宿など都内にも複数\u003C/strong>ありますが、受けられる会場は試験日や空き状況によって変わります。予約時に検索して選ぶ形になるため、最終的には予約メールに書かれた住所を確認するのが確実です。\u003Cbr>\u003Cbr>今回、一番焦ったのがまさにその\u003Cstrong>会場確認\u003C/strong>でした。\u003Cbr>予約メールには「IKEBUKUROEKI NISHIGUCHI TEST CENTER」と書かれていて、以前に別の試験を受けた会場だと思い込んで向かったのですが、建物に入ると「ここは SAA の試験会場ではありません」という張り紙が。わざわざ張り紙があるということは、同じように間違える人が多いのかもしれません。\u003C/p>\u003Cp>改めてメールの住所を確認すると、実際の会場は別の場所。幸いにも 5 分ほどの距離だったため、小走りで移動し、無事に受験できました。\u003C/p>\u003Cp>会場では\u003Cstrong>顔写真の撮影や持ち物のチェック\u003C/strong>を済ませてから席につきます。\u003Cbr>試験の時間配分がわからなかったため、まずは全体を一周し、残った時間でもう一度見直す形で臨んだのですが、時間的にも余裕と、ある程度の手応えを持って終えることができたので良かったです。\u003C/p>\u003Ch2 id=\"hb6509f48bf\">結果\u003C/h2>\u003Cp>試験結果はその場ではわからず、後日メールで通知されます。\u003C/p>\u003Cp>\u003Cstrong>翌日の朝には、「合格バッジを獲得しました」というメール\u003C/strong>が届きました。合格したことはわかるのですが、正式な結果通知より先にバッジの案内が来たので、できれば順番は逆がよかったなと思いました。\u003C/p>\u003Cp>その後、試験結果の案内メールも届き、無事に合格していることを確認。\u003C/p>\u003Cp>スコアは 832 点。合格ラインは 720 点なので、\u003Cstrong>ある程度余裕を持って合格できたのは嬉しかった\u003C/strong>です。\u003C/p>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/fe14942ccf194884842f13dbfde09ae0/%E5%90%88%E6%A0%BC%E9%80%9A%E7%9F%A5.png?w=600&amp;h=483\" alt=\"合格通知\" width=\"600\" height=\"483\">\u003C/figure>\u003Ch2 id=\"ha214098e44\">まとめ\u003C/h2>\u003Cp>受験してみて、AWS についてまだ知らないことがたくさんあるなと思いました。\u003C/p>\u003Cp>業務で使うことはあっても、サービスごとの違いや、どういう場面でどの構成を選ぶのかを改めて整理するきっかけは意外と少ないものです。試験勉強を通して、なんとなく触っていた部分を見直すよい機会になりました。\u003C/p>\u003Cp>ちなみに、AWS 認定試験は、合格すると次回以降の試験で使える\u003Cstrong>半額チケット\u003C/strong>がもらえるようです。Developer Associate や DevOps Engineer Professional、Solutions Architect Professional など、\u003Cstrong>実務に関わりそうな試験も気になっているので、今後また別の試験にも挑戦\u003C/strong>してみたいと思います。\u003C/p>",{"url":11,"height":12,"width":13},"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/981a7c52ce36479e8fdf6085a3443ad5/aws-saa-certification.png",909,1731,[15,20,25,30,35,40],{"id":16,"createdAt":17,"updatedAt":17,"publishedAt":17,"revisedAt":17,"name":18,"top":19},"aws","2023-06-01T09:40:42.449Z","AWS",false,{"id":21,"createdAt":22,"updatedAt":23,"publishedAt":22,"revisedAt":22,"name":24,"top":19},"certification","2023-06-01T09:42:37.764Z","2023-08-09T06:25:23.276Z","資格",{"id":26,"createdAt":27,"updatedAt":28,"publishedAt":27,"revisedAt":27,"name":29,"top":19},"security","2023-08-07T09:08:35.290Z","2023-08-09T06:17:46.657Z","セキュリティ",{"id":31,"createdAt":32,"updatedAt":33,"publishedAt":32,"revisedAt":32,"name":34,"top":19},"welfare","2023-06-01T09:42:28.765Z","2023-08-09T06:27:09.312Z","福利厚生",{"id":36,"createdAt":37,"updatedAt":38,"publishedAt":37,"revisedAt":37,"name":39,"top":19},"study","2023-06-01T09:41:55.178Z","2023-08-09T06:31:18.978Z","勉強",{"id":41,"createdAt":42,"updatedAt":43,"publishedAt":44,"revisedAt":43,"name":45,"top":46},"tea","2023-06-01T09:41:19.770Z","2025-04-22T12:20:26.123Z","2023-07-28T06:30:00.000Z","お茶会",true,"AWS Certified Solutions Architect - Associate（SAA）の受験について、勉強方法や試験当日の様子、受けてみて感じたことをまとめました。",[49,68,87,118,136,154],{"id":50,"createdAt":51,"updatedAt":52,"publishedAt":51,"revisedAt":52,"title":53,"eyecatch":54,"tag":58,"heading_list":19,"recruit":19,"is_html":46,"html_contents":64,"related_articles":65,"recommended_articles":66,"is_migration":46,"migration_date":67},"aws-certified","2023-06-02T08:50:09.984Z","2023-08-07T04:05:38.318Z","AWS 認定受験記",{"url":55,"height":56,"width":57},"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/343924326e7e4236bda613e6950845c0/2023-02-f41782c1dc3bffb43df989b5f2ae0728.png",1006,1956,[59,60,62,63],{"id":16},{"id":61},"tech",{"id":21},{"id":41},"今回は弊社の小林が昨年の8月に受けた\u003Cstrong>「AWS 認定受験」\u003C/strong>について話しました。\u003Cbr>\n\n\u003Cp style=\"font-size:16px\">\u003Cmark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-red-color\">※情報は2022年8月頃のものです。現在の状況とは異なる場合があります。\u003C/mark>\u003C/p>\n\n\u003Chr class=\"wp-block-separator has-alpha-channel-opacity\"/>\n\n\n\u003Cbr>昨年 AWS の認定試験を受験しました。\u003Cbr>今回は AWS 認定試験について、どういう勉強をしたのか、どんな試験内容だったのかを簡単に紹介できればと思います。\u003Cbr>\u003Cbr>\n\n\u003Ch2>AWS 認定試験について\u003Cbr>\u003Cbr>\u003C/h2>\n\n\u003Cblockquote class=\"wp-block-quote\">\nAWS 認定はクラウドの専門知識を検証することで、専門家は需要の高いスキルを示し、組織は AWS を使ったクラウドイニシアチブにおいて効率的かつ革新的なチームを構築するのに役立ちます。個人やチームが独自の目標を達成できるように、役割と専門分野ごとに設計したさまざまな認定試験から選択します。\u003Cbr>\u003Cbr>\n\u003Ccite>出典：\u003Ca rel=\"noreferrer noopener\" href=\"https://aws.amazon.com/jp/certification/?th=sec&amp;sec=certified\" target=\"_blank\">AWS 認定\u003C/a>\u003C/cite>\u003C/blockquote>\n\n\u003Cbr>AWS 認定試験は、\u003Cstrong>AWS により実施されているベンダー試験\u003C/strong>です。合格することで資格が取得でき、AWS 上でアプリケーションやサービスの開発を行うための知識やスキルを持っていることが証明できます。\u003Cbr>\u003Cbr>認定資格には、\u003Cbr>\u003Cbr>\n\n\u003Cul>\n\u003Cli>\u003Cstrong>FOUNDATION\u003C/strong>AL\u003C/li>\n\n\u003Cli>\u003Cstrong>ASSOCIATE\u003C/strong>\u003C/li>\n\n\u003Cli>\u003Cstrong>プロフェッショナル\u003C/strong>\u003C/li>\n\n\u003Cli>\u003Cstrong>専門知識\u003C/strong>\u003C/li>\n\u003C/ul>\n\n\u003Cbr>の 4 つのレベルがあって、それぞれの\u003Cstrong>レベルと分野別に 12 種類の資格\u003C/strong>を取得可能です。\u003Cbr>\u003Cbr>このような IT 試験には IPA のように国が実施しているものや、\u003Ca rel=\"noreferrer noopener\" href=\"https://www.oracle.com/jp/\" target=\"_blank\">Oracle\u003C/a> や \u003Ca rel=\"noreferrer noopener\" href=\"https://www.cisco.com/c/ja_jp/training-events/training-certifications/exams.html\" target=\"_blank\">CCNA\u003C/a> などの企業系のものがありますが、\u003Cstrong>企業系のものは大体受験料が高い\u003C/strong>です。AWS もその例に漏れず…。\u003Cbr>\u003Cbr>ちなみに\u003Cstrong>有効期間は 3 年\u003C/strong>なので、3 年以内に同じ科目を再受験するか、更に上位の資格を取得しなければ失効します。\u003Cbr>\u003Cstrong>受験は基本的にオンライン\u003C/strong>です。が、試験会場を選択して受験することもできます。調べてみたところ、テストセンターというものが各地にあるようでした。ちなみに私は自宅からオンラインで受けました。\u003Cbr>\u003Cbr>\n\n\u003Ch2>受験準備\u003C/h2>\n今回、私が受験したのは \u003Cstrong>「\u003Ca rel=\"noreferrer noopener\" href=\"https://aws.amazon.com/jp/certification/certified-solutions-architect-associate/?ch=sec&amp;sec=rmg&amp;d=1\" target=\"_blank\">Solutions Architect\u003C/a>」\u003C/strong>という資格です。\u003Cbr>流れとしては、2 週間ほど勉強した時点で申込みをして、その 2 週間後に受験したといった感じです。\u003Cbr>\u003Cbr>\n\n\u003Ch3>学習のために使ったもの\u003C/h3>\n\nこれらを学習に使用しました。\u003Cbr>\u003Cbr>\n\n\u003Cul>\n\u003Cli>\u003Ca rel=\"noreferrer noopener\" href=\"https://www.amazon.co.jp/AWS%E8%AA%8D%E5%AE%9A%E8%B3%87%E6%A0%BC%E8%A9%A6%E9%A8%93%E3%83%86%E3%82%AD%E3%82%B9%E3%83%88-AWS%E8%AA%8D%E5%AE%9A-%E3%82%BD%E3%83%AA%E3%83%A5%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%B3%E3%82%A2%E3%83%BC%E3%82%AD%E3%83%86%E3%82%AF%E3%83%88-%E3%82%A2%E3%82%BD%E3%82%B7%E3%82%A8%E3%82%A4%E3%83%88-NRI%E3%83%8D%E3%83%83%E3%83%88%E3%82%B3%E3%83%A0%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE/dp/479739739X\" target=\"_blank\">\u003Cstrong>AWS認定資格試験テキスト AWS認定 ソリューションアーキテクスト-アソシエイト\u003C/strong>\u003C/a>\n\u003Cul>\n\u003Cli>書籍。 2 週間ほどで読み終えた。大まかに試験内容を予習するのには役立った。\u003C/li>\n\u003C/ul>\n\u003C/li>\n\n\u003Cli>\u003Cstrong>\u003Ca rel=\"noreferrer noopener\" href=\"https://aws.amazon.com/jp/training/digital/\" target=\"_blank\">AWS Skill Builder\u003C/a>\u003C/strong>\n\u003Cul>\n\u003Cli>AWS が自前で用意している学習サイト。一部が無料で学習できる。\u003C/li>\n\u003C/ul>\n\u003C/li>\n\n\u003Cli>\u003Cstrong>\u003Ca rel=\"noreferrer noopener\" href=\"https://ping-t.com/\" target=\"_blank\">Ping-t\u003C/a>\u003C/strong>\n\u003Cul>\n\u003Cli>IT 試験対策サイト。\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\n\u003Cbr>初めに書籍を購入して勉強したのですが、それだけでは不安だったので学習サイトも利用しました。\u003Cbr>特によかったのは Ping-t です。ログインすれば、SAA なら無料で400問の模擬試験が受けられます。本には書いていないような最近の機能やニッチなところまで網羅されていたのでずっとこれをやってました。\u003Cbr>\u003Cbr>\n\n\u003Ch3>申込み\u003C/h3>\n\n\u003Ca rel=\"noreferrer noopener\" href=\"https://www.aws.training/Certification/\" target=\"_blank\">認定サイト\u003C/a>にログインして受験の申込みを行いました。\u003Cbr>Amazon のアカウントに紐付けてログインできます。\u003Cbr>\u003Cbr>\n\n\u003Cfigure class=\"wp-block-image aligncenter size-large is-resized\">\u003Ca href=\"https://www.aws.training/Certification/\">\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/3e2f534e71ac427d8795b4c3b30b1416/2023-02-d9a9dc2d845e798eed5aa2aeca79a734.png\" alt=\"\" class=\"wp-image-16004\" width=\"415\" height=\"401\"/>\u003C/a>\u003C/figure>\n\n\u003Cbr>サインインすると、受験日時の選択と、\u003Cstrong>PSI とピアソンの 2 種類の試験サービスからどちらかを選ばせられます。\u003C/strong>ちなみに平日日中のみしか日時は選べません。\u003Cbr>\u003Cbr>\n\n\u003Cul>\n\u003Cli>\u003Cstrong>PSI\u003C/strong>\n\u003Cul>\n\u003Cli>\u003Cstrong>案内が全て英語のみ。試験は日本語選択可能。\u003C/strong>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\n\u003Cli>\u003Cstrong>ピアソン\u003C/strong>\n\u003Cul>\n\u003Cli>\u003Cstrong>案内も試験も日本語選択可能。\u003C/strong>\u003C/li>\n\u003C/ul>\n\u003C/li>\n\u003C/ul>\n\n\u003Ch2>試験当日\u003C/h2>\n\n試験 15 分前から試験サイトにアクセスできます(試験サイトには AWS 認定サイトの管理画面から遷移)。\u003Cbr>\u003Cbr>事前に \u003Cstrong>PC のカメラやマイクなどの動作確認\u003C/strong>をやります。そうしたらサイトに表示されている QR コードを読み込んでそこから\u003Cstrong>スマートフォンで身分証や試験会場の周囲の写真を送る\u003C/strong>ようにという指示が出ます。\u003Cbr>\u003Cbr>試験会場周囲の写真ですが、自宅だったので PC 周りを撮影して送りました。この時に、使わないディスプレイは机の上に置かないようにという注意がありました。なので頑張って外したのですが、もしかしたら上から布を被せておくとかでもよかったのかもしれません。。\u003Cbr>\u003Cbr>ここまでのチェックが完了すると、\u003Cstrong>チャット画面\u003C/strong>が開きます。\u003Cbr>「試験官から書き込みがあるまで待機してください」というような表示が出ているので待機するのですが、同じ時間帯に受験している人が多いからなのか順番に一人ずつ案内していく形式だったのか待ちの時間が長かったです。\u003Cbr>\u003Cbr>チャット画面では、\u003Cbr>\u003Cbr>\n\n\u003Cul>\n\u003Cli>\u003Cstrong>試験開始後にカメラから外れたら強制終了\u003C/strong>\u003C/li>\n\n\u003Cli>\u003Cstrong>試験開始後にカメラに無関係の人が映ったら強制終了\u003C/strong>\u003C/li>\n\n\u003Cli>\u003Cstrong>理解できたらカメラに向かって両手で○をつくれ\u003C/strong>\u003C/li>\n\n\u003Cli>\u003Cstrong>カメラを移動させて机を全部見せろ\u003C/strong>\u003C/li>\n\u003C/ul>\n\n\u003Cbr>などの案内や質問をされました。確認項目の度に○をつくらされるのですが、反応が遅いので○のポーズのまま待機する時間が多かったように思います。\u003Cbr>\u003Cbr>大体ここまでで待機時間抜きで20分程度かかりました。\u003Cbr>\u003Cbr>\n\n\u003Ch2>試験内容について\u003C/h2>\n\n\u003Cstrong>問題は 4~6 択の中から一つ以上を選ぶ選択式で65問\u003C/strong>あります。\u003Cbr>\u003Cbr>書籍で学んで出てきたことは 3~4 割ぐらいでした。一方で学習サイトで勉強したことは約 4 割程度。\u003Cbr>学習サイトも利用していてよかったです。\u003Cbr>\u003Cbr>問題としては、ネットワークのセキュリティグループの組み合わせを作らせる問題が多かったように思います。あとは \u003Ca rel=\"noreferrer noopener\" href=\"https://ja.wikipedia.org/wiki/Kubernetes\" target=\"_blank\">Kubernetes\u003C/a> 関係の話もよく出てきました。\u003Cbr>\u003Cbr>\u003Cstrong>回答が終了すると最後のページに振り返り画面があるのですが、問題文が書いていない\u003C/strong>のでどこに戻ればいいのかがわかりません。。\u003Cbr>一応問題を解いている最中に「後で解く」ボタンが設置されていたので、それにチェックを入れておけばよかったのかもしれません。これから受験を考えている人は是非有効活用してみてください。\u003Cbr>\u003Cbr>\n\n\u003Ch3>試験終了後\u003C/h3>\n\n試験を終了して提出すると、\u003Cstrong>即時結果が発表\u003C/strong>されます。無事合格できていました。\u003Cbr>\u003Cbr>\n\n\u003Cfigure class=\"wp-block-image aligncenter size-large is-resized\">\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/343924326e7e4236bda613e6950845c0/2023-02-f41782c1dc3bffb43df989b5f2ae0728.png\" alt=\"\" class=\"wp-image-16047\" width=\"606\" height=\"312\"/>\u003C/figure>\n\n\u003Cbr>合格すると 3 年間、SAA 合格者であることが名乗れます。\u003Cbr>さらに、認定バッチが確認できるようになり、\u003Cstrong>次回の試験が 50%OFF で受けられる\u003C/strong>とか、\u003Cstrong>AWS 認定グッズが購入できる\u003C/strong>ようになったり、\u003Cstrong>\u003Ca rel=\"noreferrer noopener\" href=\"https://aws.amazon.com/jp/summits/japan/\" target=\"_blank\">AWS SUMMIT\u003C/a> などのイベントで AWS 認定者専用ラウンジに入れるよう\u003C/strong>になるなどの特典が受けられます。\u003Cstrong>合格しないとグッズは買えない\u003C/strong>みたいです。\u003Cbr>\u003Cbr>\n\n\u003Cfigure class=\"wp-block-image aligncenter size-large is-resized\">\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/04355fa5313a48ec8cf32bc661c6ce7b/2023-02-ab662c6d4cab15780a947080fcaea656.png\" alt=\"\" class=\"wp-image-16054\" width=\"504\" height=\"394\"/>\u003C/figure>\n\n\u003Cbr>不合格の場合でも、2 週間後から試験が受けられるようです。\u003Cbr>\u003Cbr>\n\n\u003Ch2>今後について\u003C/h2>\n\nせっかく一つ資格が取れたので、プロフェッショナル資格についても挑戦しようと思っています。なのでもうちょっと踏み込んで勉強していくつもりです。\u003Cbr>\u003Cbr>また、AWS とは別で \u003Cstrong>\u003Ca rel=\"noreferrer noopener\" href=\"https://www.hashicorp.com/certification/terraform-associate\" target=\"_blank\">Terraform Associate\u003C/a> というTerraform がやっている認定資格\u003C/strong>もあるので、そちらも取りたいなと思っています。AWS 認定資格に比べて半額程度で受験できるのですが、その分 2 年で失効してしまいます。\u003Cbr>\u003Cstrong>案内も問題も全て英語\u003C/strong>な上、合格記を読む限りでは\u003Cstrong>試験官と英語で口頭のやりとり\u003C/strong>も行わなければいけない、加えて実技もあるそうなので少し大変そうです。\u003Cbr>\u003Cbr>今後も折を見て資格取得に励んでいこうと思います。",[],[],"2023-02-28T18:28:22+09:00",{"id":69,"createdAt":70,"updatedAt":71,"publishedAt":70,"revisedAt":71,"title":72,"eyecatch":73,"tag":77,"heading_list":19,"recruit":19,"is_html":46,"html_contents":83,"related_articles":84,"recommended_articles":85,"is_migration":46,"migration_date":86},"dynamodb","2023-06-02T08:48:35.376Z","2023-08-09T09:12:48.690Z","AWS DynamoDB ⼊⾨",{"url":74,"height":75,"width":76},"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/1b2144a6fdcb4d90a2cdffa0b054284b/2020-10-database-schema-1895779_640.png",559,640,[78,79,81,82],{"id":41},{"id":80},"infrastructure",{"id":16},{"id":61},"気づけば今年もあと2ヶ月ちょっとです。\u003Cbr>\u003Cbr>今週は弊社の高野が\u003Cstrong>「AWS DynamoDB ⼊⾨」\u003C/strong>というテーマで話しました。\n\n\u003Chr class=\"wp-block-separator\"/>\n\n\u003Cbr>昨今、何でもかんでもオンラインでデータを保存することが多いと思います。\u003Cbr>その際に\u003Cstrong>選択肢が \u003Ca href=\"https://boxil.jp/mag/a3032/#3032-1\" target=\"_blank\" rel=\"noreferrer noopener\">RDB\u003C/a> しかないというのも時代遅れ\u003C/strong>なので、そろそろ NoSQL  を本格的に導⼊していきたいと思いながら⼆の⾜を踏んでいたのですが、最近新規で開発したサービスで、まず RDB で実装しきってスケジュール的な安⼼を確保しつつ、その後で全てを \u003Cstrong>DynamoDB に換装する\u003C/strong>ということをやりました。\u003Cbr>\u003Cbr>運⽤はこれからなのでまだ何とも⾔えませんが、少なくともやりたいことは⼤体できたので、今後は NoSQL も選択肢に入れていきたいと思っています。\u003Cbr>そこで今回は、NoSQL&nbsp;ドキュメントデータベースサービスであるところのDynamoDB について、実際使ってみた感想を交えながら紹介します。\u003Cbr>\u003Cbr>\n\n\u003Ch2>NoSQL とは\u003C/h2>\n\nDynamoDB の前にまず \u003Cstrong>\u003Ca rel=\"noreferrer noopener\" href=\"https://aws.amazon.com/jp/nosql/\" target=\"_blank\">NoSQL\u003C/a> \u003C/strong>とは何でしょうか。\u003Cbr>NoSQL とは  \"Not only SQL\" という意味で、簡単に一言で言ってしまえば、RDB 以外のデータストアの仕組みのことをいいます。\u003Cbr>出てきた当初は、読んで字のごとく \"No SQL\" という意味だったそうですが、否定するのはよくないと、最近では \"Not only\" と言われているらしいです。\u003Cbr>\u003Cbr>NoSQLにはいくつかのデータベースの分類があって、キーを指定して値をとる \u003Ca rel=\"noreferrer noopener\" href=\"https://www.techcrowd.jp/nosql/kvs/\" target=\"_blank\">KVS\u003C/a>、キー・バリュー型データベースや、MongoDBなどに代表される、JSONに自動でインデックスを当てはめてくれるドキュメント型データベース、データ同士の関係性を取得できるグラフ型データベース、\u003Ca rel=\"noreferrer noopener\" href=\"https://aws.amazon.com/jp/memcached/\" target=\"_blank\">Memcached\u003C/a> や \u003Ca rel=\"noreferrer noopener\" href=\"https://aws.amazon.com/jp/redis/\" target=\"_blank\">Redis\u003C/a> にメモリを送るインメモリなどなどがあります。\u003Cbr>詳しくは\u003Ca rel=\"noreferrer noopener\" href=\"https://aws.amazon.com/jp/nosql/\" target=\"_blank\">公式ドキュメント\u003C/a>をご覧になってみてください。\u003Cbr>\u003Cbr>今回紹介する DynamoDB はキーバリュー型、及びドキュメント型の NoSQLデータです。\u003Cbr>\u003Cbr>\n\n\u003Ch2>DynamoDB とは\u003C/h2>\n\n公式からの引用によると、\n\n\u003Cblockquote class=\"wp-block-quote\">Amazon DynamoDB は、規模に関係なく数ミリ秒台のパフォーマンスを実現する、key-value およびドキュメントデータベースです。完全マネージドマルチリージョン、マルチマスターで耐久性があるデータベースで、セキュリティ、バックアップおよび復元と、インターネット規模のアプリケーション⽤のメモリ内キャッシュが組み込まれています。DynamoDB は、1 ⽇に 10 兆件以上のリクエストを処理することができ、毎秒2,000 万件を超えるリクエストをサポートします。\u003C/p>\u003Ccite>\u003Ca href=\"https://aws.amazon.com/jp/dynamodb/\">Amazon DynamoDB\u003C/a>\u003C/cite>\u003C/blockquote>\n\nとあります。\u003Cbr>ただし、お金をかけなければ機能に制限があるので注意です。\u003Cbr>\u003Cbr>\n\n\u003Ch3>\u003Ca href=\"https://aws.amazon.com/jp/blogs/news/using-sort-keys-to-organize-data-in-amazon-dynamodb/\" target=\"_blank\" rel=\"noreferrer noopener\">テーブル作成\u003C/a>\u003C/h3>\n\nDynamoDBにもテーブルがあります。これはRDBで呼ばれるテーブルと同じ単位です。\u003Cbr>NoSQL なので、基本的に value 部分の構造は不要ですが、 \u003Ccode>Primary Key\u003C/code> や \u003Ccode>Index\u003C/code> に相当するものはテーブルごとに定義する必要があります。\u003Cbr>\u003Cbr>\n\n\u003Ch4>パーティションキー\u003C/h4>\nテーブルを作成する時に、色々な用語が出てくるのですが、まず\u003Cstrong>パーティションキー\u003C/strong>というものが出てきます。\u003Cbr>実際にはそうではないのですが、パーティションキー１つにつき１つの物理DBが割り当てられるとイメージすると理解しやすいです。\u003Cbr>\u003Cbr>ユーザー情報を格納するテーブルのパーティションキーを、例えばユーザーID にすると、そのユーザー専⽤の DB が⽤意されるイメージです(ユーザーAが登録すれば USER_A DB が作られ、ユーザーBが登録すれば USER_B DB が作られる。 \u003Cstrong>これは物理的にです)\u003C/strong>。\u003Cbr>\u003Cstrong>この意識を持っておくだけで、これから先の話がわかりやすくなります。\u003C/strong>\u003Cbr>\u003Cbr>パーティションキーを適切に設定することによってパフォーマンスを担保します。\u003Cbr>また、次に話す\u003Cstrong>ソートキーが指定されていない場合、これがプライマリキーになります\u003C/strong>。そのため、使いづらいからといってパーティションキーを適当に固定値で設定し、全て同じパーティションキーを振るというのは意味がないのでご注意ください。\u003Cbr>\u003Cbr>\n\n\u003Ch4>ソートキー\u003C/h4>\nこれは RDB でいうところの PRIMARY KEY (\u003Ccode>partition_key\u003C/code> , \u003Ccode>sort_key\u003C/code>) に相当します。同⼀パーティションに⼊りながら、その中で特定のレコードを探したい場合や、実際にソートをしたい場合に役⽴ちます。\u003Cbr>同じパーティションに複数の情報を入れたい場合、必ずこのソートキーが必要です。\u003Cbr>ただし、複合でプライマリーキーとなることに注意です。\u003Ccode>sort_key\u003C/code> が重複しないよう注意しましょう。\u003Cbr>\u003Cbr>一例ですが、\u003Cbr>\u003Cbr>\n\n\u003Cpre class=\"wp-block-code\">\u003Ccode>partition_key: ユーザーID\nsort_key: 投稿⽇時\nvalue: 投稿内容 (JSON)\u003C/code>\u003C/pre>\n\n\u003Cbr>このような時、\u003Ccode>sort_key\u003C/code> に設定してある投稿日時と一致する投稿があると、同じレコードとして上書きされてしまうので、そうならないように気をつけましょう。\u003Cbr>こうしておくと、あるユーザーの投稿内容を⽇時順に並べて(asc, desc 共に)出⼒できます。また、ソートキーに対しては範囲指定のクエリも実⾏できます。\u003Cbr>\u003Cbr>テーブルを作成する時は、\u003Cstrong>パーティションキー\u003C/strong>と\u003Cstrong>ソートキー\u003C/strong>を入力すれば大丈夫です。\u003Cbr>\u003Cbr>\n\n\u003Cfigure class=\"wp-block-image size-large\">\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/8da88991d5e948388ab11c696c269cb5/2020-10-902058b00b88042566de7d686ab5b207.png\" alt=\"\" class=\"wp-image-7747\"/>\u003C/figure>\n\n\u003Ch3>インデックス\u003C/h3>\n\nDynamoDB を RDB のように扱いたい時は、インデックスを意識しないといけません。インデックスにも二種類あって、一つが \u003Cstrong>Local Secondary Index\u003C/strong>、もう一つが\u003Cstrong> Global Secondary Index\u003C/strong> です。\u003Cbr>\n\n\u003Cbr>\u003Ca rel=\"noreferrer noopener\" href=\"https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/LSI.html\" target=\"_blank\">\u003Cstrong>Local Secondary Index(LSI)\u003C/strong>\u003Cbr>\u003C/a>\u003Cbr>テーブルの同⼀パーティション中に設定するインデックスです。つまり、同じデータベース中に設定する、RDBでいうところのいわゆるインデックスと同じものになります。\u003Cbr>\u003Cbr>\u003Cstrong>テーブル作成時にしか設定できず、後からは追加できません\u003C/strong>。これが DynamoDB を取っ付きにくいものにしている最大の要因だと個人的には思っています。\u003Cbr>また、LSIを設定している場合のみ、1パーティションあたり 10GB の制限が付きます。\u003Cbr>\u003Cbr>効果としては、ほとんどソートキーと同じなのですが、\u003Cstrong>プライマリキーとはならないので重複する\u003C/strong>ことができます。\u003Cbr>\u003Cbr>\n\n\u003Cpre class=\"wp-block-code\">\u003Ccode>partition_key: ユーザーID\nsort_key: 投稿⽇時\nls1_1: いいね数\nls1_2: RT数\nvalue: 投稿内容（json）\u003C/code>\u003C/pre>\n\n\u003Cbr>このようなテーブルがあった時、これを使ってあるユーザーの投稿を\u003Ccode>いいね数\u003C/code>や\u003Ccode>RT数\u003C/code> で絞り込んだり並べ替えたりできるようになりました。\u003Cbr>先ほども言いましたが、LSI を設定せずにテーブルを作成してしまった場合、後から要件が足されても、LSI では対応できなくなってしまうのでご注意ください。\u003Cbr>\u003Cbr>\u003Cbr>\n\n\u003Cbr>\u003Ca rel=\"noreferrer noopener\" href=\"https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/GSI.html\" target=\"_blank\">\u003Cstrong>Global Secondary Index(GSI)\u003C/strong>\u003Cbr>\u003C/a>\u003Cbr>パーティションキーを別途設定した\u003Ca rel=\"noreferrer noopener\" href=\"https://aws.amazon.com/jp/rds/features/read-replicas/\" target=\"_blank\">リードレプリカ\u003C/a>的なデータベース郡を作成できるのが GSI になります。\u003Cbr>例えば先ほどのテーブルで、全ユーザーの投稿中で「いいね数」が多い投稿を⼀覧したい時などがあると思いますが、そんな時にパーティションキーを別途設定したリードレプリカ的なデータベース郡を作成することが可能です。\u003Cbr>\u003Cbr>GSI は最⼤20個まで作成できます。\u003Cbr>さらに \u003Cstrong>LSI とは違い、テーブル作成後でもインデックスを追加することが可能です。\u003C/strong>\u003Cbr>\u003Cbr>GSI を作成する時には\u003Cbr>\u003Cbr>\n\n\u003Cul>\u003Cli>パーティションキー\u003C/li>\u003Cli>ソートキー\u003C/li>\u003Cli>射影される属性\u003C/li>\u003C/ul>\n\n\u003Cbr>の3つを設定しなければなりません。\u003Cbr>\u003Cbr>\u003Cstrong>このパーティションキーによっても物理的に DB が分かれる\u003C/strong>というイメージを持っておいてください。\u003Cbr>\u003Cbr>射影というのが見慣れないかもしれませんが、射影で元テーブルから何の値をGSIテーブルにコピーするかを指定します。最低限 GSI に使う情報と、元テーブルの PRIMARY KEY(パーティション＋ソートキー)が射影されるようになっているので、検索で得られた情報から元テーブルを参照することができます。\u003Cbr>\u003Cbr>GSI の使い所については\u003Ca rel=\"noreferrer noopener\" href=\"https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/GSI.html\" target=\"_blank\">こちら\u003C/a>に分かりやすい例がまとまってあるのでご覧になってみてください。\u003Cbr>\u003Cbr>ここまで説明したところでやっとオペレーションの説明に入ります。\u003Cbr>\u003Cbr>\n\n\u003Ch3>オペレーション\u003C/h3>\n\u003Ccode>Get\u003C/code>\u003Cbr>\u003Cbr>テーブルによって一意に決まるレコードを取り出します。\u003Cbr>\u003Cbr>\u003Cbr>\u003Ccode>Put, Update\u003C/code>\u003Cbr>\u003Cbr>テーブルに対して追加・更新を⾏います。\u003Cbr>同⼀ Primary Key に対して、\u003Cbr>\u003Cbr>\n\n\u003Cul>\u003Cli>Put: 送信した内容で上書き\u003C/li>\u003Cli>Update: 送信した内容のみを追記\u003C/li>\u003C/ul>\n\n\u003Cbr>となるので注意してください。\u003Cbr>\u003Cbr>\u003Cstrong>例\u003C/strong>\n\n\u003Cpre class=\"wp-block-code\">\u003Ccode>{\"id\": 1, \"name\": \"hoge\"}\nPut {\"id\": 1, \"age\": 20} => {\"id\": 1, \"age\": 20} // name が消える\nUpdate {\"id\": 1, \"age\": 20} => {\"id\": 1, \"name\": \"hoge\", \"age\": 20}\u003C/code>\u003C/pre>\n\n\u003Cbr>\u003Ccode>Delete\u003C/code>\u003Cbr>\u003Cbr>テーブルに対してレコードの削除ができます。\u003Cbr>\u003Cbr>\u003Cbr>\u003Ccode>Query, Scan\u003C/code>\u003Cbr>\u003Cbr>テーブルや GSI に対して検索を実⾏します。\u003Cbr>\u003Cbr>Query はパーティションキーを指定し、そのパーティション内で検索が実⾏可能です。\u003Cbr>ソートキーや LSI 以外のフィルターも実行できますが、パーティションキー内のレコード全てをスキャンすることになる、これは RDB で⾔うところの\u003Ccode>Seq scan\u003C/code>(indexを使わずに上から順番にスキャンしていく)に当たるため遅いです。\u003Cbr>ソートキーによる昇順、降順での並び替えがができます。\u003Cbr>\u003Cbr>これに対して Scan の方は大技で、全パーティション横断での検索が実行されます。全部のパーティションに対して、全て \u003Ccode>Seq scan\u003C/code> が実行されるので、\u003Cstrong>非常に重い\u003C/strong>です。\u003Cbr>もしリアルタイムでこれを実⾏しなければならないなら、GSI の作成や設計し直しを検討するのがいいと思います。\u003Cbr>先ほどから何度も言っていますが、パーティションキーごとにデータベースが物理的に分かれているので、\u003Cstrong>Scanは使わないようにしましょう。じゃないと DynamoDB の良さは生かせません。\u003C/strong>\u003Cbr>\u003Cbr>ページングには、前回読み込んだ時の最後の \u003Ccode>partition key + sort key\u003C/code> (＋ 同⼀のフィルター条件)が必要になります。\u003Cbr>そのため OFFSET によるページングはできないので注意してください。\u003Cbr>そもそも RDB の OFFSET も OFFSET + LIMIT 読み込んだ上で切り捨ててるだけなので同じことをすれば可能ですが。\u003Cbr>\u003Cbr>\n\n\u003Ch3>\u003Ca rel=\"noreferrer noopener\" href=\"https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/transaction-apis.html\" target=\"_blank\">トランザクション\u003C/a>\u003C/h3>\nROLLBACK やトランザクションの BEGIN はないのですが、オールオアナッシングな一括での書き込みや読み込みはサポートされています。\u003Cbr>書き込む時に条件が指定でき、その条件を用いながら一つのグループにまとめあげ、今から書き込もうとしている状態が、書き込むべきではない状態になったらエラーとするような使い方がトランザクションです。\u003Cbr>\u003Cstrong>DynamoDB\u003C/strong>の中での一連の作業をトランザクションにおさめるという使い方しかできないので、使うには工夫が必要です。\u003Cbr>\u003Cbr>LOCK もちょっと⾯倒で、ロックが取れるまで待つ。というRDBのようなロックの仕組みは、ライブラリを探して拾ってくるか⾃分で実装しなければいけません。\u003Cbr>ロックが取れないときエラーにしてもいいのであれば、\u003Ca rel=\"noreferrer noopener\" href=\"https://dev.classmethod.jp/articles/dynamodb-optimistic-locking/\" target=\"_blank\">こちら\u003C/a>を参考にしてください。\u003Cbr>\u003Cbr>\n\n\u003Ch3>ストリーム\u003C/h3>\n\n変更内容を \u003Ca rel=\"noreferrer noopener\" href=\"https://aws.amazon.com/jp/lambda/\" target=\"_blank\">Lambda\u003C/a> に送信できます。\u003Cbr>設定次第ですが、対象レコードの \u003Ccode>old\u003C/code> , \u003Ccode>new\u003C/code> のオブジェクトを受信できるので、それをトリガーに画像をリサイズしたりできます。\u003Cbr>\u003Cbr>これを受けて、検索⽤に RDB に⼊れることもできるので、管理機能からの複雑なクエリなども簡単に⾏えるようにできます。費⽤⾯では⾟くなりますが、パフォマーンスは良いと思いました。\u003Cbr>\u003Cbr>\n\n\u003Ch3>料⾦\u003C/h3>\n\n\u003Ca rel=\"noreferrer noopener\" href=\"https://aws.amazon.com/jp/dynamodb/pricing/\" target=\"_blank\">プラン\u003C/a>には、オンデマンドとプロビジョニングの2系統があります。\u003Cbr>料金がかかるのは、読み込み/書き込みのリクエストとデータストレージあたりが主で、それ以外は大抵の場合、気にしなくて大丈夫です。\u003Cbr>\u003Cbr>\u003Ca rel=\"noreferrer noopener\" href=\"https://aws.amazon.com/jp/dynamodb/pricing/on-demand/\" target=\"_blank\">オンデマンド\u003C/a>は利⽤した分を⽀払う形です。\u003Cbr>案件の規模にもよりますが、意外と安く済みそうな印象。\u003Cbr>ちなみにオンデマンドでは上限がないので、うっかり\u003Cstrong>大量に情報を取得するような処理をすると、ものすごい金額が課金されてしまう\u003C/strong>ので注意です。\u003Cbr>\u003Cbr>プロビジョニングは予め使⽤する分を予約しておき、その時間分を⽀払う形です。\u003Cbr>\u003Cbr>どちらかというとオンデマンドの方が使いやすく、お得な気がします。\u003Cbr>とはいえ、簡単に切り替えできるので、用途によって使い分けるのがいいと思います。\u003Cbr>ただし、テーブルごとに指定することになるので、テーブルの数だけ設定しなければなりません。そこだけ気をつけるようにしてください。\u003Cbr>\u003Cbr>\u003Cbr>以上で紹介は終わりです。\u003Cbr>なかなか使いこなすのは難しいと思うので、まずは\u003Cstrong> RDB との併用\u003C/strong>をおすすめします。\n",[],[],"2020-10-22T17:50:17+09:00",{"id":88,"createdAt":89,"updatedAt":90,"publishedAt":91,"revisedAt":90,"title":92,"content2":93,"eyecatch":94,"tag":98,"heading_list":46,"recruit":19,"is_html":19,"description":103,"related_articles":104,"recommended_articles":117,"is_migration":19},"ux-certification-basics","2026-04-03T06:01:36.737Z","2026-05-14T08:24:58.578Z","2026-04-16T07:06:01.302Z","UX 検定をきっかけに、UX の考え方を整理してみた","\u003Cp>春は無闇に落ち込みます。\u003C/p>\u003Cp style=\"text-align: start\">この記事は、社内イベント「\u003Ca href=\"https://www.s2factory.co.jp/blog/tea/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\u003Cu>お茶会\u003C/u>\u003C/a>」での発表内容をもとにまとめたものです。\u003Cbr>今回は弊社の yamada が、\u003Cstrong>UX 検定の受験をきっかけに、UX や人間中心設計\u003C/strong>について発表しました。\u003C/p>\u003Chr>\u003Cp style=\"text-align: start\">\u003Cbr>昨年の11月末に、\u003Cstrong>UX 検定(基礎)を受験\u003C/strong>しました。\u003C/p>\u003Cp>名刺の肩書きに UI デザイナーと書いていることもあり、今後この分野でやっていく以上、\u003Cstrong>UX についての知識はきちんと押さえておきたい\u003C/strong>と思い、その手始めとして受けてみました。\u003Cbr>\u003Cbr>今回は UX 検定の内容をもとに、人間中心設計(HCD)や UX の考え方について整理していきます。\u003C/p>\u003Ch2 id=\"h13d8bb8d79\">UX 検定とは\u003C/h2>\u003Cp>\u003Ca href=\"https://www.uxia.or.jp/certification/\" target=\"_blank\" rel=\"noopener noreferrer\">\u003Cstrong>UX 検定\u003C/strong>\u003C/a>\u003Cstrong>は2022年にスタートした比較的新しい資格\u003C/strong>で、\u003Cstrong>UX や人間中心設計(HCD)の知識を体系的に学ぶ\u003C/strong>ことを前提としたものです。 \u003Cbr>\u003Cbr>今回受けた「基礎」は、UX や HCD の考え方を一通り理解しているかを見る位置づけの試験。 \u003Cbr>基礎については試験単体で受験できますが、\u003Cstrong>上位の「応用」は研修の受講が前提\u003C/strong>となっており、試験だけで進めるものではありません。\u003Cbr>\u003Cbr>また、UX 検定とは別に、\u003Cstrong>人間中心設計に関する資格として「専門家」「スペシャリスト」\u003C/strong>といった認定もありますが、こちらは\u003Cstrong>レポート提出や実務での改善実績\u003C/strong>が求められるなど、より実践寄りの内容になっています。現段階ではまだ難しそうだったので今回は見送りました。\u003Cbr>\u003Cbr>なお、\u003Cstrong>UX 検定と人間中心設計に関する資格は、それぞれ別の団体が運営\u003C/strong>しています。 \u003C/p>\u003Ch3 id=\"h0cf6273d17\">試験に向けて\u003C/h3>\u003Cp>試験に向けては、学習推薦図書 4 冊のうち下の 2 冊を読んで臨みました。\u003Cbr>\u003Cbr>\u003C/p>\u003Cdiv class=\"iframely-embed\">\u003Cdiv class=\"iframely-responsive\" style=\"height: 140px; padding-bottom: 0;\">\u003Ca href=\"https://www.amazon.co.jp/%E3%82%A2%E3%83%95%E3%82%BF%E3%83%BC%E3%83%87%E3%82%B8%E3%82%BF%E3%83%AB2-UX%E3%81%A8%E8%87%AA%E7%94%B1-%E8%97%A4%E4%BA%95-%E4%BF%9D%E6%96%87/dp/4296106317\" data-iframely-url=\"https://cdn.iframe.ly/api/iframe?card=small&amp;media=0&amp;url=https%3A%2F%2Famzn.asia%2Fd%2F07NFcB6F&amp;key=c271a3ec77ff4aa44d5948170dd74161\">\u003C/a>\u003C/div>\u003C/div>\u003Cscript async src=\"https://cdn.iframe.ly/embed.js\" charset=\"utf-8\">\u003C/script>\u003Cdiv class=\"iframely-embed\">\u003Cdiv class=\"iframely-responsive\" style=\"height: 140px; padding-bottom: 0;\">\u003Ca href=\"https://www.amazon.co.jp/%E4%BA%BA%E9%96%93%E4%B8%AD%E5%BF%83%E8%A8%AD%E8%A8%88%E5%85%A5%E9%96%80-HCD%E3%83%A9%E3%82%A4%E3%83%96%E3%83%A9%E3%83%AA%E3%83%BC-%E5%B1%B1%E5%B4%8E-%E5%92%8C%E5%BD%A6/dp/476490506X\" data-iframely-url=\"https://cdn.iframe.ly/api/iframe?card=small&amp;url=https%3A%2F%2Famzn.asia%2Fd%2F0fd0PoCb&amp;key=c271a3ec77ff4aa44d5948170dd74161\">\u003C/a>\u003C/div>\u003C/div>\u003Cscript async src=\"https://cdn.iframe.ly/embed.js\" charset=\"utf-8\">\u003C/script>\u003Cp>\u003Cbr>過去問や十分な練習問題は公開されておらず、公式サイトに掲載されているのも問題例が数問ある程度です。 \u003Cbr>そのため、出題形式のイメージを掴みつつ、\u003Cstrong>受験者が作成した予想問題\u003C/strong>も購入して何度か解いて対策。\u003Cbr>\u003Cbr>シラバスも公開されているため、それをもとに AI で内容を整理しながら、全体像を掴むことを意識して進めました。\u003C/p>\u003Ch3 id=\"h25cf28808d\">試験を受けてみて\u003C/h3>\u003Cp>今回はオンラインで自宅から受験しました。\u003Cbr>\u003Cbr>試験自体は、UX や人間中心設計に関する基礎知識が幅広く問われる内容で、特定の分野に偏るというよりも、\u003Cstrong>全体をバランスよく理解しているかを見る印象\u003C/strong>でした。\u003Cbr>\u003Cbr>実際に受けてみると、学習推薦図書からの出題が多かったように思います。\u003Cbr>事前に解いていた予想問題も再現度が高く、個人的にはかなり参考になりました。\u003Cbr>\u003Cbr>\u003Cstrong>結果は項目ごとの得点が表示される形式\u003C/strong>で、どの分野ができていたかは分かる一方で、どこをどう間違えたのかまでは確認できませんでした。 \u003Cbr>無事に合格はできたものの、振り返りのしづらさは少し気になるポイントです。\u003Cbr>\u003Cbr>\u003C/p>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/2cceb7c904a74dccbb44f00ac01f3678/%E8%A9%A6%E9%A8%93%E7%B5%90%E6%9E%9C.png?w=650&amp;h=581\" alt=\"試験結果\" width=\"650\" height=\"581\">\u003C/figure>\u003Cp>\u003Cbr>\u003Cstrong>合格すると、証書やロゴをダウンロード\u003C/strong>でき、名刺などに掲載することもできます。\u003Cbr>ただ、基礎だと少し物足りなさもあるので、応用に合格した際には使ってみてもいいかもしれません。\u003C/p>\u003Ch2 id=\"h9152cc286e\">UXと人間中心設計について\u003C/h2>\u003Cp>せっかくなので、UX(ユーザーエクスペリエンス)の考え方の土台となる人間中心設計(HCD)についても基本的な考え方を整理しておきます。\u003Cbr>\u003Cbr>UX は\u003Cstrong>「ユーザーがどんな体験をしたか」\u003C/strong>という全体の話で、単に使いやすいかどうかだけではなく、\u003Cstrong>その体験が良かったかどうか\u003C/strong>まで含めて考えます。\u003Cbr>\u003Cstrong>ユーザビリティ(使いやすさ)\u003C/strong>やユーザー視点で課題解決を考える\u003Cstrong>デザイン思考\u003C/strong>といった考え方も含め、その\u003Cstrong>ベースにあるのが人間中心設計(HCD)\u003C/strong>です。\u003Cbr>\u003Cbr>\u003C/p>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/70d85d9a84f14358a785504abb03148f/UX%E3%81%A8%E4%BA%BA%E9%96%93%E4%B8%AD%E5%BF%83%E8%A8%AD%E8%A8%88%E3%81%AE%E9%96%A2%E4%BF%82%E5%9B%B3.png?w=750&amp;h=409\" alt=\"UXと人間中心設計について\" width=\"750\" height=\"409\">\u003C/figure>\u003Cp>\u003Cbr>人間中心設計は、ユーザーを中心に考えて設計を進めるための考え方やプロセスのことを指します。\u003C/p>\u003Ch3 id=\"h4139147f5a\">HCDサイクルとは\u003C/h3>\u003Cp>人間中心設計には「HCD サイクル」と呼ばれる考え方があります。\u003Cbr>\u003Cbr>これは、\u003Cstrong>使いやすさや体験の質を継続的に改善していくためのプロセス\u003C/strong>です。 \u003Cbr>PDCA サイクルに近い考え方ですが、よりユーザー視点に寄せたものになっています。\u003Cbr>\u003Cbr>\u003C/p>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/d36a72888d7c4b879b66dc5710b34fe5/Gemini_Generated_Image_cr5u3jcr5u3jcr5u%20(2).png?w=750&amp;h=409\" alt=\"HCDサイクルとは\" width=\"750\" height=\"409\">\u003C/figure>\u003Cp>\u003Cbr>流れとしては、以下のステップを繰り返していきます。\u003C/p>\u003Col>\u003Cli>\u003Cstrong>状況を把握する(ユーザー調査や観察)\u003C/strong>\u003C/li>\u003Cli>\u003Cstrong>要求を整理する(要件定義やペルソナ設計)\u003C/strong>\u003C/li>\u003Cli>\u003Cstrong>設計して解決案を作る\u003C/strong>\u003C/li>\u003Cli>\u003Cstrong>評価する(テストや検証)\u003C/strong>\u003C/li>\u003C/ol>\u003Cp>これを繰り返していくことで、プロダクトを改善していきます。\u003C/p>\u003Cp>こうした改善を進めるうえでは、ユーザビリティをはじめとして、UX に関するさまざまな考え方やモデルを整理して捉えておくことも重要です。ここからは、それらの基本的な概念について順に見ていきます。\u003C/p>\u003Ch3 id=\"hb9c3f7e049\">ユーザビリティ\u003C/h3>\u003Cp>人間中心設計を考えるうえで重要な要素のひとつが「ユーザビリティ」です。\u003Cbr>\u003Cbr>ユーザビリティは、\u003Cstrong>製品やサービスの「使いやすさ」を測るための指標\u003C/strong>で、主に次の3つの観点で捉えられます。\u003C/p>\u003Cul>\u003Cli>有効さ：目的を正しく達成できるか\u003C/li>\u003Cli>効率：少ない手間や時間で達成できるか\u003C/li>\u003Cli>満足度：使っていて不快でないか、納得感があるか\u003C/li>\u003C/ul>\u003Cp>この考え方は、\u003Cstrong>ISO 9241-11 で定義\u003C/strong>されており、ユーザビリティは\u003Cstrong>「特定の利用者が、特定の目的を達成するにあたり、特定の状況で、どれだけ有効・効率的かつ満足できるかの度合い」\u003C/strong>とされています。\u003Cbr>\u003Cbr>このユーザビリティの考え方は1990年代から整理されてきたもので、1998年の ISO 9241-11 をベースに現在の UX の考え方へと発展してきました。\u003C/p>\u003Ch3 id=\"h3fc3754f44\">ユーザーエクスペリエンス\u003C/h3>\u003Cp>\u003Cstrong>ユーザビリティが「ユーザーが目的を達成できたかどうか」を重視\u003C/strong>するのに対し、\u003Cstrong>UX は「その体験が良いものだったかどうか」を重視\u003C/strong>します。\u003Cbr>サービスやプロダクトを認知してから、実際に体験し、その後に振り返るまでの一連の流れすべてがUXに含まれます。\u003Cbr>\u003Cbr>UX にはさまざまな考え方やモデルがありますが、ここではいくつか代表的なものを見てみましょう。\u003Cbr>\u003Cbr>\u003C/p>\u003Ch4 id=\"h381e44aade\">\u003Cstrong>UX のハニカム構造\u003C/strong>\u003C/h4>\u003Cp>\u003Cstrong>UX を構成する要素を 7 つに分けたモデル\u003C/strong>です。\u003Cbr>\u003Cstrong>使いやすさだけでなく、有用性や信頼性、魅力といった観点\u003C/strong>も含まれています。\u003Cbr>\u003Cbr>体験に当てはめると一見当たり前に見えますが、すべてを満たすのは意外と難しく、\u003Cstrong>良い体験を考えるうえで欠かせない基準\u003C/strong>になります。\u003C/p>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/f3167ef6f73a4ab48c0c580a3481a708/%E3%83%8F%E3%83%8B%E3%82%AB%E3%83%A0%E6%A7%8B%E9%80%A0.png\" alt=\"\" width=\"1408\" height=\"768\">\u003C/figure>\u003Cp>\u003C/p>\u003Ch4 id=\"h4416745511\">\u003Cbr>\u003Cstrong>UXの 5 階層モデル\u003C/strong>\u003C/h4>\u003Cp>\u003Cstrong>UXの構成要素を 5 つの層で整理したモデル\u003C/strong>です。\u003C/p>\u003Cul>\u003Cli>戦略：ユーザーのニーズとビジネスの目的 \u003C/li>\u003Cli>要件：必要な機能やコンテンツ \u003C/li>\u003Cli>構造：情報設計や導線 \u003C/li>\u003Cli>骨格：レイアウトやインターフェース \u003C/li>\u003Cli>表層：ビジュアルデザイン\u003C/li>\u003C/ul>\u003Cp>\u003Cstrong>ウェブ構築では、表層のビジュアルだけでなく、その下にある構造や要件まで含めて設計\u003C/strong>する必要があります。\u003Cbr>\u003Cbr>デザイナーは結果としての体験そのものを直接つくることはできませんが、その体験が良くなるように設計することはできます。 つまり、\u003Cstrong>結果ではなく、その手前の設計によってUXを形づくっていくという考え方\u003C/strong>になります。\u003Cbr>\u003Cbr>\u003C/p>\u003Ch4 id=\"he4c02a1baa\">ハッセンツァール\u003Cstrong>モデル\u003C/strong>\u003C/h4>\u003Cp>\u003Cstrong>デザイナー視点とユーザー視点の流れを整理したモデル\u003C/strong>です。\u003Cbr>\u003Cbr>\u003Cstrong>デザイナーは、機能や表現、インタラクションといった「意図された性質」を設計\u003C/strong>します。 \u003Cbr>一方で\u003Cstrong>ユーザーは、それをもとに体験をし、「魅力」や「満足」といった結果\u003C/strong>を受け取ります。\u003Cbr>\u003Cbr>つまり、デザイナーとユーザーでは見ているものが異なります。\u003Cbr>\u003Cbr>デザイナーが直接つくれるのは体験そのものではなく、その手前にある設計の部分です。 \u003Cbr>結果としての体験はユーザー側で生まれるものですが、そこにつながるように設計することはできます。\u003Cbr>\u003Cbr>\u003C/p>\u003Ch4 id=\"h9644a53fee\">\u003Cstrong>UXを時間で捉える(UX白書)\u003C/strong>\u003C/h4>\u003Cp>UX は時間の流れの中でも変化します。\u003C/p>\u003Cul>\u003Cli>予期的 UX：サービスを知ったときに抱く印象や期待 \u003C/li>\u003Cli>一時的 UX：利用しているときの体験 \u003C/li>\u003Cli>エピソード的 UX：利用後の振り返り \u003C/li>\u003Cli>累積的 UX：全体を通して形成される印象 \u003C/li>\u003C/ul>\u003Cp>例えば飲食店であれば、来店前の期待、食事中の体験、帰宅後の満足感まで含めてUXといえます。\u003Cbr>このように、\u003Cstrong>UX は単一の瞬間ではなく、要素・構造・時間の積み重ね\u003C/strong>によって成り立ってるのです。\u003C/p>\u003Ch3 id=\"h0ae0492e09\">デザイン思考\u003C/h3>\u003Cp>いろんな企業や自治体で「デザイン思考」という言葉が使われるようになって久しいですが、これはデザイナーだけのものではなく、さまざまな場面で活用される考え方です。\u003Cbr>デザイン思考では、\u003Cstrong>最初から答えを出そうとするのではなく、課題を探しながら解決していくプロセスを重視\u003C/strong>します。\u003C/p>\u003Cp>代表的なモデルのひとつに「\u003Cstrong>ダブルダイヤモンドモデル\u003C/strong>」があります。\u003Cbr>これは、まずアイデアを広く出して課題を見つけ(発散)、そこから重要な問題に絞り込む(収束)。  \u003Cbr>次に、その問題に対する解決案を再び広げ(発散)、最適な案に絞る(収束)という流れで進めていくものです。\u003C/p>\u003Cp>また、デザイン思考は次のようなプロセスとして整理されることもあります。\u003C/p>\u003Col>\u003Cli>理解：インタビューや観察を通してユーザーを知る  \u003C/li>\u003Cli>定義：どこに問題があるのかを整理する  \u003C/li>\u003Cli>発想：ブレストなどでアイデアを広げる  \u003C/li>\u003Cli>試作：アイデアを形にする  \u003C/li>\u003Cli>テスト：ユーザーの反応を見て検証する  \u003C/li>\u003C/ol>\u003Cp>これらを一度で終わらせるのではなく、\u003Cstrong>繰り返しながら精度を高めていくことが重要\u003C/strong>です。\u003C/p>\u003Ch2 id=\"ha214098e44\">まとめ\u003C/h2>\u003Cp>UX にはさまざまなモデルやフレームワークがあり、どれが正解というよりも、\u003Cstrong>状況に応じて使い分けながら試していくことが大切\u003C/strong>だと感じました。\u003Cbr>\u003Cbr>今回あらためて整理してみて、UX やデザイン思考に共通しているのは、\u003Cstrong>「調査 → 要件定義 → アイデア出し → 試作 → テスト」といったプロセスを、一度で終わらせるのではなく、行き来しながら繰り返していくという姿勢\u003C/strong>だと実感しています。\u003Cbr>とにかく一度つくって終わりではなく、プロセスを回し続けて改善していくこと。その考え方が根底にあるのが UX なのだと思います。\u003Cbr>\u003Cbr>まだ知識として学んでいる段階で、自分の中で体系立てて整理しきれていない部分も多いですが、実務の中で使いながら理解を深めていきたいです。\u003Cbr>\u003Cbr>\u003Cstrong>ちょうど現在、UX 検定の申込受付期間(試験は7月)\u003C/strong>でもあるので、興味がある方はこのタイミングで受けてみるのも良いかもしれません。\u003C/p>",{"url":95,"height":96,"width":97},"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/81c9f7a9fe274d6191ae67e096f7daf2/UX.jpg",2819,4229,[99,101,102],{"id":100},"design",{"id":36},{"id":41},"UX検定（基礎）の受験をきっかけに、UXや人間中心設計（HCD）について整理しました。受験までの流れや学習内容に加え、ユーザビリティ、UX、デザイン思考などの基本的な考え方についてまとめています。",[105,107,109,111,113,115],{"id":106},"noel2025",{"id":108},"figma-plugin",{"id":110},"studio-design-gallery",{"id":112},"vacation2024-missions",{"id":114},"moving2023-specialsite",{"id":116},"newyear2025",[],{"id":119,"createdAt":120,"updatedAt":121,"publishedAt":120,"revisedAt":121,"title":122,"eyecatch":123,"tag":127,"heading_list":19,"recruit":19,"is_html":46,"html_contents":132,"related_articles":133,"recommended_articles":134,"is_migration":46,"migration_date":135},"security-advisory-cve","2023-06-02T08:48:20.978Z","2023-08-08T04:21:48.201Z","セキュリティ勧告/CVEを読んでみる",{"url":124,"height":125,"width":126},"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/e6d760de7b6b4f6c88e7cba7ca8059db/2020-07-security-265130_1280.jpg",853,1280,[128,129,130,131],{"id":41},{"id":26},{"id":36},{"id":61},"なかなか天気が良くならず、気持ちも晴れません。一刻も早く梅雨が明けてほしいです。\u003Cbr>\u003Cbr>今回は弊社の栗山が「セキュリティ勧告/CVEを読んでみる」という話をしました。\n\n\u003Chr class=\"wp-block-separator\"/>\n\n\u003Cbr>サーバー管理において「\u003Cstrong>どのセキュリティアップデートは早急に適用しなければいけないのか\u003C/strong>」を判断するには、それぞれのセキュリティ勧告を読んだ上で影響を把握する必要があります。\u003Cbr>勧告文書から、関連するCVEなどの情報のたどり方、それぞれの情報の読み方について説明します。\u003Cbr>\u003Cbr>\n\n\u003Ch2>セキュリティ勧告\u003C/h2>\n\nサーバーを管理する中でセキュリティ的な問題が発生すると、各ソフトウェアベンダーから\u003Cstrong>セキュリティ勧告\u003C/strong>が発行されます。\u003Cbr>\u003Cbr>\n\n\u003Cp class=\"has-vivid-red-color has-very-light-gray-background-color has-text-color has-background\" style=\"font-size:15px\">\u003Cstrong>セキュリティ勧告(Security Advisory)\u003Cbr>\u003C/strong>\u003Cbr>ソフトウェアベンダーが発行するセキュリティ関連の書類のこと。\u003Cbr>security notice や security bulletin と言ったりもする。\u003C/p>\n\n\u003Cbr>書かれている内容は、概要、問題の背景、影響範囲、簡易的な対処法、抜本的な解決方法などです。\u003Cbr>\u003Cbr>OS やソフトウェアのユーザーは、基本的にはこれらを確認した上で、\u003Cstrong>環境に影響がある場合はパッチを当てる、パッケージをアップグレードする\u003C/strong>、などの対処を行います。\u003Cbr>\u003Cbr>しかし、かなりの数のパッケージについて脆弱性が日々報告されており、これらには些細なものもあれば、深刻なものもあります。\u003Cbr>また、使い方によっては影響がない場合もあるので、それぞれ見極めながら対応していかなければなりません。\u003Cbr>\u003Cbr>下に各ソフトウェアベンダーから発行されているセキュリティ勧告をまとめてみました。\u003Cbr>アクセスした先で確認できるのでよかったら現物を見てみてください。\u003Cbr>大体どこもフォーマットは同じです。\u003Cbr>Microsoftのみ更新が2018年から止まっています…。\u003Cbr>\u003Cbr>\n\n\u003Cul>\u003Cli>FreeBSD:&nbsp;\u003Ca rel=\"noreferrer noopener\" href=\"https://www.freebsd.org/security/advisories.html\" target=\"_blank\">https://www.freebsd.org/security/advisories.html\u003C/a>\u003C/li>\u003Cli>RHEL:&nbsp;\u003Ca rel=\"noreferrer noopener\" href=\"https://access.redhat.com/security/security-updates/#/\" target=\"_blank\">https://access.redhat.com/security/security-updates/#/\u003C/a>\u003C/li>\u003Cli>Amazon Linux 2:&nbsp;\u003Ca rel=\"noreferrer noopener\" href=\"https://alas.aws.amazon.com/alas2.html\" target=\"_blank\">https://alas.aws.amazon.com/alas2.html\u003C/a>\u003C/li>\u003Cli>Microsoft:&nbsp;\u003Ca rel=\"noreferrer noopener\" href=\"https://docs.microsoft.com/en-us/security-updates/\" target=\"_blank\">https://docs.microsoft.com/en-us/security-updates/\u003C/a>\u003C/li>\u003Cli>CentOS: \u003Ca rel=\"noreferrer noopener\" href=\"https://lwn.net/Alerts/CentOS/\" target=\"_blank\">https://lwn.net/Alerts/CentOS/\u003C/a>\u003C/li>\u003Cli>Ubuntu:&nbsp;\u003Ca rel=\"noreferrer noopener\" href=\"https://usn.ubuntu.com/\" target=\"_blank\">https://usn.ubuntu.com/\u003C/a>\u003C/li>\u003Cli>Cisco:&nbsp;\u003Ca rel=\"noreferrer noopener\" href=\"https://www.cisco.com/c/ja_jp/support/docs/csa/psirt-index.html\" target=\"_blank\">https://www.cisco.com/c/ja_jp/support/docs/csa/psirt-index.html\u003C/a>\u003C/li>\u003Cli>Jenkins:&nbsp;\u003Ca rel=\"noreferrer noopener\" href=\"https://www.jenkins.io/security/advisories/\" target=\"_blank\">https://www.jenkins.io/security/advisories/\u003C/a>\u003C/li>\u003C/ul>\n\n\u003Ch2>CVE (Common Vulnerabilities and Exposures)\u003C/h2>\n\n昨今の OS には、共通の \u003Cstrong>OSS(オープンセキュリティソース) \u003C/strong>が使われていることも多く、そこに脆弱性が発見された場合は、各 OS で似たようなセキュリティ勧告が発行されます。 そのような脆弱性に対して、一意な識別子として発行されるのが \u003Cstrong>\u003Ca rel=\"noreferrer noopener\" href=\"https://www.redhat.com/ja/topics/security/what-is-cve\" target=\"_blank\">CVE\u003C/a>\u003C/strong> です。\u003Cbr>\u003Ca rel=\"noreferrer noopener\" href=\"https://www.ipa.go.jp/\" target=\"_blank\">IPA\u003C/a>には、\u003Cstrong>共通脆弱性識別子\u003C/strong>と訳されています。\u003Cbr>\u003Cbr>元々は米国国土安全保障省からの委託で \u003Ca rel=\"noreferrer noopener\" href=\"https://www.mitre.org/\" target=\"_blank\">MITRE 社\u003C/a>が運用していたのですが、あまりにも脆弱性の規模が大きくなってきてしまったため、実際の採番はMITRE社に加えてコミュニティやベンダーからの担当者により行われているようです。\u003Cbr>\n\n\u003Cbr>識別子は&nbsp;\u003Ccode>CVE-2014-7169\u003C/code>&nbsp;のような形式になります。\u003Cbr>CVEは識別子としての役割が主なので、あまり情報量はありません。\u003Cbr>中身は概要とリファレンス、日付などぐらいです。\u003Cbr>修正方法などはそれぞれのセキュリティ勧告に委ねられています。\u003Cbr>\n\n\u003Cbr>\u003Ca rel=\"noreferrer noopener\" href=\"https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2020-13401\" target=\"_blank\">こちら\u003C/a>がCVEのサンプルです。\u003Cbr>\n\n\u003Ch2>脆弱性対応の流れ\u003C/h2>\n\n色々なケースがありますが、一例としてあるユーザーが&nbsp;\u003Ccode>\u003Ca rel=\"noreferrer noopener\" href=\"https://ja.wikipedia.org/wiki/Z_Shell\" target=\"_blank\">zsh\u003C/a>\u003C/code>&nbsp;の脆弱性を見つけた場合の話をすると、\u003Cbr>\u003Cbr>\n\n\u003Col>\u003Cli>セキュリティ関連は非公開の報告手段があることが多いのでそこから見つけた人が報告\u003C/li>\u003Cli>開発者が問題を確認\u003C/li>\u003Cli>それが対象なら CVE 番号を割り当ててもらう\u003C/li>\u003Cli>修正方法の検討、実装、公開予定日を決める\u003C/li>\u003Cli>OSベンダーのセキュリティ担当者にも連絡。段取りを調整\u003C/li>\u003Cli>パッチを VCS にコミットして、セキュリティ勧告を発行、CVE 公開、アナウンス\u003C/li>\u003Cli>OSベンダーは事前準備しておいたパッケージを更新、それぞれのセキュリティ勧告を発行\u003C/li>\u003Cli>CVE 内の参照を随時更新\u003C/li>\u003C/ol>\n\n\u003Cbr>大体このような流れになります。\u003Cbr>\n\n\u003Ch2>例 : docker の脆弱性\u003C/h2>\n\nでは実際どのようにセキュリティ勧告やCVEを読み解いているのでしょうか。\u003Cbr>\u003Ca rel=\"noreferrer noopener\" href=\"https://alas.aws.amazon.com/\" target=\"_blank\">こちら\u003C/a>から一つ選んで見てみましょう。\u003Cbr>\u003Cbr>\u003Ca href=\"https://alas.aws.amazon.com/ALAS-2020-1376.html\">https://alas.aws.amazon.com/ALAS-2020-1376.html\u003C/a>\u003Cbr>\u003Cbr>リンクは Amazon Linux 1 の \u003Ca href=\"https://www.docker.com/\" target=\"_blank\" rel=\"noreferrer noopener\">Docker\u003C/a> の脆弱性に対するセキュリティ勧告(ALAS)です。\u003Cbr>\u003Cbr>\n\n\u003Cp class=\"has-vivid-red-color has-very-light-gray-background-color has-text-color has-background\" style=\"font-size:15px\">\u003Cstrong>Amazon Linux\u003C/strong>\u003Cbr>\u003Cbr>アマゾン ウェブ サービス(AWS)より提供されている Linux サーバーオペレーティングシステム。Linux ベースのアプリケーションを開発および実行する際に使用される。\u003C/p>\n\n\u003Cp class=\"has-vivid-red-color has-very-light-gray-background-color has-text-color has-background\" style=\"font-size:15px\">\u003Cstrong>Docker\u003C/strong>\u003Cbr>\u003Cbr>Docker社が開発している、コンテナ仮想化を用いてアプリケーションを開発・配置・実行するためのオープンソースソフトウェアあるいはオープンプラットフォーム。\u003C/p>\n\n\u003Cbr>これを見ると、CVE が一つ書かれていますが、一つのセキュリティ勧告に複数のパッケージ、CVE が含まれていることもあります。一回のアップデートでそれらに対応するパッチが全て含まれたものとして適用されます。\u003Cbr>\u003Cbr>重要なのは\u003Cstrong> Severity\u003C/strong>&nbsp;で、ALAS では Important, Medium, Low として分類されます。\u003Cbr>ここでは Important になっていますが、本当に重要かどうかは使われ方に依存するので注意が必要です。\u003Cbr>\n\n\u003Cbr>Overviewを読むと、\n\n\u003Cblockquote class=\"wp-block-quote\"> An attacker in a container, with the CAP_NET_RAW capability, can craft IPv6 router advertisements, and consequently spoof external IPv6 hosts, obtain sensitive information, or cause a denial of service.\u003C/p>\u003Ccite>\u003Ca href=\"https://alas.aws.amazon.com/ALAS-2020-1376.html\">https://alas.aws.amazon.com/ALAS-2020-1376.html\u003C/a>\u003C/cite>\u003C/blockquote>\n\n\u003Cbr>\u003Ccode>CAP_NET_RAW\u003C/code>&nbsp;capability が付いたコンテナー(\u003Ccode>--privileged\u003C/code>&nbsp;でも同様) 内の攻撃者が、 IPv6 ルーター広告を作ることができる。と書いてあります。\u003Cbr>\u003Cbr>これがどういう影響を及ぼすかは他の知識が無いと難しいのですが、つまり、同一サブネット内で別のホスト向けのパケットを自ホストに誘導することが可能になり、その結果、偽装や邪魔ができる、という影響があります(多分)。\u003Cbr>これに \u003Ca rel=\"noreferrer noopener\" href=\"https://ja.wikipedia.org/wiki/Domain_Name_System\" target=\"_blank\">DNS\u003C/a> への攻撃や \u003Ca rel=\"noreferrer noopener\" href=\"https://jp.globalsign.com/ssl-pki-info/ssl_beginner/sslcerts.html#:~:text=SSL%E3%82%B5%E3%83%BC%E3%83%90%E8%A8%BC%E6%98%8E%E6%9B%B8%E3%81%AF,%E3%81%8C%E5%90%AB%E3%81%BE%E3%82%8C%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82\" target=\"_blank\">SSL 証明書\u003C/a>への攻撃を組み合わせると、より気づかれにくい騙しが可能になります。\u003Cbr>\n\n\u003Cbr>このセキュリティ勧告には CVE へのリンクがありますが、実はこれは RedHat 社の CVE 解説ページへのリンクです。 Amazon Linux のベースが CentOS/Fedora で、RedHat Enterprise Linux も強く絡んでいるので、多くのパッチは RedHat と同じものとなっています。\u003Cbr>\u003Cbr>\u003Ca rel=\"noreferrer noopener\" href=\"https://access.redhat.com/security/cve/CVE-2020-13401\" target=\"_blank\">こちら\u003C/a>がそのページです。\u003Cbr>\n\n\u003Cbr>RedHat はこれを \u003Cstrong>Moderate Impact \u003C/strong>と診断していますね。 \u003Cbr>先ほどの Severity 部分に相当するのですが、RedHat では Critical, Important, Moderate, Low の4つに分類されます。\u003Cbr>ここでは「そんなにシビアじゃないね」という判断です。\u003Cbr>\n\n\u003Cbr>\u003Cstrong>Mitigation\u003C/strong> は緩和策です。\u003Cbr>訳すと「信用できないコンテナーには&nbsp;\u003Ccode>CAP_NET_RAW\u003C/code>&nbsp;を着けるな」という真っ当なことが書いてあります。\u003Cbr>\n\n\u003Cbr>続いて、\u003Cstrong>Affected Packages and Issued Red Hat Security Errata\u003C/strong>を見ると、影響を受けるのは RHEL7 の Docker パッケージだけで、現状は修正されたパッケージは発行されていない、ということがわかります(お茶会時点)。\u003Cbr>\n\n\u003Cbr>その下にある \u003Cstrong>Common Vulnerability Scoring System (CVSS) Score Details\u003C/strong> というのはスコアリング指標です。\u003Cbr>\u003Cbr>\n\n\u003Cul>\u003Cli>どこから攻撃可能であるか (AV: Attack Vector)\u003C/li>\u003Cli>攻撃に必要な条件の複雑さ (AC: Attack Complexity)\u003C/li>\u003Cli>攻撃に必要な特権レベル (PR: Privileges Required)\u003C/li>\u003Cli>攻撃に必要なユーザー関与レベル (UI: User Interaction)\u003C/li>\u003C/ul>\n\nという攻撃条件と、\u003Cbr>\u003Cbr>\n\n\u003Cul>\u003Cli>スコープ (authorization scope)\u003C/li>\u003Cli>機密性への影響 (C: Confidentiality Impact, 情報漏えいの可能性)\u003C/li>\u003Cli>完全性への影響 (I: Integrity Impact, 情報改ざんの可能性)\u003C/li>\u003Cli>可用性への影響 (A: Availability Impact, 業務停止の可能性)\u003C/li>\u003C/ul>\n\n\u003Cbr>という影響範囲を元に、ベーススコアが算出されます。\u003Cbr>表を見ると、Red Hat と NVDと2つあると思うのですが、NVDはアメリカ国立標準技術研究所が判断したベーススコアです。\u003Cbr>これはRed Hatが自社のプロダクトの場合での影響を考慮に入れて、スコアデータを変更する場合があるので、参考として別の判断のスコアデータを表示するようにしているみたいです。\u003Cbr>\n\n\u003Cbr>右上には追加情報があり、RHEL のバグ管理データベースである \u003Cstrong>Bugzilla\u003C/strong> へのリンクと、その下の \u003Cstrong>CWE\u003C/strong> は Common Weakness Enumeration という、脆弱性の種類に対して識別子を割り当て、どういうタイプの脆弱性なのかを分類したリンクがあります。\u003Cbr>\n\n\u003Ch2>実際の運用\u003C/h2>\n\n実際の運用では、勧告の影響を受けるものが出てくるとサーバーごとにアラートが上がるような仕組みにしています。\u003Cbr>OS ごとに出てくるのでだいたい週に 2, 3 件のペース。\u003Cbr>\n\n\u003Cbr>勧告の情報を元に、それぞれのサーバーやサービス、アプリケーションの特性を考慮して、すぐに対応を始めるのか、影響の少ないタイミングを待って適用するのか、はたまた実質的な影響はないという判断の元で次のメンテ時にまとめてやればよい、などの優先度を付けていきます。\u003Cbr>そしてそれをそれぞれ Issue として整理します。\u003Cbr>\n\n\u003Cbr>どのサービスがどういう OSS をどういう形で使っているのか、という情報と、勧告内の影響範囲・攻撃方法の情報から、この案件はこう、こっちはこう、と分類していくのは骨が折れる作業ではありますが、事件が起こってしまうと困るので慎重に、かつ迅速に対応していき、完了したら Issue クローズ、となります。\u003Cbr>\n\n\u003Cbr>何も問題が起こらないことを維持するための仕事なのでどうしても地味になりますが、運用には欠かすことのできない部分です。\u003Cbr>\u003Cbr>\n\n\u003Cbr>\u003Cbr>以上が、主にLinux関連でどういうふうにセキュリティ勧告が出されていて、それにどうやって対応しているのかという話でした。\u003Cbr>昔に比べると様々な攻撃方法が増えてきているので、適宜モダンな環境にアップデートして、攻撃に対処できるようにしておきましょう。",[],[],"2020-07-08T11:46:00+09:00",{"id":137,"createdAt":138,"updatedAt":139,"publishedAt":138,"revisedAt":139,"title":140,"eyecatch":141,"tag":143,"heading_list":19,"recruit":19,"is_html":46,"html_contents":150,"related_articles":151,"recommended_articles":152,"is_migration":46,"migration_date":153},"electrician","2023-06-02T08:49:04.959Z","2023-08-07T17:18:33.513Z","電気工事士の話",{"url":142,"height":125,"width":126},"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/2a6fe8d38412480b97d88b425c7e61f6/2021-05-electricity-3962788_1280.jpg",[144,145,146,148,149],{"id":41},{"id":61},{"id":147},"hobby",{"id":36},{"id":21},"今回は弊社の工藤が\u003Cstrong>「電気工事士」\u003C/strong>について話しました。\n\n\u003Chr class=\"wp-block-separator\"/>\n\n\n\u003Cbr>私は第二種電気工事士の資格を持っているのですが、今度社内でも受験を考えている人がいるという話があったので、今回は電気工事士について一体どういう資格なのか、第二種電気工事士を中心に紹介したいと思います。\u003Cbr>\u003Cbr>\n\n\u003Ch2>電気工事士とは\u003C/h2>\n\nまず始めに電気工事士とは。\u003Cbr>\u003Cbr>\n\n\u003Cp class=\"ticss-151099ca has-vivid-red-color has-text-color has-background\" style=\"background-color:#eeeeee\">\u003Cbr>電気工事の作業に従事するために電気工作物の工事に関する専門的な知識と技能を有する者に与えられる国家資格であり、またその免状を都道府県知事により交付されている者である。電気工事士には第一種電気工事士と第二種電気工事士とがある。\u003Cbr>\u003Cbr>\u003C/p>\n\n\u003Cp class=\"has-text-align-center\" style=\"font-size:14px\">出典：\u003Ca href=\"https://ja.wikipedia.org/wiki/%E9%9B%BB%E6%B0%97%E5%B7%A5%E4%BA%8B%E5%A3%AB\" target=\"_blank\" rel=\"noreferrer noopener\">電気工事士\u003C/a>\u003C/p>\n\n\u003Cbr>皆様が普段住んでいる家や利用しているオフィスのコンセントや壁の中の配線、道路のあちこちに立っている電柱にかかっている電線を工事するのが大まかな仕事です。\u003Cstrong>電力を必要とする施設のほとんどを電気工事士が施工\u003C/strong>しています。\u003Cbr>\u003Cbr>\n\n\u003Ch2>電気工事士ができること\u003C/h2>\n先ほどの引用内にもあったように\u003Cstrong>「電気工事士には第一種電気工事士と第二種電気工事士」\u003C/strong>とがあり、\u003Cbr>それぞれの資格に応じて施行できる範囲が異なります。\u003Cbr>\u003Cbr>ざっとした説明になりますが、\u003Cbr>\u003Cbr>\u003Cbr>\u003Cstrong>第二種\u003C/strong>\u003Cbr>\u003Cbr>一般用電気工作物と呼ばれる、一般家屋や小規模な商店、600V以下で受電する電気設備などを対象に、例えば、コンセントや引掛シーリングとその周り(リビングの天井についているシーリングライトなど)、ケーブルやブレーカーの交換などが可能。\u003Cbr>\u003Cbr>\u003Cbr>\u003Cstrong>第一種\u003C/strong>\u003Cbr>\u003Cbr>600V以下で使用する500kW未満の自家用電気工作物(中小規模の工場、ビル、高圧受電の商業施設など)と600V以下で受電する電気設備等が対象です。例えば、\u003Ca rel=\"noreferrer noopener\" href=\"https://cubicle-hoan.jp/about_cubicle.html\" target=\"_blank\">キュービクル\u003C/a>と呼ばれる変電設備を持つコンビニエンスストア内の照明やコンセントなどの電気工作物が施工できます。\u003Cbr>\u003Cbr>\u003Cbr>\u003Cstrong>ネオン設備や\u003Ca rel=\"noreferrer noopener\" href=\"https://www.denyo.co.jp/products/generator/emergency/\" target=\"_blank\">非常用発電設備\u003C/a>の施工には特殊電気工事資格が別に必要になります。\u003C/strong>\u003Cbr>詳しくは\u003Ca rel=\"noreferrer noopener\" href=\"https://hamanotechnicalworks.com/electrical-work-scope.php\" target=\"_blank\">こちら\u003C/a>をご覧になってみてください。\u003Cbr>\u003Cbr>これらの資格を持っていると、持ち家でDIYの一つとしてコンセントを増設したり、電球や蛍光灯の数を増やしたり、やろうと思えばそういったことができるので便利かもしれません。\u003Cbr>さらに、電気工事士の資格を持っていると、消防設備士の資格など、他の資格を受けるときに若干免除してもらえる場合があったりします。\u003Cbr>\u003Cbr>\n\n\u003Ch2>取得するには\u003C/h2>\n\n取得するには\u003Cstrong>\u003Ca rel=\"noreferrer noopener\" href=\"https://www.shiken.or.jp/index.html\" target=\"_blank\">電気技術者試験センター\u003C/a>\u003C/strong>によって第一種なら年一回、第二種なら年に二回、上期と下期に分けて行われている\u003Cstrong>試験に合格\u003C/strong>しなければなりません。両方とも\u003Cstrong>筆記と技能\u003C/strong>の試験があります。\u003Cbr>\u003Cbr>\n\n\u003Ch3>第二種試験について\u003C/h3>\n\n\u003Ch4>筆記試験\u003C/h4>マークシート方式で「\u003Cstrong>イ・ロ・ハ・ニ」の四択\u003C/strong>です。\u003Cbr>\u003Cstrong>電気基礎や法令、施工に用いる工具、電気器具の名称、配線図などの問題\u003C/strong>が出題されます。\u003Cbr>\u003Cbr>\u003Ca rel=\"noreferrer noopener\" href=\"https://www.shiken.or.jp/answer/index_list.php?exam_type=50\" target=\"_blank\">過去問\u003C/a>は公式から一般公開されているので気になる方、受験を考えている方はそちらをご覧になってみてください。\u003Cbr>筆記試験用の\u003Ca rel=\"noreferrer noopener\" href=\"https://www.amazon.co.jp/s?k=%E9%9B%BB%E6%B0%97%E5%B7%A5%E4%BA%8B%E5%A3%AB&amp;__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;ref=nb_sb_noss_1\" target=\"_blank\">参考書など\u003C/a>も色々販売されています。\u003Cbr>\u003Cbr>\n\u003Ch4>技能試験\u003C/h4>\n筆記試験に合格したら次は技能試験です。\u003Cbr>試験会場で\u003Cstrong>配られる部品と配線図で、実際に電気工作物を施工\u003C/strong>します。完成したらそれを提出してすぐさま退出です。\u003Cbr>作業結果しか見られないので、どうやって施工するかは各々の自由です。\u003Cbr>\u003Cbr>そして実は、技能試験は\u003Cstrong>出題される問題が事前に公表\u003C/strong>されます。\u003Cbr>例えば\u003Ca rel=\"noreferrer noopener\" href=\"https://www.shiken.or.jp/ginouanswerK/ginou20201212.html\" target=\"_blank\">これ\u003C/a>は昨年のものですが、このように試験問題があらかじめ公開され、当日その中から1問が出題されます。\u003Cbr>今のところ毎回そういう仕組みで実施されているので、どうしても受かりたいという人は全部の問題をしっかりと予習しておけばいいと思います。\u003Cbr>\u003Cbr>ちなみに、\u003Cstrong>\u003Cspan class=\"has-inline-color has-vivid-red-color\">技能試験では自分で工具を持参\u003C/span>\u003C/strong>しなければいけません。\u003Cbr>最低限これは持ってきてくださいといったアナウンスが事前にあるので、買い揃えるようにしておきましょう。\u003Cbr>Amazonなどで「\u003Ca rel=\"noreferrer noopener\" href=\"https://www.amazon.co.jp/s?k=2%E7%A8%AE%E9%9B%BB%E6%B0%97%E5%B7%A5%E4%BA%8B%E5%A3%AB+%E5%AE%9F%E6%8A%80&amp;__mk_ja_JP=%E3%82%AB%E3%82%BF%E3%82%AB%E3%83%8A&amp;crid=D9S6KCM7P43F&amp;sprefix=2%E7%A8%AE%E9%9B%BB%E6%B0%97%2Caps%2C249&amp;ref=nb_sb_ss_ts-doa-p_1_4\" target=\"_blank\">\u003Cstrong>2種電気工事士 実技\u003C/strong>\u003C/a>」とか検索すれば試験用にセットになった工具が出てくるので、それを買えばいいと思います。\u003Cbr>意外と値段は張りますが、練習用のセットも余分についてくるので、まあ買って損はないかと。\u003Cbr>\u003Cbr>試験当日は失敗しても大丈夫なよう少し余分に部品はもらえますが、\u003Cstrong>慌てず焦らず、適切な工具と部品を選び集中して作業するように\u003C/strong>しましょう。試験に限った話ではありませんが。\u003Cbr>\u003Cbr>\u003Cbr>簡単に説明しましたが以上になります。\u003Cbr>電気工事士の資格がないと基本的に電気周りの修理や改造は行ってはいけません。違反すると罰金や懲役の対象になるそうです。特に持ち家のある人はこの資格を持っておくと自分で簡単な工事ができたり色々と便利だと思うので、取得を考えてみてはいかがでしょうか。",[],[],"2021-05-27T11:34:52+09:00",{"id":155,"createdAt":156,"updatedAt":157,"publishedAt":158,"revisedAt":157,"title":159,"content2":160,"eyecatch":161,"tag":165,"heading_list":46,"recruit":19,"is_html":19,"related_articles":173,"recommended_articles":174,"is_migration":19},"office-humansensor","2024-12-04T06:19:37.810Z","2025-03-12T02:45:26.137Z","2025-03-11T08:29:32.360Z","座席の利用状況を可視化するシステムを作った話","\u003Cp>弊社では、\u003Cstrong>よく出社する一部の社員を除き、座席を固定していません\u003C/strong>。\u003Cbr>2023年6月のオフィス移転時に、「\u003Cstrong>フリーアドレスな座席の利用状況を見て、使用頻度の低い座席を把握したい\u003C/strong>」という要望が寄せられました。\u003C/p>\u003Cp>そこで、\u003Cstrong>座席にセンサーを設置\u003C/strong>し、利用状況を集計。最終的に、\u003Cstrong>どの座席がどれくらい使われているかを視覚化する画面を作成\u003C/strong>しました。\u003Cbr>\u003Cbr>現在、このシステムでは\u003Cstrong>以下の 2 つをヒートマップで表示\u003C/strong>しています。\u003C/p>\u003Cul>\u003Cli>\u003Cstrong>座席ごとの利用状況\u003C/strong>\u003C/li>\u003Cli>\u003Cstrong>全座席の利用頻度\u003C/strong>\u003C/li>\u003C/ul>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/1f60e01ce9334bd58ebc5962df1a1623/front1.jpg?w=450&amp;h=745\" alt=\"ヒートマップ\" width=\"450\" height=\"745\">\u003C/figure>\u003Cp>\u003Cbr>ただし、検証段階のため、センサーが設置されているのは 3 席のみです。\u003Cbr>\u003Cbr>ヒートマップでは、\u003Cstrong>未計測の日付はグレー\u003C/strong>、\u003Cstrong>使用頻度が高まるにつれて色が濃く\u003C/strong>なります。\u003Cbr>例えば、C-7 は最もよく使われており、C-5 と C-6 も最近頻繁に利用されるようになってきました。\u003Cbr>\u003Cbr>もっとセンサーが増えてデータが充実すれば、「\u003Cstrong>季節や気温による座席使用状況の違い\u003C/strong>」が見えるようになるかもしれません。そうすると、寒すぎる席や暑すぎる席への対策も可能になります。\u003C/p>\u003Cp>以下は全デバイスのところを拡大した画像です。\u003Cbr>\u003Cbr>\u003C/p>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/67e7ee22c56e454587ca2eef1f306614/front2.jpg\" alt=\"\" width=\"1664\" height=\"772\">\u003C/figure>\u003Ch2 id=\"h265bff37a3\">AWSを活用した構成\u003C/h2>\u003Cp>このシステムは、AWS上で構築されています。全体の構成は以下の通りです。\u003Cbr>\u003Cbr>\u003C/p>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/5dd1f5bf5f8543d9982f0a2e6ef1d3e3/aws.jpg?w=650&amp;h=446\" alt=\"AWS上での構成\" width=\"650\" height=\"446\">\u003C/figure>\u003Col>\u003Cli>\u003Cstrong>データ収集\u003C/strong>\u003Cbr>センサーからの計測データを \u003Ca href=\"https://aws.amazon.com/jp/iot-core/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">AWS IoT Core\u003C/a> で受信し、加工した後に \u003Ca href=\"https://aws.amazon.com/jp/dynamodb/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">DynamoDB\u003C/a> へ保存します。\u003C/li>\u003Cli>\u003Cstrong>データの集計\u003C/strong>\u003Cbr>DynamoDB に保存されたデータは、1日1度、\u003Ca href=\"https://aws.amazon.com/jp/lambda/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">Lambda\u003C/a> 関数によって集計されます。その結果は JSON 形式のファイルとして \u003Ca href=\"https://aws.amazon.com/jp/s3/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">S3\u003C/a> に保存され、フロントエンドで利用されます。\u003C/li>\u003Cli>\u003Cstrong>フロントエンド\u003C/strong>\u003Cbr>ヒートマップを表示する画面は、S3 に保存された JSON データを利用しています。\u003C/li>\u003C/ol>\u003Cp>このようなセンサーからのデータを集計して視覚化する場合、様々な実現方法がありますが、今回は社内での検証ということもあり\u003Cstrong>「コストをかけず、できるだけ安く！」という方針\u003C/strong>で構成を決定しました。\u003C/p>\u003Cp>\u003Cstrong>データの集計処理は以下の2種類を実行\u003C/strong>しています。\u003C/p>\u003Col>\u003Cli>\u003Cstrong>1 日単位でファイルを作成し、その日のデバイスごとの集計値を保存する\u003C/strong>\u003C/li>\u003Cli>\u003Cstrong>デバイス単位でファイルを作成し、1 ヶ月分の集計値を保存する\u003C/strong>\u003C/li>\u003C/ol>\u003Cp>これらを一つの Lambda 関数でまとめる方法もありましたが、\u003Cstrong>柔軟性を考慮し、それぞれの集計処理を別の Lambda 関数に担当\u003C/strong>させました。これにより、将来的にどちらか一方が不要になったり修正が必要になった場合でも、簡単に対処できる構成になっています。\u003C/p>\u003Cp>1 の集計処理が終了したら 2 の集計処理を開始するよう、\u003Ca href=\"https://aws.amazon.com/jp/step-functions/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\u003Cstrong>Step Functions\u003C/strong>\u003C/a>\u003Cstrong> でステートマシンを設定\u003C/strong>しています。\u003Cbr>また、これらの処理が毎日決まった時間に実行されるよう、\u003Ca href=\"https://aws.amazon.com/jp/eventbridge/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\u003Cstrong>EventBridge\u003C/strong>\u003C/a>\u003Cstrong> にルールを作成\u003C/strong>しました。\u003Cbr>\u003Cbr>このルールにより、毎日指定した時間に Step Functions が起動し、設定された Lambda 関数が処理を実行。最終的に S3 へ集計ファイルが保存される仕組みになっています。\u003C/p>\u003Cp>AWS のリソース設定は、\u003Ca href=\"https://aws.amazon.com/jp/console/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">AWS Management Console\u003C/a> で手動設定することも可能ですが、今回は \u003Ca href=\"https://aws.amazon.com/jp/cdk/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\u003Cstrong>AWS CDK\u003C/strong>\u003C/a>\u003Cstrong> を使用\u003C/strong>しました。これにより、\u003Cstrong>設定内容をコードで管理でき、サービス構築から時間が経っても容易に内容を振り返ることが可能\u003C/strong>です。CDK を使ったおかげで、こうしてブログを書く際にも思い出しやすくなっています。\u003C/p>\u003Ch2 id=\"he9c5c84dc2\">センサー部分\u003C/h2>\u003Cp>最終的に全座席へのセンサー設置を目指し、コストを抑えつつ、AWS IoT Core を試す目的で連携部分を自作できる「\u003Cstrong>赤外線センサー」と「\u003C/strong>\u003Ca href=\"https://www.raspberrypi.com/products/raspberry-pi-pico/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\u003Cstrong>Raspberry Pi Pico W\u003C/strong>\u003C/a>\u003Cstrong>」を採用\u003C/strong>。\u003C/p>\u003Cp>以前にも、Raspberry Pi を利用した DIY センシング行ったことがあったので慣れているつもりでしたが、Pico W は従来の Raspberry Pi とは仕様が異なり、購入後に事前調査の不足を痛感しました。それでも、\u003Ca href=\"https://micropython.org/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">MicroPython\u003C/a> を使用すれば問題を解決できると判断し、以下の処理を実装。\u003C/p>\u003Col>\u003Cli>\u003Cstrong>WiFi に接続\u003C/strong>\u003C/li>\u003Cli>\u003Cstrong>センサーの値を ADC（アナログ-デジタル変換）で読み取り\u003C/strong>\u003C/li>\u003Cli>\u003Cstrong>一定の閾値を超える変化があれば、\u003C/strong>\u003Ca href=\"https://aws.amazon.com/jp/what-is/mqtt/#:~:text=MQTT%20%E3%82%AF%E3%83%A9%E3%82%A4%E3%82%A2%E3%83%B3%E3%83%88%E3%81%AF%E3%80%81%E3%82%B5%E3%83%BC%E3%83%90%E3%83%BC%E3%81%8B%E3%82%89,%E8%80%85%E3%81%A8%E3%81%97%E3%81%A6%E6%A9%9F%E8%83%BD%E3%81%97%E3%81%BE%E3%81%99%E3%80%82\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\u003Cstrong>MQTTClient\u003C/strong>\u003C/a>\u003Cstrong> を利用して IoT Core にデータを送信\u003C/strong>\u003C/li>\u003Cli>\u003Cstrong>1 秒スリープ後、再び計測\u003C/strong>\u003C/li>\u003C/ol>\u003Cp>IoT Core へデータ送信するには、\u003Cstrong>デバイスに証明書をインストールする\u003C/strong>必要があります。この手順は AWS 公式チュートリアルに従い、ポリシー設定や証明書の作成を進めました。\u003Cbr>この証明書をRaspberry Pi Pico に書き込み、ファイルに普通にアクセスできる形で保存してあります。\u003Cbr>\u003Cbr>例えば、\u003Ccode>/certs/private.der\u003C/code>として参照し、接続時にオプションで指定することで、IoT Core にスムーズにメッセージを送信できるようにしました。\u003Cbr>\u003Cbr>\u003C/p>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/a654f9d5a3eb41cfaae1464bfb4a8517/raspberry%20pi%20pico%20w.jpg?w=650&amp;h=392\" alt=\"raspberry pi pico w\" width=\"650\" height=\"392\">\u003Cfigcaption>各テーブルの裏側に設置してあります。\u003C/figcaption>\u003C/figure>\u003Ch2 id=\"h83ee18d802\">IoT Core設定\u003C/h2>\u003Cp>\u003Cstrong>IoT Core の「メッセージのルーティング」機能を利用\u003C/strong>し、\u003Cstrong>センサーから取得した値を DynamoDB に保存する仕組みを構築\u003C/strong>しました。これを実現するために、まずどのような形式でデータを保持するのが良いかを検討し、DynamoDBのスキーマを以下のように決めました。\u003C/p>\u003Cul>\u003Cli>\u003Cstrong>パーティションキー\u003C/strong>: センサーを特定する情報(部屋/デバイス番号)\u003C/li>\u003Cli>\u003Cstrong>ソートキー\u003C/strong>: タイムスタンプ\u003C/li>\u003C/ul>\u003Cp>今回は、集計処理が「センサーごと」で、単位は「1日分」です。そのため、集計処理では「センサー」をキーに検索し、タイムスタンプで絞り込む形が適していると判断しました。\u003C/p>\u003Cp>IoT Coreのルーティングルールでは、以下の項目を設定しました。\u003C/p>\u003Col>\u003Cli>\u003Cstrong>どの DynamoDB テーブルに保存するか\u003C/strong>\u003C/li>\u003Cli>\u003Cstrong>パーティションキーにどのデータを入れるか\u003C/strong>\u003C/li>\u003Cli>\u003Cstrong>ソートキーにどのデータを入れるか\u003C/strong>\u003C/li>\u003Cli>\u003Cstrong>センサーから取得したデータを入れる列名\u003C/strong>\u003C/li>\u003C/ol>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/cfd726c7d649464aad6259b6d6c68111/rules.jpg?w=650&amp;h=409\" alt=\"構造\" width=\"650\" height=\"409\">\u003C/figure>\u003Cp>\u003Cbr>これらの設定に基づき、ルールクエリでフィルタリングされたセンサーのデータが、\u003Cstrong>DynamoDB の value カラムに自動的に保存\u003C/strong>されるようになりました。\u003C/p>\u003Ch2 id=\"h282144c8ac\">集計\u003C/h2>\u003Cp>センサーのデータは、DynamoDB に保存された後、\u003Cstrong>毎日決まった時間に集計処理\u003C/strong>が行われます。\u003Cbr>この処理は \u003Cstrong>Step Functions \u003C/strong>を利用して 2 つの Lambda 関数で実行され、結果は S3 に保存されます。\u003C/p>\u003Col>\u003Cli>\u003Cstrong>1 日単位の集計\u003C/strong>\u003Cul>\u003Cli>その日のデバイスごとの利用状況を集計し、\u003Cstrong>日付をファイル名\u003C/strong>として保存。\u003C/li>\u003Cli>保存されるデータ形式は、\u003Ccode>{device_id: string, time: long}\u003C/code>\u003C/li>\u003C/ul>\u003C/li>\u003Cli>\u003Cstrong>デバイス単位の集計\u003C/strong>\u003Cul>\u003Cli>1ヶ月分のデバイスごとの利用状況を集計し、\u003Cstrong>デバイス名をファイル名\u003C/strong>として保存。フロントエンドのヒートマップでは、このデータを基に利用状況を可視化しています。\u003C/li>\u003Cli>保存されるデータ形式は、\u003Ccode>{date: string, time: long}\u003C/code>\u003C/li>\u003C/ul>\u003C/li>\u003C/ol>\u003Cp>1 つ目の Lambda で保存される日単位のデータは、現時点では使用されていませんが、他の表示形式で活用できる可能性があります。\u003Cbr>今後も利用の見込みがない場合は、この処理を変更または停止する予定です。\u003C/p>\u003Cp>Lambda関数を分割しているため、不要な処理の停止や変更が柔軟に対応できる構成になっています。\u003C/p>\u003Ch2 id=\"h5dc0967264\">フロントエンド\u003C/h2>\u003Cp>\u003Cstrong>フロントエンドは React で作成し、S3 でホスティング\u003C/strong>しています(構成図には含まれていません)。\u003Cbr>S3 に保存された集計ファイルを取得し、計測開始から現在までのデータを表示する仕組みになっています。\u003C/p>\u003Cp>ヒートマップ表示には、\u003Ccode>react-calendar-heatmap\u003C/code> を採用しました。\u003Cbr>開発当時「使ってみた」系の記事をよく見かけたというのが採用理由の一つですが、普段バックエンドばかりでフロントエンドは滅多に触る機会がない私でも容易に導入できました。\u003C/p>\u003Cp>現在、計測期間が長くなってきたため、ヒートマップで表示する期間を指定する機能を追加する必要が出てきています。\u003C/p>\u003Ch2 id=\"hcbec2bf0d9\">終わりに\u003C/h2>\u003Cp>普段から AWS を活用してシステムを構築していますが、まだ触れていないサービスも多くあります。\u003Cbr>今回は、社内で生まれた課題に対して \u003Cstrong>IoT Core \u003C/strong>を起点に \u003Cstrong>EventBridge \u003C/strong>や \u003Cstrong>Step Functions \u003C/strong>を組み合わせたシステムを構築することで、\u003Cstrong>課題解決とともに新たな知見を得ることができました\u003C/strong>。\u003C/p>\u003Cp>特に、デバイスから取得したセンシングデータを弊社の主戦場である AWS に統合するノウハウを得たことで、\u003Cstrong>IoT 関連のシステム開発においても守備範囲を広げられた\u003C/strong>と感じています。\u003C/p>\u003Cp>もし、以下のようなお悩みがあれば、ぜひご相談ください。\u003C/p>\u003Cul>\u003Cli>\u003Cstrong>こんなデータを取得して可視化できないか？\u003C/strong>\u003C/li>\u003Cli>\u003Cstrong>センサーデータを活用しきれずに困っている\u003C/strong>\u003C/li>\u003Cli>\u003Cstrong>そもそも何ができるの？\u003C/strong>\u003C/li>\u003C/ul>\u003Cp>具体的な実現イメージがある場合はもちろん、初期段階のご相談からでもお力になります。\u003C/p>\u003Cp>私たちは、お客様の課題を解決し、\u003Cstrong>新たな可能性を見つけるお手伝い\u003C/strong>をさせていただきます。\u003Cbr>お気軽にお問い合わせください。\u003C/p>\u003Cdiv class=\"iframely-embed\">\u003Cdiv class=\"iframely-responsive\" style=\"height: 140px; padding-bottom: 0;\">\u003Ca href=\"https://www.s2factory.co.jp/\" data-iframely-url=\"//cdn.iframe.ly/api/iframe?card=small&amp;url=https%3A%2F%2Fwww.s2factory.co.jp%2Fcontact&amp;key=c271a3ec77ff4aa44d5948170dd74161\">\u003C/a>\u003C/div>\u003C/div>\u003Cscript async src=\"//cdn.iframe.ly/embed.js\" charset=\"utf-8\">\u003C/script>",{"url":162,"height":163,"width":164},"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/a654f9d5a3eb41cfaae1464bfb4a8517/raspberry%20pi%20pico%20w.jpg",2976,4925,[166,168,170,171],{"id":167},"moving",{"id":169},"promotion",{"id":61},{"id":172},"iot",[],[],[],{"contents":177,"totalCount":208,"offset":209,"limit":210},[178,188,198],{"id":179,"eyecatch":180,"publishedAt":184,"createdAt":185,"title":186,"is_html":19,"content2":187},"claude-code-perl-typescript-migration",{"url":181,"height":182,"width":183},"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/1632b87e5aaa4944a854ccc430cdb89e/%E3%82%A2%E3%82%A4%E3%82%AD%E3%83%A3%E3%83%83%E3%83%81.png",941,1672,"2026-06-02T01:45:24.758Z","2026-05-29T08:21:55.189Z","テストがない 10 万行の Perl システムを、Claude Code で TypeScript へ書き換えた話","\u003Ch2 id=\"h586b90d155\">「AI が書いたコード、読んでますか？」\u003C/h2>\u003Cp>最近よく見かけるこの議論に、正直に答えます。\u003C/p>\u003Cp>\u003Cstrong>全部は読んでいません。10 万行、読みきれません。\u003C/strong>\u003C/p>\u003Cp>これは無責任に聞こえるかもしれません。「AI が書いたコードの 80% は負債だ」という研究もありますし、「理解していないコードをリリースするな」という意見はもっともだと思います。\u003C/p>\u003Cp>ただ、10 万行のコードを1行ずつ目で追って品質を担保するのは、\u003Cstrong>現実的に難しい\u003C/strong>ですよね。人間が書いたコードでも、全行レビューはしていないはずです。\u003C/p>\u003Cp>じゃあどうしたか。\u003C/p>\u003Cp>\u003Cstrong>読む代わりに、検証する仕組みを作りました。 AI に書かせたコードを、AIに検証させ続ける\u003C/strong>。24 時間、何百ラウンドも、バグが出なくなるまで。読んで理解する代わりに、正しさを証明する。\u003C/p>\u003Cp>この記事は、その話です。\u003C/p>\u003Ch2 id=\"h90ca2bc41d\">前提：テストがほぼない\u003C/h2>\u003Cp>私が担当しているのは、ある企業の EC サイトのバックエンドです。\u003C/p>\u003Cp>\u003Ca href=\"https://www.perl.org/\" target=\"_blank\" rel=\"noopener noreferrer\">Perl\u003C/a> で書かれていて、10 年以上動いています。認証、注文、決済、予約、LINE連携、クーポン。\u003Cstrong>API のエンドポイントは 133 個\u003C/strong>あります。\u003C/p>\u003Cp>そしてこのコードベースには、\u003Cstrong>まともな自動テストがほぼありませんでした。\u003C/strong>\u003C/p>\u003Cp>初めてソースを開いたときのことは覚えています。10 年分のビジネスロジックがぎっしり詰まっていて、でもそれを検証する手段が何もない。仕様書もない。何かを変えたとき、壊れたかどうかを知る方法がない。よくこれで 10 年動いてきたなと、率直に思いました。\u003C/p>\u003Cp>\u003Cstrong>これを \u003C/strong>\u003Ca href=\"https://www.typescriptlang.org/ja/\" target=\"_blank\" rel=\"noopener noreferrer\">\u003Cstrong>TypeScript\u003C/strong>\u003C/a>\u003Cstrong> に書き換えろ、というのが今回のミッション\u003C/strong>でした。\u003C/p>\u003Ch2 id=\"h460484bf92\">普通にやったら詰みます\u003C/h2>\u003Cp>テストのないコードの移植は、ソフトウェアエンジニアリングでも最悪の部類に入る仕事です。\u003C/p>\u003Cp>教科書的にやるなら、まず既存の Perl コードにテストを書きます。挙動を固めてから、TypeScript で書き直す。でも 10 年分のコードにテストを書く工数は、移植そのものと同じかそれ以上かかります。しかも、Perl の挙動をちゃんと理解してテストに落とせる人材は限られています。\u003C/p>\u003Cp>詰んでます。\u003C/p>\u003Ch2 id=\"h4677704352\">Claude Code に「書かせる」のは1週間で終わりました\u003C/h2>\u003Cp>Claude Code には、\u003Cstrong>カスタムスラッシュコマンド\u003C/strong>という機能があります。\u003Cstrong>自分でコマンドを定義して、繰り返し使える仕組み\u003C/strong>です。\u003C/p>\u003Cp>私はまず \u003Ccode>/migrate-endpoint\u003C/code> というコマンドを作りました。\u003C/p>\u003Cp>Perl のコントローラのファイルパスを渡すと、Claude Code が関連するモデルやエンティティ、DB スキーマまで全部読みに行って、TypeScript の実装コードとテストを一気に生成してくれます。\u003C/p>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/285f776615bd4583a5177b8d1c440a90/migrate-endpoint-flow.png\" alt=\"\" width=\"1448\" height=\"1086\">\u003C/figure>\u003Cp>\u003Cstrong>テストがないなら、テストごと作ればいい。\u003C/strong>\u003C/p>\u003Cp>この割り切りで、\u003Cstrong>移植前にテストを書くという工程を丸ごとスキップ\u003C/strong>できました。\u003C/p>\u003Cp>133 エンドポイント、約 10 万行。実装が終わるまで、約 1 週間でした。最初のエンドポイントが動いたときは「本当にこれでいけるのか？」という気持ちが正直ありましたが、\u003Cstrong>2 つ目、3 つ目と進むうちに、コマンドの精度がどんどん上がっていく\u003C/strong>のがわかりました。\u003C/p>\u003Ch2 id=\"h1a681fd8e2\">でも「書けた」は「正しい」じゃない\u003C/h2>\u003Cp>1 週間で 10 万行。数字だけ見ればすごいです。\u003C/p>\u003Cp>でも、テストのほぼない Perl から移植したコードです。\u003Cstrong>「動くけど微妙に違う」コードが量産されている可能性\u003C/strong>は大いにあります。\u003C/p>\u003Cp>Perl は未定義値を空文字やゼロとして黙って処理します。TypeScript ではそうはいきません。タイムゾーンの扱いも違う。数値と文字列の暗黙変換もある。こういう差異は、普通のテストでは見つかりません。\u003C/p>\u003Cp>そこで、これも仕組みで解決することにしました。\u003C/p>\u003Ch2 id=\"h7480bb35d9\">パリティ監査という仕組みを作りました\u003C/h2>\u003Cp>もう 1 つのカスタムコマンド、\u003Ccode>/parity-audit\u003C/code> を作りました。\u003C/p>\u003Cp>やることはシンプルです。\u003C/p>\u003Cul>\u003Cli>\u003Cstrong>Perl のコードと TypeScript のコードを突き合わせて、挙動の差異を見つける\u003C/strong>\u003C/li>\u003Cli>\u003Cstrong>差異があればバグとして修正し、テストを追加する\u003C/strong>\u003C/li>\u003C/ul>\u003Cp>このコマンドを実行すると、\u003Cstrong>1 ラウンドで 20 の AI エージェントが並列に起動\u003C/strong>し、それぞれが違う切り口でコードを調べていきます。\u003C/p>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/e1d8b1dc72f44fcf9f367d8dc3b852b9/parity-audit-flow.png\" alt=\"\" width=\"1447\" height=\"1087\">\u003C/figure>\u003Cp>あるエージェントはエンドポイント単位で、リクエストからレスポンスまでのコードパスを 1 行ずつ比較しています。別のエージェントは DB アクセス層を見ていて、クエリの条件やソート順、NULL の扱いをチェックしています。\u003C/p>\u003Cp>決済まわりを専門で見るエージェントもいます。税計算、クーポン適用、支払いステータス。1 円でもズレたらアウトの領域です。認証・セッション管理を集中的に検証するエージェントもいて、ログインや SSO、MFA といったセキュリティに直結する処理を重点的に見ます。\u003C/p>\u003Cp>日時処理、暗号化、バーコード生成といった「言語が変わると挙動が変わりやすい」ユーティリティも、専用のエージェントが横断的にチェックしています。\u003C/p>\u003Cp>これだけの観点を人間が毎回カバーするのは、まず無理だと思います。\u003C/p>\u003Ch2 id=\"h9def901947\">「10回連続クリーン」になるまで止めません\u003C/h2>\u003Cp>パリティ監査には、1 つ\u003Cstrong>ルール\u003C/strong>を課しました。\u003C/p>\u003Cp>\u003Cstrong>連続10回、差異ゼロが出るまで回し続ける。\u003C/strong>\u003C/p>\u003Cp>1ラウンドでもバグが見つかったら、カウンタはゼロに戻ります。修正して、また最初から。10 回連続でクリーンになって、初めて「OK」です。\u003C/p>\u003Cp>このコマンドを夜間も含めて走らせ続けました。\u003C/p>\u003Cp>\u003Cstrong>2.5 ヶ月間。\u003C/strong>\u003C/p>\u003Ch2 id=\"h29bb0ce50d\">監査 379 ラウンド、800件以上のバグを修正\u003C/h2>\u003Cp>結果として、\u003Cstrong>379 ラウンドの監査を回し、800 件以上のバグ\u003C/strong>を見つけて直しました。\u003C/p>\u003Cp>最初のほうはラウンドごとにバグが山のように出てきて、正直なところ気が遠くなりました。でも修正を重ねるうちに、だんだんクリーンなラウンドが増えてきます。連続クリーンが 5 回、6 回と伸びていくのを見ているときは、ちょっとした達成感がありました。\u003C/p>\u003Cp>中には、\u003Cstrong>移植元の Perl 側に何年も潜んでいたバグが見つかったケースも\u003C/strong>ありました。テストがなかったから、誰も気づかなかったバグです。\u003Cstrong>パリティ監査がなければ、そのまま TypeScript 側にも引き継がれていた\u003C/strong>でしょう。\u003C/p>\u003Ch2 id=\"h3884ede80a\">これで何が変わったか\u003C/h2>\u003Cp>移植前と移植後で、テストの状況は一変しました。\u003C/p>\u003Cp>\u003Cstrong>移植後のテストは 1,419 件。\u003C/strong> しかも全部パスしています。移植プロジェクトとしてだけでなく、テスト資産の構築としても大きな成果だと思っています。\u003C/p>\u003Cp>そして、1,419 件のテストがあるということは、ここからのリファクタリングが容易になるということでもあります。\u003Cstrong>テストがなかった頃は怖くて触れなかったコードを、安心して改善できる。\u003C/strong>移植がゴールではなく、ここからがスタートです。\u003C/p>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/faaa3c46c0cf4ac6b95524e19d81e50c/migration-audit-results.png\" alt=\"\" width=\"1448\" height=\"1086\">\u003C/figure>\u003Ch2 id=\"h49ccabfba5\">そして、人間の手で確かめました\u003C/h2>\u003Cp>\u003Cstrong>最後に、フロントエンドとつないで E2E テスト\u003C/strong>をしました。\u003C/p>\u003Cp>これは人間が手で動かすテストです。実際のブラウザで、実際の画面を操作して、注文を入れて、決済して、予約して。AI ではなく、人間の目と手で確かめました。\u003C/p>\u003Cp>\u003Cstrong>不具合は見つかりませんでした。\u003C/strong>\u003C/p>\u003Cp>10 万行。テストがほぼない状態からの移植。AI が書いて、AI が検証して、最後に人間が触って、壊れていなかった。\u003C/p>\u003Cp>正直、自分でもちょっと信じられませんでした。\u003C/p>\u003Ch2 id=\"h42e2556fbc\">Claude Codeの使い方として伝えたいこと\u003C/h2>\u003Cp>この経験を通じて、Claude Code の使い方について 3 つのことがわかりました。\u003C/p>\u003Cul>\u003Cli>\u003Cstrong>カスタムコマンドで「仕組み」にする\u003C/strong>\u003Cul>\u003Cli>属人的な「上手いプロンプトの書き方」ではなく、誰でも実行できるコマンドとして定義します。これで品質が人に依存しなくなります。\u003C/li>\u003C/ul>\u003C/li>\u003Cli>\u003Ca href=\"http://CLAUDE.md\">\u003Cstrong>CLAUDE.md\u003C/strong>\u003C/a>\u003Cstrong> に知識を貯める\u003C/strong>\u003Cul>\u003Cli>プロジェクト固有のルール（アーキテクチャ、命名規則、エラーコードなど）を CLAUDE.md ファイルに書いておきます。セッションが変わっても、Claude Code はこれを読んでくれます。移植が進むほどこのファイルが育ち、後半フェーズほど手戻りが減りました。\u003C/li>\u003C/ul>\u003C/li>\u003Cli>\u003Cstrong>品質保証を「計算資源」の問題にする\u003C/strong>\u003Cul>\u003Cli>1 ラウンド 20 エージェント × 379 ラウンド。この物量の検証を人間がやるのは無理です。でもコマンドにして 24 時間回せば、品質保証は工数の問題ではなく計算資源の問題になります。\u003C/li>\u003C/ul>\u003C/li>\u003C/ul>\u003Ch2 id=\"h5b6299b788\">「読んでない」のその先へ\u003C/h2>\u003Cp>冒頭に戻ります。\u003C/p>\u003Cp>\u003Cstrong>AI が書いたコード、読んでますか？\u003C/strong>\u003C/p>\u003Cp>私の答えは変わりません。全部は読んでいません。でも、全部検証しました。20 エージェント並列で、379 ラウンド、800 件のバグを潰して、最後に人間の手で E2E テストして、不具合ゼロ。\u003C/p>\u003Cp>もちろん、コードを読んで理解すること自体の価値を否定するつもりはありません。ただ、「読む」以外にも品質を担保する手段はあるはずです。\u003C/p>\u003Cp>\u003Cstrong>読むか読まないかではなく、正しさをどう証明するか。\u003C/strong> その仕組みを設計できるかどうかが、AI 時代のエンジニアリングで問われることなんじゃないかと思っています。\u003C/p>\u003Ch2 id=\"hc96909f29a\">この 3 ヶ月は長いのか\u003C/h2>\u003Cp>AI コーディングの事例として、「数時間でアプリを作った」「週末で完成した」といった話をよく見かけます。それと比べると、3 ヶ月という数字は地味に映るかもしれません。\u003C/p>\u003Cp>でも、考えてみてください。\u003Cstrong>テストのほぼない 10 万行のプロダクションコードを、133 エンドポイントの挙動を 1 つも壊さずに別言語へ移植\u003C/strong>する。普通にやったら 1 年はかかるプロジェクトです。見積もりの段階で「現実的じゃない」と却下されてもおかしくない。\u003C/p>\u003Cp>\u003Cstrong>それを 3 ヶ月で、しかも人間の E2E テストで不具合ゼロという品質で完遂\u003C/strong>できました。\u003C/p>\u003Cp>同じような課題を抱えている方は、少なくないと思います。テストのないレガシーシステム、移植したいけど踏み切れない、人手も時間も足りない。今回のアプローチは、そうしたプロジェクトにも十分に適用できると考えています。\u003C/p>\u003Cp>\u003Cstrong>レガシーシステムの移行でお困りの方がいらっしゃれば、ぜひご相談ください。\u003C/strong>\u003Cbr>\u003Cbr>\u003C/p>\u003Chr>\u003Cp>\u003Cspan style=\"color: #6c6c6c\">注記：本記事で紹介した \u003C/span>\u003Ccode>/migrate-endpoint\u003C/code>\u003Cspan style=\"color: #6c6c6c\">、\u003C/span>\u003Ccode>/parity-audit\u003C/code>\u003Cspan style=\"color: #6c6c6c\"> は Claude Code のカスタムスラッシュコマンド機能で構築したものです。\u003C/span>\u003C/p>",{"id":189,"eyecatch":190,"publishedAt":194,"createdAt":195,"title":196,"is_html":19,"content2":197},"paris-fashion-style-diagnosis",{"url":191,"height":192,"width":193},"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/b2e054339c6d46ca81c5a48071b7018b/thumb.jpg",3648,5472,"2026-05-22T04:35:29.476Z","2026-05-08T02:51:21.139Z","パリ流ファッションスタイル診断を受診した話","\u003Cp>久しぶりにプリンを見たら美味しそうだなと思いました。\u003C/p>\u003Cp>この記事は、社内イベント「\u003Ca href=\"https://www.s2factory.co.jp/blog/tea/\" target=\"_blank\" rel=\"noopener noreferrer nofollow\">\u003Cu>お茶会\u003C/u>\u003C/a>」での発表内容をもとにまとめたものです。\u003Cbr>今回は、弊社の tsujikado が\u003Cstrong>「パリ流ファッションスタイル診断」\u003C/strong>について話しました。\u003C/p>\u003Chr>\u003Cp>\u003Cbr>\u003Cstrong>パリ流ファッションスタイル診断\u003C/strong>というものを受診してきました。\u003Cbr>今回は、パリ流ファッションスタイル診断とはどのようなものなのか、実際に受けてみてどうだったのかを紹介します。\u003C/p>\u003Ch2 id=\"h80fac557c9\">パリ流ファッションスタイル診断とは？\u003C/h2>\u003Cp>パリ流ファッションスタイル診断は、いわゆる\u003Cstrong>イメージコンサルティングの一種\u003C/strong>です。\u003C/p>\u003Cp>イメージコンサルティングには、たとえば次のような診断があります。\u003C/p>\u003Cul>\u003Cli>\u003Cstrong>パーソナルカラー診断\u003C/strong>\u003Cul>\u003Cli>似合う色の傾向を見る診断\u003C/li>\u003C/ul>\u003C/li>\u003Cli>\u003Cstrong>骨格診断\u003C/strong>\u003Cul>\u003Cli>身体のラインや質感から、似合う服の形・素材を見る診断\u003C/li>\u003C/ul>\u003C/li>\u003Cli>\u003Cstrong>顔タイプ診断\u003C/strong>\u003Cul>\u003Cli>顔立ちの印象から、似合う服のテイストや髪型を見る診断\u003C/li>\u003C/ul>\u003C/li>\u003C/ul>\u003Cp>パリ流ファッションスタイル診断も、それらに近い診断で、\u003Cstrong>自分に似合うファッションの方向性を見ていくもの\u003C/strong>です。\u003C/p>\u003Cp>\u003Cstrong>フランス国家認定イメージコンサルタントの\u003C/strong>\u003Ca href=\"https://www.timage-paris.com/about-me/\" target=\"_blank\" rel=\"noopener noreferrer\">\u003Cstrong>トモミさん\u003C/strong>\u003C/a>\u003Cstrong>が開発したメソッド\u003C/strong>で、\u003Cstrong>10タイプ\u003C/strong>の中から、その人に合うファッションスタイルを導き出します。\u003C/p>\u003Cp>「パリ流」という名前は、創始者であるトモミさんがパリで学ばれていたことや、フランスでは内面やパーソナリティを大切にする考え方があることに由来しているそうです。そのため、この診断でも外見だけではなく、その人の雰囲気や内面も含めて見ていきます。\u003C/p>\u003Cp>現在は\u003Cstrong>トモミさんから直接学んだ門下生しか診断できない\u003C/strong>そうで、診断士の数も多くないため、受けられるサロンも限られています。\u003C/p>\u003Ch3 id=\"h5d88dedbcc\">パリ流で見る「スタイル」とは？\u003C/h3>\u003Cp>パリ流ファッションスタイル診断でいう「スタイル」とは、\u003Cstrong>その人が持つイメージや雰囲気\u003C/strong>のことを指します。\u003C/p>\u003Cp>このスタイルは、\u003Cstrong>5 つのカテゴリー、10タイプ\u003C/strong>に分けられています。10タイプを簡単に整理すると、次のようになります。\u003Cbr>\u003Cbr>\u003C/p>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/afa5124f592e4b87b50240d188f7759f/%E3%82%B9%E3%82%BF%E3%82%A4%E3%83%AB.png?w=800&amp;h=999\" alt=\"スタイル一覧\" width=\"800\" height=\"999\">\u003C/figure>\u003Cp>\u003Cbr>この診断では、10タイプの中から\u003Cstrong>「メイン」「サブ」「アクセント」\u003C/strong>を決めていきます。\u003C/p>\u003Cul>\u003Cli>\u003Cstrong>メイン\u003C/strong>\u003Cul>\u003Cli>一番強く出る要素。第一印象に近いもの。\u003C/li>\u003C/ul>\u003C/li>\u003Cli>\u003Cstrong>サブ\u003C/strong>\u003Cul>\u003Cli>メインを補い、その人らしい個性を出すもの。\u003C/li>\u003C/ul>\u003C/li>\u003Cli>\u003Cstrong>アクセント\u003C/strong>\u003Cul>\u003Cli>メインとサブだけでは表現しきれない部分を補うもの。人によっては、アクセントが付かない場合もあります。\u003C/li>\u003C/ul>\u003C/li>\u003C/ul>\u003Cp>つまり、パリ流ファッションスタイル診断は、10タイプの中から自分に合う要素を組み合わせて、自分らしいファッションの方向性を見ていく診断です。\u003C/p>\u003Cp>\u003Cstrong>「自分のスタイルに合ったファッションをすることで、その人の魅力をより引き出せる」\u003C/strong>という考え方がベースになっています。\u003C/p>\u003Ch3 id=\"ha56011c6a9\">スタイルの組み合わせでどう変わるのか\u003C/h3>\u003Cp>説明だけでは、少しイメージしづらいかもしれません。\u003C/p>\u003Cp>たとえば、\u003Cstrong>メインが「ナチュラル」、サブが「クリエイティブ」\u003C/strong>の人の場合。\u003C/p>\u003Cp>ナチュラルの要素だけで全身をまとめると、自然由来のゆったりとした服装や、無造作な髪型などがイメージされます。ただ、それだけでまとめてしまうと、\u003Cstrong>クリエイティブの要素を持つ人の個性までは引き出しきれない\u003C/strong>ことがあります。\u003C/p>\u003Cp>そこで、サブであるクリエイティブの要素を少し足していきます。たとえば、服の雰囲気とは違うビビッドなアイテムを取り入れたり、少し個性的な着こなしをしてみたりします。\u003C/p>\u003Cp>そうすることで、ナチュラルをベースにしながらクリエイティブの要素も入り、垢抜けた印象になったり、抜け感が出たりして、\u003Cstrong>その人らしさがより表現\u003C/strong>されます。\u003Cbr>\u003Cbr>\u003C/p>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/6caf6947e3ae4a029e92fe92d014ff98/%E3%83%8A%E3%83%81%E3%83%A5%E3%83%A9%E3%83%AB%C3%97%E3%82%AF%E3%83%AA%E3%82%A8%E3%82%A4%E3%83%86%E3%82%A3%E3%83%96.png?w=600&amp;h=749\" alt=\"ナチュラル×クリエイティブ\" width=\"600\" height=\"749\">\u003Cfigcaption>ナチュラルをベースに、色や小物でクリエイティブの要素を足したイメージ。\u003C/figcaption>\u003C/figure>\u003Cp>\u003Cbr>ほかにも、ナチュラル×エレガントであれば、差し色やエレガントな雰囲気のスカーフ、きれいめな形のスラックスなどを取り入れる、といった組み合わせ方もあります。\u003C/p>\u003Ch2 id=\"he1e7cbfa85\">受診しようと思った理由\u003C/h2>\u003Cp>これまでにも、パーソナルカラー診断、骨格診断、顔タイプ診断などを受けており、それぞれ次のような診断結果が出ていました。\u003C/p>\u003Cul>\u003Cli>\u003Cstrong>パーソナルカラー診断\u003C/strong>\u003Cul>\u003Cli>暗い・濃い・深い色が似合う\u003C/li>\u003C/ul>\u003C/li>\u003Cli>\u003Cstrong>骨格診断\u003C/strong>\u003Cul>\u003Cli>ジャストサイズ、下重心、縦ラインを意識した服が似合う\u003C/li>\u003C/ul>\u003C/li>\u003Cli>\u003Cstrong>顔タイプ診断\u003C/strong>\u003Cul>\u003Cli>個性的なデザインが似合う\u003C/li>\u003C/ul>\u003C/li>\u003C/ul>\u003Cp>ただ、これらは\u003Cstrong>あくまで「色」や「形」など、アイテムを構成する要素の話\u003C/strong>でもあります。\u003C/p>\u003Cp>色は濃くて、形はジャストサイズで、デザインは個性的。\u003Cbr>そう言われても、結局どんな服を選べばいいのかよくわかりません。\u003C/p>\u003Cp>それぞれの診断結果をどう組み合わせて、\u003Cstrong>最終的にどんなファッションに着地させる\u003C/strong>とよいのか。その部分を一度プロに見てもらいたいと思い、今回パリ流ファッションスタイル診断を受けてみることにしました。\u003C/p>\u003Ch2 id=\"he437eb6794\">診断を受けるまで\u003C/h2>\u003Ch3 id=\"hcd77833659\">サロン選び\u003C/h3>\u003Cp>絶対に対面で受けたかったので、まずは東京で対面診断をしているサロンを探しました。\u003Cbr>\u003Cbr>ただ、パリ流ファッションスタイル診断はそもそも\u003Cstrong>診断士が少なく\u003C/strong>、目を付けていたサロンもなぜかその時期は軒並み休業中。\u003Cstrong>サロン探しは思ったより難航\u003C/strong>しました。\u003Cbr>\u003Cbr>創始者のトモミさんはパリを拠点にしているため、対面で受けるには現地まで行く必要があります。国内にも診断を行っているサロンはありますが、パリ流を受ける前に、同じサロンでパーソナルカラー診断・骨格診断・顔タイプ診断をすべて受けてからという条件のところがあるなど、\u003Cstrong>時間や費用の面でもなかなかハードルが高め\u003C/strong>でした。\u003Cbr>\u003Cbr>最終的には、対面診断に対応していて、SNS の雰囲気からも話しやすそうだと感じた静岡の診断士の方にお願いすることに。東京出張も可能とのことだったので、\u003Cstrong>東京での出張診断を依頼\u003C/strong>しました。\u003Cbr>\u003Cbr>系統が違いそうな友人と比べながら受けたら楽しそうだったので、\u003Cstrong>ペア診断\u003C/strong>にしました。\u003C/p>\u003Cp>料金は出張費込みで、\u003Cstrong>1 人あたり27,000円\u003C/strong>。大体相場ぐらいの金額です。\u003C/p>\u003Ch3 id=\"h31fc5cbc4a\">事前準備\u003C/h3>\u003Cp>診断前のやり取りは、LINEで行いました。\u003C/p>\u003Cp>事前に送られてきたカウンセリングシートには、年齢や身長、過去に受けたイメージコンサルティング診断の結果、さらに好きなブランドや有名人などのファッションに関する項目に加えて、「自分の性格を一言で表すなら？」「服を着るときに重要視していることは？」といった\u003Cstrong>内面に関する質問\u003C/strong>もありました。\u003Cbr>\u003Cbr>そのほかに、\u003Cstrong>スタイル分析質問票という独自のアンケート\u003C/strong>にも回答。内容としては、少し MBTI に近いような印象です。\u003C/p>\u003Cp>あわせて、\u003Cstrong>普段のコーディネート写真\u003C/strong>も送ります。普段着ている服の好みや雰囲気を見てもらうためのもので、\u003Cstrong>5 枚以上が目安\u003C/strong>でした。\u003Cbr>私は診断のために写真を撮り溜めていたので、40枚くらい送りました。似合っていると思うものだけでなく、いまいちだと思う日の写真も、参考になりそうだったので混ぜています。\u003C/p>\u003Ch2 id=\"hfc6841db05\">診断当日の流れ\u003C/h2>\u003Ch3 id=\"h166a98441e\">当日に行ったこと\u003C/h3>\u003Cp>診断当日は、民家のような雰囲気の広めのレンタルスペースで行われました。\u003Cbr>当日の流れは、大きく分けると次のような感じです。\u003C/p>\u003Cul>\u003Cli>\u003Cstrong>カウンセリングシートをもとにヒアリング\u003C/strong>\u003Cul>\u003Cli>悩みや好みを改めて確認したり、送っていたコーディネート写真についてコメントをもらったりしました。\u003C/li>\u003C/ul>\u003C/li>\u003Cli>\u003Cstrong>骨格チェック\u003C/strong>\u003Cul>\u003Cli>鏡を見ながら、肩まわり、腰まわり、膝などを見てもらい、その人の骨格の特徴を確認していきます。\u003C/li>\u003C/ul>\u003C/li>\u003Cli>\u003Cstrong>アイテムを合わせてチェック\u003C/strong>\u003Cul>\u003Cli>診断士が持参した革ジャン、ジャージ、カーディガンなど、系統の違うアイテムを6種類ほど着て、似合い方を見てもらいました。\u003Cstrong>生地の軽さや柔らかさ、色、襟や袖の形、装飾品の要不要\u003C/strong>などを見ていきます。\u003C/li>\u003C/ul>\u003C/li>\u003C/ul>\u003Cp>印象的だったのはトレンチコートです。友人が着たときに「これは少しうるさすぎる」と言われ、診断士が襟や肩章をどんどん隠していきました。\u003Cstrong>最終的にはボタンなども含めてほとんど隠された状態になったのですが、その状態が一番しっくりきていて驚きました。\u003C/strong>\u003C/p>\u003Ch3 id=\"h6db3938d18\">診断結果の決まり方\u003C/h3>\u003Cp>ここまでのチェックが終わると、いよいよ診断結果を出していきます。\u003C/p>\u003Cp>ただし、「あなたはこれです」といきなり言われるわけではありません。\u003Cstrong>先ほど紹介した10タイプのスタイルを、遠いものから順番に落としていく形\u003C/strong>で診断が進みます。\u003C/p>\u003Cp>落としたスタイルについては、その都度理由を説明してくれます。「これは少し軽すぎる」「遊び心が足りない」といった感じで解説されるのですが、\u003Cstrong>中でも面白かったのが「意図せぬ生活感が出る」という表現\u003C/strong>でした。聞いていると、たしかにそうかもと納得できる部分が多かったです。\u003C/p>\u003Cp>\u003Cstrong>最後に残ったものが、メインのスタイル\u003C/strong>になります。\u003C/p>\u003Cp>メインが決まったら、次にサブとアクセントを見ていきます。ただし、\u003Cstrong>サブとアクセントは、単純に「最後まで残った順番」で決まるわけではありません\u003C/strong>。人によっては、もっと早い段階で落としたスタイルから要素を持ってくることもあるそうです。\u003C/p>\u003Cp>このあたりは、\u003Cstrong>全体のバランスを見ながら決めていく\u003C/strong>とのことでした。また、2つのスタイルで迷う場合は、事前に回答したスタイル分析質問票の内容など、\u003Cstrong>内面の傾向を考慮することもある\u003C/strong>そうです。\u003C/p>\u003Cp>こうして、私の診断結果も出してもらいました。\u003C/p>\u003Ch2 id=\"h0dbced7af6\">診断結果\u003C/h2>\u003Cp>診断の結果、私のスタイルは次のようになりました。\u003C/p>\u003Cul>\u003Cli>\u003Cstrong>メイン：クリエイティブ\u003C/strong>\u003Cul>\u003Cli>特定のスタイルに縛られない、自由度の高さを活かす。\u003C/li>\u003C/ul>\u003C/li>\u003Cli>\u003Cstrong>サブ：セクシー\u003C/strong>\u003Cul>\u003Cli>濃厚さや重さを足す。\u003C/li>\u003C/ul>\u003C/li>\u003Cli>\u003Cstrong>アクセント：シック\u003C/strong>\u003Cul>\u003Cli>好みとしても取り入れたい「強さ」を補う。\u003C/li>\u003C/ul>\u003C/li>\u003C/ul>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/3568708393cd47ffa31ef59d7580ec36/%E8%A8%BA%E6%96%AD%E7%B5%90%E6%9E%9C-1.png?w=600&amp;h=749\" alt=\"クリエイティブ、セクシー、シックをイメージしたコーディネート例\" width=\"600\" height=\"749\">\u003Cfigcaption>クリエイティブ、セクシー、シックをイメージしたコーディネート例。\u003C/figcaption>\u003C/figure>\u003Cp>\u003Cbr>キーワードとして言われたのは、\u003Cstrong>遊び心、動的エネルギー、濃厚さ、重さ\u003C/strong>です。\u003C/p>\u003Cp>10タイプの中で近いもの・遠いものを整理すると、だいたい次のような位置づけでした。\u003C/p>\u003Cul>\u003Cli>近い：クリエイティブ / セクシー / シック / ドラマティック / スポーティ\u003C/li>\u003Cli>中間：トラディショナル / ナチュラル / クラシック\u003C/li>\u003Cli>遠い：ロマンティック / エレガント\u003C/li>\u003C/ul>\u003Cp>カチッとしたものや軽さのあるものだと、私の中にある動的エネルギーを弱めてしまうそうです。一方で、スポーティ以降はどれもいけると言われていて、特定のスタイルに絞るよりも、\u003Cstrong>自由度の高さを活かす方向\u003C/strong>でメインはクリエイティブになりました。\u003Cbr>\u003Cbr>ちなみに、\u003Cstrong>一緒に受けた友人は私とかなり真逆の結果\u003C/strong>でした。\u003C/p>\u003Cul>\u003Cli>\u003Cstrong>メイン：エレガント\u003C/strong>\u003Cul>\u003Cli>上品さ、調和、清潔感を土台にする。\u003C/li>\u003C/ul>\u003C/li>\u003Cli>\u003Cstrong>サブ：ロマンティック\u003C/strong>\u003Cul>\u003Cli>パーソナルカラーや顔タイプから、フェミニンな要素を補う。\u003C/li>\u003C/ul>\u003C/li>\u003Cli>\u003Cstrong>アクセント：ナチュラル\u003C/strong>\u003Cul>\u003Cli>抜け感や軽やかさ、安心感を足す。\u003C/li>\u003C/ul>\u003C/li>\u003C/ul>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/2db774a681334dfdbdf05cd06734e4ca/%E8%A8%BA%E6%96%AD%E7%B5%90%E6%9E%9C-2.png?w=600&amp;h=749\" alt=\"エレガント、ロマンティック、ナチュラルをイメージしたコーディネート例\" width=\"600\" height=\"749\">\u003Cfigcaption>エレガント、ロマンティック、ナチュラルをイメージしたコーディネート例。\u003C/figcaption>\u003C/figure>\u003Cp>友人のキーワードは、\u003Cstrong>清潔感、上品さ、調和\u003C/strong>。そのど真ん中にあるスタイルとして、メインはエレガントになりました。\u003C/p>\u003Cul>\u003Cli>近い：エレガント / ロマンティック / ナチュラル\u003C/li>\u003Cli>中間：クラシック / トラディショナル / シック / クリエイティブ\u003C/li>\u003Cli>遠い：セクシー / スポーティ / ドラマティック\u003C/li>\u003C/ul>\u003Cp>遊びや違和感など、調和を乱すような要素はあまり入れない方がいい一方で、パーソナルカラーや顔の雰囲気にはフェミニンな要素もあるため、それを補うものとしてサブにロマンティックが入っています。\u003C/p>\u003Cp>今回は友人とかなり違う方向性の結果になったので、比べながら聞けたのも面白かったです。\u003C/p>\u003Ch2 id=\"h97dbccb5aa\">受けてみた感想\u003C/h2>\u003Cp>今回の診断は、自分で「この服いい感じかも」と思っていたものに、\u003Cstrong>太鼓判を押してもらったような体験\u003C/strong>でした。\u003C/p>\u003Cp>好きな服や、なんとなくしっくりくるファッションの系統を、要素に分解して言語化してもらえたことで、\u003Cstrong>「好きな感じ」「なんかいい感じ」を前より目指しやすくなった\u003C/strong>気がします。\u003C/p>\u003Cp>ただ、「これを着れば正解です」と答えを決めてもらえる診断ではありません。教えてもらった人やアイテムのすべてにぴんと来たわけではないので、診断結果をヒントにしながら、最終的には自分で模索していくものなのだと思います。\u003C/p>\u003Cp>それでも、今日の服が少しいまいちかもと思ったときに、どこを調整すればよさそうか考えやすくなりました。自分の雰囲気をポジティブな言葉で表現してもらえるのも、普通に気分が上がります。\u003C/p>\u003Cp>否定されたり、苦手なものを押し付けられたりすることもなく、\u003Cstrong>安心して受けられる診断\u003C/strong>でした。\u003Cbr>パリ流ファッションスタイル診断に興味を持った方は、ぜひ一度受けてみてください。\u003C/p>",{"id":199,"eyecatch":200,"publishedAt":204,"createdAt":205,"title":206,"is_html":19,"content2":207},"corporate-ekiden2026",{"url":201,"height":202,"width":203},"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/b1ebcac8eef144d487735eec83906973/%E9%9B%86%E5%90%88%E5%86%99%E7%9C%9F.jpg",4284,5712,"2026-05-14T07:11:43.569Z","2026-05-13T03:02:02.207Z","今年も企業対抗駅伝に出場しました","\u003Cp>昨年に続き、今年も\u003Cstrong>企業対抗駅伝に参加\u003C/strong>しました。\u003Cbr>\u003Cstrong>S2 では昨年から「S2 Running Club」、通称「S2RC」というランニングチームを結成\u003C/strong>し、企業対抗駅伝に出場しています。\u003Cbr>\u003Cbr>この記事では、\u003Cstrong>2 年目となる今年の準備と、大会当日の様子\u003C/strong>を振り返りたいと思います。\u003C/p>\u003Cp>\u003Cspan style=\"color: #949494\">昨年の様子はこちら。\u003C/span>\u003C/p>\u003Cdiv class=\"iframely-embed\">\u003Cdiv class=\"iframely-responsive\" style=\"height: 140px; padding-bottom: 0;\">\u003Ca href=\"https://www.s2factory.co.jp/blog/corporate-ekiden2025/\" data-iframely-url=\"https://cdn.iframe.ly/api/iframe?card=small&amp;url=https%3A%2F%2Fwww.s2factory.co.jp%2Fblog%2Fcorporate-ekiden2025%2F&amp;key=c271a3ec77ff4aa44d5948170dd74161\">\u003C/a>\u003C/div>\u003C/div>\u003Cscript async src=\"https://cdn.iframe.ly/embed.js\" charset=\"utf-8\">\u003C/script>\u003Ch2 id=\"h93f3e97420\">企業対抗駅伝とは\u003C/h2>\u003Cp>企業対抗駅伝はその名の通り、\u003Cstrong>企業ごとにチームを組んで参加する駅伝イベント\u003C/strong>です。\u003Cbr>東京大会と大阪大会があり、今年の東京大会は 5 月 10 日にお台場・セントラル広場で開催されました。\u003Cbr>今回は \u003Cstrong>650 チーム以上がエントリー\u003C/strong>したそうです。\u003Cbr>\u003Cbr>\u003C/p>\u003Cdiv style=\"left: 0; width: 100%; height: 0; position: relative; padding-bottom: 56.25%;\">\u003Ciframe src=\"https://www.youtube.com/embed/s6Lxedlcl7c?rel=0\" style=\"top: 0; left: 0; width: 100%; height: 100%; position: absolute; border: 0;\" allowfullscreen scrolling=\"no\" allow=\"accelerometer *; clipboard-write *; encrypted-media *; gyroscope *; picture-in-picture *; web-share *;\" referrerpolicy=\"strict-origin\">\u003C/iframe>\u003C/div>\u003Cp>\u003Cbr>\u003Ca href=\"https://sportsone.jp/ed/2026/event_tokyo.html\" target=\"_blank\" rel=\"noopener noreferrer\">種目\u003C/a>は以下の 3 つ。\u003C/p>\u003Cul>\u003Cli>\u003Cstrong>企業対抗駅伝(5 km× 5 区間＝計 25km)\u003C/strong>\u003Cul>\u003Cli>男性の部\u003C/li>\u003Cli>女性の部\u003C/li>\u003Cli>男女混合の部\u003C/li>\u003C/ul>\u003C/li>\u003Cli>\u003Cstrong>企業対抗ファン駅伝(2 km× 3 区間＝計 6km)\u003C/strong>\u003Cul>\u003Cli>男性の部\u003C/li>\u003Cli>女性の部\u003C/li>\u003Cli>男女混合の部\u003C/li>\u003C/ul>\u003C/li>\u003Cli>\u003Cstrong>エンジョイリレーマラソン(1 周 2 km× 10 周＝計 20km)\u003C/strong>\u003Cul>\u003Cli>一般男性の部\u003C/li>\u003Cli>女性の部\u003C/li>\u003Cli>一般男女混合の部\u003C/li>\u003Cli>企業対抗の部\u003C/li>\u003C/ul>\u003C/li>\u003C/ul>\u003Cp>\u003Cstrong>弊社は昨年に続き、エンジョイリレーマラソンに 6 人で参加\u003C/strong>しました。\u003Cstrong>1 周 2km のコースをチームで 10 周し、合計 20km を走る種目\u003C/strong>。スタートは 14 時からで、午後に行われる部門です。\u003C/p>\u003Cp>昨年は初参加だったこともあり、普段からランニングをしているメンバーが多めに走ってくれたのですが、今年は一度走ってみて「意外といけそう」という感覚もあり、1 人 2 周を走るメンバーが増えました。\u003C/p>\u003Cp>\u003Cstrong>計測は IC チップ\u003C/strong>で行われます。チップは大会側で用意される襷に入っており、ゴール後にはタイムが記録された\u003Cstrong>完走証\u003C/strong>も発行されます。\u003Cbr>さらに、順位表彰のほか、業界別・企業規模別・年代別・役職別などのランキングもあり、結果は公式サイトで公開されているそうです。\u003C/p>\u003Ch2 id=\"h920f835f68\">チームTシャツを今年仕様にアップデート\u003C/h2>\u003Cp>\u003Cstrong>昨年の企業対抗駅伝では、S2RC のチーム T シャツを制作\u003C/strong>しました。\u003Cbr>2 年目となる今回は、その T シャツに\u003Cstrong>追加でプリント\u003C/strong>を施し、\u003Cstrong>アップデート\u003C/strong>することに。\u003Cbr>デザインは、昨年に続き弊社デザインチームが考案しています。\u003Cbr>\u003Cbr>胸元には、S2RC のロゴの下に\u003Cstrong>小さな星を追加\u003C/strong>しました。\u003Cbr>\u003Cbr>\u003C/p>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/7262f64e33f345b4bc9ac33d6d1272c9/%E6%98%9F%E3%81%AE%E3%83%9E%E3%83%BC%E3%82%AF.jpeg?w=400&amp;h=533\" alt=\"\" width=\"400\" height=\"533\">\u003C/figure>\u003Cp>\u003Cbr>この星は、\u003Cstrong>ランニングイベントへの参加回数\u003C/strong>を表しています。参加するたびに星を増やしていく想定で、今年は昨年分の星をひとつ追加しました。\u003C/p>\u003Cp>背面には、もともとプリントされていた「S2RC」の文字に加えて、\u003Cstrong>「S」の上に点線のプリントを追加\u003C/strong>しました。\u003Cbr>\u003Cbr>\u003C/p>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/2ae39d17ee1b43b3aa3f20571ceda5ee/%E8%83%8C%E4%B8%AD%E3%81%AE%E3%83%97%E3%83%AA%E3%83%B3%E3%83%88.jpeg\" alt=\"背中のプリント\" width=\"2000\" height=\"2667\">\u003C/figure>\u003Cp>\u003Cbr>去年、背面の「S2RC」をプリントしたときは、\u003Cstrong>Tシャツの生地、文字の位置や線の太さ、色を各メンバーがそれぞれ選んだのですが\u003C/strong>、今年から加わった新メンバーも、同じように自分の T シャツをカスタマイズしてプリントしました。\u003Cbr>\u003Cbr>追加した点線も、「S」の上に重ねることは決まっていますが、\u003Cstrong>色や細かな位置は自由\u003C/strong>です。\u003Cbr>元の「S」の真ん中に重ねる人もいれば、端に寄せてプリントする人もいます。\u003Cbr>\u003Cbr>\u003C/p>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/4ce61187c8a14844b5126de9147cc602/%E5%8D%B0%E5%88%B7-1.jpg\" alt=\"\" width=\"5712\" height=\"4284\">\u003C/figure>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/1625201c658941d6ad48226c81143226/%E5%8D%B0%E5%88%B7-2.jpg\" alt=\"\" width=\"4032\" height=\"3024\">\u003C/figure>\u003Cp>\u003Cbr>\u003Cstrong>同じチーム T シャツでありながら、よく見ると一枚ずつ仕上がりが違う\u003C/strong>。\u003Cstrong>Tシャツごとにそれぞれの個性\u003C/strong>が出ているのも、自分たちでプリントする面白さです。\u003Cbr>\u003Cbr>ちなみにプリント作業には、シルクスクリーンキット「\u003Ca href=\"https://surimacca.com/\" target=\"_blank\" rel=\"noopener noreferrer\">SURIMACCA\u003C/a>」を使用しました。\u003Cbr>SURIMACCA は、以前開催した\u003Cstrong>ファミリーデー\u003C/strong>でも使ったのですが、T シャツやグッズを自分たちで作れるので、社内イベントとの相性がよく、今回の T シャツ制作でも活躍しました。\u003Cbr>\u003Cbr>\u003C/p>\u003Cdiv class=\"iframely-embed\">\u003Cdiv class=\"iframely-responsive\" style=\"height: 140px; padding-bottom: 0;\">\u003Ca href=\"https://www.s2factory.co.jp/blog/family-day-2/\" data-iframely-url=\"https://cdn.iframe.ly/api/iframe?card=small&amp;url=https%3A%2F%2Fwww.s2factory.co.jp%2Fblog%2Ffamily-day-2%2F&amp;key=c271a3ec77ff4aa44d5948170dd74161\">\u003C/a>\u003C/div>\u003C/div>\u003Cscript async src=\"https://cdn.iframe.ly/embed.js\" charset=\"utf-8\">\u003C/script>\u003Cdiv class=\"iframely-embed\">\u003Cdiv class=\"iframely-responsive\" style=\"height: 140px; padding-bottom: 0;\">\u003Ca href=\"https://www.s2factory.co.jp/blog/family-day/\" data-iframely-url=\"https://cdn.iframe.ly/api/iframe?card=small&amp;url=https%3A%2F%2Fwww.s2factory.co.jp%2Fblog%2Ffamily-day%2F&amp;key=c271a3ec77ff4aa44d5948170dd74161\">\u003C/a>\u003C/div>\u003C/div>\u003Cscript async src=\"https://cdn.iframe.ly/embed.js\" charset=\"utf-8\">\u003C/script>\u003Ch2 id=\"h821c40c86f\">大会当日\u003C/h2>\u003Cp>大会当日は、お台場・セントラル広場のガンダム前に集合しました。\u003Cbr>\u003Cbr>\u003C/p>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/e26d567b57194c91abb057573527fb78/%E3%82%AC%E3%83%B3%E3%83%80%E3%83%A0.jpg?w=387&amp;h=516\" alt=\"ガンダム前に集合\" width=\"387\" height=\"516\">\u003C/figure>\u003Cp>\u003Cbr>この日は雲ひとつない青空。日陰に入ると涼しさもありましたが、日向は太陽が眩しく、かなり暑く感じるコンディションでした。昨年は曇り空で風も強かったため、同じ会場でもかなり違う印象です。\u003Cbr>会場には、すでに多くの企業チームが集まっており、チームウェアや揃いのTシャツを着ている参加者も多く、企業対抗イベントらしい雰囲気があります。\u003Cbr>\u003Cbr>会場に着いたあとは、空いているスペースを見つけて待機場所を確保。着替えを済ませ、配布されたゼッケンをチームTシャツに安全ピンで留めていきます。\u003Cbr>\u003Cbr>\u003C/p>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/7cedb2134ff9466b8bdc6b862cbd1d84/%E3%82%BC%E3%83%83%E3%82%B1%E3%83%B3.JPG?w=900&amp;h=600\" alt=\"\" width=\"900\" height=\"600\">\u003C/figure>\u003Cp>\u003Cbr>その後は、チーム内で出走順を確認。1 走目のメンバーは、スタートに向けてストレッチや準備運動を行います。\u003Cbr>他のメンバーも、自分の出番はまだ先なのに、なんとなくそわそわしながら体を伸ばしていました。\u003Cbr>\u003Cbr>14 時前になると、スタート地点に参加者が並び始めます。\u003Cstrong>前方には、速いペースで走る予定の人たちが並び、その後ろに各チームのランナー\u003C/strong>が続いていきます。\u003Cbr>\u003Cbr>14 時 5 分、エンジョイリレーマラソンがスタートしました。\u003Cbr>コースは 1 周 2km。距離だけ見ると短く感じますが、実際に走ってみると\u003Cstrong>アップダウン\u003C/strong>もあり、結構体力を使います。周りにも多くのランナーがいるため、ペースに惑わされず、自分のリズムで走ることも大切です。\u003Cbr>\u003Cbr>\u003C/p>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/8a5532e60d7c4f5f994344a01f113f92/%E4%BC%81%E6%A5%AD%E5%AF%BE%E6%8A%97%E9%A7%85%E4%BC%9D.jpg\" alt=\"\" width=\"4284\" height=\"3777\">\u003C/figure>\u003Cp>\u003Cbr>走り終えたメンバーから次のメンバーへ、順番に襷をつないでいきます。\u003Cbr>差し入れを持って\u003Cstrong>応援に駆けつけてくれたスタッフ\u003C/strong>もいて、コース脇から旗を振ってランナーを応援してくれました。\u003Cbr>\u003Cbr>\u003C/p>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/1a2e3cb5b86542dea08d27381c5154b1/%E5%BF%9C%E6%8F%B4.JPG\" alt=\"\" width=\"3120\" height=\"2080\">\u003C/figure>\u003Cp>\u003Cbr>結果は、\u003Cstrong>1 時間49分16秒\u003C/strong>。\u003Cbr>\u003Cbr>\u003Cstrong>昨年の記録は 1 時間57分11秒\u003C/strong>だったので、約 8 分タイムを縮めることができました。\u003Cbr>タイムが縮まったことも嬉しい結果ですが、何より無事誰も倒れることなく、最後まで走り切れたのがよかったです。\u003Cbr>\u003Cbr>\u003C/p>\u003Cfigure>\u003Cimg src=\"https://images.microcms-assets.io/assets/0eb919b93c74437dbd287ab903d9ea2c/03e98cede20c4668a4249a07043dee07/%E5%AE%8C%E8%B5%B0%E8%A8%BC.jpg\" alt=\"\" width=\"3072\" height=\"2349\">\u003C/figure>\u003Ch2 id=\"ha214098e44\">まとめ\u003C/h2>\u003Cp>今年も無事に、企業対抗駅伝を走り切ることができました。\u003Cbr>昨年よりタイムも縮まり、2 年目としてはいい結果になったと思います。走り終わったあとには、\u003Cstrong>来年はメンバーを増やして、チームを分けて出場してみるのもよさそう\u003C/strong>だという話も出ていました。\u003Cbr>\u003Cbr>企業対抗駅伝に限らず、参加できそうなランニングイベントがあれば、また挑戦してみたいところです。\u003Cbr>チームで集まって、公園などで走る機会も作れたらと思います。\u003Cbr>\u003Cbr>S2 では、\u003Cstrong>ランニング部以外にもいろいろな部活動が有志で活動\u003C/strong>しています。\u003Cbr>仕事以外のコミュニケーションの場として、こうした活動も無理なく続いていくとよさそうです。\u003C/p>",171,0,3,{"contents":212,"totalCount":421,"offset":209,"limit":422},[213,216,219,222,225,228,231,233,236,238,241,244,247,250,253,256,258,261,264,265,268,271,274,277,280,283,286,288,291,294,297,300,301,303,306,309,312,315,318,321,324,327,330,333,336,339,342,344,345,348,349,351,352,355,358,361,364,367,369,372,375,378,381,384,387,390,393,396,399,402,403,406,409,412,415,418],{"id":214,"name":215},"ai","AI",{"id":217,"name":218},"workshop","ワークショップ",{"id":220,"name":221},"tool","ツール",{"id":223,"name":224},"office","オフィス",{"id":226,"name":227},"internal-project","社内案件",{"id":229,"name":230},"event","イベント",{"id":172,"name":232},"IoT",{"id":234,"name":235},"art","アート",{"id":167,"name":237},"引越し",{"id":239,"name":240},"picture","映像",{"id":242,"name":243},"plant","植物",{"id":245,"name":246},"company-trip","社員旅行",{"id":248,"name":249},"health","健康",{"id":251,"name":252},"exercise","運動",{"id":254,"name":255},"bicycle-club","自転車部",{"id":169,"name":257},"PR",{"id":259,"name":260},"interview","Interview",{"id":262,"name":263},"recruiting","採用",{"id":41,"name":45},{"id":266,"name":267},"history","歴史",{"id":269,"name":270},"life","生活",{"id":272,"name":273},"club","部活動",{"id":275,"name":276},"character","キャラクター",{"id":278,"name":279},"food","食",{"id":281,"name":282},"math","数学",{"id":284,"name":285},"alcohol","酒",{"id":80,"name":287},"インフラ",{"id":289,"name":290},"application","アプリ",{"id":292,"name":293},"parenting","子育て",{"id":295,"name":296},"data","通信",{"id":298,"name":299},"migration","地方移住",{"id":26,"name":29},{"id":302,"name":302},"esports",{"id":304,"name":305},"look-back","振り返り",{"id":307,"name":308},"animal","動物",{"id":310,"name":311},"css","CSS",{"id":313,"name":314},"game","ゲーム",{"id":316,"name":317},"typescript","TypeScript",{"id":319,"name":320},"management","マネジメント",{"id":322,"name":323},"remote-work","リモートワーク",{"id":325,"name":326},"frame-work","フレームワーク",{"id":328,"name":329},"music","音楽",{"id":331,"name":332},"money","お金",{"id":334,"name":335},"covid-19","コロナ",{"id":337,"name":338},"railway","鉄道",{"id":340,"name":341},"agriculture","農業",{"id":147,"name":343},"趣味",{"id":21,"name":24},{"id":346,"name":347},"personal-computer","PC",{"id":31,"name":34},{"id":61,"name":350},"技術",{"id":36,"name":39},{"id":353,"name":354},"mental-health","メンタルヘルス",{"id":356,"name":357},"frontend","フロントエンド",{"id":359,"name":360},"pilates","ピラティス",{"id":362,"name":363},"backend","バックエンド",{"id":365,"name":366},"tunnel","トンネル",{"id":100,"name":368},"デザイン",{"id":370,"name":371},"sports","スポーツ",{"id":373,"name":374},"online","オンライン",{"id":376,"name":377},"internship","インターンシップ",{"id":379,"name":380},"animation","アニメーション",{"id":382,"name":383},"virtual-reality","VR",{"id":385,"name":386},"ssl","SSL",{"id":388,"name":389},"perl","Perl",{"id":391,"name":392},"operating-system","OS",{"id":394,"name":395},"ios","iOS",{"id":397,"name":398},"google","Google",{"id":400,"name":401},"deeplearning","DeepLearning",{"id":16,"name":18},{"id":404,"name":405},"apple","Apple",{"id":407,"name":408},"api","API",{"id":410,"name":411},"3-d","3D",{"id":413,"name":414},"school","学校",{"id":416,"name":417},"blender","Blender",{"id":419,"name":420},"android","Android",76,200,{"contents":424,"totalCount":210,"offset":209,"limit":210},[425,479,544],{"id":426,"createdAt":427,"updatedAt":428,"publishedAt":429,"revisedAt":428,"title":430,"category":431,"thumbnail":440,"image":444,"content":453,"keyword":454,"client":469,"team":470,"url":474,"release":475,"status":476,"top":19,"blog":46,"service":478},"phpj-noel-2025","2025-12-15T06:18:04.117Z","2026-06-17T08:10:29.660Z","2026-03-05T04:15:03.177Z","PIERRE HERMÉ PARIS | NOËL 2025",[432,437],{"id":433,"createdAt":434,"updatedAt":435,"publishedAt":434,"revisedAt":434,"name":436},"web","2024-03-22T05:33:05.262Z","2024-06-24T23:16:42.692Z","ウェブ制作",{"id":100,"createdAt":438,"updatedAt":438,"publishedAt":438,"revisedAt":438,"name":439},"2024-03-22T05:34:30.127Z","デザイン＆ディレクション",{"url":441,"height":442,"width":443},"https://images.microcms-assets.io/assets/d6dcb8ec530642e7a9b0d0c0a93bf874/47e7b069013a45b8b6e931ec132bd272/thumb.png",900,1200,[445,449,451],{"url":446,"height":447,"width":448},"https://images.microcms-assets.io/assets/d6dcb8ec530642e7a9b0d0c0a93bf874/43a703ebe8d7467aac2c995378cb081e/1.png",1800,2400,{"url":450,"height":447,"width":448},"https://images.microcms-assets.io/assets/d6dcb8ec530642e7a9b0d0c0a93bf874/6aed2d670822422696329a5cb3a6877f/2.png",{"url":452,"height":447,"width":448},"https://images.microcms-assets.io/assets/d6dcb8ec530642e7a9b0d0c0a93bf874/b691d73151a94dcf9d60a6f8af436eac/3.png","\u003Cp>昨年に続き、ホリデーシーズン限定の『NOËL 2025』スペシャルサイトを、\u003Cstrong>デザインとフロントエンドで担当\u003C/strong>しました。\u003Cbr>\u003Cbr>\u003Cstrong>「深海(アビス)」をテーマ\u003C/strong>に、鮮やかな青から徐々に暗く沈んでいくグラデーションで、海の中を潜っていくような体験を表現。泡や珊瑚、砂などのモチーフを取り入れ、ページ全体で海中の世界を感じられる構成に仕上げました。\u003Cbr>\u003Cbr>砂や泡の表現にはWebGLとGPGPUを用い、数万単位のパーティクルをGPUで並列処理することで滑らかな動作を実現。一部テキストは3D描画で演出しながら、DOM上にも同内容を配置し、表現とSEOの両立を図りました。\u003Cbr>また、Safariなどブラウザ差異による負荷を考慮し、SVGからCanvasへ置き換えるなど最適化を実施。視覚的な印象を保ちながら、各環境で安定して動作するよう設計しています。\u003Cbr>\u003Cbr>\u003Cstrong>デザインと実装の両面から、制作の背景やポイントについてブログで詳しく解説\u003C/strong>しています。\u003C/p>",[455,459,464],{"id":456,"createdAt":457,"updatedAt":458,"publishedAt":457,"revisedAt":458,"name":357,"filter":46,"page":46},"ice0h9h9ap","2024-06-28T01:14:44.830Z","2025-01-15T07:40:01.729Z",{"id":460,"createdAt":461,"updatedAt":462,"publishedAt":461,"revisedAt":462,"name":463,"filter":46,"page":46},"6ncqc37v7nzq","2024-06-28T01:14:12.293Z","2025-01-15T07:39:08.437Z","デザインプロジェクト",{"id":465,"createdAt":466,"updatedAt":467,"publishedAt":466,"revisedAt":467,"name":468,"filter":46,"page":46},"ztrz9np70v","2024-06-28T01:14:41.050Z","2025-01-15T07:40:30.428Z","コンセプトメイキング"," PH PARIS JAPON 株式会社",[471],{"fieldId":472,"title":473},"teamField","S2ファクトリー","https://www.s2factory.co.jp/blog/noel2025/","2025.10.17",[477],"公開中",[],{"id":480,"createdAt":481,"updatedAt":482,"publishedAt":481,"revisedAt":482,"title":483,"category":484,"thumbnail":491,"image":495,"content":500,"keyword":501,"client":483,"team":516,"url":539,"release":540,"status":541,"statusText":542,"top":46,"blog":46,"service":543},"tamabi","2024-06-28T01:58:38.788Z","2025-05-27T03:25:42.261Z","多摩美術大学",[485,486],{"id":433,"createdAt":434,"updatedAt":435,"publishedAt":434,"revisedAt":434,"name":436},{"id":487,"createdAt":488,"updatedAt":489,"publishedAt":488,"revisedAt":488,"name":490},"system","2024-03-22T05:33:52.708Z","2024-06-24T23:16:53.739Z","システム開発",{"url":492,"height":493,"width":494},"https://images.microcms-assets.io/assets/d6dcb8ec530642e7a9b0d0c0a93bf874/dea8e004e627415c80bf7b8d622bb4b9/tamabi-thumbnail-1.png",456,600,[496],{"url":497,"height":498,"width":499},"https://images.microcms-assets.io/assets/d6dcb8ec530642e7a9b0d0c0a93bf874/a000f3cedf5d474d83c5b70e8c11db4e/tamabi-other-1.png",1305,1740,"\u003Cp>「多摩美術大学」ウェブサイトリニューアルのお手伝いをさせていただきました。\u003Cbr>\u003Cbr>サイトのコンテンツを大幅に整理し、運用効率を考慮した再利用しやすく組み合わせやすいUIコンポーネントを構築。また多くの方に利用していただけるようにアクセシビリティの向上にも注力しました。\u003Cbr>インフラは、従来のオンプレミスとクラウドが混在していた環境から、AWS への段階的な移行を進めており、今後の完全移行に向けた準備も進行中です。 \u003Cbr>\u003Cbr>弊社は、フロントエンドとバックエンドの実装、インフラ構築を担当しました。\u003C/p>",[502,506,510,515],{"id":503,"createdAt":504,"updatedAt":505,"publishedAt":504,"revisedAt":505,"name":18,"filter":46,"page":46},"uftrxsmd0v72","2024-06-28T01:14:13.671Z","2025-01-15T07:39:25.538Z",{"id":507,"createdAt":508,"updatedAt":508,"publishedAt":508,"revisedAt":508,"name":509,"filter":19,"page":19},"yctx9hzd4","2024-06-28T01:14:33.743Z","Lambda",{"id":511,"createdAt":512,"updatedAt":513,"publishedAt":512,"revisedAt":513,"name":514,"filter":46,"page":46},"u84cy0fbzno","2024-06-28T01:14:39.521Z","2025-01-15T07:40:41.433Z","Cloud",{"id":456,"createdAt":457,"updatedAt":458,"publishedAt":457,"revisedAt":458,"name":357,"filter":46,"page":46},[517,520,523,526,529,532,535,538],{"fieldId":472,"title":518,"link":519},"萩原 俊矢","https://shunyahagiwara.com/#/works",{"fieldId":472,"title":521,"link":522},"GrandBase Inc.","https://www.grandbase.jp/",{"fieldId":472,"title":524,"link":525},"DSCL Inc.","https://dscl.jp/",{"fieldId":472,"title":527,"link":528},"株式会社トラフィックス","https://traffics.jp/",{"fieldId":472,"title":530,"link":531},"株式会社カンバセーションズ","https://qonversations.jp/",{"fieldId":472,"title":533,"link":534},"Measurements Inc.","https://www.measurements.co.jp/",{"fieldId":472,"title":536,"link":537},"tha ltd.","https://tha.jp/",{"fieldId":472,"title":473},"https://www.tamabi.ac.jp/","2024.4.4",[477],null,[436],{"id":545,"createdAt":546,"updatedAt":547,"publishedAt":546,"revisedAt":547,"title":548,"category":549,"thumbnail":551,"image":553,"content":562,"keyword":563,"client":536,"team":579,"url":585,"release":586,"status":587,"statusText":542,"top":19,"blog":46,"service":588},"humanity","2024-06-28T01:56:51.507Z","2025-05-27T03:26:34.287Z","HUMANITY",[550],{"id":487,"createdAt":488,"updatedAt":489,"publishedAt":488,"revisedAt":488,"name":490},{"url":552,"height":493,"width":494},"https://images.microcms-assets.io/assets/d6dcb8ec530642e7a9b0d0c0a93bf874/740adb4e02c54fee97d12025df5f16a0/humanity-thumbnail-1.png",[554,556,558,560],{"url":555,"height":498,"width":499},"https://images.microcms-assets.io/assets/d6dcb8ec530642e7a9b0d0c0a93bf874/2a10b034854d40e789d38ac33e0a3c4e/humanity-other-1.png",{"url":557,"height":498,"width":499},"https://images.microcms-assets.io/assets/d6dcb8ec530642e7a9b0d0c0a93bf874/1091c52a97f745e5a3fc105bd0e542dc/humanity-other-2.png",{"url":559,"height":498,"width":499},"https://images.microcms-assets.io/assets/d6dcb8ec530642e7a9b0d0c0a93bf874/613c8c836fff40119e9f85097262399d/humanity-other-3.png",{"url":561,"height":498,"width":499},"https://images.microcms-assets.io/assets/d6dcb8ec530642e7a9b0d0c0a93bf874/3a9dfb8cce0d4ec887ead3d3998be04c/humanity-other-4.png","\u003Cp>『HUMANITY』は、インターフェース／ビジュアルデザイナーの中村勇吾氏とゲームクリエイター水口哲也氏のタッグによって制作された PlayStation 5(PS VR2対応)、PlayStation 4(PS VR対応)、Steam(PC用VR対応)用アクションパズルゲームです。\u003Cbr>\u003Cbr>プレイヤーは柴犬を操作して、自我を失った人類を導きゴールを目指します。\u003Cbr>メインのストーリーモードには 90 以上のステージを収録。さらに「STAGE CREATOR」では、自分だけのオリジナルステージを作って全世界のプレイヤーにシェアが可能です。また「USER STAGES」では、他のプレイヤーがシェアしたステージが公開され、カスタムのプレイリストや、タグを使用して検索し、お気に入りのステージを発見・チャレンジできます。\u003Cbr>\u003Cbr>弊社はゲームのコミュニティ機能のバックエンドと管理ツールの作成、インフラを担当しました。\u003C/p>",[564,569,574,575],{"id":565,"createdAt":566,"updatedAt":567,"publishedAt":566,"revisedAt":567,"name":568,"filter":46,"page":46},"fg8e4c9nl","2024-06-28T01:14:04.517Z","2025-01-15T07:36:58.970Z","CMS",{"id":570,"createdAt":571,"updatedAt":572,"publishedAt":571,"revisedAt":572,"name":573,"filter":46,"page":46},"p6qgoo2k9vl9","2024-06-28T01:14:06.759Z","2025-01-15T07:37:22.466Z","大規模データ",{"id":511,"createdAt":512,"updatedAt":513,"publishedAt":512,"revisedAt":513,"name":514,"filter":46,"page":46},{"id":576,"createdAt":577,"updatedAt":578,"publishedAt":577,"revisedAt":578,"name":314,"filter":46,"page":46},"pxnv6cy2u","2024-06-28T01:14:45.570Z","2025-01-15T07:39:54.004Z",[580,583,584],{"fieldId":472,"title":581,"link":582},"Enhance","https://enhance-experience.com/ja/",{"fieldId":472,"title":536,"link":537},{"fieldId":472,"title":473},"https://humanity.game/ja/","2023.5.16",[477],[490],1782104174542]