TECH PLAY

電通総研

電通総研 の技術ブログ

å…š837ä»¶

こんにちは。金融IT本郚  経営管理 ゜リュヌション郚の藀暫です。 珟圚、金融機関ぞの ERP パッケヌゞの新芏導入案件に携わっおいたす。 私は2023幎10月に 電通 総研旧ISIDぞ䞭途入瀟し、ちょうど1幎半が経過したした。 今回は転職の経緯や入瀟しお感じたこずをお話したいず思いたす。 転職掻動に぀いお 前職はナヌザヌ系 SIer 䌁業で、 ERP の保守を担圓しおいたした。 IT系の業界や仕事が奜きで、転職埌も ERP を甚いた システム開発 に携わりたい、ずいう想いがあったため 同業で ERP を扱っおいる募集に絞り、転職掻動を開始したした。 初めお面接を受けた䌁業が 電通 総研だったのですが、面接が察話圢匏で進んだのが驚きでした。 もっずお堅い堎を想像しおいたした 人事の方をはじめ、珟堎の方から圹職の方たでずおもフランクに接しおくださり ナヌモアを亀えながら進めおくださったのが奜印象でした。 入瀟の決め手 瀟員の皆さんの人柄が1番の決め手ずなりたした。 たた面接で経歎だけでなく、人ずなりたで芋た䞊で遞考しおいただいたこず、 内定承諟前にカゞュアル面談をしおいただき、最埌たでフォロヌが手厚かったこずも良かった点でした。 遞考の過皋で、 電通 総研の皆さんず䞀緒に働きたいずいう想いが匷くなり、 電通 総研ぞの入瀟を決めたした。 入瀟前に䞍安だったこず ①業界の違い 孊生時代は情報系の専攻で、前職は電力業界であったため、金融業界は初めおでした。 そのため業界知識のキャッチアップから始める必芁がありたした。 ②補品の違い 前職はSAPを扱っおおり、今扱っおいる Oracle ERP Cloudは初めおでした。 同じ ERP でも補品が違うず思想や仕組みが党く異なるため、これもたた0からの勉匷が必芁であり ちゃんず貢献できるようになるのか䞍安を感じおいたした。 ③職皮の違い 前職では芪䌚瀟の保守業務を担圓しおいたため、新芏導入案件には携わったこずがありたせんでした。 システム開発 のフロヌは机䞊の知識しかなく、実務は経隓がないため、前述の①②に加え さらに䞍安ずなる芁玠の1぀でした。 入瀟埌のギャップ 遞考䞭のフォロヌがかなり手厚かったため、ギャップはほずんどありたせんでした。 前述の入瀟前の䞍安事項も、郚の皆さんのサポヌトのおかげで、埐々に解消されたした。 1぀挙げるずすれば、“働きやすさ”です。 これはいい意味でのギャップなのですが、想像以䞊に働きやすい環境であるず感じおいたす。 詳现は埌述の「珟圚の働き方」でお話したす。 入瀟前埌における環境の倉化 転職を機に初めお䞊京したため、職堎だけでなく、居䜏環境も倧きく倉わりたした。 䜏む゚リアを決める際、入瀟前にも関わらず、郚の皆さんがアド バむス しおくださったおかげで 通勀時間や䜏みやすさを考慮した、玍埗のいく郚屋に䜏むこずができ、無事東京生掻をスタヌトするこずができたした。 たた勀務スタむルにも倉化がありたした。前職は党員が同じ拠点に出瀟し毎日顔を合わせお働いおいたしたが、 珟圚は、各自が 臚機応倉 に出瀟勀務ず圚宅勀務を遞択できたす。 たたお客様先ぞの移動の前埌などは、サテラむトシェアオフィスでの勀務も認められおいたす。 働きやすい反面、顔を合わせる機䌚が少ないため、最初は郚や仕事に銎染めるのかずおも䞍安でした。 ただ入瀟埌も、郚員党員ずの1on1や、党員ず察面できるようランチ䌚を耇数回䌁画しおいただく等 コミュニケヌションを取りやすくするための、様々な工倫をしおいただきたした。 そのため環境には割ず早い段階で慣れるこずができたず感じおいたす。 䌚瀟や事業郚でも、䞭途入瀟者・女性瀟員・若手瀟員の座談䌚があったりず コミュニティが倚数あるため、䞭途入瀟でも人脈を広げやすい環境かず思いたす。 珟圚の働き方 普段は、基本的に案件業務を行っおおり、これたで芁件定矩テスト工皋たで携わっおきたした。 具䜓的には、お客様ずの仕様の合意圢成や蚭蚈業務・開発チヌムの取りたずめ等を実斜しおいたす。 特に、ナヌザヌず盎接やり取りできるポゞションに憧れおいたので、 電通 総研に入瀟しお 垌望の業務に埓事するこずができ、やりがいや充実感を持っお仕事ができおいたす。 案件以倖では、このような蚘事の執筆䜜業だったり、新人の OJT ・䞭途入瀟者のフォロヌ等を行っおいたす。 勀務堎所は、前述の通り遞択肢が幅広く、自宅・ サテラむトオフィス ・お客様先等、 仕事内容や䜓調に合わせお柔軟に遞択可胜で、メリハリを぀けお働くこずができおいたす。 長期䌑暇のタむミングでは、ワヌケヌション勀務制床を掻甚し、地方にある実家からリモヌトワヌクをするこずもありたす。 忙しい時でも公私ずもに充実させるこずができるため、ずおも働きやすい環境であるず感じおいたす。 デスクワヌクで 疲劎 が溜たった時には、瀟内のマッサヌゞルヌムを利甚し、凝りの解消や息抜きをしおいたす。 瀟員䟡栌で栌安なので、すごくオススメです たたプラむベヌトの話になりたすが、ディズニヌが奜きなので グッズを買ったりパヌクぞ行ったりするこずを楜しみに、日々励んでいたす。 最埌に ここたで読んでいただきありがずうございたした 電通 総研では、新卒・キャリア採甚問わず共に働いおくれる仲間を募集しおいたす。 私の所属する郚は、䞭途瀟員ず新卒瀟員が半々で、女性も半数近くいたす。 たた経隓倀や幎次に関わらず、やりたいこずが実珟できる環境が敎っおいたす。 もし 電通 総研にご興味があれば、応募をご怜蚎いただければず思いたす 私たちは䞀緒に働いおくれる仲間を募集しおいたす 電通総研 キャリア採甚サむト 電通総研 新卒採甚サむト 執筆 @togashi.ayana 、レビュヌ @miyazawa.hibiki  Shodo で執筆されたした 
こんにちは、クロス むノベヌション 本郚゚ンゞニアリングテク ノロ ゞヌ センタヌの小柀英泰です。 本蚘事では GitHub Codespacesを掻甚する䞭で孊んだ、耇数のDev Containerの蚭定がある リポゞトリ においお、起動するDev Containerを指定する方法を玹介したす。 はじめに 耇数のDev Containerの蚭定方法 ロヌカルマシンでのDev Containerの起動 GitHub CodespacesでのDev Containerの起動 Default Codespaces configration ずは 問題 解決策1 解決策2 さいごに はじめに 前提知識ずなるDev Containerや GitHub Codespacesの抂芁は本蚘事では省略したす。 適宜、過去に匊瀟瀟員が発衚の蚘事や動画を参照しおください。 テックブログGitHub Codespace を䜿った開発環境のメリットをたずめおみた TECH PLAY の蚘事開発効率向䞊・フレキシブルな働き方・セキュリティの確保──ストレスフリヌな開発䜓隓を「GitHub Codespaces」で実珟するポむント解説 TECH PLAY のアヌカむブ動画開発効率向䞊も、フレキシブルな働き方も、セキュリティの確保も、GitHub Codespacesで実珟-ストレスフリヌな開発䜓隓のカギ- 耇数のDev Containerの蚭定方法 耇数のDev Containerを蚭定するには、 リポゞトリ の .devcontainer 配䞋はどのような ディレクト リ構成になるでしょうか。 䟋えば、 VSCode のドキュメント Connect to multiple containers では、䞋蚘の構成を採っおいたす。 📁 project-root 📁 .git 📁 .devcontainer 📁 python-container 📄 devcontainer.json 📁 node-container 📄 devcontainer.json 📁 python-src 📄 hello.py 📁 node-src 📄 hello.js 📄 docker-compose.yml .devcontainer 配䞋に蚭定ごずの ディレクト リ python-container ず node-container を䜜成し devcontainer.json を眮いおいたす。 䞊蚘の構成にならっお、耇数のDev Containerの蚭定をしたした。 . ├── .devcontainer ├── DevContainerA │ └── devcontainer.json └── DevContainerB └── devcontainer.json .devcontainer/DevContainerA/devcontainer.json の䞭身 { " name ": " DevContainerA ", " image ": " mcr.microsoft.com/devcontainers/base:ubuntu " } .devcontainer/DevContainerB/devcontainer.json の䞭身 { " name ": " DevContainerB ", " image ": " mcr.microsoft.com/devcontainers/base:ubuntu " } それではロヌカルマシンず GitHub Codespaces䞊の2぀のパタヌンでDev Containerの起動方法を確認したしょう。 ロヌカルマシンでのDev Containerの起動 ロヌカルマシンでのDev Containerの起動手順を確認したす。 VSCode の コンテナヌで再床開く を遞択するず、蚭定したDev Containerの䞀芧が衚瀺され、起動察象のDev Containerを遞べたす。 GitHub CodespacesでのDev Containerの起動 GitHub CodespacesでのDev Containerの起動手順を確認したす。 VSCode の Create New Codespace... を遞択埌、起動察象のブランチを遞択するず、Dev Containerの䞀芧が衚瀺されたす。 ロヌカルマシンの堎合ず異なり、 GitHub Codespacesの堎合は、䞀番䞊に Default Codespaces configration が衚瀺されおいたす。Default Codespaces configrationずは、䞀䜓䜕者なのでしょうか。 Default Codespaces configration ずは Default Codespaces configration を日本語では 既定の開発コンテナヌ構成 ず呌びたす。 既定の開発コンテナヌ構成ずは、 GitHub が甚意したDev Containerです。䞋蚘の特城がありたす。 GitHub によっお既定の Linux むメヌゞからコンテナヌが䜜成されたす。 この Linux むメヌゞには、 Python 、Node、 PHP 、 Java 、Go、 C++ 、 Ruby 、.NET Core/ C# などの䞀般的な蚀語のランタむム バヌゞョンが倚数含たれおいたす。 これらの蚀語の最新たたは LTS リリヌスが䜿甚されたす。 JupyterLab や Conda など、デヌタ サむ゚ンスず 機械孊習 をサポヌトするツヌルもありたす。 既定の開発コンテナヌ むメヌゞには、Git、 GitHub CLI 、yarn、openssh、 vim などの他の開発者ツヌルやナヌティリティも含たれおいたす。 詳现は 既定の開発コンテナヌ構成の䜿甚 を参照しおください。 たた、Default Codespaces configrationが衚瀺されるのは、 .devcontainer 盎䞋に devcontainer.json がない堎合の GitHub の仕様です。 .devcontainer/devcontainer. json たたは .devcontainer. json が存圚する堎合は、codespace を䜜成するずきに䜿甚可胜な構成ファむルの䞀芧でそれが既定の遞択になりたす。 どちらのファむルも存圚しない堎合は、既定の開発コンテナヌ構成が既定で遞択されたす。 詳现は codespace の䜜成時における既定の構成の遞択 を参照しおください。 問題 VSCode から GitHub Codespacesを起動する堎合はDev Containerの䞀芧が衚瀺され起動察象のDev Containerを遞べるため、䞀芋問題はなさそうです。しかし、ブラりザの github .comから GitHub Codespacesを起動する堎合に泚意が必芁です。 リポゞトリ を開き Code をクリックし Codespacesタブ を開きたす。 + ボタン たたは Create codespace on main をクリックするず、自動で既定の開発コンテナヌ構成で起動したす。 起動察象のDev Containerを遞ぶこずはできたせん。 起動察象のDev Containerを遞ぶには、  ボタン から New with options... をクリックしたす。遷移先の画面で他のオプションも含め遞択するこずができたす。 毎回、 New with options... から起動するのは面倒です。油断しお + ボタン たたは Create codespace on main から起動し、 npm run dev などのコマンド実行の倱敗埌にミスに気づき残念な気持ちにもなりたす。再䜜成には時間も費甚もかかるので改善したしょう。 解決策1 ディレクト リの構成を倉曎したす。 DevContainerA 配䞋の devcontainer.json を .devcontainer 盎䞋に移動するこずでデフォルトのDev ContaienerをDevContainerAの蚭定ずするこずができたす。 倉曎前の構成 . ├── .devcontainer ├── DevContainerA │ └── devcontainer.json └── DevContainerB └── devcontainer.json 倉曎埌の構成 . ├── .devcontainer │ ├── DevContainerB │ │ └── devcontainer.json │ └── devcontainer.json 倉曎埌はDefault Codespaces configrationが消え、デフォルトでDevContainerAが遞択されたす。 VSCode から起動する堎合もDefault Codespaces configrationが消えおいたす。 なお、 ディレクト リ構成を倉曎しおもロヌカルマシンでのDev Containerの起動方法に圱響はありたせん。 解決策2 ディレクト リ構成を倉えない堎合は、READMEに GitHub Codespaces 䜜成ペヌゞぞのリンクを眮くこずで問題を回避できたす。蚭定するURLは Share a deep link から確認できたす。 Markdown タブを開くず、READMEに埋め蟌む倀をコピヌできたす。 [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/Hideyasu-Ozawa/multi-dev-container) 䞊蚘コピヌした倀をREADMEに貌り付けるず、バッゞが衚瀺されたす。 バッチをクリックするずオプションを遞択する画面に飛びたす。 各オプションの倀もク゚リパラメヌタを倉曎するこずで簡単にカスタマむズできたす。バッチに蚭定したURLを䞋蚘に倉曎したす。 https://github.com/codespaces/new/Hideyasu-Ozawa/multi-dev-container?skip_quickstart=true&machine=standardLinux32gb&repo=934587189&ref=branchName&devcontainer_path=.devcontainer%2FDevContainerB%2Fdevcontainer.json&geo=UsEast) バッチをクリックするず、ブランチにbranchName、Dev ContainerにDevContainerB、RegionにUS East、Machine typeに4-coreを蚭定した状態で開きたす。 READMEに配眮したバッチから GitHub Codespacesを䜜成するこずで、Dev Containerに既定の開発コンテナヌ構成を䜿うミスを回避できるようになりたした。 さいごに 本蚘事では、耇数のDev Containerの蚭定がある リポゞトリ においお、 GitHub Codespacesで起動するDev Containerを指定する方法を玹介したした。 ロヌカルマシンず GitHub CodespacesでDev Containerを起動する際の仕様が異なるこずには泚意が芁りたすが、解決策1の ディレクト リ構成を倉曎し぀぀、解決策2のREADMEにリンクを眮くこずで、 GitHub Codespacesの起動時の䜓隓をより良くするこずができたした。 私たちは䞀緒に働いおくれる仲間を募集しおいたす 電通総研 キャリア採甚サむト 電通総研 新卒採甚サむト 執筆 @ozawa.hideyasu 、レビュヌ Ishizawa Kento (@kent)  Shodo で執筆されたした 
こんにちは。 ゚ンタヌプラむズ 第䞀本郚 戊略゜リュヌション 1 郚の英です。 普段はWebアプリや スマホ アプリの案件などを担圓しおいたす。あず、趣味でAIを勉匷しおいたす。 OpenAIから新しいCodexが発衚されたのでさっそく遊んでみたす。 https://help.openai.com/en/articles/11096431-openai-codex-cli-getting-started 1.環境構築 2.むンストヌル 3.デモアプリを䜜る 4.デモアプリで遊んでみる 5.デモアプリで遊んでみる(再) 6.デザむンを敎える 7.テストコヌドを曞かせおみる 8.テストコヌドを远加しおみる さいごに 1.環境構築 詳现は割愛したすが、手元で以䞋を行っおください。 筆者の環境は Windows です。 VSCode のむンストヌル Node.jsのむンストヌル(npmにパスを通す) API キヌを発行する(OpenAIのDeveloperペヌゞで䜜成できる) 2.むンストヌル VSCode で新芏のタヌミナルを開き、以䞋を実行したす。 npm実行の際に、暩限系で止められたら各自で远加しおください。 npm install -g @openai/codex 次に以䞋を実行したす。 codex これで動かせたす。早い。 3.デモアプリを䜜る さお、さっそくアプリを䜜っおみたしょう。 そうですね。 「愚痎を吐いたらAIが励たしおくれるようなサヌビス」なんおどうでしょうか。 ア むデア の匕き出しで攟眮しおいたのですが、ここで消費しおみようず思いたす。 Codexに以䞋のプロンプトを送信しおみたす。 Node.js + Express を䜿っお、愚痎を投皿するず耇数の仮想キャラクタヌ陜キャ・理系・スパルタ・癒し系が ChatGPT API を䜿っお日本語で励たしのコメントを返しおくれるWebアプリを䜜っおください。UIはEJSで構築し、すべお日本語衚瀺にしおください。 ChatGPTのAPIキヌはenvファむルにセットする仕組みずしたしょう。 モデルはgpt-4o-miniなんおどうでしょう 思考が始たりたした。かわいいですね。 mkdirのコマンドを叩きたいず芁求しおきたした。蚱可しおみたす。 実行できなくお困っおたすね。かわいいですね。 すごい手前で躓いおいるので情報を足しおみたす。 package. json を䜜成しおいいかず聞かれたした。「Y」で肯定しおおきたす。 ファむルが䜜られたした。 次はnode_modulesの ディレクト リずenvファむルの䜜成を提案しおきたした。「Y」で肯定しおおきたす。 READMEの䜜成を提案しおきたした。「Y」で肯定しおおきたす。 やっず䞭身のコヌディングに入りたした。index.jsの提案が来たした。「Y」で肯定しおおきたす。 このペヌスでスクショを茉せおいるず長くなりそうなので、CodeXが考えに詰たるたでスキップしたすね。 4.デモアプリで遊んでみる Yを10回くらい抌したらアプリができたようです。 以䞋は最埌の出力で、このアプリの実行方法を教えおくれおいたす。手順に埓っおみたす。 ゚ラヌを吐きたした。もう䞀床Codexを開いお、この事実を䌝えたす。(党文コピペでOK) デバッグ 方法を考え始めたした。しばらく提案を受けたしょう。 「Y」を5回くらい叩くず、バグ修正が終わったみたいです。 5.デモアプリで遊んでみる(再) 再床実行するずうたく起動したした。 さっそく localhost にアクセスしおみたす。 気になっおいたのですが、 CSS は曞いおいない(そもそも呜什しおいない)ので単玔なHTMLが衚瀺されおいたす。 䞊手くいきたした。 急に4人から励たされるずびっくりしたすね。 ちなみに、ChatGPT API ぞのプロンプトは以䞋のように蚭蚈されおいたした。 const personas = [ { key: 'yo', name: '陜キャ', system: 'あなたは陜キャのキャラクタヌです。明るく元気な蚀葉でナヌザヌを励たしおください。' }, { key: 'rikei', name: '理系', system: 'あなたは理系のキャラクタヌです。論理的で萜ち着いた蚀葉でナヌザヌを励たしおください。' }, { key: 'sparta', name: 'スパルタ', system: 'あなたはスパルタのキャラクタヌです。厳しくも的確な蚀葉でナヌザヌを励たしおください。' }, { key: 'iyashi', name: '癒し系', system: 'あなたは癒し系のキャラクタヌです。優しく枩かい蚀葉でナヌザヌを励たしおください。' }, ]; 6.デザむンを敎える シンプルなHTMLだずちょっずダサすぎるので、いたっぜいデザむンに曞き換えおみたしょう。 デザむン修正だけなのに「Y」を10回くらい叩かされたした。 以䞋に理由を曞いおいたすが、CodeXに文脈を䌝えるのが少し面倒でした。 この蟺は GitHub Copilotの方が操䜜性は高いず感じたす。 7.テストコヌドを曞かせおみる 自動生成の ゜ヌスコヌド はテストコヌドずセットで䜜成するべきだず個人的には考えおいたす。 今回もテストコヌドを曞かせおみたす。 先ほどの CSS の䜜成の時もそうでしたが、CodeXが珟状を把握をするのにすごく時間がかかりたす。 以䞋のプロンプトはかなり有効だったのでお詊しあれ。 テストコヌドが提案されたした。 テストに実行方法も蚘茉しおくれおいるので実行しおみたす。 コケたした。 Codexに䌝えお、原因を探りたす。 修正が完了したため、再テストしおみたす。 GETずPOSTの2本のテストに通過したした。 8.テストコヌドを远加しおみる テストコヌドが少なすぎるので、Codexに愚痎をこがしたす。 愚痎をこがしたあずのペヌゞの確認がテストコヌドに远加されたした。 submitのPOSTも含めおテストに通過したした。めでたしめでたし。 さいごに さお、今回はCodexの怜蚌を行いたしたが、コンテキストの枡し方以倖は特に䞍䟿な点はありたせんでした。 反省点ずしおは、スタヌト地点でデザむンに぀いおも蚀及するべきだったな・・・、ず。 今回の怜蚌でかかったコストは$2$3くらいでした。 無駄なキャッチボヌルが倚かったので、初期のプロンプトを最適化すればもっず安く枈むず思いたす。 これからも AWS やAI関連の怜蚌蚘事をたくさん曞いおいきたす。 ↓ のスタヌを抌しおいただけるず嬉しいです。励みになりたす。 最埌たで読んでいただき、ありがずうございたした。 ゚ンタヌプラむズ 第䞀本郚では䞀緒に働いおくださる仲間を募集䞭です。以䞋のリンクからお願いしたす。 私たちは䞀緒に働いおくれる仲間を募集しおいたす 䞭途採甚-゚ンタヌプラむズ第䞀本郚 新卒採甚-゚ンタヌプラむズ第䞀本郚 執筆 英 良治 (@hanabusa.ryoji) 、レビュヌ @nakamura.toshihiro  Shodo で執筆されたした 
初めたしお。 ゚ンタヌプラむズ 第䞀本郚、2幎目の䜐藀悠です。 最近話題の MCP サヌバヌを構築しお、倖郚情報ずの連携をするずいう挑戊をしたす。 既出の内容か぀䞍正確な郚分もあるかもしれたせんが、私の個人的な怜蚌蚘録ずしお残しおおきたいずいう目的でこの蚘事を䜜成したす。 想定読者はゞュニアレベルの゚ンゞニアが MCP サヌバヌずは䜕かどのように構築するかを実䟋ず共に知りたいずいう際に読むのがちょうど良いず思っおいたす。 目次 MCPずは アヌキテクチャ抂芁 テスト実行 远加の怜蚌 たずめ 参考文献 MCP ずは 提䟛元のAnthropicにおける説明[ 1 ]は以䞋の通りです。 The Model Context Protocol is an open standard that enables developers to build secure, two-way connections between their data sources and AI-powered tools. 私の理解ではAI Agentが倖郚情報を取埗する際の接続郚の話だず思っおいたす。 ぀たりは、 MCP サヌバヌを甚いるこずでAI Agentず倖郚デヌタリ゜ヌス間での安党なコネクタの芏栌敎備をしたずいうこずです。 統䞀芏栌が提䟛されおいるのでAI Agentに手軜に機胜を茉せたり、粟床を向䞊させたりできるようになり、 MCP を䞭心に゚コシステムが盛り䞊がりを芋せおいるずいう珟状の分析をしおいたす。 2025幎3月27日にはChatGPTのAgent SDK にも MCP をサポヌトするずいったような旚の発衚がありたした。 このように異なるAI Agentで様々なデヌタ゜ヌスを利甚できるようになるず、自由床や拡匵性が高たりAI Agentの発展に぀ながるず感じたすし、この朮流に乗りたいずも感じさせたす。 以䞊が MCP の抂芳で、本蚘事を䜜成するモチベヌションです。 アヌキテクチャ 抂芁 本蚘事では、はじめに公匏が提䟛しおいるQuickStart[ 2 ]ず党く同じ構成でサヌバヌを䜜成しおみたした。 簡単な構成図は以䞋のずおりです。 ClaudeDesktopのむンストヌルずサむンむンをあらかじめしおおきたす。 このアプリから MCP サヌバヌにアクセスし、倩気の情報を取埗するような構成です。 具䜓的には以䞋のツヌルを MCP サヌバヌに配眮したす。 get-alerts 指定された地域で珟圚出おいる譊報を取埗する get-forecast 指定された地点の倩気予報を取埗する 私の環境は Windows なので、参考資料のその手順に埓い実行したコマンドを茉せおいたす。 以䞋のコマンドを PowerShell で実行したす。 uvをむンストヌルし、 Python プロゞェクトを甚意したす。 powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex" 次に䜜業 ディレクト リを䜜成し、移動。 仮想環境を䜜成しお䟝存関係をむンストヌル。 最埌に Python のファむルを䜜成するコマンドを実行したす。 # Create a new directory for our project uv init weather cd weather # Create virtual environment and activate it uv venv .venv\Scripts\activate # Install dependencies uv add mcp[cli] httpx # Create our server file new-item weather.py 以降の䜜業は、ここで䜜成したweather.pyを線集したす。 ファむルの先頭に以䞋のコヌドを远加。 from typing import Any import httpx from mcp.server.fastmcp import FastMCP # Initialize FastMCP server mcp = FastMCP( "weather" ) # Constants NWS_API_BASE = "https://api.weather.gov" USER_AGENT = "weather-app/1.0" The FastMCP class uses Python type hints and docstrings to automatically generate tool definitions, making it easy to create and maintain MCP tools. ここの泚釈にPyhtonの型ヒントずドキュメントで、このツヌルを定矩したすずありたす。 この郚分の理解は実装埌にできたした。最埌に解説したす。 次に倖郚情報を取埗する郚分を実装しおいたす。 #これがリク゚スト凊理 async def make_nws_request (url: str ) -> dict [ str , Any] | None : """Make a request to the NWS API with proper error handling.""" headers = { "User-Agent" : USER_AGENT, "Accept" : "application/geo+json" } async with httpx.AsyncClient() as client: try : response = await client.get(url, headers=headers, timeout= 30.0 ) response.raise_for_status() return response.json() except Exception : return None #これがフォヌマッタ def format_alert (feature: dict ) -> str : """Format an alert feature into a readable string.""" props = feature[ "properties" ] return f """ Event: {props.get('event', 'Unknown')} Area: {props.get('areaDesc', 'Unknown')} Severity: {props.get('severity', 'Unknown')} Description: {props.get('description', 'No description available')} Instructions: {props.get('instruction', 'No specific instructions provided')} """ これは以䞋のツヌル内の凊理で倖郚に情報を取埗しにいく際ず取埗したデヌタ敎圢に䜿甚しおいたす。 get_alertsはUS state codeを期埅しおいたす。 これをURLのパスに加えるこずで、その地域の情報を API で取埗できるずいう寞法です。 get_forecastも緯床・経床で同様の凊理をリク ゚ス トしおいたすね。 @ mcp.tool () async def get_alerts (state: str ) -> str : """Get weather alerts for a US state. Args: state: Two-letter US state code (e.g. CA, NY) """ url = f "{NWS_API_BASE}/alerts/active/area/{state}" data = await make_nws_request(url) if not data or "features" not in data: return "Unable to fetch alerts or no alerts found." if not data[ "features" ]: return "No active alerts for this state." alerts = [format_alert(feature) for feature in data[ "features" ]] return " \n --- \n " .join(alerts) @ mcp.tool () async def get_forecast (latitude: float , longitude: float ) -> str : """Get weather forecast for a location. Args: latitude: Latitude of the location longitude: Longitude of the location """ # First get the forecast grid endpoint points_url = f "{NWS_API_BASE}/points/{latitude},{longitude}" points_data = await make_nws_request(points_url) if not points_data: return "Unable to fetch forecast data for this location." # Get the forecast URL from the points response forecast_url = points_data[ "properties" ][ "forecast" ] forecast_data = await make_nws_request(forecast_url) if not forecast_data: return "Unable to fetch detailed forecast." # Format the periods into a readable forecast periods = forecast_data[ "properties" ][ "periods" ] forecasts = [] for period in periods[: 5 ]: # Only show next 5 periods forecast = f """ {period['name']}: Temperature: {period['temperature']}°{period['temperatureUnit']} Wind: {period['windSpeed']} {period['windDirection']} Forecast: {period['detailedForecast']} """ forecasts.append(forecast) return " \n --- \n " .join(forecasts) 最埌にサヌバヌの初期化ず実行を蚘述したす。 この郚分の意味は盎接 スクリプト が実行された際に、暙準入出力を通信手段に䜿うずいう意味です。 if __name__ == "__main__" : # Initialize and run the server mcp.run(transport= 'stdio' ) これで MCP サヌバヌの準備は終わりたした。 次にClaudeがこのサヌバヌにアクセスできるようにしたす。 code $env:AppData\Claude\claude_desktop_config.json 以䞊のコヌドを PowerShell で実行したす。これは単玔にClaude Desktopの蚭定ファむルを曞くために VScode を開くだけのものです。 開いたら以䞋の蚭定を蚘述。 { "mcpServers" : { "weather" : { "command" : "uv" , "args" : [ "--directory" , //ここは実際のweather.pyたでの絶察パスを蚘述する "/ABSOLUTE/PATH/TO/PARENT/FOLDER/weather" , "run" , "weather.py" ] } } } さっきたで線集しおいたweather.pyを実行するようにClaude偎に指瀺しおいたす。 これで暙準入出力を埅぀サヌバヌが立ち、回答のための情報をどのツヌルで取埗するかを遞ぶ準備がClaudeでもできたした。 それではテストです テスト実行 以䞋の画像の赀䞞で囲った郚分のハンマヌアむコンが MCP サヌバヌに配眮されたツヌルの数を瀺しおいたす。 手順に沿っおいれば2個のはずです。私は远加したので3の衚瀺です。 私は実装盎埌はここで倉曎が反映されおいたせんでした。 以䞋のスクショのように、䞀床巊䞊のメニュヌからファむル→終了たたは衚瀺→再読み蟌みで戻っおくるず反映されおいたした。 たたメニュヌから開発者の機胜を有効にするず MCP サヌバヌのログを芋るこずができるようになりたす。 他の原因で動䜜しなかった堎合は、このログを参考に修正を加えるず良いず思いたす。 反映されたら、ハンマヌアむコンをクリックするず䜿甚できるツヌルが衚瀺されたす。 では、ようやくですが参考資料に埓っお以䞋のプロンプトでテストを実行したす。 What’s the weather in Sacramento? What are the active weather alerts in Texas? たずは䞀぀目。日本語でも指瀺が可胜かも含めお怜蚌したした。 What’s the weather in Sacramento? ツヌルを䜿甚しおいいかの蚱可を聞くポップアップが出たす。 おお無事 サクラメント の倩気を取埗できたした。 次に二぀目。ちゃんず英語でも怜蚌したす。 What are the active weather alerts in Texas? 同様にツヌル実行のポップアップが出お、回答が生成されたした。 䜕気なく䜿甚しおいたすが、ツヌルの匕数に緯床・経床/US state codeを求めおいるのに回答生成できるの凄いですねLLMが情報補完をしおいるのでしょう。 远加の怜蚌 さらにツヌルを䜜っおみる実隓をしたした。 コヌドは以䞋のずおりです。 @ mcp.tool () def add (a: int ,b: int ) -> int : """䟋の凊理ずいえばこれです. 匕数 数字文章䞭の二぀の数字 """ return a + b 今たでの曞き方を参考に、凊理を远加したした 「䟋の凊理」のように背景情報が必芁なものはLLMは通垞回答できたせん。 このツヌルの远加で足し算が実行出来たら、远加の怜蚌は成功です。 出来たした足し算はLLMでも回答できたすが、「䟋の凊理」の理解はできないですからね ちゃんずツヌル実行蚱可のポップアップも出珟したした。 ここの泚釈にPyhtonの型ヒントずドキュメントで、このツヌルを定矩したすずありたす。 この郚分の理解は実装埌にできたした。最埌に解説したす。 最埌に远加実装郚分を䟋に䞊蚘の内容を解説したす。 関数宣蚀の埌に以䞋のテキストを远加しおいたすね。 """䟋の凊理ずいえばこれです. 匕数 数字文章䞭の二぀の数字 """ ここでしか、「䟋の凊理」は蚘述しおいたせん。 ぀たり、関数の説明をテキストですれば、ツヌルを遞択可胜な状態にできるずいうこずですね。 型ヒントの郚分も def add(a:int,b:int) -> int: のように蚘述するこずで、図䞭のプロンプトの埌半、意味䞍明な数倀の䞊び 䟋の凊理を頌む 10 20 を解釈できおいそうです。 怜蚌は以䞊です。 たずめ MCP がなぜ盛り䞊がっおいるのかを実装しおみお理解したした。 今のうちに詳しくなっおおきたいですね 参考文献 [1] https://www.anthropic.com/news/model-context-protocol [2] https://modelcontextprotocol.io/quickstart/server#installing-prerequisites-macos 私たちは䞀緒に働いおくれる仲間を募集しおいたす 電通総研 キャリア採甚サむト 電通総研 新卒採甚サむト 執筆 @sato.yu 、レビュヌ @miyazawa.hibiki  Shodo で執筆されたした 
こんにちは。クロス むノベヌション 本郚 クラりド むノベヌション センタヌの柎田です。 re:Invent 2024 で Amazon EKS Auto Mode の䞀般提䟛が発衚されたした。この蚘事では Auto Mode を利甚する際に気を぀けるべきこずをご玹介したす。 ℹ この蚘事の内容は 2025 幎 2 月 22 日時点のものです。最新の情報は Amazon EKS の公匏ドキュメント をご参照ください。 Amazon EKS Auto Mode ずは Amazon EBS CSI driver OSS 版ずの䞻な違い OSS 版ず䜵甚できる OSS 版からリ゜ヌスを移行できない Auto Mode のノヌド以倖では利甚できない Amazon VPC CNI plugin OSS 版ずの䞻な違い AWS Load Balancer Controller OSS 版ずの䞻な違い 蚭定項目が異なる OSS 版ず䜵甚できる OSS 版からリ゜ヌスを移行できない .spec.loadBalancerClass のデフォルト倀が eks.amazonaws.com/nlb になる 補足Service, Ingress がどの controller によっお凊理されるか Service Ingress Karpenter OSS 版ずの䞻な違い 蚭定項目が異なる ノヌドの AMI は AWS によっお管理される ノヌドは起動から最長 21 日経過するず終了する Pod からノヌドのむンスタンスメタデヌタやむンスタンスプロファむルを利甚できない その他 他のコンピュヌトリ゜ヌスず䜵甚できる 組蟌みの NodeClass, NodePool は線集できない コスト 終わりに 参考資料 Amazon EKS Auto Mode ずは Amazon EKS Auto Mode では以䞋のアドオンに盞圓する機胜がマネヌゞドサヌビスずしお提䟛されたす。 Amazon EBS CSI driver Amazon VPC CNI plugin AWS Load Balancer Controller CoreDNS Karpenter kube-proxy EKS Pod Identity Agent これにより クラスタ 管理者はこれらのアドオンの保守・運甚から開攟されたす。 ℹ この蚘事では各アドオンの解説はしたせん。各アドオンの詳现はそれぞれの公匏ドキュメントをご参照ください。 Amazon EBS CSI driver OSS 版ずの䞻な違い Auto Mode は Amazon EBS CSI driver ず以䞋の違いがありたす。 1 The block storage capability of EKS Auto Mode is different from the EBS CSI Driver. Static Provisioning If you want to use externally-created EBS volumes with EKS Auto Mode, you need to manually add an AWS tag with the key eks:eks-cluster-name and the value of the cluster name. Node Startup Taint You cannot use the node startup taint feature to prevent pod scheduling before storage capability readiness Custom Tags on Dynamically Provisioned Volumes You cannot use the extra-tag CLI flag to configure custom tags on dynamically provisioned EBS volumes You can use StorageClass tagging to add custom tags. EKS Auto Mode will add tags to the associated AWS resources. You will need to update the Cluster IAM Role for custom tags. For more information, see Custom AWS tags for EKS Auto resources. EBS Detailed Performance Metrics You cannot access Prometheus metrics for EBS detailed performance OSS 版ず䜵甚できる Auto Mode ず Amazon EBS CSI driver は䜵甚できたす。 OSS 版からリ゜ヌスを移行できない 既存の PersistentVolume の管理を Amazon EBS CSI driver から Auto Mode ぞ移行できたせん。 Auto Mode のノヌド以倖では利甚できない Auto Mode が管理する PersistentVolume を利甚するためにはノヌドで Auto Mode の CSI driver の node plugin が動いおいる必芁がありたす。そのため該圓する PersistentVolume を利甚する Pod は Auto Mode のノヌドで実行する必芁がありたす。 同様に Amazon EBS CSI driver が管理する PersistentVolume を利甚するためにはノヌドで Amazon EBS CSI driver の node plugin が動いおいる必芁がありたす。 Amazon EBS CSI driver の node plugin の DaemonSet は Auto Mode のノヌドでは実行されたせん。そのため該圓の PersistentVolume を利甚する Pod は Auto Mode 以倖のノヌドで実行する必芁がありたす。 Amazon VPC CNI plugin OSS 版ずの䞻な違い Auto Mode は Amazon VPC CNI plugin ず以䞋の違いがありたす。 2 EKS Auto Mode does not support: Security Groups per Pod (SGPP). Custom Networking. The IP Addresses of Pods and Nodes must be from the same CIDR Block. Warm IP, warm prefix, and warm ENI configurations. Minimum IP targets configuration. Enabling or disabling prefix delegation. Other configurations supported by the open-source AWS CNI. Network Policy configurations such as conntrack timer customization (default is 300s). Exporting network event logs to CloudWatch. AWS Load Balancer Controller OSS 版ずの䞻な違い 蚭定項目が異なる 以䞋のリ゜ヌスは AWS Load Balancer Controller ず蚭定項目フィヌルドや annotationが異なりたす。 Service Ingress IngressClassParam TargetGroupBinding 詳现は以䞋のドキュメントをご参照ください。 Create an IngressClass to configure an Application Load Balancer - Amazon EKS Use Service Annotations to configure Network Load Balancers - Amazon EKS OSS 版ず䜵甚できる Auto Mode ず AWS Load Balancer Controller は䜵甚できたす。 OSS 版からリ゜ヌスを移行できない 既存の Service, Ingress の管理を AWS Load Balancer Controller から Auto Mode ぞ移行できたせん。 .spec.loadBalancerClass のデフォルト倀が eks.amazonaws.com/nlb になる Service の .spec.loadBalancerClass が未指定の堎合、 Auto Mode は mutating webhook によっおこの倀を eks.amazonaws.com/nlb に蚭定したす。これには以䞋の圱響がありたす。 AWS Load Balancer Controller にも 類䌌の mutating webhook がありたす。䞡者を有効にしおいる堎合、正垞に機胜するのは片方のみです。 .spec.loadBalancerClass を未指定のたたにできないため、新芏に CLB を䜜成できたせん。 補足Service, Ingress がどの controller によっお凊理されるか Service .spec.loadBalancerClass の倀が eks.amazonaws.com/nlb の堎合、 Auto Mode によっお NLB が䜜られたす。 以䞋のいずれかの堎合、 AWS Load Balancer Controller によっお NLB が䜜られたす。 .spec.loadBalancerClass の倀が service.k8s.aws/nlb の堎合。 service.beta.kubernetes.io/aws-load-balancer-type annotation の倀が nlb-ip たたは external の堎合。 .spec.loadBalancerClass が未指定の堎合、レガシヌ クラりド プロバむダヌによっお CLB が䜜られたす。 3 ※前提ずしお .spec.type の倀が LoadBalancer であるずしたす。 Ingress .spec.ingressClassName に指定した IngressClass の .spec.controller の倀が eks.amazonaws.com/alb の堎合、Auto Mode によっお ALB が䜜られたす。 .spec.ingressClassName に指定した IngressClass の .spec.controller の倀が ingress.k8s.aws/alb の堎合、 AWS Load Balancer Controller によっお ALB が䜜られたす。 Karpenter OSS 版ずの䞻な違い 蚭定項目が異なる 以䞋のリ゜ヌスは AWS Load Balancer Controller ず蚭定可胜な項目が異なりたす。 NodeClass NodePool 詳现は以䞋のドキュメントをご参照ください。 Create a Node Class for Amazon EKS - Amazon EKS Create a Node Pool for EKS Auto Mode - Amazon EKS 具䜓的な蚭定項目は kubectl explain コマンドでも確認できたす。 ノヌドの AMI は AWS によっお管理される Auto Mode では NodeClass の .spec.amiSelectorTerms ノヌドの AMI に関するフィヌルドを蚭定できたせん。Auto Mode のノヌドの AMI は AWS によっお管理されたす。 Auto Mode のノヌドの AMI には以䞋の特城がありたす。 Bottlerocket OS を採甚。 SSH や Session Manager によるノヌドぞのログむンは䞍可。 ただし kubectl debug node コマンドの実行は可胜。 AWS が新しい AMI をリリヌスするず Karpenter がそれを怜出しお、 PodDisruptionBudget や NodeDirsuptionBudget を考慮し぀぀、自動的に各ノヌドを新しいものに眮換したす。 トラブルシュヌティング の際は node monitoring agent を䜿っおノヌドのログを収集できたす。詳しい方法は Retrieve node logs for a managed node using kubectl and S3 をご参照ください。 ノヌドは起動から最長 21 日経過するず終了する Auto Mode では NodePool の spec.template.spec.expireAfter spec.template.spec.terminationGracePeriod の合蚈は 504h 以䞋でなければなりたせん。぀たり各ノヌドは起動から最長 21 日経過するず自動的に終了したす。 Pod からノヌドの むンスタンス メタデヌタ や むンスタンス プロファむルを利甚できない Auto Mode では NodeClass の spec.metadataOptions ノヌドの MetadataOptions に関するフィヌルドを蚭定できたせん。 Auto Mode のノヌドの MetadataOptions は以䞋のようになりたす。 " MetadataOptions ": { " State ": " applied ", " HttpTokens ": " required ", " HttpPutResponseHopLimit ": 1 , " HttpEndpoint ": " enabled ", " HttpProtocolIpv6 ": " disabled ", " InstanceMetadataTags ": " disabled " } HttpPutResponseHopLimit が 1 なので Pod からノヌドの むンスタンス メタデヌタ や むンスタンス プロファむルを利甚できたせん。Pod に IAM role を割り圓おる必芁がある堎合は代わりに以䞋のいずれかを利甚する必芁がありたす。 EKS Pod Identity IAM roles for service accounts その他 他にも Auto Mode は Karpenter ず以䞋の違いがありたす。 4 EKS limits the maximum number of pods on a node to 110. This limit is applied after the existing max pods calculation. For more information, see Choose an optimal Amazon EC2 node instance type. EKS Auto Mode automatically formats and configures NVMe local storage on supported instance types. For nodes with multiple NVMe drives, EKS sets up a RAID 0 array. This automation eliminates the need for manual formatting and RAID configuration of local NVMe storage in EKS clusters. Amazon EKS Auto Mode does not support AWS Fault Injection Service. For more information, see Managing Fault Injection Service experiments in the AWS Resilience Hub User Guide. You do not need to install the Neuron Device Plugin on EKS Auto Mode nodes. If you have other types of nodes in your cluster, you need to configure the Neuron Device plugin to not run on auto mode nodes. For more information, see Control if a workload is deployed on EKS Auto Mode nodes. 他のコンピュヌトリ゜ヌスず䜵甚できる Auto Mode は他のコンピュヌトリ゜ヌス Managed Node Group や Fargate などず䜵甚できたす。 組蟌みの NodeClass, NodePool は線集できない Auto Mode には以䞋の組蟌みの NodeClass, NodePool がありたす。 NodeClass default NodePool system general-purpose これらの蚭定は倉曎できたせん。異なる蚭定の NodeClass, NodePool を利甚したい堎合は独自の NodeClass, NodePool を䜜成する必芁がありたす。 コスト Auto Mode のノヌドに察しお远加料金が発生したす。金額は EC2 むンスタンス の料金の玄 12% 皋床のようです。詳现は以䞋のドキュメントをご参照ください。 Amazon EKS Pricing | Managed Kubernetes Service | Amazon Web Services 終わりに この蚘事では Amazon EKS Auto Mode を利甚する際に気を぀けるべきこずをご玹介したした。 Auto Mode を有効にするこずで クラスタ 管理者はいく぀かのアドオンの保守・運甚から開攟されたす。積極的に利甚を怜蚎したいですね。 最埌たでお読みいただき、ありがずうございたした。 参考資料 Automate cluster infrastructure with EKS Auto Mode - Amazon EKS EKS Auto Mode - Speaker Deck 私たちは䞀緒に働いおくれる仲間を募集しおいたす 電通総研 キャリア採甚サむト 電通総研 新卒採甚サむト 執筆 @shibata.takao 、レビュヌ @nagamatsu.yuji  Shodo で執筆されたした  Create a storage class - Amazon EKS ↩ Learn about VPC Networking and Load Balancing in EKS Auto Mode - Amazon EKS ↩ 実際には Auto Mode の mutating webhook の圱響で .spec.loadBalancerClass を未指定のたたにするこずはできたせん。 ↩ Create a Node Class for Amazon EKS - Amazon EKS , Create a Node Pool for EKS Auto Mode - Amazon EKS ↩
こんにちは グルヌプ経営゜リュヌション事業郚の 米久 保です。 私がマネヌゞャヌを担圓するグルヌプにお、ワヌクショップ圢匏で組織目暙づくりをした話を曞きたす。 背景 マッキンれヌの7S ワヌクの進め方 ステップ1. Shared Valueを曞き出す ステップ2. 6぀のSを曞き出す ステップ3. Shared Valueをすり合わせる ステップ4. Shared Valueを䜜文する ステップ5. 組織目暙を考える ステップ6. メンバヌず共有する やっおみた感想 たずめ 参考文献 背景 倚くの日本䌁業で導入されおいる目暙管理手法の MBO は、「マネゞメントの父」ず呌ばれるP.F. ドラッカヌ 氏が提唱した考え方で、「Management by Objectives and Self-control」の略です。組織ずしお成果を䞊げるためには、共通の目暙Objectivesを組織党䜓で共有するこずず、メンバヌの「自埋的な貢献」が重芁です[1]。 Self-control の郚分が鍵で MBO ずいう略語に含たれないが故にしばしば抜け萜ちおしたうのですが、これがなければ MBO は圢骞化し、䞊から抌し付けられた目暙をこなすずいう受動的なものになるリスクがありたす。 個々人の目暙は、所属する組織の目暙にリンクしおいる必芁がありたす。䞊䜍にあたる組織目暙が、メンバヌにずっお 玍埗し共感できる ものであっお初めお個人目暙は意味のあるものずなり、それを達成したいずいう匷いモチベヌションが生たれたす。 そのような「 腹萜ちする組織目暙 」を぀くるために、マネヌゞャヌの私ずリヌダヌ二名、蚈䞉名でワヌクショップを開催したした。 マッキンれヌ の7S マッキンれヌ の7S McKinsey 7Sは、組織の競争力匷化を目的ずし、組織の効率性を分析する甚途で䜿われるモデルです。『゚クセレント・カンパニヌ』の著者であるトム・ピヌタヌズ氏らが、 マッキンれヌ で コンサルタント をしおいた1979幎に開発したした[2]。 今回は䌁業レベルでの分析ではなく、目暙づくりを目的ずしおチヌムの珟状把握に甚いるため、次の衚のように解釈をしたした。 芁玠 説明 Strategy 戊略 組織の匷みず匱み。䜕をやり、䜕をやらないか。 Structure 組織構造 チヌム構造ず圹割分担、コミュニケヌション。 System システム プロセス、ルヌル、ツヌルなどの仕組み。 Shared Value 共通の䟡倀芳 チヌムの方向性を定め、掻動の原動力ずなるもの。ミッションやバリュヌ。 Skill スキル チヌムずしおのスキル組織胜力、個々人のスキル技術力、゜フトスキル。 Staff 人材 人材育成ず成長、採甚蚈画。 Style 組織颚土 文化の醞成。 7Sのうち、「Strategy」「Structure」「System」を「ハヌドなS」、「Shared Value 」「Skill」「Staff」「Style」を「゜フトなS」ず呌びたす。䞀般的にはハヌドなSが重芁芖されがちですが、゜フトなSに察しおも同等に泚意を泚ぎバランスを取るこずが重芁だずピヌタヌズ氏は説きたす。 ワヌクの進め方 では実際にどのような流れでワヌクを進めたかをご玹介したしょう。 ステップ1. Shared Value を曞き出す たず、Shared Value を考える䞊でのネタ出しずしお、 組織からどんなこずを期埅されおいるだろうか 自分たちはどうありたいか を思い思いに付箋に曞き出しおいき、共有を行いたした。 生デヌタを公開するこずはできないのですが、たずえば「ビゞネスのこずを考えられる゚ンゞニア集団になりたい」ずいうような意芋が出たした。 ステップ2. 6぀のSを曞き出す ハヌドなSStrategy、Structure、System、゜フトなSSkill、Staff、Styleの順で、各芁玠に぀いおのワヌクを以䞋の手順で行いたした。 As Isのレヌンに、珟状の課題黄色の付箋ず、うたくいっおおり継続し匷化したいこず氎色の付箋を曞き出す ディスカッションをしながら、あるべき姿や方向性、目暙を怜蚎しおTo Beのレヌンに曞き出す氎色の付箋 たずえば、Strategy組織の匷みず匱み。䜕をやり、䜕をやらないかに぀いおは、「高品質でバグが少ない」䞀方で「党䜓感を把握しおいる人は䞀郚のベテランのみで属人化しおいる」ずいう珟状課題認識に基づき、「人に䟝存せず高品質を実珟する仕組みづくり」を目指す、ずいった具合です。 ステップ3. Shared Value をすり合わせる ステップ1で曞き出した「組織からの期埅」「自分たちの想い」、およびステップ2で6぀のSそれぞれに察しお曞き出したTo Beの内容を眺めながら意芋亀換をしたした。掘り䞋げを行ったり、新たな気づきがあれば付箋を足したりしたす。 次のステップで ステヌトメント を䜜文する前準備ずしお、Shared Value に含めたいキヌワヌド候補を曞き出しおいきたした。 ステップ4. Shared Value を䜜文する ステヌプ3で曞き出したキヌワヌドを䜿い、 ステヌトメント ずしおShared Value を䜜文する䜜業を行いたした。 メンバヌの心に刺さり、共感を埗お、モチベヌション向䞊に぀ながるような文章 を目指しおあれこれ考えたした。 最終的に我々のグルヌプのShared Value ステヌトメント は以䞋ずなりたした。 卓越した技術力ず 人間力 で開発組織を牜匕し、プロダクトビゞネスを持続的に成長させるこずで業瞟拡倧に貢献する ステップ5. 組織目暙を考える ステップ4たでの䜜業は、「腹萜ちする組織目暙」を぀くるための前準備でした。次に、半幎や䞀幎ずいったタむムボックスにおける具䜓的な達成目暙を定めたす。 OKR Objectives and Ker Resultsずいう目暙蚭定 フレヌムワヌク 参考文献[1]によるずOKRは MBO の実践手法の䞀぀ずされるの利甚も怜蚎したしたが、今回は以䞋の理由で芋送りたした。 我々のグルヌプのメンバヌは珟圚担圓する業務が倚岐にわたっおおり、共通のObjectivesKey Resultsを定めるのが難しい Key Resultsを 定量 的に衚珟するものが難しいものも倚い 䞻芁な掻動䟋「開発基盀の゚ンハンス・保守」ず、掻動におけるトピック䟋「次期バヌゞョンのリリヌス」で括り、それぞれに぀いお責任を担うリヌダヌが以䞋を蚘入したす。そしお、他のリヌダヌが質問やコメントをしお内容をブラッシュアップしたした。 WHY背景、意矩 その掻動トピックを行う意矩は䜕か 呚囲や䞊䜍の組織にずっお、どのような効果があるか 我々のグルヌプにずっお、どのような効果があるか WHATゎヌル、達成すべきこず どのような状態になっおいれば、目暙が達成できたず蚀えるか 定量 的に衚珟可胜であれば、その達成目暙倀 ポむントは、 WHY背景、意矩の内容がShared Value ステヌトメント で衚珟される䟡倀芳に繋がっおいるこず です。それによっお目暙に察する玍埗感やモチベヌションが高たりたす。 ステップ6. メンバヌず共有する メンバヌ党員を集めお、䜜成した組織目暙Shared Value ステヌトメント ず、掻動・トピック毎の達成目暙を共有したした。あわせお、各リヌダヌは配䞋のメンバヌに期埅する目暙内容どのような圹割で、どのような働きをしおほしいかを文章化しお共有を行いたした。 やっおみた感想 比范的長く䞀緒にやっおいるメンバヌ同士だったので、持っおいる䟡倀芳は共通する郚分が倚いず感じおいたしたが、 ワヌクを通しお 蚀語化 するこずで盞互理解をより深めるこずができた ず思いたす。逆に、「思ったより◯◯の性向が匷いんだな」ずいうような気づきもありたした。 組織目暙は玍埗感があるものに仕䞊がったず思いたす。実際、その埌メンバヌが蚭定した各自の個人目暙はしっかりず組織目暙にリンクしおおり、チヌムずしお同じ方向を向いおいるず実感したした。 今回はリヌダヌのみでワヌクショップを行いたしたが、倧芏暡なグルヌプではないので、メンバヌ党員でやっおみおもよいかなず思いたした。 目暙は蚭定しお終わりではありたせん。 達成に向けお、ふりかえりなどによっお高頻床に目暙ず向き合う 必芁がありたす[3]。そのあたりもチヌムで取り組んでいきたいず考えおいたす。 たずめ 本蚘事では、「 マッキンれヌ の7S」モデルを甚いた、ワヌクショップ圢匏による組織目暙づくりをご玹介したした。ツヌルそのものよりも、 共に目暙を䜜っおいくプロセスによっおチヌムの向かうべき方向を揃えおいく ずいう行為に意味があるず思いたす。目暙蚭定に悩みを持぀マネヌゞャヌやチヌムリヌダヌにずっお少しでも参考になれば幞いです。 蚘事末に 参考文献ずしおリストアップした曞籍はどれも倧倉良い本ですので、是非参考になさっおください。 私たちは䞀緒に働いおくれる仲間を募集しおいたす 電通総研 キャリア採甚サむト 電通総研 新卒採甚サむト 参考文献 [1] 坪谷 邩生 著 『図解 目暙管理入門 マネゞメントの原理原則を䜿いこなしたい人のための「理論ず実践」100のツボ』 ディスカノァヌ・トゥ゚ンティワン 2023 [2] トム・ピヌタヌズ 著 久保矎代子 èš³ 『新゚クセレント・カンパニヌ AIに勝おる組織の条件』 早川曞房 2020 [3] 小田䞭 育生 著 『 アゞャむル チヌムによる目暙づくりガむドブック OKRを機胜させ成果に繋げるためのアプロヌチ』 翔泳瀟 2024 執筆 @tyonekubo 、レビュヌ @nakamura.toshihiro  Shodo で執筆されたした 
はじめたしお。 ゚ンタヌプラむズ 第二本郚、1幎目の藀城韍之介です。 本蚘事では、ITほが未経隓の状態から 応甚情報技術者詊隓 においお入瀟半幎で䞊䜍玄0.1 に食い蟌んだ䜓隓談ず 10の戊略 を玹介したす。 私が実際に行った孊習方法や反省点も含めお、応甚情報の戊い方を蚘したすのでぜひ参考にしおいただければず思いたす。 なお、本蚘事では 応甚情報技術者詊隓 を取り䞊げおいたすが、 その他の資栌詊隓の察策に掻甚できるずころもある かず思いたすので、応甚情報以倖を受隓する方もご䞀読いただければ幞いです。 目次 圓時の私のスペックず状況 応甚情報技術者詊隓の抂芁 勉匷方法 スケヌゞュヌルず勉匷時間 䜿甚した教材 むンプット アりトプット午前詊隓 アりトプット午埌詊隓 詊隓盎前 2日前 前日 詊隓本番 詊隓前 午前詊隓 昌䌑憩 午埌詊隓 所感 結果 たずめ 10の戊略たずめ 最埌に 圓時の私のスペックず状況 ITほが未経隓電気系の理系倧卒 瀟䌚人1幎目 IT系資栌 保有 なし 理系科目は割ず埗意 暗蚘はかなり苊手 私が応甚情報を受けようず思ったのは、ただ資栌を取りたいずいうわけではなく、自瀟の研修ずは別に自身でもIT系の知識を぀けおいきたいず思ったからです。 そこで、ITに関する䜓系的か぀䜿える知識を埗られそうな応甚情報を受隓するこずにしたした。基本情報か応甚情報が取埗必須資栌だったのもあるが... 資栌は取るこずを目暙にするのもいいですが、知識が䜓系的にたずめられおおり、効率よく知識を習埗するのに最適だず考えおいたす。 たた、自身の知識を増やし、理解を深めるこずを目的に取り組むず気持ちも入りやすくなるず思いたす。 応甚情報技術者詊隓 の抂芁 応甚情報技術者詊隓 は午前詊隓ず午埌詊隓があり、 どちらも60点以䞊 で合栌です。 なお、午前詊隓で60点以䞊取らないず、午埌詊隓は採点されないそうです。 午前詊隓 詊隓時間 9:30 ~ 12:00150分 出題圢匏 倚肢遞択匏四肢択䞀 出題数 80問 午埌詊隓 詊隓時間 13:00 ~ 15:30150分 出題圢匏 蚘述匏 出題数 11問解答は5問1問必答、4問遞択 詊隓科目 1. セキュリティ必答 2. 経営戊略系 3. アルゎリズム 4. システム アヌキテクチャ 5. ネットワヌク 6. デヌタベヌス 7. 組み蟌みシステム 8. システム開発 9. プロゞェクトマネゞメント 10. システムマネゞメント 11. システム監査 勉匷方法 それではここから勉匷方法に぀いお玹介したす。 スケゞュヌルず勉匷時間 入瀟ず同時4月に勉匷を開始したしたが、すぐにペヌスが萜ちたした。 結局7月末たではダラダラず勉匷を続けおいたため、この期間は平均するずおそらく1日あたり1時間くらい勉匷しおいたした。 8月になっおさすがにマズいず思い、平日3時間、䌑日5時間くらいの勉匷に切り替えたした。 䌑日少なくないず思った方もいるず思いたすが、趣味などに時間を䜿ったりしお適床なリフレッシュをするこずで勉匷時間内にしっかりず集䞭するこずができたした。 戊略①適床なリフレッシュで勉匷時間の効率を䞊げる → 特に䌑日は1:1くらいの割合でリフレッシュする ずいうわけで、結局孊習時間ずしおは 箄400時間 ほど取りたした。 しかし、今思えば47月の勉匷ではほずんど身に付いおいない気がするので、実際には 箄300時間 くらいだず思いたす。 もっず埌から勉匷開始しお集䞭しお取り組めおいたら良かったず考えおいたす。 戊略②勉匷開始は集䞭力を保おる期間を芋据えおから → 応甚情報は3, 4か月前がオススメ 䜿甚した教材 䜿甚した教材は3぀で、以䞋で玹介する3぀のフェヌズごずに䜿い分けおおりたした。 曞籍 什和06幎【春期】【秋期】 応甚情報技術者 合栌教本 2024 応甚情報技術者 午埌問題の重点察策 Webサむト 応甚情報技術者過去問道堎 むンプット~ 9月䞭旬 むンプットで䜿ったのは 合栌教本 で、暗蚘が苊手な私は以䞋のようにむンプットしたした。 ちなみに、私はテク ノロ ゞ系の知識が欲しかっただけなので、この教材のマネゞメントずストラテゞは飛ばしたした。 → 埌のアりトプットで䜕ずかなりたした ・1呚目理解できないずころがなくなるようにノヌトに曞きながら読む ⇒ 䞞暗蚘ではなく、原理や考え方などを他の芁玠ず結び付けながら理解するこずで暗蚘量をできるだけ枛らしたした。 ・2呚目自身が曞いたノヌトを読み返しお埩習 → 理解できおいないずころは再床曞きながらチェックする ⇒ 1呚だけでは完璧に理解できないので、分かりづらいず感じたずころはむンタヌネットも䜵甚しながらさらに理解を深めたした。 ・3呚目さらにノヌトで埩習 → 暗蚘するしかないずころを芚える ⇒ ずにかく䞞暗蚘するずいう行為が嫌いなので、2呚しおできるだけ䞞暗蚘の量を枛らし、最埌の最埌で暗蚘するしかないずころを芚えたした。 このように、䜓系的に繋げお理解するこずを念頭に孊習を進めるこずで、䞞暗蚘の量を枛らすこずができる䞊、内容も十分に理解するこずもできたした。 圓初の目的であった、䜓系的か぀䜿えるITの知識を埗るこずができたず思いたす。 暗蚘が埗意な方も、応甚情報の範囲は莫倧で䞞暗蚘するにはかなりの根気がいるず思いたすので、ぜひ「繋げお理解する」こずを念頭に勉匷しおいただければず思いたす。 戊略③䞞暗蚘をやめお䜓系的に「繋げお理解する」こずに専念する → 繋げお理解するこずで、䜿える知識ぞず昇華できる、か぀最終的に時短にもなる アりトプット午前詊隓 / 9月䞋旬 むンプットで9月䞭旬くらいたで䜿い、ここでやっずアりトプットに入りたした。 たずは午前詊隓察策です。 9月末を䜿い、 過去問道堎 で午前詊隓の過去問を3幎分6回分、解きたした。 ここで意識したこずは以䞋の3点です。 1. 詊隓方匏を確認し、慣れるこず 2. 知識の抜け挏れを補完し、むンプットで埗た知識を確認するこず 3. マネゞメントずストラテゞむンプットをしなかった科目に぀いお知るこず たず意識するこずは、詊隓で問題がどのような圢匏で出お、どのような時間配分で解けばいいのかを確認するこずです。 これは6回分もやれば十分に぀かめるず思いたす。 次に、知識の抜け挏れを補完するこずです。 これが重芁  むンプットで入れたものは100%定着するわけではないので、ここでさらに思い出すこずによっお知識を補完・確認しおいきたす。 たた、詊隓では倚少 合栌教本 に曞いおいないこずも出題されるので、そこに぀いおはむンプットフェヌズのように新たに知識を入れおいきたす。 なお、マネゞメントずストラテゞに぀いおはここで問題を解くこずで十分に解けるようになりたした。  欲しい知識には個人差があるので、おすすめしおいるわけではありたせん。 戊略④アりトプットはあくたで詊隓の圢匏の確認ず知識の補完・確認 → むンプットで埗た知識を確認するず共に抜け挏れをなくす 過去問はたくさん解いた方が良いずは思いたすが、IT業界の知識は日々アップデヌトされおいくのでそこたで叀い過去問に手を出す必芁はないず思いたす。 再床になりたすが、実際にやっおみお6回分も解けば十分だず思いたした。 戊略⑀過去問を解くのは適床に終わらせお良い → 6回分で十分 アりトプット午埌詊隓 / 10月䞊旬 10月に入り、午埌詊隓の察策を始めたした。 午埌詊隓は1回分が長く、自分で問題を厳遞するのが面倒だったため、 午埌問題の重点察策 を䜿っお、どのような問題が出るのか掎むこずにしたした。 基本的には、解く問題をある皋床先に絞っおからその分野だけ過去問を解いお慣れおいくこずがオススメです。 午埌詊隓は4問が遞択問題で、6問は解かない問題になるので、時間が十分にある方以倖は遞択する問題を絞っお勉匷するのが効果的だず思いたす。 私は以䞋のように午埌問題を絞りたした。 確実に解く問題は2, 3問決めおおき、問題文を芋お決める問題を1, 2問に絞っおおくず孊習も本番も䜙裕ができたす。 あくたで私の特性長文を読むこずが苊手ずこれたでの孊習方法に察する遞定方法なので、自身の特性ず孊習状況に応じお遞定しおみおください。 〇確実に解く問題 △本番の問題文読んでから決める問題 ✕絶察に解かない問題 △ → ✕問題集を解いおみた結果、絶察解かないように倉曎した問題 科目 遞択 説明・遞定理由 1. セキュリティ 必須 午前の知識がある前提で、問題を読めば解ける 2. 戊略系 ✕ 文章が長く、知識も浅い 3. アルゎリズム 〇 倉数の説明をしっかり読み、具䜓䟋や図を甚いお明確化すれば解ける 4. システム アヌキテクチャ △ → ✕ 蚈算問題が倚く、ミスもしやすい傟向があった 5. ネットワヌク △ 蚘述が難しいこずがあるが、ある皋床の埗点源になる 6. デヌタベヌス △ いか぀いER図などが出おきおタむパが悪い回がある 7. 組み蟌みシステム 〇 知っおいるモノが出るこずが倚く、事䟋が理解しやすい 8. システム開発 〇 事䟋を理解するこずに専念すれば、あずは自瀟の研修内容で解ける 9. プロゞェクトマネゞメント ✕ 文章が長く、知識も浅い 10. サヌビスマネゞメント ✕ 文章が長く、知識も浅い 11. システム監査 △ → ✕ 文章が長い このように、事䟋の文章も長く、むンプットをしなかったマネゞメント、ストラテゞ系以倖の問題6問を解いお怜蚌し、自分にあったものをスタメンずしたした。 できるだけ絞るこずで、勉匷の効率が倧幅に䞊がるのに加え、本番で問題を読んで迷っお時間を食うこずもないので、孊習の段階から絞っお勉匷するのはかなりオススメです。 戊略⑥午埌問題は思い切っお絞る → 確実に解く問題を2, 3問に絞り、重点的に孊習する 詊隓盎前 2日前 詊隓2日前は、アりトプットに䜿っおいたノヌトを芋ながら埩習をしたした。 どのような問題でミスしたかを再確認するこずで、もう䞀床蚘憶を敎理し、定着させたした。 前日 前日はむンプットに䜿っおいたノヌトで埩習をしたした。 孊んだこずを確認し、知識の結び぀きを再床敎理するこずで、本番に向けお準備を敎えるこずができたず思いたす。 それ以倖の時間は趣味に充お、頭を䌑めたした。 戊略⑊詊隓盎前は埩習するだけ → 盎前に詰め蟌もうずしおも焊りでむンプットできないため、やったこずを埩習し、あずは自由に過ごす 詊隓圓日 詊隓前 䌚堎は行ったこずがない駅の近くの専門孊校でした。 朝早かったこずもあり、集合時間の 1 時間前くらいに䌚堎の最寄り駅たで行き、集合時間ギリギリたで近くの公園で朝ご飯を食べながらノヌトで最終確認をしおいたした。教宀は空気が重く䞍自由だったのでこの遞択は正解だった  ちなみに、持っお行った教材は自分がむンプットずアりトプットで䜿ったノヌト4冊です。 戊略⑧詊隓日の朝は呚りの空気に呑たれないように → 自分でその環境を䜜り出すこずが倧事 午前詊隓 午前詊隓では分からない問題はずにかく埌回しにしお、たず䞀通り解き終わるこずを目暙にしたした。 結局倧幅に時間が䜙ったため、分からなかった問題も含めお 3 回くらい芋盎しをするこずができたした。 昌䌑憩の時間に 過去問道堎 のサむトで解答速報が出るので、それに備えお問題に自分の解答を曞き蟌んでおくこずも倧切です。 早く解き終わったら退出できるので、昌䌑憩を有効に䜿いたい人は退出するのもオススメです。 昌䌑憩 昌䌑憩時は、朝ず同様の公園で昌ご飯を食べながら、解答速報を芋お答え合わせをしたした。 合栌ラむンに乗っおいたので、心眮きなく午埌詊隓に臚むこずができたず思いたす。 昌䌑憩は倚少の埩習もしたしたが、公園で少し䜓を動かすこずでかなりのリフレッシュになりたした。 戊略⑚昌䌑憩は頭を䌑める → 䜓を動かしたりしお気分転換をする 午埌詊隓 午埌詊隓は立おた戊略通り、確実に解く問題である、以䞋の問題を先に解きたした。 1. セキュリティ 3. アルゎリズム 7. 組み蟌みシステム 8. システム開発 しかし、この幎は組み蟌みシステムがずおも難しく感じ、ここだけは䞀旊問題甚玙に解答を曞き蟌んでネットワヌクずデヌタベヌスを解くこずにしたした。 問題文を読み始めるず、想定よりもネットワヌクが簡単だったため、その埌の解答にかなりの䜙裕ができ、ネットワヌクずデヌタベヌス、組み蟌みシステムを党お解いお比范するこずができたした。 結果的には、想定よりも簡単だったネットワヌク、少しでも点が取れる芋蟌みのあった組み蟌みシステムを解答ずしお提出したした。 所感 過去問をあたり倚く解いおいないこずもあり、芋たこずのない問題が倚かったですが、繋げお理解するこずにフォヌカスしお勉匷した結果、圓日も考えながら解答を導出できたず思いたす。 たた、午埌詊隓で倚少の想定倖のトラブルがありたしたが、萜ち着いお別の解答を進めるこずで最終的には時間に䜙裕ができたため、この方法を取っおよかったず思っおいたす。 戊略⑩詊隓時に分からない問題は埌回し → 分かる問題から解き進めるこずで時間ず心の䜙裕を確保する 結果 結果は  無事合栌できたした 午前が85点、午埌が90点です。 埗点分垃をみるず、午前は䞊䜍玄3%、午埌は䞊䜍玄0.1%でした。 IT ほが未経隓からここたで埗点を䞊げるこずができたのも、理解に専念したからだず思っおいたす。 特に午埌は過去問が出るこずはないので、どれだけ理解しおいるかがものを蚀うず思いたす。 そのため、午前よりも午埌の方が埗点が高い結果ずなったのだろうず思っおいたす。 たずめ 10の戊略たずめ ここたでで玹介した10の戊略をたずめおおきたす。 人によっお合う合わないがあるかず思いたすが、参考にしおいただければ幞いです。 ● スケゞュヌリング 戊略①適床なリフレッシュで勉匷時間の効率を䞊げる → 特に䌑日は1:1くらいの割合でリフレッシュする 戊略②勉匷開始は集䞭力を保おる期間を芋据えおから → 応甚情報は3, 4か月前がオススメ ● å­Šç¿’ 戊略③䞞暗蚘をやめお䜓系的に「繋げお理解する」こずに専念する → 繋げお理解するこずで、䜿える知識ぞず昇華できる、か぀最終的に時短にもなる 戊略④アりトプットはあくたで詊隓の圢匏の確認ず知識の補完・確認 → むンプットで埗た知識を確認するず共に抜け挏れをなくす 戊略⑀過去問を解くのは適床に終わらせお良い → 6回分で十分 戊略⑥午埌問題は思い切っお絞る → 確実に解く問題を2, 3問に絞り、重点的に孊習する ● 詊隓盎前 戊略⑊詊隓盎前は埩習するだけ → 盎前に詰め蟌もうずしおも焊りでむンプットできないため、やったこずを埩習し、あずは自由に過ごす ● 詊隓圓日 戊略⑧詊隓日の朝は呚りの空気に呑たれないように → 自分でその環境を䜜り出すこずが倧事 戊略⑚昌䌑憩は頭を䌑める → 䜓を動かしたりしお気分転換をする 戊略⑩詊隓時に分からない問題は埌回し → 分かる問題から解き進めるこずで時間ず心の䜙裕を確保する 最埌に ここたで読んでいただきありがずうございたす。 応甚情報はかなり出題範囲が広く、網矅するのは根気が必芁ですが、「繋げお理解する」こずで効率的に孊習を進めおいきたしょう。 あくたで私の孊習方法ず戊略ですが、今埌応甚情報を勉匷する方の䞀助ずなれば幞いです 私たちは䞀緒に働いおくれる仲間を募集しおいたす 電通総研 キャリア採甚サむト 電通総研 新卒採甚サむト 執筆 @fujishiro.ryunosuke 、レビュヌ @handa.kenta  Shodo で執筆されたした  table { width: 100% !important; border-collapse: collapse; } td { border: 1px solid #000; padding: 8px; word-wrap: break-word; } td:first-child { background-color: #d3d3d3; font-weight: bold; } blockquote { border-left: 5px solid #388e3c !important; background: #e8f5e9; padding: 10px; }
こんにちは。 ゚ンタヌプラむズ 第䞀本郚の新人、䜐藀悠です はじめに 質問したくる新人の私 タスクは思考の過皋から文字に起こす新人の私 RAGずは Bedrock knoeledgebasesでRAGを䜜成しおみた 参考資料 はじめに 質問したくる新人の私 私は珟圚、先茩瀟員の手を煩わせながら日々の業務を行っおいたす。 先茩は質問を歓迎しおいたすが、将来自分が同じ立堎になった際に同じ振る舞いができる気がしないので今から察策をしようず思い぀きたした。 仕事で分からないこずは圓然のようですが2぀に分けるこずができるず思っおいたす。 調べれば分かるこず 聞かないず分からないこず 圓たり前ですが新人は聞かないず分からないこずで質問をしたす。私は調べればわかるが聞いた方が早そうなこずは聞きたすけど... 業務䞊ではこのような聞かないず分からないような属人的な知識を扱うこずがありたす。 珟堎では、ほずんどが文曞化されデヌタが存圚しアクセス可胜なずころにありたすが、芏暡が倧きく耇雑化した結果、その文曞のありかを知っおいる人が限られおいるずいうような状態にも陥りがちです。 タスクは思考の過皋から文字に起こす新人の私 私はあたりワヌキングメモリがなく、次々ず考えるこずが増えたずきや次の日に持ち越した際に䜕をすればいいのか分からなくなりやすいので、以䞋のようにmdファむルでたずめたものがタスクごずに存圚しおいたす実案件のものなので文字は読めないようがかしおたす。 ここで割ずこために文曞に曞き起こす自分の特城ずRAGっお盞性いいなず感じたした。 前眮きが長くなりたしたが、この蚘事では業務䞊で扱う個別具䜓的な情報を回答できるように、自分がたずめたmdファむルでRAGを䜜成できるのかを技術的に怜蚌したす。 RAGずは 倧芏暡 蚀語モデル 自䜓に倉曎を加えるこずなく参照する情報を指定するこずでハルシネヌションの回避や特有の知識に察する回答の粟床を高めるこずができたす。 今回は以䞋のような構成を AWS 䞊で準備するこずを考えたす。 LangChainでRAGを実装するこずもできたすが普段䜿甚しおいる AWS でフルマネゞドで䜜成するこずができるBedrock Knowledge bases[1]が簡単なので今回はこれを䜿甚したす。 Bedrock Knowledge basesでRAGを䜜成しおみた 埋め蟌むデヌタは怜蚌なので以䞋のようなダミヌデヌタにしたした。 これをRAGを䜿甚せずに生成AIに案件Bの担圓者は誰ですかず聞いおも答えるこずは䞍可胜でしょう。 では、先ほどのmdファむルをデヌタ゜ヌスずしお䜿甚するためにS3に配眮したす。 次にBedrock Knowledge basesでこれを埋め蟌みする゜ヌスに指定したす。 マネゞメントコン゜ヌルでBedrockず怜玢し巊のメニュヌからKnowledgebaseを遞択したす。 Knowledgebaseを䜜成を抌䞋するず遷移先の画面でデヌタ゜ヌスを指定できたす。 次ぞを抌䞋した遷移先で実際にmdファむルを眮いた バケット の URI を指定したす。 埌は特別な蚭定をしない堎合はアクセス蚱可をした埋め蟌み甚のモデルを指定しお、ベクトルデヌタベヌスをクむック䜜成で完了です。 ストア先は OpenSearch を䜿甚したした。 䜜成したデヌタ゜ヌスを同期したす。 では無事に怜玢するべき情報をコンテキストに枡す準備ができたした。 以䞋の指瀺にどのような回答が返っおくるかテストしたす。 いかに....!? 生成AIの思考では出せない䞀般的ではない名前のデヌタを出力させるこずに成功したした。 これで怜蚌を終わりたす。 瀟内情報を䜿甚しおいいのかずかの線匕きを含めお超えないずいけない壁は耇数ありそうですが、技術的にできるのは嬉しいです。 ここたで読んでいただきありがずうございたした。 参考資料 [1]How Amazon Bedrock knowledge bases work https://docs.aws.amazon.com/bedrock/latest/userguide/kb-how-it-works.html 私たちは䞀緒に働いおくれる仲間を募集しおいたす 電通総研 キャリア採甚サむト 電通総研 新卒採甚サむト 執筆 @sato.yu 、レビュヌ @nagamatsu.yuji  Shodo で執筆されたした 
こんにちは、クロス むノベヌション 本郚゚ンゞニアリングテク ノロ ゞヌ センタヌの小柀英泰です。 本蚘事では GitHub Discussionsで ADR を管理する方法を玹介したす。 はじめに ADRずは 筆者チヌムのGitHubずの関わり方 ADR導入の目的 ADRに備えたい性質 蚘茉内容 運甹 ADRの構成 党䜓構成 個別の説明 タむトル ステヌタス コンテキスト 決定 圱響 コンプラむアンス 参考情報 備考 ADRのステヌタス管理 ステヌタスの遷移図 個別のステヌタス Draftドラフト Proposed提案䞭 Review Rejected华䞋 Accepted承認枈み Deprecated非掚奚 Superseded眮き換え 他のドキュメントずの違い ADRの管理にGitHub Discussionsを採甚した理由 比范芳点 比范怜蚎 結果 Discussions リポゞトリのdocsフォルダ Issues Wiki GitHub Discussionsでの運甚で埗たTips 無効なADRもOpenのたたずする DiscussionずIssueに関連を持たせる アヌキテクチャの決定をGitHub Copilotに読たせる さいごに ADRの䟋 ステヌタス コンテキスト 決定 結論 採甚の遞択肢ずその理由 GitHub Packages(npm packages) 採甚芋送りの遞択肢ずその課題 GitHub Packages(Docker Images) Monorepo Micro Service 圱響 コンプラむアンス 参考情報 備考 はじめに ADR ずは ADR ずは Architecture Decision Record の略称で、定矩は AWSのADRに関するドキュメント を拝借したす。 An architectural decision record ( ADR ) is a document that describes a choice the team makes about a significant aspect of the software architecture they’re planning to build. Each ADR describes the architectural decision, its context, and its consequences. ADRs have states and therefore follow a lifecycle. ADR ずは、チヌムが構築する゜フトりェア アヌキテクチャ の重芁な遞択を蚘述する文曞です。 各 ADR には、 アヌキテクチャ の決定、その背景、およびその結果を蚘述したす。 ADR には状態ずラむフサむクルがありたす。 Architecture Decision Recordをカタカナで アヌキテクチャ ディシゞョンレコヌド ず衚蚘する堎面もありたすが、手短に本ブログでは ADR で統䞀したす。 定矩だけでは想像が難しいず思いたすので、ご参考たでに 本蚘事の最䞋郚にプロゞェクトで管理するADR を蚘茉したした。 筆者チヌムの GitHub ずの関わり方 本題に入る前に、筆者チヌムにおける GitHub の掻甚方法を玹介したす。 私たちは普段5人前埌の開発チヌムでプロダクト開発を行うこずが倚く、プロダクトオヌナヌもGit/ GitHub を積極的に掻甚したす。構成管理以倖にも䞋蚘のようにプロダクト開発で扱うツヌルを GitHub に集玄し、連携するこずでメリットを最倧限に匕き出すこずを目指しおいたす。 GitHub Actions: CI/CD GitHub Codespaces: 開発環境 GitHub Discussions: 技術に関する議論や ADR 、議事録の管理 GitHub Issues: 課題管理 GitHub Packages: ゜フトりェアパッケヌゞの ホスティング GitHub Pages: Storybookや API 仕様曞の ホスティング GitHub Projects: プロゞェクト管理 ドキュメント管理においおは、 GitHub を信頌できる唯䞀の情報源ずしお䜍眮づけ、他のツヌルずの分散を避けるこずで、情報の䞀元化ず信頌性の向䞊を狙っおいたす。 たた、 アヌキテクチャ の決定に圱響のあるすべおのメンバヌが GitHub にアクセスできるこずを前提ずし、透明性を確保しながらプロダクト開発をしおいたす。 ADR 導入の目的 それでは、本題に入っおいきたしょう。 ADR 導入の目的は 未来のプロゞェクトメンバヌが圓時の アヌキテクチャ 決定の トレヌドオフ たで理解できるこず です。 特定の課題により採甚を芋送った アヌキテクチャ に぀いおも、経緯ず刀断理由を蚘録するこずで、将来のリ アヌキテクチャ 時に同様の問題を芋萜ずし、障害やリスクを匕き起こすこずの未然防止を目的ずしおいたす。オヌラルヒストリヌで課題を匕き継ぐのは困難を䌎うでしょう。 ADR に備えたい性質 次に、䞊蚘目的を達成するための ADR に備えたい性質を 蚘茉内容 ず 運甹 の芳点で敎理したす。 蚘茉内容 採甚 アヌキテクチャ ず採甚理由 採甚を芋送った アヌキテクチャ ず課題 関連する利甚䞭の技術や業務、組織的な制玄 ドキュメントの有効ず無効を刀別できるステヌタス 運甹 簡朔なテンプレヌトがある 䜜成およびメンテナンスのコストが䜎い 継続的な運甚フロヌがある すべおのプロゞェクト関係者がアクセスできる 誰がい぀䜕を倉曎したかを远跡できる 他のドキュメントやコヌドず敎合性が取れおいる 適切にレビュヌされ、承認されおいる ADR の構成 䞊蚘の目的や性質を螏たえ、 ADR の構成を䞋蚘ずしたした。 党䜓構成 タむトル ステヌタス コンテキスト 決定 圱響 コンプラむアンス 参考情報 備考 個別の説明 タむトル アヌキテクチャ 決定の簡単な説明 フォヌマットは [ADR_番号] タむトル 䟋、 [ADR_002] 基盀コヌドの公開方法 ステヌタス ステヌタスは6皮類あり Draftドラフト Proposed提案䞭 Accepted承認枈み Rejected华䞋 Deprecated非掚奚 Superseded眮き換え ステヌタスの詳现は埌述の ADR のステヌタス管理 を参照 コンテキスト 決定を䞋した状況 利甚䞭の既存技術ずの兌ね合いや組織や䜓制、ビゞネス面の時間的な制玄を螏たえる 決定 決定ず根拠 他の採甚を芋送った候補ず課題 圱響 決定による圱響 コンプラむアンス 決定が遵守されおいるこずを確認する方法 参考情報 参照すべき䞀次情報 理解を促すブログ任意 備考 その他の備考任意 ADR のステヌタス管理 ADR のステヌタス遷移ず、レビュヌのプロセスを定矩したす。 Acceptedのステヌタスが唯䞀、 ADR が有効であるこずを瀺したす。 ステヌタスの遷移図 個別のステヌタス Draftドラフト 提案者が䜜成䞭の状態 他のメンバヌぞは呚知前 Proposed提案䞭 呚知枈みでありレビュヌ可胜な状態 Review ※ 刀断でありステヌタスではありたせん。 レビュヌ完了の堎合、承認たたは华䞋ぞ進む 指摘事項ありの堎合、修正者ぞ差し戻す Rejected华䞋 レビュヌを経お採甚せず华䞋ずした状態 ADR 䜜成者は华䞋の理由を ADR に远蚘する 決定が無効であるこずを瀺す Accepted承認枈み レビュヌを経お承認した状態 決定が有効であるこずを瀺す Deprecated非掚奚 承認枈みの ADR を技術たたは業務、その他の理由により掚奚しない状態 決定が無効であるこずを瀺す Superseded眮き換え 既存の承認枈みの ADR の内容を、曎新たたは代替する新しい ADR を承認した状態 決定が無効であるこずを瀺す 承認枈みの ADR を随時曎新せず、新芏 ADR を䜜成するこずに泚意 他のドキュメントずの違い ADR ず類䌌するドキュメントの 䌝統的な アヌキテクチャ 蚘述 や DesignDoc ずの違いを敎理したす。 䌝統的な アヌキテクチャ 蚘述Traditional Software Architecture Description ずは、『 Design It! 』にお蚀及のある、暩嚁的であり成果物に含たれる蚭蚈ドキュメントです。膚倧で包括的な特城がありたす。 DesignDoc ずは、特定の機胜の蚭蚈方針や技術遞定をたずめ、開発チヌム内での合意圢成や意思決定に扱う蚭蚈ドキュメントです。 ADR ず重耇する郚分もありたすが機胜や凊理方匏に焊点を圓おおいたす。DesignDocを䜜成する堎合は、 アヌキテクチャ 決定に関する郚分を ADR に蚘茉し参照ずするのもよいでしょう。 䌝統的な アヌキテクチャ 蚘述 DesignDoc ADR 目的 システム党䜓の アヌキテクチャ を蚘録 特定機胜や蚭蚈倉曎の蚘録 特定 アヌキテクチャ 䞊の決定を蚘録 スコヌプ システム党䜓 特定の機胜や コンポヌネント 特定の決定やその圱響範囲に限定 蚘録内容 システム党䜓の構造、䟝存関係、非機胜芁件など包括的に蚘録 機胜の蚭蚈詳现や技術的 トレヌドオフ 決定の背景、遞択肢、結論、圱響を蚘録 䜜成タむミング プロゞェクトの初期段階から玍品たでの期間 機胜開発前や開発䞭 機胜倉曎が生じたタむミング 重芁な アヌキテクチャ 決定が行われたタむミング 利甚期間 長期的システムが皌働する限り 長期的機胜がある限り 長期的決定が有効な間 曎新頻床 䜎 高 䜎承認埌の内容は曎新せず新たに䜜成 曎新難易床 高 䜎 䜎 圢匏 暩嚁的で公匏 簡朔 簡朔 内容の粒床 詳现か぀包括的 実甚的か぀軜量 実甚的か぀軜量 䞻な読者 開発チヌム、運甚チヌム、玍品先 開発チヌム 開発チヌム ADR の管理に GitHub Discussionsを採甚した理由 筆者チヌムのGitHubずの関わり方 のずおり、ツヌルは GitHub に集玄する方針のため、ドキュメント管理も GitHub で運甚する前提がありたす。 GitHub の䞭でもドキュメントを管理する方法は耇数あり、䞋蚘4぀の候補を怜蚎したした。 Discussions リポゞトリ のdocsフォルダ Issues Wiki 比范芳点 ADR の GitHub での管理方法の4候補を䞋蚘5぀の芳点で比范したす。 構成管理 誰がい぀䜕を倉曎したか远跡できるか テンプレヌトの利甚 決たったフォヌマットで新芏䜜成できる、たたは耇補できるか 怜玢性 タむトルや内容を特定ワヌドで怜玢できるか フィルタヌの容易性 他甚途のドキュメントず分離できるか ADR の䞀芧化をできるか ADR にレビュヌを残せるか レビュヌコメントをどこに残すか 比范怜蚎 結果 䞋衚の比范結果より、 ADR 管理にはDiscussionsを採甚したした。 Discussions リポゞトリ のdocsフォルダ Issues Wiki 構成管理 ◎ ◎ ◎ ◎ テンプレヌトの利甚 ◎ ◎ ◎ ◯ 怜玢性 ◎ ◎ ◎ ◯ フィルタヌの容易性 ◎ ◯ ◯ ◯ ADR にレビュヌを残せるか ◎ ◯ ◯ × ◎: 容易に可胜 ○: 可胜 ×: 䞍可胜たたは珟実的でない Discussions 構成管理◎ 右䞊のeditedのプルダりンから远跡可胜 ステヌタス管理の方法から通垞のコヌドず比范しお、倉曎数は少ないため十分ず刀断 テンプレヌトの利甚◎ Discussion Templateでテンプレヌト化可胜 .github/DISCUSSION_TEMPLATE/{categoryName}.yaml のようにカテゎリ名の YAML を䜜成。Issue Templateず異なり YAML のファむル名に芏則あり。詳现は公匏ペヌゞを参照 ディスカッション カテゎリ フォヌムの䜜成 怜玢性◎ テキスト怜玢が可胜 フィルタヌの容易性◎ サむドバヌの ADR のカテゎリヌ遞択によるフィルタヌ1クリック ラベルでのフィルタヌも可胜 ADR ラベルず ADR のステヌタスのラベル、関連技術のラベル付䞎により芖認性向䞊 ADR にレビュヌを残せるか◎ Discussion内でのコメントずしおレビュヌ テヌマごずにスレッド化しお、スレッド内でリプラむ可胜 ADR 本䜓ずレビュヌのコメントが同䞀ペヌゞにあり、思考過皋を蟿るこずができる リポゞトリ のdocsフォルダ 構成管理◎ 明らか テンプレヌトの利甚◎ テンプレヌトファむルを甚意し、耇補利甚 怜玢性◎ テキスト怜玢が可胜 フィルタヌの容易性◯ /docs/ adr 配䞋に集玄するこずで他のドキュメントず分離 /docs/ adr 配䞋にフラットに配眮するか、 ADR の皮類に応じお ディレクト リを切るかは怜蚎の䜙地ありのため評䟡は◯ ADR にレビュヌを残せるか◯ PRにおレビュヌ。 ADR から該圓のPRを探す手間ありのため評䟡は◯ GitHub 䞊からファむルをBlameビュヌで衚瀺しおPRを蟿る Issues 構成管理◎ 右䞊のEditsのプルダりンから远跡可胜 テンプレヌトの利甚◎ Issue Templateでテンプレヌト化可胜 .github/ISSUE_TEMPLATE/{templateName}.yml でテンプレヌト化 怜玢性◎ テキスト怜玢が可胜 フィルタヌの容易性◯ Labelsのプルダりンから ADR ラベルでフィルタヌ2クリック Discussionは1クリックのため評䟡は◯ ADR にレビュヌを残せるか◯ スレッド化はできないがフラットにコメント可胜なため評䟡は◯ Wiki 構成管理◎ revisionsから远跡可胜 テンプレヌトの利甚◯ テンプレヌトのペヌゞを䜜成し、耇補利甚 ファむルの耇補ず比范するず手間があるため評䟡は◯ 怜玢性◯ Wiki 単䜓に怜玢機胜はないが、 リポゞトリ 党䜓で怜玢可胜なため評䟡は◯ フィルタヌの容易性◯ サむドバヌで階局構造を衚珟できるが手間があるため評䟡は◯ ADR にレビュヌを残せるか× ADR に远蚘するこずでレビュヌずコメントが可胜だが珟実的でないため評䟡は× GitHub Discussionsでの運甚で埗たTips GitHub Discussionsを甚いお、 ADR 管理をシンプルに運甚するこずができたす。運甚する䞭で埗たTipsを玹介したす。 無効な ADR もOpenのたたずする ADR のステヌタスがDeprecated、Rejected、Supersededに倉化し、無効な ADR ずなっおもDiscussionはOpenのたたで運甚したす。これは GitHub Discussionsのデフォルトのフィルタヌ条件がOpenなDiscussionのみ衚瀺のためです。無効な ADR 含め䞀芧で芋たいため、無効な ADR もCloseしたせん。 DiscussionずIssueに関連を持たせる Discssionに蚘述した ADR がIssueの課題に関連を持぀堎合は蟿れるように盞互にリンクを貌りたす。 Discussionsペヌゞの怜玢窓からはIssueは怜玢範囲倖です。Issueやコヌドを含めお怜玢したい堎合は、 リポゞトリ 党䜓で怜玢したしょう。 アヌキテクチャ の決定を GitHub Copilotに読たせる 2025幎3月時点では、 GitHub Copilotは GitHub Discussionsのドキュメントを読み取るこずはできないようです。 アヌキテクチャ の決定を GitHub Copilotに読たせたい堎合は、必芁な箇所を リポゞトリ のdocsやREADME、copilot-instructions.mdに蚘茉したしょう。 さいごに ADR の目的から構成やステヌタスを定め、 GitHub Discussionsを甚いお ADR を管理する方法を玹介したした。今埌の運甚で新たな気づきがあれば、改めお蚘事を投皿したいず思いたす。 プロゞェクトによっお ADR の最適な管理方法は異なりたすが、1぀の䟋ずしお参考になれば幞いです。 私たちは䞀緒に働いおくれる仲間を募集しおいたす 電通総研 キャリア採甚サむト 電通総研 新卒採甚サむト ADR の䟋 タむトル: [ ADR _002] 基盀コヌドの公開方法 ステヌタス Proposed コンテキスト 案件カスタマむズをする際に基盀のコヌドを利甚し、容易に案件カスタマむズを実斜できるようにしたい。 基盀のコヌドをどのようにパッケヌゞングし、公開するかを怜蚎する。 決定 結論 以䞋の候補を怜蚎し、 GitHub Packages(npm packages)ずしお公開するこずずする。 GitHub Packages npm packages Docker Images Monorepo Micro Service 評䟡の芳点は以䞋。 独立性 基盀コヌドず案件コヌドが独立しおいるか 利甚容易性 案件偎から容易にパッケヌゞを利甚できるか パッケヌゞのむンタヌフェヌスは䟿利か カスタマむズ性 案件偎で振る舞いを倉曎できるか 案件偎で振る舞いを䞊曞きできるか 拡匵性 基盀コヌドはメンテナンスしやすいか 基盀コヌドは機胜远加しやすいか 方法 独立性 利甚容易性 カスタマむズ性 拡匵性 GitHub Packages(npm packages) ◯ △ ◯ ◯ GitHub Packages(Docker Images) ◯ △ × △ Monorepo × ◯ ◯ × Micro Service ◯ × ◯ ◯ 採甚の遞択肢ずその理由 GitHub Packages(npm packages) 独立性◯ - 基盀コヌドず案件コヌドで リポゞトリ を分割可胜 パッケヌゞはバヌゞョニングできるため、基盀コヌドのバヌゞョン間でも独立しおいる 利甚容易性△ ナヌザはnpm installで利甚可胜 実装にもよるがラむブラリ圢匏のためある皋床の利䟿性 コンポヌネント の組み合わせ盞圓の実装は呌び出し偎の責務ずなり、倚少実装コストがある カスタマむズ性◯ 匕数やpropsによっお振りたいを倉曎可胜 利甚しにくい コンポヌネント は独自 コンポヌネント で差し替えるこずが可胜 メンテナンス・拡匵性◯ 新しい コンポヌネント を远加したり、 コンポヌネント のpropsを増やしたりし、機胜远加が可胜 採甚芋送りの遞択肢ずその課題 GitHub Packages(Docker Images) 独立性◯ リポゞトリ を分割できる バヌゞョニングできる 利甚容易性△ Docker Image圢匏で利甚可胜 呌び出し偎はDocker実行時のパラメヌタを倉曎するのみ パラメヌタが倧量になる可胜性あり カスタマむズ性× パラメヌタを倉曎するこずで振る舞いを倉曎可胜 振る舞いの䞊曞きはできない パラメヌタ以䞊の振る舞い倉曎は䞍可胜 拡匵性△ 実行時パラメヌタを増やすこずで拡匵可胜 カスタマむズの数だけ実行時パラメヌタが増えおしたう 匕数が倧量にあるDocker Imagesは基盀偎にずっおも案件偎にずっおも䟿利ではないず予想 Monorepo 独立性× ディレクト リ盞圓のため、独立性があるかず蚀われるず埮劙 案件担圓者が基盀コヌドを盎接参照したり、修正できたりする バヌゞョニングできない 利甚容易性◯ npm workspaceなどを䜿ったラむブラリの圢匏になる ラむブラリ圢匏のため GitHub Packages(npm packages)ず同皋床か コヌドのコピペも可胜 カスタマむズ性◯ パラメヌタを倉曎するこずで振る舞いを倉曎可胜 パラメヌタ以䞊の振る舞い倉曎は䞍可胜 メンテナンス・拡匵性× - バヌゞョニングができないため、基盀コヌドの修正ずリリヌスが簡単に実斜できない Micro Service 独立性◯ リポゞトリ の分割ができる バヌゞョニングができる 利甚容易性× API を通した呌び出しになる バック゚ンド機胜の共有には䟿利だが、フロント゚ンドコヌドの共有は難しい カスタマむズ性◯ API のパラメヌタを倉曎するこずで振る舞いを倉曎可胜 API を利甚せず、独自実装を甚いるこずで振る舞いを䞊曞き可胜 メンテナンス・拡匵性◯ API を拡匵しおいく方匏になる 圱響 GitHub リポゞトリ を新しく䜜り、その リポゞトリ でパッケヌゞング甚のビルド スクリプト を曞き、 GitHub PackagesにpushするCIフロヌを曞く 公開の際のバヌゞョニングの方法を別途怜蚎する コンプラむアンス 基盀コヌドの リポゞトリ を分割し、その リポゞトリ からパッケヌゞを公開するこずで、 GitHub Pacakges(npm packages)経由での利甚を案件偎に匷制するこずが可胜。 基盀コヌドの リポゞトリ に぀いおはアクセス制限を厳密に実斜する。 倖郚メンバヌにはwrite, read皋床の暩限を付䞎し、mainブランチはブランチプロテクションで制限し、自分たちの知らないずころで基盀コヌドを倉曎されないようにする。 基盀コヌドを案件開発者が閲芧し、案件コヌドにコピペするこずは蚱容する。 参考情報 https://tech.dentsusoken.com/entry/2025/02/25/_%E8%A3%BD%E5%93%81%E3%81%AE%E3%82%A2%E3%83%89%E3%82%AA%E3%83%B3%E3%82%92%E5%AE%9F%E7%8F%BE%E3%81%99%E3%82%8B%E3%81%9F%E3%82%81%E3%81%AE%E6%9C%80%E9%81%A9%E3%81%AA%E3%82%A2%E3%83%97%E3%83%AD%E3%83%BC 備考 別途案件カスタマむズ時の初期セットアップをサポヌトするために、Template リポゞトリ を䜜りたい 執筆 @ozawa.hideyasu 、レビュヌ @takami.yusuke  Shodo で執筆されたした 
はいどヌもヌ ゚ンタヌプラむズ 第䞀本郚の宮柀響です 本蚘事では、私が運営チヌムリヌダヌずしお運営を䞻導した匊瀟の瀟内むベントである「AHEAD AWARD 2024」に぀いおご玹介したす むベントの詳现には瀟倖秘の情報も含たれたすが、圓然そのような内容は蚘茉できないため、党䜓的にあっさりめの衚珟ずなっおいたす ご容赊ください  こんなむベントがあるんだな、こんな組織颚土なんだな、ずいうようなこずを感じ取っおいただけたら幞いです  その意味では、匊瀟に぀いお情報収集しおいる就掻生やキャリア入瀟怜蚎䞭の方向けの蚘事かなず思いたす  AHEAD AWARDずは どんなこずをするの 運営チヌムリヌダヌをやっおみおの感想など おわりに AHEAD AWARDずは AHEAD AWARDずは、「匊瀟の 行動指針 である『AHEAD』を䜓珟し、匊瀟や匊瀟のお客様ぞの貢献床の高い掻動を、瀟員投祚によっお遞定する、瀟員による瀟員のためのアワヌド」ずされおいたす。 噛み砕いおいえば、2024幎に実斜されたあらゆる掻動の䞭から自薊圢匏でノミネヌトを募り、プレれンテヌションや党瀟投祚を経お受賞掻動を決定・衚地するむベントです。 そのため、2025幎開催ではあるものの、むベント名はAHEAD AWARD 2024 ずなりたす。 なお、他瀟様においおは、フュヌチャヌ株匏䌚瀟の「Best Project of the Year」などが近しいむベントかなず思いたす。 どんなこずをするの AHEAD AWARD 2024の倧たかな流れは以䞋でした。 内容は幎々アップデヌトされおいきたすので、こちらはあくたで今回の内容です ゚ントリヌ AHEAD AWARD 2024に゚ントリヌする掻動を、掻動代衚者の方からの自薊圢匏で募集したす。 察象ずなる掻動は䞊述のずおり2024幎に実斜されたあらゆる掻動であり、察倖的な有償案件だけでなく、自瀟内の斜策や取り組みなども含たれたす。 応募にあたっおは、掻動代衚者の方にPRシヌトず呌ばれる資料を提出しおいただきたす。 PRシヌトには、掻動の抂芁やアピヌルポむントなどを蚘茉しおいただきたす。 ノミネヌト掻動遞定 運営チヌムなどが䞭心ずなっお、゚ントリヌされた掻動の䞭からノミネヌト掻動を遞定したす。 ノミネヌト掻動に遞定された掻動は、これ以降の投祚やプレれンテヌションに駒を進められたす。 事前投祚 ノミネヌト掻動のPRシヌトやPR動画を公開し、党瀟投祚を実斜したす。 瀟員のみなさたには、「AHEAD」を䜓珟しおいるず感じる掻動に投祚しおもらいたす。 プレれンテヌション ノミネヌト掻動の代衚者や関係者がプレれンテヌションを実斜したす。 プレれンテヌションはオンラむンでも配信されるため、珟地オンラむンを問わず芖聎できたす。 圓日投祚 プレれンテヌションを螏たえた䞊で、改めお党瀟投祚を実斜したす。 PRシヌトやPR動画だけでは分からなかった長所や魅力が反映された投祚ずなりたす。 衚地 事前投祚ず圓日投祚の祚数を合算しお、受賞掻動を決定したす。 AHEAD AWARD 2024では、Gold Prize、Silver Prize、Bronze Prizeの3぀の賞がありたした。 それぞれの賞を受賞した掻動に察しおは、トロフィヌや副賞が莈呈されたす。 埌倜祭 最埌は埌倜祭ず称した立食圢匏のミニパヌ ティヌ を開催したす。 こちらはノミネヌト掻動関係者に限らずどなたでも参加可胜です。 匊瀟の瀟内同奜䌚である 電通 総研Jazz郚のみなさたによる生挔奏も行われたした。 運営チヌムリヌダヌをやっおみおの感想など たず第䞀に、運営チヌムメンバヌやノミネヌト掻動関係者のみなさたずの本郚・事業郚の枠を越えた繋がりができたこずが倧きな財産になったず感じおいたす。 いわゆる通垞の業務ではどうしおも同じ郚眲のメンバヌや同じ案件に携わっおいるメンバヌずしか関わりがない状態になりがちなのですが、今回の掻動を通しお瀟内の垣根を越えた繋がりを構築できたした。 たた、匊瀟の掻動を知る良い機䌚にもなったず感じおいたす。 普段から他郚眲がどんなこずをやっおいるのかを把握できおいるわけではなかったため、PRシヌトやプレれンテヌションなどを通じお他郚眲の掻動内容を知るこずができ、匊瀟党䜓の業務に察する理解が深たりたした。 なお、珟圚はAHEAD AWARD 2025の運営メンバヌに向けた匕き継ぎ資料を䜜成䞭です。 ずいうのも、AHEAD AWARDの運営チヌムは、リヌダヌやサブリヌダヌは前幎の運営メンバヌから遞出されるものの、基本的にメンバヌが毎幎入れ替わりたす。 そのため、ただ開催しお終わりずいうわけではなく、その埌の振り返りや匕き継ぎが重芁ずなりたす。 このあたりも最埌たできっちりこなしおいく所存です。 おわりに 本蚘事では、匊瀟の瀟内むベントであるAHEAD AWARD 2024に぀いおご玹介したした 本業の傍ら、このようなむベント運営にも手を挙げられるような働き方に興味がある、ずいう方は、チラ芋だけでも結構ですので、匊瀟の 新卒採甚サむト や キャリア採甚サむト をご芧いただければず思いたす。 最埌たでお読みいただき、本圓にありがずうございたした 私たちは共に働いおいただける仲間を募集しおいたす みなさたのご応募、お埅ちしおいたす 株匏䌚瀟電通総研 新卒採甚サむト 株匏䌚瀟電通総研 キャリア採甚サむト 執筆 @miyazawa.hibiki 、レビュヌ @iwasaka.emari  Shodo で執筆されたした 
泚意 2025幎2月珟圚、WhiskおよびImageFXの商甚利甚に぀いお、 Google は公匏な芏玄を発衚しおいたせん。 本蚘事は個人的な怜蚌を行うものであり、珟時点では実際のビゞネスでの利甚は想定しおおりたせん。 生成された画像に぀いおは私的利甚の範囲内に限定したす。たた、本蚘事には画像生成AIによっお䜜成されたむラストが倚く含たれたす。 二次利甚 はお控えください。たた、本蚘事で玹介した手法により発生したいかなるトラブルに぀いおも匊瀟は䞀切の責任を負いたせん。あらかじめご了承ください。 こんにちは。 ゚ンタヌプラむズ 第䞀本郚 戊略゜リュヌション 1 郚の英です。 普段はWebアプリや スマホ アプリの案件などを担圓しおいたす。あず、趣味でAIを勉匷しおいたす。 最近登堎したWhiskが面癜そうなので觊っおみたす。 Whisk は2025幎2月12日から詊運転が始たったばかりの新しいサヌビスです。 1Whiskに぀いお 2前眮き 3今回の怜蚌内容に぀いお 4怜蚌 補足モデルを䜜るずきのプロンプトサンプル さいごに 1Whiskに぀いお たず、Whiskは Google が提䟛するこんなサヌビスです。 詳现に぀いおはコチラの リンク をご参照ください。 冒頭でお䌝えした通り、 著䜜暩 や利甚範囲に関する明確な蚘述がないのが珟状です。 そのため、本蚘事を参考ずしたビゞネスシヌンでの利甚に぀きたしおは、利甚するご本人様の責任でお願いいたしたす。 匊瀟は䞀切の責任を負いたせんので、あらかじめご了承ください。 Whiskでは、スタむルず背景を指定し、その範囲内でモデルを描くこずができたす。 これたでの画像生成AIではプロンプトを甚いお 自然蚀語 でスタむルや背景を现かく指瀺しおいたした。 自然蚀語 でそれらを完璧に衚珟するこずが難しく、同じプロンプトでも生成するたびに絵柄が倉わっおしたうずいうのがあるあるでした。 今回のWhiskではその「絵柄」を画像ファむルから指定できるようになったず捉えおいただければず思いたす。 この機胜を䜿えば、同じ「絵柄」の画像を量産できるのではないか そんな野望が芜生えたので、䌚瀟のテックブログで消化したす。 2前眮き 今回は画像生成AIを取り扱うため、前眮きが長めです。お付き合いください。 さお、䞖の䞭に画像生成AIが登堎しお からし ばらく経ちたした。 これたで 著䜜暩 に぀いおたくさんの議論が起こっおは消滅し、たた新たな火皮が投䞋されおは論争が起こる。 そんな日々がもう䜕幎も続いおいたす。 個人的な考えですが、日本囜内に限定した話ならば、囜が定める ガむドラむン が絶察的なルヌルです。これは各自で調べおください。その次に参照すべきは各生成AIツヌルが定める芏玄だず思いたす。 ビゞネスマンずしお、最䜎限これらのルヌルは遵守しお利甚しなければなりたせん。 ずはいえ、ルヌルの䞭でカバヌしきれおいない倫理的な問題を抱えおいるのも事実で、これらが「感情論」の䞀蚀で片づけられおいる今の䞖の䞭にも問題があるずは思いたす。個人的なクリ゚むタヌの目線でもそう思いたす。 新しい技術には吊定的な意芋が付き物です。様々な声を聎きながら技術は少しず぀進歩したす。 もしかしたら10幎埌には新しいルヌルが策定され、この蚘事で曞いおあるこずがすべお違法なんおこずにもなるかもしれたせん。その時はその時です。その時になったら、その時の最新のルヌルの䞭で最適な刀断を䞋したしょう。 ここはドラむに考えないず、䟡倀の創造が止たっおしたいたす。 3今回の怜蚌内容に぀いお 皆さんはプレれン資料に差し蟌む画像玠材っおどこで調達しおいるでしょうか。 商甚フリヌの玠材サむトもあれば、買い切りの玠材サむトなど色々ありたすよね。 今回はWhiskを掻甚しお、欲しい玠材を自分で䜜る実隓をしおみたす。 もう䞀床蚀いたす。実隓です。 前述の通り、Whiskでは「絵柄」の指定ができたす。 有名な玠材サむトだず「いらすずや」ずいう玠晎らしいサヌビスがありたすが、むラストの絵柄が特城的ですよね。 この絵柄を継承した「AIいらすずや」ずいうサヌビスがありたす。 では、その「AIいらすずや」が生成した画像の 著䜜暩 に぀いおはどうか。 これはサヌビスの芏玄にこのように明蚘されおいたす。 ※匕甚 AIいらすずや これも圓然かず思いたす。 なぜならばプロンプトを曞くのはサヌビスの利甚者であり、プロンプトに基づいお新しい画像が生成されたす。 プロンプトずいう自由入力に察しお、サヌビス偎が責任を持぀こずはあたりにも荷が重すぎたす。 䟋を挙げるずするなら、AIいらすずやを開いお、ピ〇チュりずでも入力しおみおください。 危ない。ほんずに危ない。 呚りの可愛いや぀らはただよいですが、モザむクをかけた郚分なんおほがピ〇チュりです。 人間が描いた絵も、AIが描いた絵も、アりトプットが既存の著䜜物に類䌌しおいるかずいう芳点が重芁です。 私が手曞きで ピカチュり のむラストを描いお1枚100円で売ったら明らかに 著䜜暩䟵害 ですし、AIで ピカチュり のむラストを描いお1枚100円で売っおも 著䜜暩䟵害 です。手法が違うだけで犯しおいる問題は同じ。 もし、このような問題に察しおサヌビス偎が責任を負うならば、 絶察に安党な画像しか生成されない定型文 を䜕床も怜蚌し、ナヌザヌはその定型文から遞択するだけみたいなUI/UXに瞛らないずいけたせん。 そんな仕様では、t2iのサヌビスずしおは砎綻しおしたいたす。誰も䜿わず寂れおいくだけでしょう。 だからこそ䜿い方には制限をかけず、生成された成果物に察する責任の考え方に぀いお芏玄で明確にしおいるのだず察したす。 ちなみに、Sunoのような音楜生成のサヌビスでも同じようなルヌルが採甚されおいたす。自己責任だずいうこずです。 ※匕甚 Suno さお、ではWhiskはどうでしょうか。 Whiskにはこのように蚘茉がありたす。 芏玄のリンク先では 生成しおはいけないもののリスト が公開されおいたす。そしお、生成におけるコン トロヌル の䞻䜓はナヌザヌだず蚀っおいたす。぀たり、生成されたものが著䜜物に䌌すぎたり、グロすぎたり、性的だったりしたらナヌザヌが責任をもっおプロンプトで指瀺内容を調敎しないずいけたせん。 䟋えば、Whiskのスタむルに 鳥山明 先生のむラスト、背景にディズニヌ映画、モデルにピ〇チュりの画像を指定しお画像を生成したずしたしょう。これを商甚利甚しおしたった日には倧炎䞊確定です。 確定挔出で画面が虹色に茝いお、スピヌカヌから音が鳎るでしょう。぀いでにクビになりたす。 ※ほんずに芋せられたせん 4怜蚌 今回はできるだけ安党に䜿いたいので、手曞きのむラストをベヌスにしたす。 私が5分で描きたした。このむラストの 著䜜暩 は私にありたす。 ビゞネス向けのむラストっおだいたいこんな顔しおたすよね。 これをスタむルに差し蟌んで、背景は無地を指定したす。 プロンプトをいじりながらいく぀か画像を生成しおみたしょう。 1.サッカヌをしおいる少幎 ※モデルはプロンプトにより生成(A simple, monochrome, single-line flat illustration of a young boy playing soccer. He has short, slightly messy hair and is wearing a sports jersey and shorts. He is kicking a soccer ball with one foot, with motion lines around the ball to emphasize movement. His expression is focused and energetic. The illustration is minimalistic, using clean, continuous black lines on a white background, without shading or extra details.) 2.䜕かをひらめいたビゞネスマン ※モデルはプロンプトにより生成(A simple, monochrome, single-line flat illustration of a young boy playing soccer. He has short, slightly messy hair and is wearing a sports jersey and shorts. He is kicking a soccer ball with one foot, with motion lines around the ball to emphasize movement. His expression is focused and energetic. The illustration is minimalistic, using clean, continuous black lines on a white background, without shading or extra details.) 3.ランチを食べおいる女性 ※私の絵ず䌌おいないものはモザむクをかけおいたす ※モデルはプロンプトにより生成(A simple, monochrome, single-line flat illustration of a woman eating lunch. She has shoulder-length hair and is wearing a casual outfit or business attire. She holds a lunch box, sandwich, or bowl in one hand and a utensil in the other. Her expression is relaxed and content. The illustration is minimalistic, using clean, continuous black lines on a white background, without shading or extra details.) 4.運転をしおいる男性 ※私の絵ず䌌おいないものはモザむクをかけおいたす ※モデルはプロンプトにより生成(A simple, monochrome, single-line flat illustration of a man driving a car. He has short hair and is wearing a casual shirt or suit. He grips the steering wheel with both hands, looking forward with a neutral or focused expression. The illustration is minimalistic, using clean, continuous black lines on a white background, without shading or extra details.) 5.プレれンをしおいる男性 ※モデルはプロンプトにより生成(A simple, monochrome, single-line flat illustration of a man giving a presentation. He has short hair and is wearing a suit with a tie. He is standing confidently, gesturing with one hand while holding a pointer or remote control in the other. A simple presentation board or screen with minimal bar charts or graphs is in the background. The illustration is minimalistic, using clean, continuous black lines on a white background, without shading or extra details.) 補足モデルを䜜るずきのプロンプトサンプル 目的 プロンプト 効果 癜黒の線画にする black and white line art, high contrast, pen and ink style, no grayscale グレヌの階調を培底的に排陀し、ペン画颚のメリハリある線画を埗やすくなる。 䞀本の線で描くようにする single continuous line drawing, one-line art, minimal detail 䞀本の流れるような線で描いたシンプルなむラストを生成しやすくなる。 フラットなデザむン flat vector-style illustration, minimal shading, no gradients 奥行きや立䜓感を抑え、 ベクタヌ アヌトのようなフラットな仕䞊がりを埗やすくなる。 描き蟌みを枛らす ultra-minimalist design, reduce extraneous details, simple lines 䜙蚈な装食を削ぎ萜ずし、シンプルで芖認性の高いむラストを埗やすくなる。 さいごに けっこう期埅しおいたのですが、党䜓的に「なんずなく絵柄が䌌おいるかもな」くらいの印象です。 これは私の手曞きむラストのクオリティが䜎かったこずが原因だず思いたす。 画力に自信のある人は手元の環境でぜひ詊しおみおください。 ただ実隓段階ずはいえ、無料でこのクオリティのサヌビスを提䟛する Google には頭が䞊がりたせんね。 これを悪甚しお玠材サむトで販売しようかなずか思わない方がよいです。 今埌、画像生成AIに関する䞖の䞭の考えかたや法埋がどのように倉わっおいくか静芳したしょう。 これからも AWS やAI関連の怜蚌蚘事をたくさん曞いおいきたす。 ↓ のスタヌを抌しおいただけるず嬉しいです。励みになりたす。 最埌たで読んでいただき、ありがずうございたした。 ゚ンタヌプラむズ 第䞀本郚では䞀緒に働いおくださる仲間を募集䞭です。以䞋のリンクからお願いしたす。 私たちは䞀緒に働いおくれる仲間を募集しおいたす 䞭途採甚-゚ンタヌプラむズ第䞀本郚 新卒採甚-゚ンタヌプラむズ第䞀本郚 執筆 英 良治 (@hanabusa.ryoji) 、レビュヌ @nakamura.toshihiro  Shodo で執筆されたした 
こんにちは。 ゚ンタヌプラむズ 第䞀本郚の新人、䜐藀悠です。 はじめに 筆者に぀いお AIFの抂芁 AIFで問われるAWSサヌビス Amazon SageMaker [2] Amazon SageMaker Clarify [3] Amazon SageMaker Canvas [4] Amazon Bedrock [5] Amazon Bedrock ガヌドレヌル [6] その他のサヌビス AIFで問われる抂念 責任あるAI [7] 機械孊習の手法 LLMに関しお 孊習教材 CloudLicense Hands on for Beginers Amazon Bedrock Overview たずめ 参考にしたサむト はじめに 衚題の通り AWS Certificated AI Practitioner以䞋:AIFに合栌したした。 AIFは最近できた詊隓で問題集や調べお出おくる情報も少ないため抂芁や問われたサヌビス矀、おすすめの孊習方法を蚘したす。 筆者に぀いお 孊郚は文系で情報を䞀切やっおいない 倧孊院ではAIに関しお研究 AWS 觊り始めお半幎 AIFの抂芁 AIFずは AWS 認定の公匏ペヌゞ[1]によるず以䞋のような知識を問う資栌です。 AWS Certified AI Practitioner は、 人工知胜 (AI)、 機械孊習 (ML)、生成 AI の抂念ず ナヌスケヌス に関する需芁の高い知識を実蚌したす。 AIを掻甚する際にどのような手法を甚いるべきかずいうこずが䞻に問われたす。AIの掻甚はLLMが登堎しおから、さらに掻発に行われおきた背景があり、この資栌自䜓も最近できた比范的新しいものになりたす。 AIFで問われる AWS サヌビス 詊隓で問われる䞻な AWS サヌビスを玹介したす。 Amazon SageMaker [2] 広く採甚されおいる AWS の 機械孊習 ず分析機胜をたずめた Amazon SageMaker は、分析ず AI のための統合゚クス ペリ゚ ンスを、すべおのデヌタに察する統合アクセスずずもに提䟛したす Amazon SageMaker Clarify [3] モデルの評䟡ずモデル予枬の説明 Amazon SageMaker Canvas [4] ビゞュアル むンタヌフェむス を䜿甚しお非垞に正確な ML モデルを構築したす Amazon Bedrock [5] 基盀モデルを䜿甚しお生成 AI アプリケヌションを構築およびスケヌリングする最も簡単な方法 LLMの文脈で問われた際にはこのサヌビスがほが必ず問われたす。 頻繁に問われる内容ずしおはLLMの出力調敎はプロンプトで行う点であったり、枩床(Temparature)が回答のランダム性を生み出したりする点などがあげられたす。 たた、課金は基本的に トヌク ンずいう蚀語をAIで扱う際の基本単䜍で決たるため入力や出力できる文字数の制限もでき、こちらも問われたした。 トップPは確率的にずりうる遞択肢を絞りたす。 トップKは遞択肢を䞊から指定した数だけ絞りたす。 これらは生成される文章の倚様性に圱響したす。 Amazon Bedrock ガヌドレヌル [6] Amazon Bedrock ガヌドレヌルには、生成 AI アプリケヌションを倧芏暡に安党に構築するのに圹立぀蚭定可胜な保護手段が甚意されおいたす これに関しお䟋を挙げるず子ども向けのLLMを構築する際に䞍適切な内容を衚瀺しないようにするにはずいうような ナヌスケヌス でこのサヌビスを掻甚する方法が問われたした。 その他のサヌビス 機械孊習 (ML)ず生成AI(LLM)の文脈で蚭問が蚭定されおいる時には以䞊のサヌビスに加えお OCR の Amazon Textractや感情分析の Amazon Comprehendなどが問われおいたした。これはAIの文脈以倖でも頻繁に耳にするサヌビスではあるのでCloud Practitionerを取埗した人ならば理解できる範囲の内容だずは思いたす。 この他にはAIそのものではないですが、生成AI゚ンドポむントにアクセスしたログの取埗にCloud Trail,デヌタの保存にS3,デヌタの読み出しができない堎合のポリシヌの蚭定などもAI関連の゜リュヌション提䟛の際に考えられる課題の䞀皮で出題されたした。 AIFで問われる抂念 次にサヌビスずは異なる芳点で出題される内容です。 責任あるAI [7] 公平さ 説明可胜性 プラむバシヌずセキュリティ 制埡性 正確性ず堅牢性 ガバナンス 透明性 特に公平さず透明性に関しお問われるこずが倚かったです。 機械孊習 の手法 線圢回垰 ロゞスティック回垰 サポヌトベクタヌマシン 決定朚 ニュヌラルネットワヌク 敵察的生成ネットワヌク(GAN) k-means これは AWS のサヌビスには関係なく 機械孊習 を䜿甚する䟋においおどの手法を䜿甚するべきかずいうこずを遞択する圢匏の問題が出題されたした。 どのような分析に䜿甚され、どのような結果を出すかをセットでわかっおいれば良いずいうレベルで数孊的な芳点は問われないので過床な心配は䞍芁です。各手法に぀いお軜く調べおみおください。 LLMに関しお トヌク ン 埋めこみ プロンプト゚ンゞニアリング RAG 近幎、流行りのLLMに関する背景知識ず応甚の手法を問われたす。 トヌク ンや埋め蟌みLLMの基瀎に関しおはTransformerが登堎した論文、Attention Is All You NeedずBERTの論文、BERT: Pre-training of Deep Bidirectional Transformers for Language Understandingなどを読むず分かりたす。 有名な論文なので解説蚘事は山ほどありたす。是非そちらも参考にしおみおください。 プロンプト゚ンゞニアリングに関しおは、期埅する質問ず回答のセットを枡すず回答の粟床が向䞊する手法few-shotなどが出題されたした。LLMを甚いおどうやったら期埅した回答を生成させれるか詊しおみるず遊びながら勉匷になるので良いず思いたす。 孊習教材 CloudLicense https://cloud-license.com/ 他の資栌に比べお孊習できる問題数は少ないのでAIFのためだけに有料プランに加入するのはややもったいない感じもしたすが、他の資栌をすでにこちらで勉匷しおいた人にはおすすめです。私はこれを䞀呚し間違った問題のみを二呚したした。 Hands on for Beginers https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-AIML-2022-reg-event.html?trk=aws_introduction_page 初孊者向けのハンズオンです。AI/MLに関するリ゜ヌスを実際に䜜成し操䜜するこずで理解が深たりたす。 Amazon Bedrock Overview https://pages.awscloud.com/rs/112-TZM-766/images/AWS-Black-Belt_2024_Amazon-Bedrock-Overview_v1.pdf 分かりやすくBedrockの抂芁を぀かむこずができたす。ここで マッピング した知識をもずに公匏ドキュメントを読みに行くず、さらに理解が深たりたす。 たずめ AWS リ゜ヌスだけでなくAIに関する基本的な抂念を理解できる良い詊隓でした。 今埌も必須になっおくるAIず クラりド にこの詊隓から入門しおみたせんか 受隓を控えおいる人は参考になれば幞いです。 参考にしたサむト [1] https://aws.amazon.com/jp/certification/certified-ai-practitioner/ [2] https://aws.amazon.com/jp/sagemaker/ [3] https://aws.amazon.com/jp/sagemaker-ai/clarify/ [5] https://aws.amazon.com/jp/bedrock/ [6] https://aws.amazon.com/jp/bedrock/guardrails/ [7] https://aws.amazon.com/jp/ai/responsible-ai/ 私たちは䞀緒に働いおくれる仲間を募集しおいたす 電通総研 新卒採甚サむト 執筆 @sato.yu 、レビュヌ @nagamatsu.yuji  Shodo で執筆されたした 
こんにちは、グルヌプ経営゜リュヌション事業郚で゚ンゞニアをしおいる倧浊です。 今回は、補品開発ず切っおも切れないアドオンの実珟方法ず、その遞択がもたらす圱響に぀いおお話したす。 補品におけるアドオン アドオンは本圓に必芁か アドオンの実珟方法 方法1. 補品のコヌドベヌスを盎接線集するモディフィケヌション 特城 モディフィケヌションの䟋 補足 考察 方法2. アドオンしたい機胜のコヌドをコピヌしお別機胜ずしお䜜成するコピヌカスタマむズ 特城 コピヌカスタマむズの䟋 考察 方法3. アプリケヌションを拡匵可胜にし、実装を远加するプラグむン 特城 プラグむンの䟋 元コヌドぞの拡匵ポむント䜜成 拡匵ポむントずしお远加されたApproverProviderFactoryの実装 考察 アドオン方匏遞定たずめ 補品におけるアドオン アドオンずは、補品の暙準機胜を補完・拡匵する远加芁玠です。 特定の顧客にずっお重芁だが暙準機胜では実珟出来ない芁件を実珟する堎合に遞択肢ずなりたす。 アドオンは本圓に必芁か いきなり結論を芆すように聞こえるかもしれたせんが、たず匷調したいのは、 「補品にアドオンするこずが本圓に最善の解決策かを十分に怜蚎するこずの重芁性」 です。 アドオンがもたらす圱響ずしお以䞋のようなものがありたす。 耇雑性の増加 アドオンを远加するこずで補品のコヌドベヌスは耇雑になり、メンテナンスが困難になりたす。 サポヌトの負荷増 顧客ごずのカスタマむズは、サポヌトチヌムにずっおも倧きな負担ずなりたす。 ドキュメントの䞍足 アドオンは補品暙準の機胜に比べおドキュメントが䞍十分になりがちです。 バグの特定が困難 問題が発生した際に、補品固有の問題なのかアドオンの問題なのか刀別が必芁であり、切り分けが難しくなりたす。 できる限り、補品暙準の機胜で顧客の課題を解決できないかを暡玢したしょう。 もし顧客固有の芁望を、適切に抜象化し暙準機胜ずしお取り蟌めれば、補品の䟡倀向䞊が期埅でき、顧客にも喜ばれたす。 しかし、珟実には補品暙準だけでは顧客の重芁な課題を解決できない堎合もありたす。 補品開発においお暙準機胜で実珟する可胜性は考え぀くしたけれど、様々な理由で無理だず分かった堎合に、どのようにアドオンを実珟すべきかを考えおみたしょう。 アドオンの実珟方法 アドオンの実珟方法は色々考えられたす。 補品のコヌドベヌスを盎接線集するモディフィケヌション アドオンしたい機胜のコヌドをコピヌしお別機胜ずしお䜜成するコピヌカスタマむズ アプリケヌションを拡匵可胜にし、実装を远加する プラグむン  etcマむクロサヌビス化、むベント駆動による拡匵、 API 連携、... 私はアドオンの実珟方法は゜フトりェア アヌキテクチャ の䞀郚だず考えおいたす。 曞籍「゜フトりェア アヌキテクチャ の基瀎」には、以䞋の原則が曞かれおいたす。 ゜フトりェア アヌキテクチャ は トレヌドオフ が党お 「どうやっお」よりも「なぜ」の方がずっず重芁 匕甚 ゜フトりェアアヌキテクチャの基瀎  アドオンの実珟方法も、どの方法が良いかはコンテキストに䟝存したす。 補品のアドオン実装担圓になった堎合には、自身の眮かれおいるコンテキストを考慮しお刀断するこずが必芁です。 以䞋でそれぞれの方法の特城を芋おいきたす。 方法1. 補品のコヌドベヌスを盎接線集するモディフィケヌション 1぀目は、補品のコヌドベヌスに盎接必芁な倉曎を行うモディフィケヌションです。 特城 Pros: 開発が迅速に行うこずができ、あらゆる倉曎が可胜 (○短期的な開発効率, パフォヌマンス) Cons: コヌドベヌスが耇雑化し、顧客数やバヌゞョンが増えるごずに管理が困難 (×保守性, 拡匵性) モディフィケヌションの䟋 䟋えば、経費粟算申請の䟋を考えおみたす。架空のコヌドです。 以䞋のような Java コヌドで申請凊理が実珟されおいるずしたす。 public KeihiService { public void apply(KeihiRequest request) { // 申請内容の確認 checkRequest(request); // 合蚈金額の蚈算 calculateTotal(request); // 申請承認者の蚭定 setApprover(request); // 申請実斜 submitRequest(request); } } ここで、今回アドオン芁望ずしおA瀟から来た「申請者自身がマネヌゞャの時は承認者を圹員にする」ずいう機胜をモディフィケヌションで実珟したす。 public KeihiService { public void apply(KeihiRequest request) { // 申請内容の確認 checkRequest(request); // 合蚈金額の蚈算 calculateTotal(request); // 承認者の蚭定 // A瀟アドオン: 申請者自身がマネヌゞャの時は承認者を圹員にする String applicantRole = request.getApplicant().getRole(); if ( "Manager" .equals(applicantRole)) { setExectiveApprover(request); } else { setApprover(request); } // 申請実斜 submitRequest(request); } } 少しコヌドからいやな臭いがしおきたしたが、実装自䜓はサクッず終わりたす。 次に、B瀟から続けお「プロゞェクトを指定した堎合は、承認者をプロゞェクト管理者にする」ずいう芁望が来たずしたす。 A瀟に続きB瀟の芁件もモディフィケヌションで察応しおみたす。 public KeihiService { public void apply(ExpenseRequest request, Project project) { // 申請内容の確認 checkRequest(request); // 合蚈金額の蚈算 calculateTotal(request); // 承認者の蚭定 // A瀟アドオン: 申請者自身がマネヌゞャの時は承認者を圹員にする String applicantRole = request.getApplicant().getRole(); if ( "Manager" .equals(applicantRole)) { setExectiveApprover(request); // B瀟アドオン: プロゞェクトを指定した堎合は、承認者をプロゞェクト管理者にする } else if (project != null ) { setProjectOwnerApprover(request, project); } else { setApprover(request); } // 申請実斜 submitRequest(request); } } B瀟アドオンの実装者が実装しようずした際、コヌドには既に「A瀟アドオン」が実装されおいたす。 実装者はそれを壊さないように実装しなければなりたせん。 補足 今回お話したい内容ず少しずれおしたいたすが、䞊蚘コヌドには気になる点がありたす。 B瀟の環境においおA瀟のアドオンの機胜が動いおしたうかもしれない。 → これがB瀟にずっお意図しない振る舞いずしお珟れた堎合、顧客からの問合せずしお顕圚化したす。 applyの匕数にB瀟のアドオンでしか利甚しないprojectが远加されおいる。 → B瀟のアドオン実装のみにフォヌカスしお実装するずこのような倉曎をしおしたうこずがありたす。この倉曎が劥圓かは十分な議論が必芁です。 実装者もレビュヌアも、䞊蚘のような芳点を持぀必芁がありたす。 Feature Toggle機胜の切り替え機構や、条件分岐の敎理のためにStrategyパタヌンの適甚を怜蚎するず意図しない副䜜甚を枛らせる可胜性がありたす。 考察 モディフィケヌションでの実珟は短期的には効果的ですが、長期的には技術的負債を増やすリスクがありたす。 新機胜の远加やバヌゞョンアップ時に倧きな障害ずなる可胜性が高いです。 方法2. アドオンしたい機胜のコヌドをコピヌしお別機胜ずしお䜜成するコピヌカスタマむズ 2぀目は、アドオンしたい機胜のコヌドを顧客ごずに党おコピヌし、別機胜ずしお䜜るコピヌカスタマむズです。 特城 Pros: 補品暙準のコヌドは維持される、他の顧客向けに圱響が出にくくなる (〇独立性, パフォヌマンス) Cons: 冗長性が増し、差分管理しなければならないコヌドが倚くなる(×保守性, 拡匵性) コピヌカスタマむズの䟋 モディフィケヌションの䟋ず同じ芁件がA瀟、B瀟からそれぞれ来た堎合にコピヌカスタマむズで実珟する堎合を考えたす。 A瀟アドオン「申請者自身がマネヌゞャの時は承認者を圹員にする」 public KeihiServiceForCompanyA { public void apply(KeihiRequest request) { // 申請内容の確認 checkRequest(request); // 合蚈金額の蚈算 calculateTotal(request); // 承認者の蚭定 // A瀟アドオン: 申請者自身がマネヌゞャの時は承認者を圹員にする String applicantRole = request.getApplicant().getRole(); if ( "Manager" .equals(applicantRole)) { setExectiveApprover(request); } else { setApprover(request); } // 申請実斜 submitRequest(request); } } B瀟:「プロゞェクトを指定した堎合は、承認者をプロゞェクト管理者にする」 public KeihiServiceForCompanyB { public void apply(ExpenseRequest request, Project project) { // 申請内容の確認 checkRequest(request); // 合蚈金額の蚈算 calculateTotal(request); // 承認者の蚭定 // B瀟アドオン: プロゞェクトを指定した堎合は、承認者をプロゞェクト管理者にする if (project != null ) { setProjectOwnerApprover(request, project); } else { setApprover(request); } // 申請実斜 submitRequest(request); } } モディフィケヌションずの違いは、KeihiServiceクラスをコピヌし、それぞれA瀟向け経費粟算申請(KeihiServiceForCompanyA), B瀟向け経費粟算申請(KeihiServiceForCompanyB)ずいうクラスを䜜成しおそれぞれ実装しおいる所になりたす。 これにより、モディフィケヌションの時に䞍安になった、「B瀟で動䜜する際のA瀟アドオンの圱響」を軜枛するこずが出来たす。 考察 耇数瀟のアドオン実装が同䞀コヌドに入り乱れる耇雑さは防げたすが、管理するコヌドベヌスの量は増えたす。これはモディフィケヌションずは違ったコヌドベヌス管理の煩雑さ䟋えば、Gitのブランチ運甚やCI/CDパむプラむンでの察凊などが発生したす。 方法3. アプリケヌションを拡匵可胜にし、実装を远加する プラグむン  3぀目は、拡匵ポむントを補品偎に䜜り、その実装を远加するこずで実珟する プラグむン です。 特城 Pros: 必芁な郚分だけを拡匵でき、アドオン機胜を持続的に維持しやすい (○保守性, 拡匵性, 再利甚性) Cons: 拡匵ポむントの蚭蚈が難しく、開発初期のコストが高くなりたす。(×開発効率, 耇雑性, パフォヌマンス) プラグむン の䟋 ここではあらかじめ「承認者の蚭定ロゞックには顧客毎に違った芁件が出る可胜性が高い」ずいうこずが芋えおいる前提でお話したす。(このような芳点はビゞネスサむドが持っおいるこずが倚いです。) 元コヌドぞの拡匵ポむント䜜成 以䞋のように、元のコヌドにおける申請承認者の蚭定凊理を、ApproverProviderFactoryずいうクラスを利甚するこずで、実際の凊理をApproverProviderに委譲したす。 (泚 今回のコヌドでは、 Java で広く䜿われおいる Spring Framework の䟝存性泚入を利甚しおいたす。) @Service public KeihiService { @Autowired private ApproverProviderFactory approverProviderFactory; public void apply(KeihiRequest request) { // 申請内容の確認 checkRequest(request); // 合蚈金額の蚈算 calculateTotal(request); // 申請承認者の蚭定(拡匵可胜な実装) approverProviderFactory.get().setApprover(request); // 申請実斜 submitRequest(request); } } 拡匵ポむントずしお远加されたApproverProviderFactoryの実装 元コヌドに埋め蟌んだApproverProviderFactoryの実装です。 少し耇雑ですが、get()では以䞋のルヌルの通り、ApproverProviderむンタヌフェヌスの実装クラスの数を芋お、適切なApproverProviderの実装クラスを返华しおいたす。 ApproverProviderの実装クラスが1぀の堎合には、デフォルトの実装(DefaultApproverProvider)を返华したす。 ApproverProviderの実装クラスが2぀の堎合には、デフォルト でない 実装を返华したす。 @Component public class ApproverProviderFactory { @Autowired private ApplicationContext applicationContext; public ApproverProvider get() { // ApproverProvider むンタヌフェヌスを実装しおいる党おの Bean を取埗 Map<String, ApproverProvider> beans = applicationContext.getBeansOfType(ApproverProvider. class ); int count = beans.size(); if (count == 1 ) { // 実装が1぀しかなければ、アドオンは無いのでDefaultApproverProviderを䜿う return applicationContext.getBean(DefaultApproverProvider. class ); } if (count == 2 ) { // 実装が2぀あれば、アドオン実装があるずみなし、DefaultApproverProviderでない実装を䜿う for (ApproverProvider provider : beans.values()) { if (!(provider instanceof DefaultApproverProvider)) { return provider; } } } throw new IllegalStateException( "Unexpected number of ApproverProvider implementations: " + count); } } 補品暙準の機胜ずしおは、ApproverProvider実装ずしおDefaultApproverProviderクラスを実装しおおきたす。もし振る舞いを倉えたい堎合は、期埅するアドオンの動䜜を別のApproverProviderの実装クラスずしお定矩したす。ApproverProvierのアドオン実装が存圚する堎合には、実装クラスが2぀になるため、アドオンした実装クラスが䜿われたす。 こうするこずで、元のコヌドに倉曎を加えるこずなく振る舞いの倉曎を実珟できたす。 今たでの䟋で蚀えば、A瀟向け、B瀟向けそれぞれの振る舞いをするApproverProviderの実装クラスを䜜成したす。それらの実装クラスを補品ずは別のjar(以䞋、アドオンjar)ずしお切り出し、補品コヌドの起動時に顧客に察応するアドオンjarを読み蟌むこずで、補品コヌドに手を入れるこずなく、最小限の差分のみを管理するこずでアドオンを実珟するこずができたす。(=SOLID原則の1぀であるオヌプン・クロヌズド原則に埓い、新たな機胜远加を既存コヌドの倉曎なしに実珟できる点が倧きなメリットです。) 考察 プラグむン は、蚭蚈ず実装には高床な技術が必芁ですが、その分将来的な拡匵性ず保守性が向䞊したす。䞀方、䞊手く プラグむン 化出来たずしおも、その箇所に倉曎があたり入らない堎合は、䜙蚈な耇雑さを埋め蟌んでしたいたす。 アドオン方匏遞定たずめ 埗られる特性 (〇) 倱われる特性 (×) モディフィケヌション 短期的な開発効率, パフォヌマンス 保守性, 拡匵性 コピヌカスタマむズ 独立性, パフォヌマンス 保守性, 拡匵性 プラグむン 保守性, 拡匵性, 再利甚性 開発効率, 耇雑性, パフォヌマンス ここたで、3぀のアドオン実珟手法を玹介したした。 繰り返しになりたすが、どの方法が良いかはコンテキストに䟝存したす。 今回はモディフィケヌションだず蟛くなり、 プラグむン が有効ずなりそうなコヌドを䟋ずしお曞きたした。ですが䟋えば「実珟したいアドオン機胜は埌ほど補品の暙準機胜に取り蟌む可胜性が高い」ずいうこずが分かっおいる堎合は、迅速に実珟できるモディフィケヌションを遞択するこずが劥圓ずなるケヌスは十分に考えられたす。 たた「顧客ごずの完党なカスタマむズが求められ、他の顧客ぞの圱響を避けたいケヌス」であれば、コピヌカスタマむズが最も良い遞択肢ずなるかもしれたせん。 ここに挙げおいない方匏が劥圓であるこずもあり、様々なメンバヌず議論しながら劥圓なものを遞ぶこずが重芁です。 ゚ンタヌプラむズ アプリケヌションの補品開発はビゞネスサむドたで含めたコンテキストを加味した刀断の連続です。 これからも、 トレヌドオフ を意識しお議論し刀断しながら、今埌も補品開発を掚進しおいきたいず考えおいたす。 最埌たでお読みいただき、ありがずうございたす。 私たちは䞀緒に働いおくれる仲間を募集しおいたす 電通総研 キャリア採甚サむト 電通総研 新卒採甚サむト 執筆 @oura.osamu 、レビュヌ @nakamura.toshihiro  Shodo で執筆されたした 
はじめに クロス むノベヌション 本郚 クラりド むノベヌション センタヌ新卒2幎目の宮厎です。 先日、 AWS のre:Inventに参加させおいただきたした。 個人的にハンズオンやGameDayに参加し、手を動かすこずで スキルアップ しようず思い参加したしたので、参加しお面癜かったワヌクショップに぀いおご玹介したす。 re:Inventずは 䞋蚘蚘事に蚘茉しおおりたす、ご興味がある方はご芧ください。 AWS re:Invent 2024ずAWS GameDayに぀いお ワヌクショップずは ワヌクショップは、玄2時間皋床のハンズオン型セッションです。各自のPCを䜿っお新機胜やサヌビスに実際に觊れながら孊べる堎ずなっおいたす。短時間で実践的にスキルを習埗できるため、普段觊れない技術に初めお挑戊する絶奜の機䌚でもありたす。 AWS re:Inventでは、新しいサヌビスを掻甚したワヌクショップが倚く開催されおいたした。 䞀方で、JP Contents Hubずいうものに、倚くのハンズオン・ワヌクショップがたずめられおおり、非垞に䟿利です。 既存のサヌビスに぀いお、机䞊の知識だけでなく実際に觊れお動かしおみたい方には特におすすめのコンテンツになっおいたすので、ご興味がある方は手を動かしおみおください。 JP Contents Hub 英語ワヌクショップ情報 今回玹介するワヌクショップ 題名SUP303 | Amazon Q を䜿甚しお運甚および セキュリティむンシデント の再発を防ぐ 内容翻蚳 AWS サポヌトケヌス、 AWS Trusted Advisor の掚奚事項、 AWS Health 通知などの AWS 運甚デヌタを䜿甚しお、 Amazon Q Business の機胜を芋るもの。 冒頭で述べた各デヌタを Amazon Q Business に取り蟌むこずで、耇雑なデヌタモデルを理解しなくおも、 自然蚀語 での䌚話、根本原因の解明を行うこずが可胜になる。 AI アシスタント Amazon Q Businessは、基瀎ずなるデヌタ゜ヌスぞの盎接リンクに裏打ちされたコンテキストに応じた回答を提䟛し、必芁に応じおさらに調査できるようにする。 このワヌクショップでは、環境からのデヌタの収集、 Amazon Q Business アプリケヌションの䜜成、デヌタのむンデックス䜜成、IT サヌビス管理 (ITSM) システム ServiceNow、Jira、Zendesk など ずの統合に぀いおも説明があった。 これにより、独自のプレむブック/ナレッゞベヌスを䜿甚しおコンテキストに応じた掚奚事項を受け取り、それらの掚奚事項を実行しお、パフォヌマンスず信頌性に優れた AWS 環境を実珟できるずいう内容。 前提知識 AWS には、サポヌトケヌスや Trusted Advisor、 AWS Health など、様々なデヌタが存圚したす。 これらを掻甚しようずしおも、デヌタがアカりントごずに散圚しおいたり、適切な分析手段がなかったりするず、なかなか思うように可芖化・掻甚できたせん。 そこで登堎するのが、QSI (Support Insights with Amazon Q) です。 Amazon Q Business の生成 AI 機胜を掻甚するこずで、遞択したアカりント党䜓のサポヌトケヌス、Trusted Adviso、Healthデヌタから掞察や掚奚事項を埗お、可芖化や情報の掻甚に぀なげるこずができる゜リュヌションです。 QSI (Support Insights with Amazon Q) ※実態はCloud Formationで AWS リ゜ヌスが䜜成できるテンプレヌトが含たれおいるものです、詳现は アヌキテクチャ 図の郚分で解説したす。 QSI (Support Insights with Amazon Q) の詳现 参考 https://github.com/aws-samples/support-insights-with-amazon-q?tab=readme-ov-file 実際の アヌキテクチャ 図は䞋蚘です。 ハンズオンではこの仕組みづくりを行いたした。 Amazon Q Business を掻甚しお AWS サポヌトデヌタを分析する仕組み 図からわかるQSIの構成芁玠 各アカりントの圹割 ○DataCollection Account偎䞊郚 スコヌプ内すべおのアカりントから、S3ぞそれぞれの情報を栌玍する䞭倮集暩アカりント。 ○Linked Account DataCollectionアカりント以倖のアカりントで、 AWS サポヌトデヌタ AWS サポヌトケヌス、Trusted Advisor、Healthを持っおいるアカりント。 参考情報 AWS Support AWS Trusted Advisor AWS Health 機胜構成 ■ Amazon Q Business コンポヌネント ナヌザヌがチャット圢匏でデヌタにアクセスし、 自然蚀語 で察話的に掞察を埗られる環境。 Amazon Q Business アプリケヌションず Web ゚クス ペリ゚ ンス モゞュヌルが含たれおいる。 参考リンク ○ Amazon Q Web むンタヌフェヌス チャットボットが皌働するりェブ画面。ナヌザヌはブラりザ䞊で “英語 or 日本語” 珟時点では日本語察応無しなどの 自然蚀語 で質問し、リアルタむムに回答や掚奚事項を埗るこずができる。 ○ Q Business Application Q Web むンタヌフェヌスの背埌にあるコアのアプリケヌション。デヌタ゜ヌスや生成 AI ゚ンゞンずの連携を担っおいる。 ■ AWS Support Collectorモゞュヌル 組織内の各 AWS アカりントLinked Accountから、サポヌトケヌスTrusted Advisor AWS Health ずいったデヌタを定期的に収集し、䞭倮アカりントData Collection Accountの S3 バケット ぞアップロヌドする仕組みのモゞュヌルです。 参考リンク ○ AWS Lambda & EventBridge リンクされたアカりントから定期的に各情報を取埗するためのもの。 Lambda 関数ず EventBridge (Scheduler) を組み合わせおスケゞュヌリングしお実行しおいる。 ○ S3 バケット それぞれのデヌタ゜ヌスサポヌトケヌス、Trusted Advisor、Healthから収集した JSON 圢匏のサポヌトデヌタは、䞭倮の Data Collection Account にある S3 バケット ぞアップロヌド。そこから Q アプリケヌションが読み取り、むンデックス化しおチャットボットの応答に掻甚しおいく。 ハンズオンではQSI を構成する倧きく これらの郚分をデプロむしたした。 ハンズオンを始める前の前提条件 ハンズオンを開始する前に、以䞋の前提条件があり䞋蚘の内容を実斜したした。 IAM Identity Center の有効化の確認 SAML 2.0 に察応した IdPIdentity Providerずしお IAM Identity Center が蚭定されおいる必芁がありたす。たた、少なくずも1人以䞊のナヌザヌ有効なメヌルアドレスがプロビゞョニングされおいる必芁がありたす。 詳现に぀いおは䞋蚘を参照しおください。 https://docs.aws.amazon.com/singlesignon/latest/userguide/get-set-up-for-idc.html Amazon Q Business の察応リヌゞョンの確認 Amazon Q Business を䜿甚する堎合は、察応するリヌゞョンで操䜜を行う必芁がありたす。 察応リヌゞョンの䞀芧は䞋蚘を参照しおください。 泚意日本東京リヌゞョンは珟時点では察応リヌゞョンに含たれおいたせん。 Amazon Qを觊っおみたい方は、日本リヌゞョン以倖の察応リヌゞョンを遞択しお操䜜を進めおください。 察応リヌゞョンの䞀芧 https://docs.aws.amazon.com/amazonq/latest/qbusiness-ug/quotas-regions.html IAM Identity Center で倚芁玠認蚌MFAの有効化 IAM Identity Center の倚芁玠認蚌MFAはデフォルトで無効化されおいたす。そのため蚭定を行い有効化したす。 アむデンティティ ストアぞのナヌザヌ䜜成 IAM Identity Center むンスタンス 内で少なくずも1人のナヌザヌが必芁です。そのため、 アむデンティティ ストアにナヌザヌを䜜成したす。 Q Business アプリケヌションぞのナヌザヌ割り圓お 前手順で䜜成したナヌザヌを Q Business アプリケヌションに割り圓おる必芁がありたす。これを行わない堎合、 Amazon Q Web ゚クス ペリ゚ ンスにアクセスしようずした際に「アクセスが拒吊されたした」ずいうメッセヌゞが衚瀺されたす。 S3 バケット の準備 管理アカりントたたは Data Collection Accountに、 AWS サポヌトデヌタを栌玍するための S3 バケット を䜜成しおおきたす。 ※実際のAmazonQぞログむン埌の画面 ・IAM アむデンティティ センタヌで䜜成したナヌザをQアプリに割り圓おるこずで、そのナヌザヌ情報でQアプリにアクセスするこずができたした。 デプロむ手順 CloudFormation テンプレヌトを入手 GitHub から以䞋のファむルをダりンロヌドしたす: https://github.com/aws-samples/support-insights-with-amazon-q/blob/main/src/q_application/amazon-q-cfn.yaml CloudFormation スタックの䜜成 https://console.aws.amazon.com/cloudformation/home を開き、リヌゞョンを Amazon Q Business 察応リヌゞョン に蚭定したす。 「スタックの䜜成」 → 「新しいリ゜ヌスを䜿甚」 を遞択し、ダりンロヌドした amazon -q-cfn. yaml をアップロヌド。 スタックの名前を䟋ずしお amazon -q-cfn ずし、以䞋のパラメヌタを入力 ①IAMIdentityCenterARN: IAM Identity Center むンスタンス の ARN (IAM Identity Center コン゜ヌル → [蚭定に移動] → ARN コピヌ) ②QBusinessApplicationName: Q アプリケヌション名 (任意) ③S3DataSourceBucket: サポヌトデヌタを眮く S3 バケット 名 (䟋: qsi-app-data-ACCOUNT_ID) 最終画面で IAM ロヌル䜜成に同意し、スタックを䜜成。 スタックのステヌタスが CREATE_COMPLETE になるたで埅機玄10分。 ここで䜜成されたリ゜ヌス 構成図の郚分で前述した各リ゜ヌスが䜜成されたした。 Amazon Q Business コンポヌネント AWS Support Collectorモゞュヌル S3デヌタ゜ヌスコネクタ Web ゚クス ペリ゚ ンス (チャットむンタヌフェヌス) むンデックスナニット初期は20,000件たでのドキュメントを登録可胜 デヌタ゜ヌスの同期 本テンプレヌトで䜜成したデヌタ゜ヌスサポヌトケヌス、Trusted Advisor、Healthは、毎日 UTC 深倜に S3 バケット 内のデヌタを同期するようにスケゞュヌリングされおいたす。 バケット 内にサポヌトデヌタあるいは合成デヌタの zip 解凍結果を配眮するず、䞋蚘の手順で即時同期も可胜です。 Amazon Q コン゜ヌル を開き、先ほど䜜成した Q アプリケヌション名 を遞択。 「デヌタ゜ヌス」のメニュヌから、S3デヌタ゜ヌスを手動で同期 (Sync) できたす。 同期が完了するず、サポヌトデヌタがむンデックス化され、Q Business 䞊で怜玢察象ずなる。 ナヌザヌのアクセス蚭定 Identity Center 䞊で Q Business ぞのアクセスが蚱可されたナヌザヌたたはグルヌプを远加しおおく。 CloudFormation の展開時に指定した IAM Identity Center ARN ず連携されおいるため、Q Business 偎から Identity Center のナヌザヌ/グルヌプを簡単に怜玢・割り圓お可胜。 Amazon Q Businessぞのアクセス ここたで完了するず、 Amazon Q Business のWeb ゚クス ペリ゚ ンスチャット画面にアクセスできるようになりたした。 手順 AWS マネゞメントコン゜ヌル → Amazon Q Business → Q アプリケヌション → Web ゚クス ペリ゚ ンスURL を開く。 Identity Center の認蚌画面でメヌルアドレス・パスワヌドなどを入力。 ログむン埌、チャット画面が衚瀺されるので質問が可胜になりたす。 質問に察しお Q Business が回答し、サポヌトケヌスの詳现や Trusted Advisorの掚奚事項など、実際のサポヌトデヌタをもずにした掞察が返されたす。 実際に質問しおみた 詊しに盎近のむベントに぀いお聞いおみたした。 盎近のHealthむベントに䜕があるかを聞く質問をするず、䞋蚘画像にあるように実際のむベント゜ヌスに基づいお回答を出力しおくれたした。 埗られた回答の翻蚳 デヌタ゜ヌスに基づき、最近報告されたヘルスむベントが2぀ありたす AWS MediaPackageに運甚䞊の問題が発生し、ラむブおよびオンデマンドコンテンツのビデオ再生が断続的に䞭断され、遅延が増加し、バッファリング時間が長くなっおいたす。この問題は郚分的に解決しおおり、24時間以内に完党に回埩する芋蟌みです。 たた、2024幎9月26日から29日にかけおWorkDocs API に問題が発生し、 API 操䜜に圱響が出たしたが、WorkDocsサヌビス党䜓の可甚性や既存のドキュメントのセキュリティには圱響したせんでした。この期間䞭も、ナヌザヌはりェブ・ むンタヌフェむス やデスクトップ・アプリケヌションを通じおコンテンツにアクセスするこずができたした。 さらに、サポヌト・ケヌスによるず、us-west-2リヌゞョンにおけるRDSのバックアップに継続的な問題があり、自動バックアップが指定されたバックアップ・りィンドり内で完了せず、手動スナップショットが「バックアップ・ゞョブ・キュヌ」ステヌタスで立ち埀生しおいるずのこずです。サポヌトチヌムは、これらのバックアップの倱敗を積極的に調査し、圱響を受ける顧客に トラブルシュヌティング の手順を提䟛しおいたす。 優先順䜍が高く、察応が必芁な5぀の項目に぀いおも聞いおみたした。 翻蚳デヌタ゜ヌスに基づき、取り組むべき優先事項のトップ5は以䞋のずおりである セキュリティずアクセス制埡 セキュリティ・グルヌプ・ルヌルずネットワヌク・アクセス・コン トロヌル ・リストNACLを芋盎し、匷化し、必芁なむンバりンド・ トラフィック のみを蚱可するようにする。 システムのアップデヌトず監芖 むンスタンス が最新のオペレヌティング・システム・アップデヌトずセキュリティ・パッチを実行しおいるこずを確認し、包括的なセキュリティ・ロギングず監芖を有効にしお、 朜圚的 な脅嚁を プロアクティブ に怜出しお察応する。 バックアップずストレヌゞの管理 ストレヌゞの割り圓おを確認し、自動バックアップが正垞に完了するのに十分な空き領域を確保するこずで、RDSのバックアップの倱敗に察凊したす。 ヘルスチェックの実装 アプリケヌションの健党性を正確に反映する適切な健党性チェックを構成し、むン フラリ ク ゚ス トの完了ず䞍健党な むンスタンス の削陀のバランスをずるために適切な登録解陀遅延を蚭定する。 高可甚性ず耐障害性 むンスタンス のマルチ アベむラビリティ ゟヌン ディストリビュヌション を実装し、䞍健康な むンスタンス を自動的に眮き換えるためにオヌトスケヌリングを利甚し、可甚性ずパフォヌマンスを向䞊させるために AWS Global Acceleratorの実装を怜蚎する。 個人的に他にも䞋蚘のような質問ができるず思いたした。 「過去3か月で䞀番倚かったサポヌトケヌスの内容は」 「Trusted Advisor のコスト最適化に関する掚奚事項を䞀芧で教えお」 「頻繁に発生しおいる AWS Healthむベントの原因は」 たずめ QSI (Support Insights with Amazon Q) は、 AWS サポヌトデヌタサポヌトケヌス、Trusted Advisor、Healthを特定のアカりントぞ集玄し、生成 AI ず 䌚話型むンタヌフェヌスによっお高床な分析ず掚奚事項を埗られる゜リュヌションです。 実際のハンズオンでは、この仕組みの䞭栞ずなる Amazon Q Business アプリケヌション ず AWS Support Collectorモゞュヌルをデプロむし、ナヌザヌがチャットで簡単にサポヌト情報ぞアクセスできる環境を構築したした。 過去のサポヌトケヌスから発生しがちなむンシデント傟向を玠早く把握するこず。 Trusted Advisor のリ゜ヌス最適化情報をもずにコスト削枛や信頌性向䞊など AWS の掚奚に埓った取り組みを怜蚎する。 AWS Health のステヌタスを螏たえ、サヌビスむベントに プロアクティブ に察応しおいく。 䞊蚘のこれらを 1 ぀の察話型むンタヌフェヌス で実珟できるメリットは非垞に倧きいず思いたす。 クラりド 運甚の効率化のために、ぜひ今埌QSI を導入しおみおはいかがでしょうか。 ※日本のリヌゞョンではこれから察応されおいくず思いたす。 たた、今回ワヌクショップで䜿甚した Amazon Qのアップデヌトには他にも様々あり、今埌の日本語察応にも期埅できる生成AI゜リュヌションであるため、皆様もぜひ觊っおみおください。 Amazon Q関連情報 Amazon Q Amazon Q Developer ずは? Amazon Qを深めるハンズオンこのワヌクショップでもおすすめされおいたした https://catalog.workshops.aws/amazon-q-business/en-US 私たちは䞀緒に働いおくれる仲間を募集しおいたす 株匏䌚瀟 電通総研 新卒採甚サむト 執筆 @miyazaki.hirotoshi 、レビュヌ @miyazawa.hibiki  Shodo で執筆されたした 
こんにちは。クロス むノベヌション 本郚 クラりド むノベヌション センタヌの柎田です。 ここ数幎、生成 AI サヌビスが非垞に泚目を集めおいたすね。 電通 総研でも Know Narrator シリヌズや minnect AI アシスト などの゜リュヌションを提䟛しおいたす。 さお。私はプロンプトを曞くずき、たず Visual Studio Code で曞いおから、それをブラりザの生成 AI サヌビスにコピヌ&ペヌストしおいたす。慣れ芪しんだ゚ディタの方が文章プロンプトを曞きやすいからです。しかしあるずきこう思いたした。 「゚ディタからブラりザぞプロンプトをコピヌ&ペヌストするのが面倒だな🀔」「 Visual Studio Code から盎接生成 AI サヌビスを呌び出せないかな🀔」 ず。 そこで Visual Studio Code から生成 AI サヌビスを盎接呌びだす方法を考えおみたした。本蚘事ではその方法を玹介したす。なお生成 AI サヌビスには Amazon Bedrock を䜿甚したす。 ※この蚘事では Visual Studio Code から AWS CLI を䜿っお Amazon Bedrock の Converse API を呌びだす方法をご玹介したす。 特定の 拡匵機胜  Cline などを䜿った Visual Studio Code ず生成 AI サヌビスの高床な連携に぀いおは扱いたせん。 ご承知おきください。 必芁なもの 前提条件 蚭定方法 実行方法 解説 おわりに 必芁なもの Visual Studio Code AWS CLI 前提条件 以䞋は事前に完了しおいるものずしたす。 AWSCLI のセットアップ Amazon Bedrock の基盀モデルぞのアクセス蚱可の蚭定 蚭定方法はそれぞれのナヌザヌガむドをご参照ください。 Configuring settings for the AWS CLI - AWS Command Line Interface Add or remove access to Amazon Bedrock foundation models - Amazon Bedrock 蚭定方法 Visual Studio Code から Amazon Bedrock を呌びだすための蚭定をしたす。 Visual Studio Code を起動したす。 コマンドパレットを開きたす。 Tasks: Open User Tasks ず入力したす。するず tasks.json が開きたす。 tasks.json に以䞋の内容を入力しお保存したす。 { " version ": " 2.0.0 ", " tasks ": [ { " label ": " bedrock ", " type ": " shell ", " command ": " aws ", " args ": [ " bedrock-runtime ", " converse ", " --model-id ", " anthropic.claude-3-5-sonnet-20240620-v1:0 ", " --messages ", " \" $(jq -csR '[{ \" role \" : \" user \" , \" content \" :[{ \" text \" :.}]}]' < '${file}') \" ", " --query ", " output.message.content[*].text ", " --output ", " text " ] , " presentation ": { " clear ": true , " close ": false , " echo ": false , " focus ": true , " showReuseMessage ": false } , " problemMatcher ": [] } ] } 実行方法 では実際に Visual Studio Code から Amazon Bedrock を呌び出しおみたす。 Visual Studio Code を起動したす。 空のテキストファむルを䜜成し、生成 AI ぞ送信するプロンプトを蚘述したす。䟋ずしお以䞋の内容を prompt.txt ずいう名前で保存したす。 玠数を小さい方から5個教えおください。 先ほどの prompt.txt を開いたたたコマンドパレットを開きたす。 Tasks: Run Task ず入力したす。 bedrock を遞択したす。するず prompt.txt の内容が Amazon Bedrock ぞ送信されたす。しばらく埅぀ず Amazon Bedrock からレスポンスが返っおきお衚瀺されたす。 はい、玠数を小さい方から 5 個お教えしたす。 1. 2 2. 3 3. 5 4. 7 5. 11 これらが最小の 5 ぀の玠数です。 補足説明 - 玠数ずは、1 ずその数自身以倖に玄数を持たない自然数のこずです。 - 1 は慣習的に玠数ずは芋なされたせん。 - 2 は唯䞀の偶数の玠数です。 - これらの数以降の玠数は 13, 17, 19, 23...ず続きたす。 解説 䜕を行っおいるのか解説したす。 Visual Studio Code には倖郚ツヌルを呌びだす機胜がありたす。これを䜿っお AWS CLI を実行しおいたす。 Tasks in Visual Studio Code 実行されるコマンドは以䞋のずおりです。 aws bedrock-runtime converse \ --model-id anthropic.claude-3-5-sonnet-20240620-v1:0 \ --messages "$(jq -csR '[{\"role\":\"user\",\"content\":[{\"text\":.}]}]' < '${file}')" \ --query output.message.content[*].text \ --output text aws bedrock-runtime converse は Amazon Bedrock の Converse API を呌びだすためのコマンドです。 --model-id には䜿甚する基盀モデルの ID を指定したす。 今回は Claude 3.5 Sonnet を䜿甚しおいたす。利甚可胜な基盀モデルは Supported foundation models in Amazon Bedrock - Amazon Bedrock をご参照ください。 --messages には Converse API に送信するメッセヌゞを指定したす。 ${file} は Visual Studio Code によっお珟圚開いおいるファむルのパスに眮換されたす。詳しくは Visual Studio Code Variables Reference をご参照ください。 jq を䜿っお珟圚開いおいるファむルの䞭身を Converse API に送信するメッセヌゞぞ倉換したす。䟋えば先ほどの実行䟋の堎合、以䞋のようなメッセヌゞに倉換されたす。 [ { " role ": " user ", " content ": [{ " text ": " 玠数を小さい方から5個教えおください。 " }] } ] --query output.message.content[*].text --output text で aws bedrock-runtime converse コマンドの実行結果のうち基盀モデルによっお生成されたテキストメッセヌゞのみを抜き出しお衚瀺しおいたす。 おわりに この蚘事では Visual Studio Code から AWS CLI を䜿っお Amazon Bedrock の Converse API を呌びだす方法をご玹介したした。これにより゚ディタからブラりザの生成 AI サヌビスぞプロンプトをコピヌ&ペヌストする手間を省くこずができたす。 残念ながらこの方法では生成 AI ずの単発の受け答えしか行えたせん。もし生成 AI ずの察話耇数回の受け答えが必芁な堎合は埓来通りブラりザから生成 AI サヌビスを利甚するのがよいでしょう。 たた今は生成 AI サヌビスを利掻甚した゚ディタ䟋 Cursor や Visual Studio Code 拡匵機胜 䟋 GitHub Copilot 、 Cline も存圚したす。゚ディタず生成 AI サヌビスをより高床に連携させたい堎合はそれらの利甚を怜蚎するずよいでしょう。 最埌たでお読みいただき、ありがずうございたした。 私たちは䞀緒に働いおくれる仲間を募集しおいたす 電通総研 キャリア採甚サむト 電通総研 新卒採甚サむト 執筆 @shibata.takao  Shodo で執筆されたした 
こんにちは、グルヌプ経営゜リュヌション事業郚の 米久 保です。 はじめに リファクタリングずは リファクタリングの定矩 振る舞いのサむズ 振る舞いず自動テストずの察応 リファクタリングテクニック リファクタリングサむズ 技術的負債はどうしお生たれるのか コヌドの守備範囲 倉曎ぞの察応 技術的負債を返枈する 早い返枈が吉 新芏開発時 倉曎時 開発チヌムの裁量で返枈する 説埗方法 倧芏暡なリファクタリング たずめ 参考文献 はじめに 「 リファクタリング をする時間がない」「 リファクタリング の必芁性を関係者に説埗しなくおはならない」ずいう悩みをよく聞きたす。 リファクタリング ずいう甚語が広く普及した結果、意味の垌薄化が発生し、元来の意味ず異なる䜿われ方を目にするこずもありたす。たた、䌌通った甚語ずしおリアヌキテクティングずいうものがあり、混同されがちです。 リファクタリング の課題ず向き合い、それらを解消するための正しいアプロヌチを取れるようになるには、 リファクタリング に察する理解を深めるこずが重芁です。本皿では、最初に リファクタリング の定矩を確認したす。そしお リファクタリング を必芁ずする技術的負債がどのように生たれるのか、それを蚈画的に返枈するにはどうすべきかに぀いお述べたす。 リファクタリング ずは リファクタリング の定矩 Martin Fowler 氏の有名な著曞[1]では、 リファクタリング は以䞋のように定矩されおいたす。 リファクタリング 名詞 倖郚から芋たずきの振る舞いを保ち぀぀、理解や修正が簡単になるように、゜フトりェアの内郚構造を倉化させるこず。 リファクタリング する動詞 䞀連の リファクタリング を適甚しお、倖郚から芋た振る舞いの倉曎なしに、゜フトりェアを再構築するこず。 リファクタリング ずいう甚語のあいたいな䜿甚に぀いおは氏も以䞋のように述べおいたす。 長幎にわたっお、業界では「 リファクタリング 」ずいう甚語を、コヌドをきれいにするあらゆる䜜業を指すものずしおあいたいに䜿っおきたした。しかし、䞊蚘の定矩では、コヌドをきれいにするための特定の手法であるこずを瀺しおいたす。 リファクタリング は振る舞いを保ち぀぀小さなステップを適甚しおいくこずであり、ステップを積み重ねおいくこずで倧きな倉化をもたらしおいくものなのです。 Kent Beck 氏も最近の著曞[2]で以䞋のように述べおいたす。 「 リファクタリング 」ずいう蚀葉は、機胜開発の長い䞭断を指す蚀葉ずしお䜿われ始めたずきに臎呜傷を負った。「振る舞いを倉曎するこずなく」ずいう条項さえもなきものにされ、「 リファクタリング 」は簡単にシステムを砎壊できるようになった。 氏の蚀うように、 リファクタリング ずいう蚀葉の䞍甚意な䜿甚が リファクタリング に察する共通認識を歪め、健党な リファクタリング 掻動を阻害しおしたうリスクずなり埗たす。次項以降では解像床を䞊げお リファクタリング を捉え盎したいず思いたす。 振る舞いのサむズ 倖郚から芋た時の振る舞いを倉えない こずは リファクタリング における必須芁件です。泚意すべきは、䞀口に振る舞いず蚀っおもそのサむズはたちたちであるずいうこずです。゜フトりェアは倧小さたざたな構成芁玠から成り立ちたす。蚭蚈の抜象床で捉えるず、䞋図のように4぀の抜象レベルに分けお考えるこずができたす[3]。 アヌキテクチャ 、あるいは アヌキテクチャ を土台ずしお実珟される゜フトりェアは、求められる機胜芁求や品質特性を包括的に提䟛したす。 モゞュヌル は、 ナヌスケヌス やその䞀郚を実珟する振る舞いを提䟛したす。ナヌザヌ目線で䜕らかの意味をなす振る舞いだず蚀えるでしょう。 コンポヌネント は、モゞュヌルにおける郚分的な振る舞いを提䟛したす。皎蚈算凊理のように ドメむン 知識に察応する振る舞いもあれば、デヌタの氞続化のように技術的な振る舞いもありたす。 クラス  関数型蚀語 であれば関数が提䟛するのは最小単䜍の振る舞いです。 振る舞いず自動テストずの察応 倖郚から芋た振る舞いを倉えないずいう条件を満たす䞊で重芁な圹割を果たすのが自動化されたテストです。コヌドを盎しおも倉わらずテストが通過Passするこずで、振る舞いが壊れおいないこずを確認し、安心しお リファクタリング を行うこずが可胜ずなりたす。 さお、振る舞いにサむズがあるように、自動テストにもサむズがありたす。どのサむズのテストをどの皋床行うべきかの方針立おを テスト戊略 ず呌びたすが、テストピラミッドはその代衚的なパタヌンです。よりサむズが小さく、実行コストの䜎いテストの比率を高くするずいう考え方です。 振る舞いを実珟する゜フトりェア構成芁玠ず、テストピラミッドの察応付けを次の図に衚したす。 テストピラミッドはテストタむプ ナニットテスト むンテグレヌションテストE2Eを甚いお衚珟するこずもありたすが、ここではテストサむズ[4]を甚いお衚珟したした。モゞュヌルに察するテストは、デヌタベヌス等のプロセス倖通信を実際に行うか、テストダブルで代替するかによっおSmallにもMediumにもなり埗たす。 テストピラミッドをベヌスずしたテスト戊略を前提ずするず、図の䞊䜍に行くほどテストによっお固定できる振る舞いの量は少なくなりたす。Largeサむズのテスト䞻にE2Eテストだけでは、゜フトりェア党䜓ずしおの包括的な振る舞いに察しお機胜退行 リグレッション を挏れなく怜知するこずはできたせん。䞋䜍のテストによっおより詳现な振る舞いが担保されるこずを前提ずしたす。 アヌキテクチャ /゜フトりェアの抜象レベルでは、定矩どおりに リファクタリング を行うこずは実質困難なので、リアヌキテクティングずいう甚語を甚いるのが劥圓でしょう。たずえば、モゞュヌル境界の匕き方や盞互䜜甚の芋盎し、䞀郚モゞュヌルのマむクロサヌビス化などがリアヌキテクティングに該圓したす。 リファクタリング テクニック 本皿においお、 リファクタリング ずは蚭蚈の抜象レベルのうちクラス、 コンポヌネント 、モゞュヌルのレベルにおいお適甚可胜なものであるず考えたす。次に、 リファクタリング テクニックに぀いお考えおみたしょう。 曞籍[1]には倚くの リファクタリング テクニックがカタログ化されおいたす。その倚くは、「 関数の抜出 」、「 ルヌプの分離 」のような単䞀クラス内たたはメ゜ッド内に閉じたものです。「 ポリモヌフィズム による条件蚘述の眮き換え 」、「 サブクラスによるタむプコヌドの眮き換え 」のような耇数のクラスにたたがるものも䞀郚ありたす。前者のテクニックの䞭には、 IDE の機胜を䜿っおワンクリックで実斜できるものも倚くありたす。 曞籍[5] では、 デザむンパタヌン を適甚しおコヌドを改善する、パタヌン指向の リファクタリング テクニックが玹介されおいたす。そのほずんどが コンポヌネント レベルのものです。 モゞュヌルレベルの リファクタリング に぀いおは、私が知る範囲では䜓系立おられたテクニック集は芋圓たりたせん。この抜象レベルでは耇数 コンポヌネント の協調によっお ナヌスケヌス 盞圓の振る舞いを実珟したすが、パタヌン化できるテクニックが少ないからかもしれたせん。䞭栞ロゞックず凊理フロヌロゞックの分離[3]や、SOLIDなどの原則の適甚によっお蚭蚈を掗緎させるこずは可胜ですが、小さなテクニックの 機械的 適甚を超えたより高床な知的䜜業が求められたす。 なお「 リファクタリング したくおもそもそもテストコヌドが存圚せず、テスト容易性も䜎い」レガシヌコヌドにどう立ち向かえばよいかに぀いおは、曞籍[6]が参考ずなるでしょう。 リファクタリング サむズ 以降の議論のため、 リファクタリング のサむズを䞋蚘衚のずおり3぀に分類したす。 リファクタリング サむズ 蚭蚈の抜象レベル テストサむズ リファクタリング テクニック 所芁時間 Small クラス S 小さなステップ 短い Medium コンポヌネント S パタヌン指向 比范的短い Large モゞュヌル S たたは M - 長い 技術的負債はどうしお生たれるのか 仮に熟緎した プログラマヌ がきれいなコヌドを曞き䞊げたずしおも、時間経過ずずもに内郚品質が劣化するこずは䞍可避です。なぜでしょうか。 コヌドの守備範囲 最初に完成したコヌドは、その時点で刀明しおいる振る舞いに適合した蚭蚈ずなっおいたす。その振る舞いの䞭にある類の可倉性が存圚するなら、その軞においお柔軟性を持っおいるはずです。たずえば、「サブクラスによるタむプコヌドの眮き換え」の リファクタリング を適甚しおいれば、サブクラスや Enum 列挙子によっお新たな振る舞いを远加可胜ずなっおいるでしょう。SOLID原則のひず぀であるOCPオヌプン・クロヌズドの原則による拡匵性です。 このように、コヌドには倉曎に察しお コスパ よく柔軟に察応可胜な範囲、いわば 守備範囲 がありたす。 倉曎ぞの察応 守備範囲内の倉曎であれば、倉曎を実珟するにあたっお リファクタリング は䞍芁か、最小限で枈たせるこずができたす。問題は、守備範囲倖の倉曎が発生したずきです。 その堎合、既存の蚭蚈はその倉曎に察する柔軟性を持ち合わせおいないので、取りうる遞択肢は以䞋の2぀です。 リファクタリング により柔軟性を持たせた䞊で倉曎を行う その堎しのぎのパッチワヌク的な察応を行う プログラマヌ 倫理に埓えば前者の䞀択なのですが、実際には トレヌドオフ が発生し刀断を求められたす。守備範囲倖ずいうこずは、既存の蚭蚈では想定できおいなかった類の倉曎だずいうこずなので、 リファクタリング には䞀定のコストが生じたす。それに倉曎そのもののコストを加えたトヌタルのコストが、 倉曎によっお埗られる䟿益の向䞊ず比范しお正圓化できるか ずいう話になるのです。 もちろん個々の倉曎案件毎ではなくプロダクトやサヌビス党䜓ずしお䞭長期で費甚察効果があるかずいう刀断基準も倧事です。しかし、その倉曎を玠早くリリヌスするこずがビゞネス的に重芁である堎合に、以䞋のような刀断は果たしお間違っおいるず蚀えるでしょうか 「本来 リファクタリング をすべきですが、圱響範囲を考えお今回はパッチワヌク的な察応をしたした」 「本来 リファクタリング をした方がよいず思いたすが、圱響範囲を考慮しお今回はプルリクを承認したす」 技術的負債を返枈する ゜フトりェア開発におけるあらゆる蚭蚈刀断は、最終的にビゞネス䞊の䜕らかの䟡倀に぀ながるべきです。そう考えるならば、䞀時的に技術的負債を蚱容するこずも刀断ずしおは正圓化されたす。重芁なのは、 技術的負債の発生を認識するこずず、それを管理しおいくこず です。 早い返枈が吉 パッチワヌク的な察応を行うず、蚭蚈にほころびが生じたす。このほころびは容易に積もり積もるだけでなく、やっかいなこずに盞互干枉する堎合もありたす。10回のパッチワヌク的な察応を行ったら、技術的負債の量は10 ではなく50や100にもなり埗るずいうこずです。技術的負債は 耇利 であるず考え、手遅れになる前に蚈画的な返枈が必芁です。 新芏開発時 新しい機胜を新芏に開発する際は、可胜な限りコヌドをきれいにし、技術的負債を生たないこずが前提ずなりたす。新芏開発時点で乱雑なコヌドが、その埌きれいに リファクタリング される可胜性は残念ながら非垞に小さいです。 最も効果的な方法は テスト駆動開発 TDDのプ ラク ティスを採甚し、Red - Green - Refactor のサむクルの䞭で高頻床に リファクタリング を実斜するこずです。ずは蚀え、TDDの習埗に䞀定の修緎が必芁なのも事実です。最䜎限、プルリクを出す前には時間を取っお リファクタリング したしょう。 倉曎時 倉曎に察応する際は、 リファクタリング の芁吊を怜蚎し、 リファクタリング が必芁な堎合はそのコストを芋積もりたす。コストが想定を䞊回る堎合は、開発リヌダヌやプロダクトオヌナヌず盞談したしょう。今すぐ リファクタリング を行うのか、それずも先送りにするかの意思決定が必芁です。 先送りにする、すなわち技術的負債の発生を受け入れる刀断をしたならば、その返枈プランずしお バックログ アむテムに リファクタリング のチケットを登録したす。 リファクタリング チケットの解消方針はいく぀か考えられたす。チヌムずしお戊略を定めお、継続的な負債返枈を実珟したしょう。 芏暡の倧きい倉曎ず䜵せお リファクタリング を実斜する むテレヌション の䞀定のポむントを リファクタリング に割り圓おる リファクタリング を䞭心に行う むテレヌション を蚭ける 開発チヌムの裁量で返枈する リファクタリング に関しお、プロダクトオヌナヌやビゞネスサむドぞの説埗が必芁、ずいう課題を耳にしたす。 私は、サむズがSmallやMediumの リファクタリング は開発チヌムが自分たちの裁量で実斜できるのが望たしいず考えおいたす。そのためには、技術的負債の発生をなるべく小さく抑え぀぀、定期的に解消しおいくプロセスや文化が欠かせたせん。 次の図は、 JVM などの凊理系においお GC  ガベヌゞコレクション によっおメモリが自動解攟されるむメヌゞです。アプリケヌションに割り圓おるメモリが䞍足するず、参照が切れおゎミずなったオブゞェクトが回収され、割り圓お可胜なメモリが増えたす。いよいよメモリが足りなくなるず、広範囲を察象ずしたフル GC が実行されたす。フル GC は実行時間が長くなりアプリケヌションぞ䞎える圱響も倧きいため、なるべく回避したいものです。 リファクタリング による技術的負債の返枈は、 GC による割圓可胜メモリの回収に䌌おいたす。長い時間を芁し、その間開発を止めおしたうような倧きな リファクタリング Largeサむズやリアヌキテクティングは、なるべく避けたいものです。そのためには、小さい リファクタリング Smallサむズ、Mediumサむズを継続的に実斜し、技術的負債を膚らたせないこずが倧切です。 説埗方法 ずは蚀え、珟時点ではそのような文化が醞成されおおらず、 リファクタリング の必芁性を認めおもらうために ステヌクホルダヌ の説埗が必芁な堎合はどうしたらよいでしょうか たずはファクトを瀺す必芁があるでしょう。たずえば倉曎リヌドタむム、リリヌス埌の欠陥発生率などのメトリクスです。時間経過に䌎う掚移を瀺し、緊急か぀重芁な課題であるこずを認識しおもらうずよいでしょう。コストずリタヌンを明確にするこずも効果的です[7]。 倧芏暡な リファクタリング Largeサむズの リファクタリング や、リアヌキテクティングが必芁なずきはいずれやっおきたす。これには盞圓のコストず期間を芁するため、 ステヌクホルダヌ を巻き蟌んだ䞊でプロゞェクトやタスクフォヌスずしお取り組むべきです。プランニングや瀟内調敎、コミュニケヌション蚭蚈などが包括的にたずめられた曞籍[8]は倧いに参考ずなるでしょう。 たずめ 本皿では、 リファクタリング の定矩を再確認した䞊で、 リファクタリング のサむズを3぀に分類したした。「 リファクタリング が必芁」ず挠然ず蚀うのではなく、どの粒床の リファクタリング を指しおいるのか解像床を䞊げおコミュニケヌションを取るこずが、開発業務の蚈画や進行においお重芁ではないかず思いたす。 埌半では、技術的負債が生み出される仕組みや、負債に察する取り組み方に぀いお述べたした。゜フトりェア開発の珟実においおは䞀 定量 の技術的負債は発生を回避できないずいう前提で、戊略的に立ち向かわなければなりたせん。 参考文献 [1] Martin Fowler 著、児玉公信・友野晶倫・平柀 章・梅柀真史 蚳『 リファクタリング 第2版 既存のコヌドを安党に改善する』 オヌム瀟 2019 [2] Kent Beck 著、吉矜 韍倪郎・氞瀬 矎浊 ・现柀あゆみ 蚳『Tidy First? 個人で実践する経隓䞻矩的゜フトりェア蚭蚈』 オラむリヌ・ゞャパン 2024 [3] 米久 保 剛 著『アヌキテクトの教科曞 䟡倀を生む゜フトりェアの アヌキテクチャ 構築』 翔泳瀟 2024 [4] Simon Stewart 氏による蚘事『 Test Sizes 』 Google Testing Blog2010 [5] Joshua Kerievsky 著『Refactoring to Pattens』Addison-Wesley2005 [6] マむケル・C・フェザヌズ 著『レガシヌコヌド改善ガむド 保守開発のための リファクタリング 』 翔泳瀟 2009 [7] 束岡 幞䞀郎 氏による蚘事『 「リファクタリングの時間」を確保する技術 』株匏䌚瀟ログラス テックブログ2025 [8] Maude Lemaire 著『Refactoring at Scale: Regaining Control of Your Codebase』O'Reilly Media2020 私たちは䞀緒に働いおくれる仲間を募集しおいたす 電通総研 キャリア採甚サむト 電通総研 新卒採甚サむト 執筆 @tyonekubo 、レビュヌ @nakamura.toshihiro  Shodo で執筆されたした 
こんにちは。 ゚ンタヌプラむズ 第䞀本郚 戊略゜リュヌション 1 郚の英です。 普段はWebアプリや スマホ アプリの案件などを担圓しおいたす。あず、趣味でAIを勉匷しおいたす。 2025幎1月の組織改線で郚の名前がカッコよくなりたした。戊略っお蚀葉、奜きです。 IT゜リュヌション郚(旧)より、戊略゜リュヌション郚(新)のほうが頭良さそうですよね。 気のせいか、名刺もなんだかカッコよくなった気がしたす。 前眮きはここたでにしお、今日はFlutterFlowのAI機胜の怜蚌をしたす。 私は普段から軜いデモであればFlutterFlowを愛甚しおいたす。爆速で開発できお䟿利です。 そんな、ただでさえ䟿利なFlutterFlowになんずAI機胜が远加されたので、その実力を詊しおみようず思いたす。 ※ 2024幎10月のアップデヌト 远加された機胜は以䞋の4぀。 New Page Creation 自然蚀語 や ゜ヌスコヌド からペヌゞを生成できる機胜 New Component Creation 自然蚀語 や ゜ヌスコヌド から コンポヌネント を生成できる機胜 Sketch To Component手曞きやスクショから コンポヌネント を自動生成できる機胜 Page Autocomplete郚分的に構築されたペヌゞをAIが自動的に補間しおくれる機胜 さっそく詊しおみたしょう。 1New Page Creation(自然蚀語ver) 2New Page Creation(ロヌコヌドver) 3New Component Creation 4Sketch To Component 5Page Autocomplete さいごに 1New Page Creation( 自然蚀語 ver) たずはスタンダヌドな䜿い方ずしお、 自然蚀語 による画面生成を詊しおみたす。 適圓なプロンプトをChatGPT(4o)に䜜成しおもらい、それを貌り付けたす。 では、これらの文章をコピペしおFlutterFlowのNew Page Creationに貌り付けおみたす。 PreviewPageを抌䞋するず次の画面が衚瀺されたした。 芁玠ずしおは足りおいたすが、レむアりトがむマむチだず感じたす。 この結果をChatGPTに投げ぀けお、プロンプトを修正しおみたしょう。 修正されたプロンプトで再床生成を行ったら、こんな画面が出力されたした。 たあ、ほが完璧ずいっお良いんじゃないでしょうか。 色合いやフォントを調敎すれば十分に䜿える品質だず思いたす。 䜜成された各 コンポヌネント は、い぀も通りレフトバヌから操䜜するこずが可胜です。 癜玙から䜜成するよりよっぜど効率的ですね。玠晎らしい。 2New Page Creation(ロヌコヌドver) New Page CreationはFlutterの ゜ヌスコヌド から䜜成するこずもできたす。 いや、Flutterの ゜ヌスコヌド があるならそれでええやんずいうツッコミは無芖したす。 ずいうか、FlutterFlowの醍醐味は GUI によるUI/UX蚭蚈&ノヌコヌド開発です。論点が違いたす。 仕䞊げをFlutterFlowに任せたい ずいう思いが匷いです。なるべくコヌディングはしたくないのです。 ずはいえ、 ゜ヌスコヌド が手元にないず話になりたせん。v0を䜿いたしょう。 v0に぀いおは本蚘事では解説したせんが、 自然蚀語 でコヌディングおよびUIのプレビュヌたでできちゃう優れものです。 v0に貌り付けたしょう。 プレビュヌは良さそうですね。ただ、Flutterで曞いおほしいずいう呜什を忘れおいたした。Flutter FlowのAIToolsはFlutterで枡した方が粟床が高いです。修正しおもらいたす。 . dart での リファクタリング が始たりたした。少し埅ちたしょう。 こういったダむナミックな倉曎にも玠盎に察応しおくれるのがAIの良いずころです。 もし、これが仕事で盞手が人間なら、倉曎䟝頌ず信頌関係を倩秀にかけなければなりたせん。 耇数ファむルに分かれおいるので、フォルダ構成を䌝え぀぀、 ゜ヌスコヌド をコピペしおみたす。 生成が完了したした。 先ほどのv0のプレビュヌず゜ックリ ですね。 テキスト送信のブロックが䞋に匵り付いおいないのが惜しいです。 仮ですが、containerをstackでwrapしお画面䞋郚に匕っ匵っおきたした。 こうやっお手軜に調敎が効くのが良いですよね。FlutterFlowを䜿う意味がありたす。 3New Component Creation 先ほどのチャット画面に画像投皿甚の コンポヌネント を䜜成するこずを目指したしょう。 進め方は先ほどず同じように、プロンプトをChatGPTに考えおいただき、FlutterFlowに貌り付けたす。 長くなるのでChatGPTずのやり取りは省略したす。 で、自動生成された コンポヌネント がコレです。良いですね。 プレビュヌ領域もあっお䜿いやすそうです。 4Sketch To Component この機胜を䜿うには 手曞きのむメヌゞが必芁 になりたす。 電通 総研の画䌯ずしお䞀筆描くずしたしょう。 うおぉぉぉおぉぉぉぉ ....!!シュッ ...ツヌ... 描けたした。なかなかの出来栄えです。 この画像から コンポヌネント を䜜成しおみたしょう。 完璧すぎお草。 甚途ずしおは、䌚議宀のホワむトボヌドに殎り曞きしたむメヌゞを具珟化するなどでしょうか。 5Page Autocomplete さお、最埌です。䜜りかけの画面に 自然蚀語 で修正を加えられる機胜です。 先ほどのチャット画面を䜜りかけずしお定矩し、䜜りこみをしおみたす。 チャット送信で添付ファむルを远加できるようにしおみたしょう。 Page Autocompleteを抌䞋するず、 珟圚の画面構成を 自然蚀語 (英語)に起こしたもの が衚瀺されたす。 その内容をChatGPTに䌝えお、修正呜什を考えおもらいたす。 ChatGPTが考えた修正呜什を匵り付けお、Page Autocompleteを開始したした。 ファむル添付のアむコンが远加されたした。 これは修正の提案であり、その内容をどれくらい受け入れるのか を遞択できたす。(Less←→More) 今回はMoreに振り切っお受け入れおみたす。 反映埌の画面がこちらです。 ファむル添付が出来そうなUIに修正されおいるこずが分かりたす。 このように、修正箇所を现かく指瀺しながら、少しず぀画面を䜜りこんでいくこずができたす。 さいごに さお、今回はFlutterFlowのAI機胜に぀いお蚘事を曞きたした。 *1 個人的な感想を蚀うずむマむチな性胜でした。党䜓的にpaddingに気を遣えおいないのが残念。 これは私の呜什の内容が悪かったのか、AI偎の性胜が悪かったのか。 時間があるずきにもっず怜蚌しおみようず思いたす。 これからも AWS やAI関連の怜蚌蚘事をたくさん曞いおいきたす。 ↓ のスタヌを抌しおいただけるず嬉しいです。励みになりたす。 最埌たで読んでいただき、ありがずうございたした。 ゚ンタヌプラむズ 第䞀本郚では䞀緒に働いおくださる仲間を募集䞭です。以䞋のリンクからお願いしたす。 私たちは䞀緒に働いおくれる仲間を募集しおいたす 䞭途採甚-゚ンタヌプラむズ第䞀本郚 新卒採甚-゚ンタヌプラむズ第䞀本郚 執筆 英 良治 (@hanabusa.ryoji) 、レビュヌ @yamashita.tsuyoshi  Shodo で執筆されたした  *1 : ※本蚘事に䜿甚されおいる画像は、AI画像生成ツヌル「DALL·E」を䜿甚しお䜜成されおいたす
こんにちは。クロス むノベヌション 本郚 AI トランスフォヌメヌションセンタヌ 所属の村本です。 私は普段、 Know Narratorシリヌズ の開発や、生成AI関連の技術怜蚌などに取り組んでいたす。 今回は、タむトルの通り私の䜜業環境に぀いお玹介したす。 私は業務のほずんどを圚宅で行っおおり、䜜業環境がほがそのたた生掻空間にもなっおいたす。そのため、快適に仕事ができる暮らせるような環境にしおいるので、䜜業環境に぀いお悩んでいる方の参考になればず思いたす 仕事も生掻もしやすい環境を目指しお アむランド型のデスク配眮で壁を背䞭に デスクになるべくモノを眮かない 昇降デスクでずきどき立぀ように モニタヌはType-C接続できる27むンチを2枚メむンの4Kモニタヌずゲヌム察応のWQHD 180hzモニタヌ ガゞェット類の簡単な玹介 䜜業環境にこだわった結果 たずめ 仕事も生掻もしやすい環境を目指しお 䜜業環境、デスク呚りがほが生掻空間であるず曞きたしたが、実際には以䞋のような目的で利甚しおいたす。 仕事 食事 映画などの動画鑑賞 ゲヌム 家にいる間は基本デスクにいるず蚀っおも過蚀ではないですね... アむランド型のデスク配眮で壁を背䞭に 早速ですが、䜜業環境の実際の写真を。いろいろず趣味芁玠が写っおいるのは無芖しおください 最倧の特城はアむランド型のデスク配眮をしお壁を背䞭偎にしおいるこずだず思いたす。以前は壁にデスクを぀けおいたしたが、モニタヌの埌ろがすぐ壁になっおいるためか、少し圧迫感を感じおいたした。この圧迫感を回避するために、アむランド型のデスク配眮を採甚したのです。 結果的にこの配眮は倧成功で、圧迫感を感じなくなりたした。1日の倧半を過ごすのに圧迫感を感じるかどうかは倧きな違いだず思いたす。 そしお、 圧迫感がなくなったこずにより、䜜業効率が䞊がったような気がしたす。 ※怜蚌はしおいたせん。気分の問題です。気分が倧事なのです。 たた、壁を背にしたこずによっお、カメラを付けおオンラむン䌚議を行う際に埌ろを気にする必芁がなくなりたした。仮想背景は䜿っおいるのですが、物理的にも気にしなくおよくなったのは思わぬメリットです。 デメリットもあげおおくず、「郚屋のスペヌスを䜿うこず」、「ケヌブルが目立ちやすいこず」の倧きく2぀だず思いたす。 1点目に関しおは、私の堎合、家にいるずきは基本的にデスクにいるか寝おいるかなので問題ありたせんでした。たたヌに筋トレをするこずがあるのですが、そのスペヌス分は空いおいるので問題ありたせん。 2点目に関しおは、ケヌ ブルトレ むや、配線カバヌやケヌブルを束ねるアむテムを利甚しお目立たないようにしおいたす。䞊の党䜓写真でもほずんどケヌブルが芋えおいないず思いたす。ケヌブルがごちゃごちゃしおいるのは奜きでないので、可胜な限りたずめたした。このあたりの敎理グッズは比范的安い倀段で調達可胜なのでおすすめです。 ケヌブル呚りの様子 デスクになるべくモノを眮かない 以前はデスクの䞊にもいろいろずモノを眮いおいたしたが、今は極力モノを眮かないようにしおいたす。今䜿うものだけを眮くずいうこずを心がけおいたす。 モニタヌ台を利甚しおモニタヌ䞋の空間をできるだけ利甚したり、デスク䞊甚の棚を利甚しお本を眮いたりしおいたしたが、これらも圧迫感に぀ながる芁因だったかなず思いたす。 利甚頻床の䜎いものは呚囲のラックに眮くようにしお、䜿うずきだけ取りだすようにしたした。こうするこずで、デスクを広々䜿うこずができたすし、䜿わないものは空いおいるスペヌスに䞀時的に動かすこずも簡単です。 普段の目線からの写真を茉せようかず思ったのですが、郚屋がしっかり写っおしたうので真䞊から撮圱。 眮いおあるものは、 ペン立お ミニトレむ䞀時的に小物を眮くずころ フェむクの草プラスチック補 ディフュヌザヌ モニタヌ キヌボヌド マりス ノヌトPCスタンドで立おおいる です。 個人的なお気に入りは草ですね。緑があるだけで少し気分が明るくなる気がしたす。 ちなみにデスクは奥行き70cm、暪幅140cmのものを利甚しおいたす。昔奥行きが60cmのものを利甚しおいたのですが、埮劙に狭く感じお70cmにしたした。このサむズで珟状䞍満はないです。 昇降デスクでずきどき立぀ように デスクはFlexispotの「E7 pro」ずいう電動昇降デスクを利甚しおいたす。ボタン1぀で、デスクの高さを倉えられる䟿利なアむテムです。電動昇降デスクは圚宅ワヌカヌが1床は倢芋るアむテムだず思っおいお、瀟䌚人5幎目のタむミングで思い切っお賌入したした。 定期的に立っお仕事をしたり、䌚議の時に立った状態でオンラむン䌚議に参加したりしおいたす。立぀こずで気分転換になりたすし、座りっぱなしは良くないですからね。 たた、座っおいる状態でも、座り方や怅子の高さ次第でデスクの高さを倉えるこずはありたす。仕事の時はもちろん、ゲヌムの時や映画をゆっくり芋たいずき、様々なシチュ゚ヌションに合わせお高さを倉えられるのは魅力です。 ちなみに怅子は ゚ルゎヒュヌマン の「 ゚ルゎヒュヌマン プロ」を利甚しおいたす。最近「 ゚ルゎヒュヌマン プロ2」が出おいるので、これから買う人は2をお勧めしたす。 モニタヌはType-C接続できる27むンチを2枚メむンの4Kモニタヌずゲヌム察応のWQHD 180hzモニタヌ 䜜業環境で気になるポむントの1぀がモニタヌの構成だず思いたす。私もいろいろな構成を詊しおきたした。もずもずは1぀の倧きなモニタヌで良い掟だったのですが、珟圚は同じサむズのモニタヌを2枚䜿っおいたす。理由は、コミュニケヌションツヌルTeamsなどを開きっぱなしにしおおきたいのず、オンラむン䌚議時に共有しおいる画面ずそうでない画面を分けたい欲が出おきたからです。 基本的には、メむンモニタヌの27むンチ4Kのモニタヌ䞊で䜜業し぀぀、サブモニタヌのもう1枚でTeamsなどを開くようにしたした。耇数枚利甚するず、どうしおも銖を振るので疲れおしたいたす。その察策ずしお、メむンずサブの圹割を明確にしお、基本はメむンしか芋ないずいう圢にしたした。写真でもメむンモニタヌがキヌボヌドの前にあるのが分かるず思いたす ちなみに、メむンのモニタヌは4Kの拡倧率125%で利甚䞭です。チヌムメンバヌには4Kモニタヌを拡倧率100%で利甚しおいる人もいるようですが、さすがに小さくなりすぎるので自分には無理でした。たた、モニタヌは2぀ずもType-C接続で映像出力、絊電可胜なモデルなので、ノヌトPC呚りのケヌブルが少なく枈んでいたす。 2枚のモニタヌに察しType-Cで接続しおいる様子 芋出しに「ゲヌム察応のWQHD 180hzモニタヌ」ず曞いおいたすが、サブモニタヌはゲヌム甚ずしおも利甚しおいたす。PS5やSwitchでしか利甚しおいないので、180hzに察応しおいれば十分な性胜かなず。 ガゞェット類の簡単な玹介 ゚ンゞニアずしお働いおいたすので、䞀応キヌボヌドやマりスなども簡単に玹介しおおきたす。 キヌボヌドはKeychronの「 Q1 Max QMK/VIA JISバナナ軞」を䜿っおおりたす。持ち運び甚にKeychron「K3 Pro QMK/VIAバナナ軞」を持っおいたすが、家では、Q1 Maxを䜿っおいたす。゚ンゞニアですが、US配列は䜿えたせん。US配列䜿っおいる人はデキる゚ンゞニアのむメヌゞがありたすが、JIS配列でもやれるんだぞずいうずころを芋せたいず思いたす。 マりスは Logicool の「MX MASTER3s」を䜿っおいたす。マりスずいえば トラックボヌル タむプも良いず聞くのですが、珟状こちらで満足しおいるので倉える予定はないです。マりスも持ち運び甚があり、同じく Logicool の「MX Anywhere 2S」を䜿っおいたす。こちら7幎くらい䜿っお、萜ずしたくっおたすが党く問題なく䜿えおいたす。 䞊が自宅甚セット、䞋が持ち運び甚セット 䜜業環境にこだわった結果 このように䜜業環境にこだわった結果、ストレスの少ない快適な䜜業環境になっおいるず思いたす。いろいろ詊行錯誀を重ねおきた䞭でかなり満足のいく環境です。 ただ、いく぀かデメリットがあるので泚意が必芁です。 終わるこずのない、 PDCAサむクル にハマる 別の環境になるず気分が䞋がる 1点目、どれだけ玍埗のいく䜜業環境になっおも、時間がた぀ず気になるこずが出おきお改善したくなるんですよね。こんなずころで PDCAサむクル は回したくないものです。 2点目、普段の環境を自分に最適化しすぎるず、別の環境になった時に「あれもない」「これもない」ず感じおしたいたす。「匘法筆を遞ばず」ず蚀いたすが、党く持っお逆の状況です。「匘法でもないのに筆遞びたくり」状態です。 ずはいえ、デメリットを感じる時間は、メリットを感じる時間に比べはるかに少ないので問題ないかず思いたす。 たずめ 今回は、私の䜜業環境を玹介したした これからも䜜業環境の改善は続けるず思いたすが、䜜業環境をどう敎えおいくか悩んでいる方の参考になれば幞いです ご芧いただきありがずうございたした 私たちは共に働いおいただける仲間を募集しおいたす みなさたのご応募、お埅ちしおいたす 株匏䌚瀟 電通総研 新卒採甚サむト AI系プロゞェクトマネヌゞャヌ/リヌダヌ AIサヌビス開発゚ンゞニア 執筆 @naoki.muramoto 、レビュヌ @miyazawa.hibiki  Shodo で執筆されたした 
初めたしお。 ゚ンタヌプラむズ 第䞀本郚の䜐藀悠です。 本蚘事では AWS Certified Solutions Architect - Professional(以䞋:SAPro)をほずんど業務経隓のない新人の私が、勉匷のみで取埗した 経隓談 を玹介したす。 想定読者は AWS Certified Solutions Architect - Associate(以䞋:SAA)を取埗枈みの方です。未経隓の堎合はSAAからの取埗をお勧めしたす。 目次 著者背景 SAProずは 取埗理由 孊習方法 詊隓抂芁 孊習教材 CloudLicense Udemy AWS Certified Solutions Architect Professional Practice Exam 方法 テスト圓日 たずめ 著者背景 倧孊や院ではほずんど情報をやっおいない 基本情報取埗入瀟埌 新人1幎目 むンフラ業務にた぀わる OJT 課題を1か月間実斜 2週間で AWS Certified Cloud Practitioner以䞋:CLFを取埗 1か月でSAAを取埗 むンフラの知識はなかったので、詊隓察策を行う䞭で孊習をしたした。CLFの詊隓勉匷を始めた圓初は IPアドレス のネットワヌク郚ず ホスト郚 の抂念を知らないくらいのレベルです。 SAProずは AWS Certified Solutions Architect - Professional は、 AWS での クラりド アヌキテクチャ の蚭蚈ずデプロむにおいお2幎以䞊の実践的な経隓を持぀個人を察象ずするものです。 察象ずなるレベルは以䞊のようになっおおり、業務経隓がない人が孊習を行うず分からないこずの量、詊隓範囲の広さや問題のボリュヌムに挫折しおしたうず思いたす。したがっお、未経隓者の方は50~100時間ほどコミットするこずを芚悟しお、孊習する時間を確保する必芁がありたす。ただ2幎以䞊の実務経隓は受隓のための必須条件ではないので、未経隓で取埗出来たら2幎分の 知識 を獲埗できるチャンスでもありたす。 耇雑な問題に察する耇雑な゜リュヌションの提䟛、セキュリティ、コスト、パフォヌマンスの最適化、および手動プロセスの自動化における高床な知識ずスキルを蚌明するために圹立ちたす。 この資栌を取埗するこずによっお埗られる知識は以䞊のようになっおいたす。問題も詳现は埌述したすが、想定される課題に察しお耇数のサヌビスを組み合わせたシナリオにおいお、最も効率的なものを遞択する圢匏であるため、甚意された遞択肢から遞ぶずいうこず以倖は実践的であるず感じおいたす。 取埗理由 SAProはSAAに比べおさらに具䜓的で実践的な ナヌスケヌス や課題に察凊するような出題圢匏をずっおいたので、詊隓察策を通じお課題解決のための手法を深く理解できるのではないかず考えたのがきっかけです。 たた、新人で最䞊䜍資栌を保持しおいるこずで AWS に関しおは他の人ず差別化できお自分がやりたいむンフラの仕事に立候補できるず考えたした。これがあきらめかけた時の支えになっおいたした。 孊習方法 詊隓抂芁 詊隓の抂芁は以䞋のずおりです。 SAAに比べお詊隓範囲がわずかに狭くなり頻出の分野が特定しやすいですが、その分問われる内容は深くなっおおり、芁求される正答率も高くなるので詊隓の難易床は難しくなっおいるず感じたした。 内容 耇雑な組織ぞの察応 ゜リュヌション蚭蚈ず継続的改善 移行ずモダナむれヌションの加速 出題圢匏 遞択肢から単䞀たたは耇数遞択をする圢匏 時間 180分 問題数 75問 合栌点 75% 孊習教材 以䞋の孊習教材をお勧めしたす。 CloudLicense メリット 日本語に違和感がなく解説が詳しい 本番で出る内容が倚かった デメリット 問題文をコピヌできないので間違えた問題をたずめるには手打ちが必芁 https://cloud-license.com/ F12キヌを甚いお問題文のテキストブロックをコピヌできるので蚱容はできたすが、やや手間でした。 Udemy AWS Certified Solutions Architect Professional Practice Exam メリット 本番でほが同じ内容が問われた コピヌ&ペヌストが可胜 デメリット 英語の問題文を google翻蚳 にかけるず意味䞍明な時がある https://www.udemy.com/course/aws-certified-solutions-architect-professional-aws-practice-exams こちらは倉な翻蚳を原文を芋お補正する䜜業が出来れば問題の雰囲気が近いので良い教材だず思いたす。 方法 以䞋の詊隓問題のサンプルをもずに孊習方法を解説したす。 https://d1.awsstatic.com/ja_JP/training-and-certification/docs-sa-pro/AWS-Certified-Solutions-Architect-Professional_Sample-Questions.pdf このような圢匏で問われるので「背景」「珟状」「芁求」に分離したす。 この3芁玠に綺麗に分離できないこずもありたすが、ざっくりず切り分けるこずで問題文の芋通しが良くなりたす。倧䜓の堎合は文末にある芁求の郚分に目を通しおから、背景ず珟状を理解するこずで芁求に察する課題がどの点にあるかを把握しやすくなるずいうこずです。 このサンプル問題を䟋に考えたす。 芁求は過剰な支出を防ぎ、各アカりントのコン トロヌル を維持する゜リュヌションを提案するこずです。 背景は攻撃者による むンスタンス の起動で請求が高額になったこずです。 最埌に、珟状はセキュリティ䟵害には察応したが過剰な支出を防ぐ゜リュヌションはないずいうこずがわかりたす。 この時の芁求を満たすにはセキュリティ䞊の問題は考慮しなくおいいずいうこずが分かり、この長い問題文でも読むべきは埌半郚分に限定できたので倧分芋通しが良くなりたしたね そのあずで、遞択肢を芋おいきたす。 この条件を満たす遞択肢はCですが、私はそれ以倖の遞択肢が違う理由も解説できないず解けたこずにしたせんでした。 解説や公匏ドキュメントを参考にしながら、問題がどの分野に属するものかずどのサヌビスに関連するものかを分類しお以䞋のようにmdファむルでメモをたずめおいきたした。 VScode の環境䞋で芋出しの 呜名芏則 を決めお静的解析の 拡匵機胜 を䜿甚するず、同じ芋出しがある際には譊告が出るので情報を䞀぀の堎所にたずめるこずができたす。 孊習のコツずしおはドキュメントを写さないこずです。分からないこずを写すのは負荷が小さいので蚘憶に残りづらい気がしたす。なので、問題を解くためのドキュメントを読み蟌んだ埌にノヌトをたずめる際には参考資料を芋ないようにしたす。぀たりむンプットずアりトプットは分離するずいうこずです。 以䞊の方法で先述の問題集を解きたす。この方法でやるず時間がかかりたすが質を高めれるため、200問前埌で合栌できるず思いたす。私が実際に解いたのも210問でした。 テスト圓日 テストセンタで受隓したした。 詊隓時間は長いので事前にトむレに行くこずをおすすめしたす。 問題を半分解いたら䌑憩しおください。 せっかく受隓するのですから、倪刀打ちできない問題も遞択肢から絞っお回答できるようにしたしょう。 この遞択肢のパタヌンの堎合はAずB、CずDずEに遞択肢を分けるこずができ遞択肢を2぀遞ぶ際にはそれぞれ1぀ず぀遞ぶ 傟向がありたす 。 たたサンプル問題にはなかったのですが、以䞋のような遞択肢の堎合 A ) CloudFrontを䜿甚しお B ) CloudFrontを䜿甚しお C ) CloudFrontを䜿甚しお D ) S3で静的りェブサむト ホスティング をしお これはACに正解があるこずが倚いです。 結局、この傟向が分かるくらい問題解いおいるず普通に詊隓合栌できるのですが、どうしおも時間がなくお遞択肢から逆算したいずきに参考にしおください。 そしお、あくたで傟向なので切矜詰たった際の参考皋床でお願いしたす。 たずめ AWS 詊隓のなかで䞀番難しかったですが詊隓察策の過皋で通垞のハンズオンでは怜蚌が難しい内容、䟋えばControl Towerなどの組織管理に関する郚分をシナリオに基づいた課題を解決するこずで理解出来たので合栌自䜓もそうですが、それたでのプロセスに意味があったなず感じる詊隓でした。 未経隓だず厳しい道のりで぀らいですが、合栌はできるので同じ境遇の人は頑匵っおください ここたで読んでいただきありがずうございたす。 䞀人でも倚く AWS の認定詊隓に興味を持ち合栌しおいただけたら嬉しいです。 私たちは䞀緒に働いおくれる仲間を募集しおいたす 電通総研 新卒採甚サむト 執筆 @sato.yu 、レビュヌ @nakamura.toshihiro  Shodo で執筆されたした 
はいどヌもヌ ゚ンタヌプラむズ 第䞀本郚の宮柀響です 組織改線の圱響で郚眲名が倉わりたした 本蚘事では、珟圹のIT䌁業瀟員新卒5幎目ずいう立堎から、倧孊入孊共通テスト旧 倧孊入詊センタヌ詊隓 に今幎床から新たな出題科目ずしお蚭定された「情報Ⅰ」の詊隓問題を解いおみた感想をお䌝えしたす 問題・正解 感想 解答者ずしお 倧問1 倧問2 倧問3 倧問4 IT䌁業瀟員ずしお おわりに 問題・正解 本蚘事の察象は、什和7幎床の本詊隓問題ずなりたす。 問題および正解は、以䞋に公開されおいたす。 問題PDF 遷移先 毎日新聞 デゞタルWebサむト※ 正解PDF 遷移先 独立行政法人 倧孊入詊センタヌ Webサむト ※公開され次第、 独立行政法人 倧孊入詊センタヌ Webサむトのものに曎新予定です。 感想 以䞋、圓然ですが党お個人の感想です 解答者ずしお 䜕よりもたずみなさたにこれだけは䌝えたいずいう感想ずしお、 「情報Ⅰ」で受隓生に求められおいるものは、「情報孊の知識」ではなく、「情報を読み取る掻甚する胜力」なのかな ず感じたした。 もちろん、埌述の倧問1 問1 aのように、情報孊の知識を問う問題も含たれおはいるのですが、問題の倧半は 「蚘茉された文章や図衚の内容を正確に理解し、そこから分かるこず考えられるこずを解答する問題」 でした。 いわゆる「問題文の䞭に答えがある」タむプの問題です。 その意味では、情報孊ずいうよりは日本語ず論理的思考力の問題ずいえるのかもしれたせん。 私自身、こうしお実際に問題を解くたでは「プログラミングやネットワヌクのような情報孊的な問題が倚いのかな」ずいうむメヌゞをもっおいたため、そのむメヌゞは芋事に芆されたした。 「 SNS をはじめずするむンタヌネット䞊の情報に振り回されるこずなく、情報を正しく理解・掻甚しおほしい」ずいう 倧孊入詊センタヌ の思いが蟌められおいるのかもしれたせん。 ずいうこずを螏たえたしお、以䞋、倧問の䞀郚を抜粋しおの雑倚な感想です。 倧問1 蚘念すべき1問目、倧問1 問1 a、いきなり「デゞタル眲名」なんお単語が飛び出しおきたした 問題を芋る限り、少なくずも「デゞタル眲名を利甚するこずで、情報の発信者が本人であるかず、情報が改ざんされおいないかを確認できる」ずいうこずを、今どきの高校生は既に理解しおいるようです。 もうね、びっくりですよね 私が高校生の頃はデゞタル眲名なんお知りもしたせんでしたし、たずえを耳にしたずしおも「 ニンテンドヌDS みたいにタッチペンで荷物受け取りのサむンができるのかなぁ」くらいにしか考えなかったず思いたす。笑 倧問2 倧問2 B、「珟金で6,000円ず぀集金する際のお぀り」ずいうテヌマ蚭定が単玔に面癜いなず思いたした。 確かに千円札で払う人も䞀䞇円札で払う人もいるよなぁず、ちょっずしたあるあるでした。 倧問3 人日蚈算による 工数 蚈画のようなテヌマ蚭定でした。 そのため、少し「 SIer っぜさ」も感じたした。 たた、この倧問のみ唯䞀プログラムの話が登堎したした。 ずはいえ、特定の プログラミング蚀語 の知識がないず解けないような問題ではなく、ごくごく簡単な アルゎリズム の問題でした。 そのため、前提ずしお必芁な知識は「倉数」「配列」「代入」ずいう抂念のみでした。 倧問4 「尺床氎準」なんお私は倧孊に入っお初めお孊んだのに やっぱり今どきの高校生は凄い 。 IT䌁業瀟員ずしお 数幎埌の新瀟䌚人は、皋床の差こそあれ、党員がこのレベルの知識や思考力を有した状態で瀟䌚に出おくるわけです。 嬉しいような、ワクワクするような、恐ろしいような、䞍思議な感芚です。 もちろん、党瀟䌚人が共通テストを受隓しおいるわけではありたせんが、科目ずしおの情報Ⅰが必修化しおいるこずも螏たえるず、 情報リテラシヌ は確実に底䞊げされおいるず考えられたす。 そのため、新入瀟員に「そんなこずも知らないんですか」ず思われないよう、私自身も孊びを継続しおいくこずが倧切だなず感じたした。 たた、私が興味をもっおいる人材開発的な芳点から考えるず、新人研修の内容にも圱響があるのではないかず感じたした。 これは、「珟圚のIT未経隓者」ず「数幎埌のIT未経隓者」ずでは、前提知識のレベルが倧きく異なっおいる可胜性が高いためです。 珟圚実斜されおいる「珟圚のIT未経隓者」向けの研修の䞭には、「数幎埌のIT未経隓者」からするず、「そんなの党員高校でやっおるし 」ず思われる内容が含たれおいる可胜性も吊定できたせん。 そのため、近い将来、匊瀟に限らず、倚くの䌁業研修実斜偎、研修受講偎、ずもにがIT系の研修プログラムを芋盎す必芁に迫られるのではないかず感じたした。 おわりに 本蚘事では、什和7幎床倧孊入孊共通テストの「情報Ⅰ」の本詊隓問題を解いおみた感想をお䌝えしたした。 少なくずも今幎床の本詊隓問題では情報孊の知識はそれほど芁求されないため、IT業界のみなさたはもちろんですが、それ以倖の業界のみなさたや孊生のみなさたも、お時間のあるずきに解いおみおはいかがでしょうか。 最埌たでお読みいただき、本圓にありがずうございたした 私たちは共に働いおいただける仲間を募集しおいたす みなさたのご応募、お埅ちしおいたす 株匏䌚瀟電通総研 新卒採甚サむト 株匏䌚瀟電通総研 キャリア採甚サむト 執筆 @miyazawa.hibiki 、レビュヌ @kinjo.ryuki  Shodo で執筆されたした 