TECH PLAY

SCSKクラウドソリューション

SCSKクラウドソリューション の技術ブログ

1141

こんにちは。SCSK三上です。 今年もラスベガスで開催された、インフォマティカの “データマネジメント”の最大カンファレンス の一つである、 Informatica Worldに参加してきました! 昨年度の参加レポート↓ Informatica world 2023 参加レポート – TechHarmony (usize-tech.com) 1.カンファレンス概要 5月20日(月)~5月23日(木)午前迄の4日間でラスベガス Mandalay Resort&Casinoホテル で開催されました。 日本からは 17社31名 参加しています!SCSKからは私含め3名で参加してきました。 時差は16時間あるため、4泊6日しています♦フライトは行きはサンフランシスコ経由、帰りはロサンゼルス経由と、どちらも15時間以上のフライトで移動だけで一苦労でしたが、機内食もおいしく(ハーゲンダッツ付き!)映画も豊富で満喫しました🎵 本題に戻りまして、今年のメインメッセージは、 “ Everyone’s ready for AI expect your data ” ~AIを生かすデータを全社規模で適切に管理し、データと共にAIに命を吹き込む~ です。 昨年度はデータに注目されていましたが、今年度はそれに加えAIが強く伝えられていました。 2023年は、「 Where your data comes to LIFE 」2024年は、「 Where data & AI come to LIFE 」とデータ・AIが大切であることが伝わるメッセージでした。   2.セッション報告 セッションは9種類のタイプに分かれており、タイムテーブルを自分で作成して様々なセッションに出ることができました! 私は、KeynoteをはじめとしCDGC関連のセッションに参加しました。Round Tableのような会話型セッションに出る勇気が最後まで出ず…。少し悔やまれます… タイプ 講演者 講演テーマ Data and AI Architecture Summit ​ INFA   ( インフォマティカ )、 アナリスト、 パートナー、顧客 ​ 最新のアーキテクチャトレンド ​ Data and AI Market Insights Summit ​ INFA 、アナリスト、パートナー、顧客 ​ 最新の市場動向 ​ Partner Summit ​ INFA ​ 最新の INFA パートナー戦略 ​ Industry Summit ​ INFA 、顧客 ​ 最新のインダストリー・トレンド ​ Modernization Summit ​ INFA 、顧客 ​ 最新のモダナイゼーション・トレンド ​ Keynote ​ INFA 、パートナー、顧客 ​ 最新のデータマネジメント戦略 ​ Breakout Session /  Innovation Theater ​ 顧客、パートナー ​ 最新の顧客事例 ​ Deep Dive   /   What’s   New ​ INFA ​ 最新の INFA クラウド・サービス ​ Round Table ​ INFA ​ 双方向型の相談会 ​ Keynote:Informatica CEO, Amit 基調講演にはインフォマティカのCEOであるAmitが登壇し、様々なメッセージが伝えられました。 AIだけでは価値は生まれず、 AIに価値を生み出してもらうためにはデータが必要 である。 正確かつタイムリーにアクセスが可能で管理・保護され、民主化されたデータ。 しかし、あらゆる組織がAIの準備を整えているが、自社データについては準備できていない。 これらの データを生み出すものこそが、データマネジメント であり、イノベーションをリードするのがインフォマティカである。 Keynote:IDMC戦略発表 Keynoteの中では、インフォマティカ製品に関する機能拡張の発表がありました。 気になった発表を3点ほど上げていきます! IDMCの生成AI対応 データ統合やAPI統合、データ品質、データカタログなど従来から提供されているあらゆる製品が生成AI対応されていくそうです! 非構造化データ:非構造化データへのデータコネクタ提供や生成AIには不可欠なドキュメント、画像、動画データに対するメタデータ管理をサポート Vectorデータベース:こちらも生成AIに欠かせないVectorデータベースとの統合をサポート 言語モデル:LLMとのデータ統合をサポート データ統合/iPaaS データ統合/iPaaSで印象的だったのは、 自然言語対応のプロンプトが提供 されるということです。 こちらの画面にある通り、「AシステムとBシステムをデータ連携したい」と伝えるとデータ連携をしてくれる、そんな機能です。 この機能によりETLパフォーマンスが10倍向上し、ETL作業が90%削減されるとのことです。便利ですね~ 生成AIに対応したiPaaS機能を利用することでアプリ開発が1時間に短縮される事例も紹介されました。 CLAIRE GPT そして、今回最大の発表は、「 CLAIRE GPTのリリース完了 」でした! ~CLAIRE GPTとは~ Chat GPT のような会話型インターフェースで、 ​ 質問や依頼を投げることで CLAIRE GPT が回答・実現してくれる。 ​ 以下のような質問をCLAIRE GPTに投げることで裏でサービスが動き、CLAIRE GPT上に回答しれくれる、そんな機能です。 「売り上げ分析に使えるデータはある?」 「販売データはどこから持ってきているデータ?」 「在庫データの品質は?」 「データ連携のパイプラインを作成して」 CLAIRE GPTは全面的にアピールされており、基調講演だけでなくPavilionスペースでデモも行われていました。 今回はPavilionの一部で インフォマティカジャパン 森本様によるCLAIRE GPTデモ解説コーナー があり、日本人に大盛況でした! CLAIRE GPTは現在、 North AmericaでAWS Podを利用しているユーザ に限り使用できるそうです! 今後は他Podへの展開や日本語対応も可能になっていく…?とのことです。   3.Japan Partner Group Meeting with Amit そして今回は 日本から17社31名 で参加したのですが、パートナーとCEOであるAmit氏とのMeetingが開催されました。 この際、CLAIRE GPTの日本語対応も考えていく…と回答いただきました! その他にもモダナイゼーションのロードマップやMDMのマイグレーション、パートナー育成など様々な質問に答えて下さりました。 写真にはありませんが、パートナー17名で参加し活発なディスカッションが行われました。 ↓ 最後にツーショットも撮っていただきました🎵「Akikoは日本らしい名前で素敵だね!」と言ってくださいました♦ 4.現地状況 また会場では、VR体験やものづくりコーナーなどセッションだけではなくイベント自体を盛り上げるパフォーマンスがたくさん行われていました! (おそらく)有名な方のパフォーマンスは圧巻でした🎵 そして、超円安でのアメリカ!ホテルのお水は25$、コーヒーは16$でした…。 イベントでは無料でお水・コーヒーが飲めるコーナーがあるので、 ホテルで水を切らしたときには喉をカラカラにさせながら朝を待ちました…。 ラスベガスだというのにカジノをやらなかったことが悔いが残りますが、街全体が最高の景色で大満足です♡ 4.感想 初海外イベント参加で一番に感じたのはやはり” 英語力 “です…。 旅行レベルでは何とかなっていても、ビジネス英語は全くダメだと痛感しました…。 セッションも資料が投影されていれば、何となく言いたいことは分かるものの、 トークセッションになると何を話しているのか?会場全体がなぜ笑っているのか?ついていけないことが多々ありました…。 英語は常にアウトプットしていかなければですね!! また、ジャパンのパートナーとしては、CLAIRE GPT含め「 拡張機能の日本語対応はいつだろう… 」と思う発表も多々ありましたが、 他人事として待つのではなく、 ジャパンパートナーとして日本の事例を増やす 。これこそが、スピーディーな日本語対応に繋がるのだと、 改めてパートナーとしての役割を感じました! キャリーケースがボコボコになって返ってきたり、航空中耳炎になったり色んなトラブルもありましたが、 このような機会がないとお会いできない他社パートナーの方と出会えたことがこの出張一番の思い出です★ 今後もインフォマティカに関する技術情報、アウトプットしていこうと思います! 9月にはInformatica World Tour Tokyo 2024も開催予定です!ぜひチェックしてみてください~ Informatica World Tour 2024 – Join Us in a City Near You 以上、ご拝読いただきありがとうございました🎵
アバター
こんにちは、SCSK株式会社の川原です。 いよいよ日本最大の “AWS を学ぶイベント” AWS Summit Japan 2024 が近づいてきました! SCSKはプラチナスポンサー として、スポンサーセッションでの事例紹介とブースの出展を行います。 今回は、特にブースの詳細をご紹介します! 概要とスポンサーセッションの情報については、以前発信した記事に掲載していますので、ご確認ください。 AWS Summit Japan 2024に出展します! SCSKは 2024/6/20(木)~6/21(金)開催の日本最大の AWS を学ぶイベント「AWS Summit Japan」に出展します。 SCSKセッションでは、”データセンターのラックぜんぶ抜く!SCSK だからできる脱オンプレの秘策とは?”というテーマで、沖電気工業様のマイグレーション事例をご紹介いたします。 blog.usize-tech.com 2024.05.09 まだご登録がお済みでない方はぜひご登録ください↓↓   「AWS 愛が、凄い 。SCSK」 ブースのご紹介 SCSKブース(H4-P011)では「 AWS愛が、凄い。SCSK 」をテーマに、お客様のAWS利活用ステージに合わせて貢献できる各種ソリューションを出展します。 SCSK独自ソリューションの4商材を展示 、 ミニシアターでは7つのAWS関連ソリューションから発表いたします。 展示商材のご紹介 各商材のブースでは、実際のデモンストレーションを交えてご用意しております。 実際の操作画面や使用シナリオを通じて、各ソリューションの具体的な機能や利便性を直接体験いただけます。各ソリューションがどのようにお客様のビジネス課題を解決するのか、より深く理解していただけることと思います。 展示商材 紹介 クラウド移行 (ITX for MCP SCSK版) 2025年の崖が迫る中、SCSKではAWSへのリフト&シフトの豊富な移行メソッドを詰め込んだITXパッケージをAWSとともに一早くリリースしました。 時代は進み、今はクラウド徹底活用のためにクラウドネイティブが主流となっています。周回遅れと感じているお客様、リフトは終えこれからDX推進のためにクラウドネイティブ化を考えているお客様、いずれにもSCSKにお任せ下さい。弊社のITX紹介ブースへぜひお立ち寄りください! データ活用 (SCSKクラウドデータ活用サービス) 「データ活用をすぐに初めたいけど、どうしたらよいか分からない、コストもかけられない」そんなお悩みを1日で解決します! AWS × Snowflake × troccoの組み合わせでお客様のデータ価値がどのように最大化されるのかをご紹介します。さらに、SCSKのノウハウを集約した、すぐに使える「ナレコレBI」による経営課題の可視化・分析や、Amazon DataZoneによるデータコラボレーションが体験できます! 生成AI かんたんRAG構築 (InfoWeave) 生成AIを業務に組み込みたいが、何から始めればいいかわからない、セキュリティやコストが不安と思ったことありませんか? SCSKではナレッジを基に生成AIが回答してくれる RAG環境を構築できるテンプレートを提供するInfoWeaveをリリースしました 。最短3日で安価に、セキュリティやコストを考慮したRAG環境を構築できますので、PoCや自社業務への生成AI導入の第一歩に最適です! 製造現場 デジタル化 (Duetics) Duetics(デュエティクス)は製造現場のデジタル化を支援するトータルソリューションです。 AWSを活用したクラウドアプリケーションはもちろん、現場からクラウドに直結するネットワークや、現場でデータ収集・分析を行うエッジコンピューティングなど、必要なサービスを一気通貫でご提供致します。AWS Summit Japanではミニチュア工場を用いてデータ収集・可視化・分析を実現するデモをご用意し、皆様のご来場をお待ちしております。   ミニシアターのご紹介 7つのAWS関連ソリューションについて、1日に各2回ずつ講演を行います。 最新の技術トレンドを交えながら、 SCSKの豊富なソリューションの特長やAWS活用について専門スタッフがご紹介します。 当日表彰される AWS AmbassadorやTop Engineerも多く登壇予定です! ぜひお見逃しなく!    【Day1 – 6/20】       【Day2 – 6/21】 商材名 紹介 AWS ハイブリットクラウド (USiZE) SCSKのプライベートクラウドUSiZE(ユーサイズ)とAWSを組み合わせたハイブリッドクラウドの実現についての講演です。 マーケットニーズは、パブリッククラウドファーストから、システムを適材適所に配置したハイブリッドクラウド構成に変化しています。本講演では、パブリッククラウド利用における課題とニーズの観点から、なぜプライベートクラウドUSiZEが必要とされるのかを紹介します。 クラウドデータベースマイグレーションサービス AWS環境におけるデータ活用を見据えた最適なデータベースを選択し、確実でスピーディなデータベース移行を実現するサービスです。 「DBアセスメント」によりお客様にとって最適なデータベース選択と移行計画をご支援し、単純リフトから異種DB移行も含めたシフトまで幅広いDB移行に対応したサービスです。Oracle DBからAmazon Auroraなどの異種データベース移行を得意としています。 SCSKクラウドデータ活用サービス 「データ活用をすぐに初めたいけど、どうしたらよいか分からない、コストもかけられない」そんなお悩みを1日で解決します! AWS × Snowflake × troccoの組み合わせでお客様のデータ価値がどのように最大化されるのかをご紹介します。 ProActive C4 SCSKが提供するクラウドERP「ProActive C4」 Amazon QuickSightと連携した最新機能「ダッシュボードソリューション」など、本製品におけるAWSテクノロジーの活用事例を中心に、概要や特長について分かりやすくご紹介いたします。 CELF 「CELF」は、表計算ソフトに似た操作性で業務アプリを作成、利用できるノーコード開発ツールで、国内外で約1,000社以上の企業様が導入、また販売や開発をサポートいただくパートナーも約120社以上です。 予算実績管理や見積・案件管理、マスター管理など現場に密着した業務で高い効果を発揮するほか、AWS内でのERPやAmazon QuickSightとデータ連携する上で必要なデータ加工などにも対応可能です。 AI駆動開発 生成AIの登場によりシステム開発は単なる効率化に留まらない変化が起きつつあります。従来の生産性の向上に留まらず、開発プロセス全体にわたる変革へとシフトしています。 本セッションでは、SCSKにおけるAI駆動開発への取り組みを交えてご紹介します。 生成AI RAGソリューション (InfoWeave) 生成AIを業務に組み込みたいが、何から始めればいいかわからない、セキュリティやコストが不安と思ったことありませんか? SCSKではナレッジを基に生成AIが回答してくれるRAG環境をテンプレートで構築するInfoWeaveをご紹介します。 当日は、【H4-P011】ブースでお待ちしております! こちらのTシャツを着たスタッフがお待ちしております。 それでは、皆様の来場を心よりお待ちしております!
アバター
こんにちは。SCSKの江木です。 2024年5月にGoogle Cloud認定資格を全冠しました。 今回は、私が実際にどのように学習を進めてきたのか、具体的な勉強法や感想をお伝えしていきます。 これからGoogle Cloud認定資格取得を目指す方にとって、少しでも参考になれば幸いです。 Google Cloud11冠までの道 受験日と各試験の詳細は以下の通りです。ノーミスで11冠を取ることが出来ました。個人的な難易度は完全な主観になります。 カテゴリ 試験名 言語 受験日 個人的な難易度(5段階評価) Foundational Cloud Digital Leader(CDL) 日本語対応 2023-10-10 ★ Associate Cloud Engineer(ACE) 日本語対応 2023-10-15 ★★ Professional Cloud Architect(PCA) 日本語対応 2023-10-31 ★★★★ Professional Data Engineer(PDE) 日本語対応 2023-11-21 ★★★ Professional Cloud Developer(PCD) 日本語対応 2024-01-05 ★★★ Professional Cloud Security Engineer(PCSE) 日本語対応 2024-01-08 ★★★ Professional Cloud Network Engineer(PCNE) 日本語対応 2024-02-03 ★★★★★ Professional Cloud DevOps Engineer(PCDOE) 日本語対応 2024-03-03 ★★★ Professional Google Workspace Administrator(PGWA) 日本語対応 2024-03-16 ★★★ Professional Cloud Database Engineer(PCDE) 英語のみ 2024-04-06 ★★★★ Professional Machine Learning Engineer(PMLE) 英語のみ 2024-05-22 ★★★★ きっかけ 2023年9月より、Google Cloudに関する業務を行っていましたが、知識が足らず業務についていけない日々を過ごしておりました。危機感を覚え、知識を付ける必要があると感じ、Google Cloud認定資格を取得しようという思いに至りました。 今回11冠を成し遂げたのは自分の頑張りに加えて、職場の皆様のサポートによるところが大きいです。心よりお礼申し上げます。 受験順序 私の受験順序とオススメの受験順序を紹介します。私の受験順序は勉強の手戻りが多く発生しており、オススメできません。一通り受験した上で最短の勉強時間で11冠できるであろう受験順序を考えたので、そちらをオススメの受験順序として紹介します。 私の受験順序 私は業務で関連するサービスが多い順序で受験していきました。ポイントは下記の通りです。 CDL、ACE、PCAは基礎固めなので、最初に受験する 業務に関連する順序で受験する(PDE以降は人により異なります) 英語のみの試験はできるだけ近い日程で受験する この順序でのメリットは「業務理解が早くなる」ことが挙げられます。 オススメの受験順序 オススメの受験順序としては試験範囲が近いものをまとめて受験することです。ポイントは下記の通りです。 CDL、ACE、PCAは基礎固めなので、最初に受験する PCSE、PCNEは近い日程で受験する PDE、PCDEは近い日程で受験する PCD、PCDOEは近い日程で受験する この順序のメリットは冒頭でも紹介した通り、「勉強時間を最短にできる」ことが挙げられます。 勉強法 私は 試験理解 -> 知識のインプット -> 知識の整理 -> 問題集を解く -> 知識のインプット -> 知識の整理 -> 問題集を解く… という勉強サイクルを実施しました。このサイクルのうち、  知識のインプット -> 知識の整理 -> 問題集を解く を何回も繰り返すことで知識の定着を図りました。勉強サイクルのステップの詳細を説明していきます。 試験理解 試験を受ける前にまず試験の内容について把握しなければなりません。試験の内容については以下の試験ガイドをご参照ください。 Which Google Cloud Certification exam should I take? | Google Cloud Blog Interested in becoming Google Cloud certified? Wondering which Google Cloud certification is right for you? We’ve got yo... cloud.google.com 試験ガイドにて把握すべきものは「出題形式」、「出題内容」、「出題されるサービス」です。特に「出題されるサービス」が大切なので、必ず把握してください。 試験ガイドでも試験について知ることが出来ますが、合格体験記ブログを見ることも試験を知ることにつながります。試験の難易度や雰囲気を知ることができるので、かなりオススメです。 知識のインプット 試験理解 にて把握した「出題されるサービス」をもとに勉強していきます。私は書籍、Udemyの講座、公式ドキュメント、ハンズオンを活用して勉強しました。これらのコンテンツを使用する上でのポイントは以下の通りです。 まずは書籍、Udemyの講座で学習する 書籍、Udemyの講座を見てわからなければ、公式ドキュメント、ハンズオンの順で活用する ハンズオンまで行うことで、よくわからないサービスについて理解を深めることができます。 知識の整理 インプットした 知識の整理 をしています。私はメモ帳、Notionなどのツールを用いて、自分なりに文章を書いて整理していました。頭の中の知識を実際に文字に起こすことで、理解できていない箇所を特定でき、理解を深めることにつながります。私は「サービスの内容」、「使用方法」、「使用する上での注意点」を意識して整理していました。 構成図を確認したり、自分で書いてみることもオススメです。ネットワークの構成やパイプラインなど、図を書いたほうがよい分野もあります。 問題集を解く 私は公式問題集とUdemyの問題集を利用しました。少なくとも5周以上解くようにしていました。(つまり、 知識のインプット -> 知識の整理 -> 問題集を解く というサイクルを5周以上するということです。)復習する際は以下のポイントに注意していました。 間違えた問題は間違えた理由を明確にする 正解しても必ず復習する(偶然正解した可能性があるから) 上記のポイントに注意して、問題集を5周解いたときにはかなりの自信に満ち溢れているはずです。是非試してみてください。 11冠を終えて 11冠できて本当に嬉しい という率直な感想になります 。 昨年9月から11冠したい思いが強かったので、達成感を感じています。これからもこの経験を活かして、さらなるスキルアップを目指していきます。 11冠達成は大変でしたが、大きな恩恵を得ることができたと思っています。11冠達成によって得られた恩恵としては、業務遂行能力の向上があります。以前はGoogle Cloudに関する知識不足から業務遂行に支障をきたすことがありましたが、11冠達成後はほとんどなくなりました。 さらに、実装の幅が広がるという恩恵もありました。資格試験の勉強を通して知識が深まったことで、実装方法を複数思いつくことができるようになりました。 おわりに 今回はGoogle Cloud認定資格を11冠した軌跡をまとめてみました。 11冠達成した今、私としては、11冠達成はあくまでもエンジニアとしての通過点に過ぎないと感じました。 Google Cloud認定資格11冠の達成という貴重な経験を糧に、今後もエンジニアとして成長し続けていきたいと思います。 最後まで読んでいただき、ありがとうございました!!  
アバター
こんにちは。SCSKの島村です。 Google が提供するAIノートブックアプリ「NotebookLM」をご存知でしょうか。 Gemini 1.5 Pro を搭載した更新版の NotebookLM  を日本語を含む言語で 200 以上の国と地域に順次提供開始されました。 詳細はこちら☟☟☟  NotebookLM を日本語でも提供開始。ウェブサイトや Google スライドにもサポート (blog.google) 本記事では、 『NotebookLM』について実際に触ってみたキャプチャと共にその魅力について少しだけご紹介させていただければと思います。 弊社では、Google CloudのAI/MLの技術を生かしたソリューションを提供しております。 2024 年 8 月 1・ 2 日にパシフィコ横浜ノースにて開催される Google Cloud Next Tokyo ’24  につきましても、SCSKとして出展をさせていただきます。    ご興味ございましたら、以下応募ホームよりご登録いただけますと幸いです。よろしくお願いいたします。 ■開催概要 日程: 8 月 1 日(木)、 2 日(金) 会場: パシフィコ横浜ノース 主催: グーグル・クラウド・ジャパン合同会社 申し込み時に是非、『 招待コード : FY24nx_pt030』よりご登録ください。         HOME – Google Cloud Next Tokyo ’24 (cloudonair.withgoogle.com)   NotebookLMとは?? Googleが発表した 「AI を活用したリサーチや執筆する際のアシスタントサービス(NotebookLM)」 公式ドキュメントの説明を覗いてみると以下の記載があります。  NotebookLM とは – ヘルプ (google.com) NotebookLMでできること 複雑な資料を理解して精査し、情報から新しい類似性を見つけ、下書きなどをすばやく作成するのに役立つツール NotebookLM を日本語でも提供開始。ウェブサイトや Google スライドにもサポート (blog.google) 研究論文や取材記録、仕事でのドキュメントなどの参照文献(ソース)をアップロードすると、NotebookLM がそれらの重要な資料を理解し、必要なサポートを提供してくれます。 また、Gemini 1.5 Pro のネイティブなマルチモーダリティにより、スライドやドキュメント内の画像、グラフ、図についても質問できるようになりました。NotebookLM では、関連する場合、裏付けとなる証拠として画像の引用も含まれます。                 ■ 利用可能なソース 『Google ドキュメント、PDF、テキスト ファイルに加えて、Google スライドと Web URL 』をソースとしてサポート ■ 生成機能(NotebookLM でできること) [FAQ] :ソースとしてインポートしたドキュメントに基づいて一問一答形式で、『FAQ』を生成 [Study Guide] :ドキュメント内の重要な単語や用語を整理し、学習の為のガイド(試験問題のサンプル等)を生成 [Table of Contents] :アップロードした各ドキュメントに関するポイントを個々に整理 [Timeline] :日付・スケジュールに関する情報を抜き出し、予定や出来事を時系列で整理 [Briefing Doc] :ドキュメントソース全体をまとめたブリーフィング資料を生成   NotebookLM 利用手順 実際の利用手順について簡単にまとめてみました。 以下、URLより『NotebookLM』へ接続が可能です。画面右上の[Try NotebookLM]よりログインください。 *Googleアカウントでのログインが必要となります。アカウントをお持ちでない方はアカウント作成から実施ください。 NotebookLM | Note Taking & Research Assistant Powered by AI ログインでき、以下の画面になれば利用開始準備はOKです。 『New Notebook』より新しいノートブックを作成できます。 実際に作成し、利用中のノートブックのイメージ   触ってみた①:SCSKホームページからFAQ抽出を行ってみた。 『NotebookLM』で利用できる機能についていくつか試してみたのでご紹介いたします。 ● データのインポートについて [Upload from]として、[Drive / PDF / Text file / Copied text Website]を選択可能です。 今回は、[Website]を選択してみました。 *弊社SCSK株式会社のホームページをソースとして指定してみます。 ● インポートしたソースからのFAQの作成 [*ノートブックガイド]より、[FAQ]を押下することで生成できます。 実際に生成されたFAQがこちら☟ SCSK株式会社に関するよくある質問(FAQ機能より生成) 1. SCSK株式会社はどのような会社ですか? SCSK株式会社は、50年以上にわたり、企業のビジネスに必要なITサービスを提供してきた会社です。8,000社を超えるお客様の課題解決をサポートしてきた実績があります。ITサービスの提供にとどまらず、お客様やパートナー企業と共創し、様々な社会課題の解決を目指しています。 2. SCSK株式会社の強みは何ですか? SCSKは、ITサービスをフルラインアップで提供できることが強みです。お客様のニーズに合わせて、最適なソリューションを提供することができます。また、長年の経験で培われた豊富なノウハウと、最新技術にも精通した技術力も強みです。 3. SCSK株式会社はどのような事業を行っていますか? SCSK株式会社は、DX、モビリティ、金融、ヘルスケア、カスタマーエクスペリエンスなど、幅広い分野で事業を展開しています。お客様のデジタルトランスフォーメーションを支援するサービスや、各業界特有の課題を解決するソリューションを提供しています。 4. SCSK株式会社の注力しているサービスにはどのようなものがありますか? SCSK株式会社は、顧客体験の向上、働き方改革の促進、IT業務のアウトソーシングなどを重点サービスとしています。これらのサービスを通じて、お客様のビジネスの成長と、従業員の働きがい向上を支援しています。 5. ・・・・・・・ 与えたソース(SCSK株式会社のURL)から、適切な情報を収集しているように感じます。 また、FAQとしての分量も適切で、気になるようなハルシネーションも少ないように思います。   触ってみた②:SCSK株式会社に関するクイズを作成してみた。 製造業続し、その場で対象物を撮像し本番ラインを想定した外観検査のデモを実施いたしました。 ● インポートしたソースからのStudy Guideの作成 [*ノートブックガイド]より、[Study Guide]を押下することで生成できます。 質問 解答 SCSKは、どのような事業内容の企業ですか?具体的な事業内容を2つ挙げ、それぞれ1文で説明してください。 SCSKの強みとして、ウェブサイトで強調されているポイントはどのようなものですか?具体的な例を挙げ、1~2文で説明してください。 SCSKが提供するサービスの中で、「CUSTOMER EXPERIENCE」と「WORKSTYLE REFORMS」は、それぞれどのような顧客ニーズに応えるものですか?それぞれ1文で説明してください。 SCSKは、クラウドサービスにおいて、どのような多様性に対応していますか?具体的なサービス名を挙げて説明してください。  ・・・・・ 解答 SCSKは、ITサービスとBPOを軸とした企業です。具体的には、顧客企業のDX推進支援や、クラウドサービスの提供などを手がけています。 SCSKは長年の実績に基づいた高い専門性を強みとしています。例えば、シェアードモデル、パブリッククラウドモデル、データベースに関する専門性と、中堅/大企業の基盤構築を支援してきた豊富な実績を強調しています。 「CUSTOMER EXPERIENCE」は、顧客一人ひとりに最適なサービスを提供することで顧客満足度を高めるニーズに応えます。「WORKSTYLE REFORMS」は、企業の働き方改革を支援し、従業員の生産性向上やワークライフバランスの実現に貢献します。 SCSKは、プライベートクラウドからパブリッククラウドまで、様々なクラウドサービスに対応しています。具体的には、自社開発のプライベートクラウド「USiZE」に加え、AWS、Azure、Google Cloudといったパブリッククラウドサービスも提供しています。  ・・・・・・ クイズとしての難易度は物凄く高い気がしますが、「弊社SCSKについて知る」という点では要点もまとまっており活用の機会がありそうですね。   最後に 今回は Google から日本語対応版としてGAされた『NotebookLM』 についてご紹介させていただきました。 より詳細な機能評価については、追って公開させていただきます。次回のブログをお楽しみください!!!!!! 今後とも、AIMLに関する情報やGoogle CloudのAIMLサービスのアップデート情報を掲載していきたいと思います。 最後まで読んでいただき、ありがとうございました!!!
アバター
みなさんこんにちは、SCSKの高本です。 前回、サンフランシスコで4日間に渡って開催される「Snowflake Data Cloud Summit 24」の初日6/3に開催されたOpening Keynoteに関する速報記事を書きました。(※まだ見てない方は是非ご一読下さい) 【現地速報①】Snowflake Data Cloud Summit 24 Opening Keynoteまとめ 4日間に渡りサンフランシスコで開催されるSnowflakeのフラグシップイベント:Snowflake Data Cloud Summit 24 の「Day1開幕速報」として、現地の最新情報を皆様にいち早くお届けします。 blog.usize-tech.com 2024.06.05 今回はその第2弾として、翌日6/4のAM9:00に開催されたPlatform Keynoteに関する内容を、同じく速報でお届けしたいと思います。 [速報] Platform Keynote K2(Tue, June 04, 09:00 AM PDT) について Snowflake Data Cloud Summit 24では、4日間を通じて、以下の4つのKeynoteセッションが用意されています。 OPENING KEYNOTE – K1 PLATFORM KEYNOTE – K2 ★今回の内容はこちら BUILDERS KEYNOTE – K3 PARTNER SUMMIT KEYNOTE – K4 初日のOpening Keynoteとは違い、6/4に開催されたPlatform Keynote K2では、主にSnowflakeに関する最新のサービスアップデートが中心に取り上げられました。 セッション時間は9:00 AM – 11:15 AM PDTの約1時間15分ほどで、GenAIを組み込んだ数々の機能拡張について知ることができました。今回のKeynoteでは、ユーザ企業の先進事例や最新機能に関するデモンストレーションなども豊富に盛り込まれていたので、非常に充実度の高いセッションになっていました。 [現地写真] Keynote HALL会場の様子 Opening Keynoteと同一のホール会場ですが、前回より良い席に座れたので良かったです。笑 初日のOpening Keynoteとは違い、朝一の開催でしたが、席も見渡す限りはほとんど満席で、初日同様かなりの盛り上がりを見せていました。 ▽ Christian Kleinerman氏( EVP, Product, Snowflake) セッションサマリー Snowflake Data Cloud Summit 24の公式イベントページのセッション概要を引用します。 業界をリードする企業は、AIの革新を通じてビジネスを変革するために、Snowflake AIデータクラウドを活用しています。SnowflakeのCEOであるSridhar Ramaswamy、共同創設者で製品担当のBenoit Dageville、および製品担当のEVPであるChristian Kleinermanが、サイロを解消し、モダンなアプリを開発・配布し、AIを安全にすべての人に提供するためのSnowflakeの統合プラットフォームの最新のイノベーションを発表します。Snowflakeのエンジニアリングと製品チームによるライブデモをご覧いただき、Snowflake AIデータクラウドで業界をどのように形作っているかについて、いくつかの有名なグローバル組織からの話も聞けます。 Snowflake | Snowflake Summit 24 Snowflake | Snowflake Summit 24 reg.summit.snowflake.com セッション詳細メモ 詳細な内容は以下の通りです。(※一部抜粋) 登壇者:Sridhar Ramaswamy, Chief Executive Officer, Snowflake Snowflakeではあらゆるinnovationが可能 EnterpriseAIのbestなプラットフォームとして選択していただきたい 登壇者:Benoit Dageville, Co-Founder & President of Product, Snowflake Snowflake のビジョン すべてのユーザをデータでエンターテイメントする Snowflake のアーキテクチャがなぜベストなのかの説明 収縮性のあるコンピュート(CPU/GPU) エンタープライズ向けに最適化されたインフラストラクチャ Snowflake がEnterprise AIとして適切な理由 「data complete」 Unistore Iceberg Tables 「Compute Complete」 Snowpark コンピュートとストレージがアイソレートだけではなく、コンピュートとコンピュートがアイソレート Snowflakeのコンピュートの設計思想として、はじめからSQL実行エンジンとしてではなく、拡張可能なデータフローエンジンとして構築された Python、Java、Scala、Dataframe Snowpark Contariner Services Snowflake Arctic Snowflake が開発したエンタープライズ級のMLモデル 汎用LLMと比較してもエンタープライズグレードのベンチマークを達成 世界トップクラスの研究者が設計 学習にしろ推論にしろ開発コストを大幅に抑えることが可能 セキュリティ、ガバナンス 歴史として、以前は開発者しかAIを利用してこなかった 開発者に限らず、エンドユーザにSnowflakeを利用させる場合セキュリティやガバナンスを意識する必要あり Snowflake はデータの移動を伴わない クラスタをネットワークレベルで分離 他アカウントはもちろんのこと、同一Snowflakeアカウントであってもコンピュートプールは完全に分離される コラボレーション Native Apps、Marketplaceを利用するとSnowflake上で構築したアプリを安全に共有可能 何が一番楽しみか Snowflake のどの機能が、というよりも、Snowflakeを使ってユーザひとりひとりが何を作りあげるかを見てみたい(Imagination) 登壇者:Christian Kleinerman, EVP, Product, Snowflake Data Cloudの目標 データからより多くの価値を引き出し、AIを活用していく データ基盤強化について 様々なデータタイプが存在 構造化/半構造化/非構造化 非構造化データのサポートを数年前に開始 企業内のほとんどのデータが非構造化データ ドキュメント・画像から価値を引き出すことが目標 Document AI 自然言語を利用し、非構造化データから構造化データを抽出可能 マルチモーダルLLM ガバナンス、信頼性:〇 Snowpipe/COPYがDocument AIと連携可能に 近いうちにGA予定 フレキシビリティについて serverlless tasks flex 通常のserverlless tasksより42%のコスト削減 iceberg tables すべてのクラウドプラットフォームで利用可能に Polaris Catalog Iceberg のオープン REST API を実装 独自のインフラストラクチャでセルフホスト可能 カタログは企業間で共有可能  データガバナンスについて データスチュワード Universal Search LLM を利用した検索で、データやアプリをすばやく発見、利用 Internal Marketplace 自組織に閉じたMarletplaceの利用 プレビュー data classification interface 分類子/カスタム分類子/自動分類の3つをサポート Automatic Tag Propagation 自動的にタグを分散 データをコピーするとタグもコピーされる UIをプレビュー Snowflake Horizon セキュリティ Snowflakeのconfigurationを安全管理 Trust Center Snowflake 上のデータ資産のセキュリティ リスクを継続的に評価および監視 すぐにGA予定 コンプライアンス データの保護と監査、データの品質と系統の監視、ビジネスの継続性の確保 データコンディションを格納し、モニタリング データリネージ テーブルと列レベルでデータ資産の上流と下流の系統を視覚化 プレビュー コストマネジメントインターフェース コストの割り当て、Snowflake からのリコメンデーション 「BUILD faster」 Streamlit developers 開発者の数はのべ300,000+ Snowflakeはインフラストラクチャだけではなくビジネスロジックも含めて使いやすくしていく Snowpark Container Serivce コンテナ実行基盤としてGPUをサポート GA アプリケーションをどのようにデリバリしていくか 次世代のデータ共有方法として、Native Appsで作成したデータプロダクトをマーケットプレイスで共有 Snowflake Native apps with Snowpark Container Serivce プレビュー DevOpsについて Git intergration データベースチェンジマネジメント 外部Gitリポジトリと連携しDDL等のソースコード変更管理可能 プレビュー Snowflake CLI Streamlit in Snowflake、Snowflake Native App Framework、Snowpark Container Services、Snowpark などSnowflake 上で実行されるアプリをCLIで作成、管理、更新、表示可能 GA Snowflake Trail Snowflake上のオペレーションのモニタリング メトリクス、ログデータ、パフォーマンスデータの情報収集 その他パートナーとのインテグレーション Datadog etc… Snowflake Notebooks Snowflake上でNotebookを利用可能 Git連携可能 プレビュー Snowflake Copilot SnowsightのSQLワークシートに加え、Notebook上での開発もCoplitとのインタラクションでエクスペリエンスを改善 プレビュー Snowflake Feature Store 自動でガバナンスやパイプラインを可視化し、機能の使用と管理を効率化 Snowflake Model Registry Snowflake またはその他のプラットフォームでトレーニングされたモデルを管理 Snowflake Cortex AI Cortex は3つのレイヤーを提供 Studio 組み込みのノーコード開発インターフェース CHAT 自然言語を使用してデータと対話 MODELS サーバーレス関数を使用して、Snowflake Arctic、Meta Llama 3、Mistral Large などのトップレベルの大規模言語モデル (LLM) にアクセス Cortex Fine-Tuning LLMをカスタマイズすることでインダストリー固有のナレッジを活用可能 パブリックプレビュー Cortex Analyst 自然言語で質問するだけで構造化データにアクセス可能となり、必要なデータの洞察を得ることが可能 テクニカルではないビジネスユーザも利用可能 Cortex Search 誰でも簡単にチャットボットを生成可能 デモ:観客の誰かに試してもらう ペルソナ:Snowflakeに数回しかログインしたことない お題:Cortex Search Serviceを構築してもらう 近日中にパブリックプレビュー まとめ The Era of Enterprise AI AI for Everyone Snowflakeを利用することでより多くのユーザにデータからインサイトや価値を引き出していただきたい おまけ Snowsightにて「DARK MODE」がリリース(ダークカラーUI) 最後に(おまけ) Keynoteの最後の最後に、Snowsightでダークモードが選択できるようになったとの発表があったので、早速試してみました。 いい感じですね。個人的には今日からこっちかもしれないです…(笑) 今後もSnowflakeに関する耳寄りな情報を皆様にいち早くお届けできたらと思っています。 最後まで読んでいただき、ありがとうございました!!!
アバター
こんにちは、SCSKの大石です。 2024年5月15日~17日に東京ビックサイトで自治体総合フェア 2024 が開催されました。 3日間開催されたうち、15日にSCSKもZabbix Japanと共同で出展しましたので、出展感想や展示内容等をご紹介いたします。 イベント概要 自治体総合フェアは、自治体経営の革新を推進するとともに、地域住民が真に豊かさを実感できる魅力ある地域社会の実現を図ることを目的とする展示会です。IT関連の展示だけではなく、庁内マネジメント、地域振興、住民窓口関連等、自治体に関係する事業を展開している100社前後の企業・団体が出展参加しております。 Zabbixブースでは情報化推進の分野として、ガバメントクラウドを利用する際の統合監視や、自治体向けのZabbix環境の構築事例について紹介させていただきました。   Zabbixブース出展内容 SCSKの展示では官公庁向けのZabbixServerの構築例を紹介しました。 物理サーバやVMwareを利用した仮想環境、ネットワーク機器の監視をするための、ZabbixアプライアンスやサーバへのZabbixServer導入、冗長構成構築事例のご紹介等をさせていただきました。 また、Zabbixブース内でガバメントクラウドと既存システムの運用監視を紹介をしていました。 ガバメントクラウドとは政府共通のクラウドサービスの利用環境の事で、クラウドサービスの利点を最大限に活用することで、迅速、柔軟、かつセキュアでコスト効率の高いシステムを構築可能とし、各自治体の業務システムをクラウド上で共通化して管理・運用できる環境の事です。 ここではZabbixを利用してクラウド+オンプレ、マルチクラウド監視等、複数環境を統合して監視する仕組みについて紹介をしており、環境ごとに監視システムが分かれている方は興味を持っていただけていました。   感想 ご来場されている方のZabbixの認知はあまり多くは無かったですが、紹介させていただいたところ、興味を持っていただけました。特にZabbixが商用製品以上の機能が実装されている、多様な環境へのモニタリングができるのに無料で利用できるところは、Zabbixの大きなメリットであると感じていただけました。 6月にはInterop Tokyo 2024にも出展いたします。来場予定の方はぜひZabbixブースにお立ち寄りください!! Interop Tokyo 2024 イベント案内 [SCSK] Interop Tokyo 2024 の Zabbix ブースに出展します! SCSK株式会社は、6月12日(水)~6月14日(金)に開催される Interop Tokyo 2024 の Zabbix ブースに出展します。 blog.usize-tech.com 2024.05.24 SCSK Plus サポート for Zabbix SCSK Plus サポート for Zabbix 世界で最も人気のあるオープンソース統合監視ツール「Zabbix」の導入構築から運用保守までSCSKが強力にサポートします www.scsk.jp ★YouTubeに、SCSK Zabbixチャンネルを開設しました!★ SCSK Zabbixチャンネル 本チャンネルでは、SCSK株式会社でのZabbixに関するトレンド/事例紹介などを動画にまとめて取り上げております。 最新のトピックについては、以下の弊社HPもしくはツイッターアカウントをぜひ参照ください。 ツイッターアカウント: www.youtube.com ★Twitterに、SCSK Zabbixアカウントを開設しました!★ 【公式】SCSK Zabbix (@SCSK_Zabbix) / Twitter SCSKが提供するZabbixサービスのオフィシャルアカウントです。 #Zabbix #SCSKPlusサポートforZabbix #監視 #SCSK twitter.com  
アバター
Egress IP を固定する目的 Cato クラウド経由でインターネットにアクセスする際、そのアクセス元IPアドレス (Egress IP) は不定であり、PoP ごとに用意されたIPアドレス範囲の中のものが利用されます。Cato クラウドで利用されるIPアドレス範囲は Production PoP Guide のページで公表されており、PoP のロケーションごとにどのIPアドレス範囲が利用されるか細かく記載されています。 一般的なインターネットアクセスにおいては Egress IP が不定であっても困ることはほとんどありません。しかし、アクセス先のサービスやサーバでアクセス元IPアドレス制限を行おうとすると、次のような課題が出てきます。 Cato クラウドで利用されるIPアドレス範囲は不定期に追加・変更されるため、その対応が必要となる 共有のIPアドレス範囲での許可設定は、アクセス先のサービスによっては受け入れてもらえない Cato クラウドのユーザは世界中で増加していますので、その増加に対応するために Cato クラウドのIPアドレスは不定期に追加・変更されており、日本の東京や大阪にある PoP のIPアドレスも年に何度か追加されています。新しくIPアドレスが追加されるとIPアドレス制限に引っ掛かってアクセスできないという問題が発生してしまいますので、Cato クラウドのアップデート情報を随時ウォッチし、IPアドレスの追加・変更のアナウンスがあればIPアドレス制限の設定も変更するといった運用上の対応が必要となってきます。これが1つ目の課題です。 また、2つ目の課題のように、アクセス先のサービスによっては Cato クラウドで用意されたIPアドレス範囲を指定した許可設定を受け入れてもらえないということもあります。特に、サービス事業者がマルチテナントの SaaS を提供し、かつIPアドレス制限をネットワークレベルで実現している場合、Cato クラウドのIPアドレス範囲は複数の利用者で共有利用されるものであるため、その範囲を許可するとサービス事業者の顧客以外からのアクセスも許可することになってしまいます。そのため、そのような許可設定を認めてもらえない可能性があります。 こういった課題を解決するために、Egress IP を固定する機能が用意されています。Egress IP を固定にする目的は 「アクセス元のIPアドレス制限を行っているインターネット上のサービスにアクセスできるようにする」 ということに尽きます。 Egress IP を固定にする方法は以前のブログ記事でも解説しており、CMA 上で比較的簡単に設定できます。 CatoクラウドにおけるEgress IP(送信元IP、出口IP)について CatoクラウドにおけるEgress IPについて解説します。 blog.usize-tech.com 2023.08.22 Egress IP を固定することで生じる課題 Egress IP を固定にすることで新たな課題も生じてきます。その中でも実際によく発生しうる課題を2つ挙げてみます。 通信が遅くなることがある Egress IP を固定するには IP Allocation 機能を用いて自組織専有のIPアドレスを確保する必要がありますが、このIPアドレスは必ず特定の PoP に紐づけられます。そのため、 Egress IP を固定した通信は、そのIPアドレスが紐づけられた PoP からインターネットにアクセスする ことになり、その結果として通信が遅くなってしまうことがあります。 例として、ここでは東京にある PoP でIPアドレスを確保したとします。西日本に位置する拠点やリモートアクセスユーザはおそらく大阪にある PoP に接続されているかと思いますが、拠点やユーザの通信は大阪の PoP に送信されたあと、Cato クラウドのバックボーンネットワークを通じて東京の PoP に転送され、インターネット上の Web サービスに向けて送信されていきます。インターネットからの戻りの通信は、まず東京の PoP に戻ってきて、そこから大阪の PoP に転送された後、拠点やユーザの場所に戻っていくことになります。 これにより、インターネット上のサービスまでの物理的・論理的な距離が長くなって通信が遅くなってしまうことがあります。東京と大阪の間の通信は高速なので多少遅くなっても気付かないかもしれませんが、これが日本と海外との間で行われると通信の遅さが顕著に表れてきます。 例えば、アメリカに出張した社員がアメリカの Web サービスにアクセスするケースを考えてみます。社員の PC はアメリカのいずれかの PoP に接続されているはずです。Egress IP を固定しない場合、社員の PC が接続されたアメリカの PoP から Web サービスにアクセスし、アメリカ国内に閉じた通信なので比較的高速に行えます。一方、東京の PoP で確保したIPアドレスで Egress IP を固定した場合、通信は Cato クラウドのバックボーンネットワークでアメリカから東京に送られた後、またインターネットで東京からアメリカに送られることになり、通信ごとに日米間を2往復するため体感的にも非常に遅く感じることになります。 海外にオフィスを構えているお客様や、頻繁に海外出張を行う社員がいるお客様の場合、海外のその地域にある PoP でもIPアドレスを確保して利用することを推奨します。複数のIPアドレスを利用するようにしていると、拠点やユーザが接続された PoP に最も近い PoP にあるIPアドレスが Egress IP として利用されますので、通信が遅くなる課題を緩和できます。 PoP 障害時にインターネットにアクセスできなくなる Egress IP を固定していしていると、Cato クラウドの PoP で障害が発生したときに問題が生じることもあります。 PoP で障害が発生すると、その PoP に接続されていた Socket や Cato Client は別の正常な PoP に自動で再接続してくれますので、基本的には Cato クラウドが利用できなくなってしまうということはありません。しかし、Egress IP を固定にするためのIPアドレスは PoP に紐づくものであるため、その PoP で障害が発生すると単に Egress IP を固定にできなくなるというだけでなく、そのIPアドレスを利用するように設定したインターネットアクセスそのものが行えなくなってしまいます。もちろん、Egress IP を固定にしていなければ、障害が発生していない PoP 経由でインターネットにアクセスできます。 この課題は、複数の異なる地域にある PoP でIPアドレスを確保し、複数のIPアドレスで Egress IP を固定にすることでほぼ解決できます。複数の PoP で同時に障害が発生する可能性は低く、単一の PoP で障害が発生したとしても正常に動作している PoP にあるIPアドレスが利用されてインターネットにアクセスできるようになります。 日本国内のお客様の場合、東京と大阪の両方の PoP でIPアドレスを確保して用いるようにしておけば、大規模な障害への備えにもなるかと思います。 Egress IP 固定のあるべき設定 前述の課題をまとめると、Egress IP を固定にする場合は次の2つを意識して設定することを推奨します。 複数の異なる地域にある PoP でIPアドレスを確保して利用する 海外からも頻繁に利用する場合、その地域にある PoP でもIPアドレスを確保して利用する ただし、そもそも前述の課題は Egress IP を固定した場合に発生するものであり、固定していない場合は基本的には発生しません。(正確には、Egress IP を固定していなくてもインターネットに出ていく際の PoP を固定している場合にも発生しますが、これは本記事の趣旨とズレるため説明を割愛します。) Egress IP を固定にする目的は初めに述べたように「アクセス元のIPアドレス制限を行っているインターネット上のサービスにアクセスできるようにする」ことです。IPアドレス制限が行われていないサービスやサイトへのアクセスでは Egress IP を固定にする必要がなく、固定しなければ通信が遅くなったり障害によって利用できなくなったりする課題に巻き込まれることなく、安心して Cato クラウドを利用できます。そのため、 [Network Rule] の設定にて対象のアプリケーションやカテゴリを Any にせず、アクセス先のアプリケーションやFQDNなどを必要な分だけ指定する ということも強く推奨します。 少し違った見方をすると、本来 Egress IP を固定にする必要がない通信も固定にしていると、その分だけ無駄な通信が生まれてエネルギー資源を消費してしまうという考え方もできます。また、Cato クラウドとしても、バックボーンネットワークを流れるトラフィックが増加するとそれに対応するためにネットワークを増強する必要があり、その結果として利用料金の上昇に繋がる可能性もあります。そういった観点からも、必要な通信だけ Egress IP を固定にするようにしたほうが良いですね。
アバター
みなさんこんにちは(日本だとこんばんは?)、SCSKの高本です。 Snowflake の待望のフラグシップイベントであるSnowflake Data Cloud Summit 24が Moscone Center, San Francisco にて開幕しました!! 現地時間6月3日(月)-6日(木) の4日間にわたり 基調講演や、先進事例セッション、テーマ別のブレイクアウトセッションなどなど、 注目のサービスアップデートや最新の技術動向、Genarative AIからセキュリティ、自動化に至るまで, Snowflake のあらゆることに関するセッション が用意されております。 本記事では、4日間に及ぶSnowflake Data Cloud Summit 24 の「 Day1 開幕速報 」として、現地の最新情報を皆様にいち早く共有できればと思います。 [ 速報] Opening Keynote K1(Mon, June 03, 05:00 PM PDT) 概要 現地時間6月3日PM 5:00~PM 6:15にかけて、目玉となるOpening Keynoteセッションが行われました。 現地速報として、セッションや会場の周辺の様子や雰囲気をいち早くお伝えしたいと思います。 *その他Keynoteセッションの様子の詳細については、後日追って共有したいと思います。 [ 現地写真] Keynote HALL会場の様子 約30分前からホール会場に入場開始可能となっており、入場開始とともに一気にオーディエンスが押し寄せ、何個あるか数えきれない席がすぐに埋め尽くされるほどでした。 入場開始から会場全体がSnowflakeカラーであるブルーの照明とノリノリの音楽で包まれ、始まるまでの時間もワクワクした気分で過ごすことができました。セッションスタートのカウントダウンと同時に歓声が沸き起こるなど、会場は大盛り上がりでした!! セッションサマリー Snowflake CEOであるRAMASWAMY氏によるオープニングトークから始まり、NVIDIA CEOのHUANG氏との対談、JPモルガン・チェース、エリクソン、NYCヘルス+ホスピタルズ、Booking.comの各社とのパネルディスカッションなど盛りだくさんのコンテンツでした。 オープニングトーク: SRIDHAR RAMASWAMY(Chief Executive Officer, Snowflake) RAMASWAMY氏は、歓迎の言葉とともに、このData Cloud Summit 24が世界中からのAIとデータ専門家の集まりであることについて言及。 Snowflakeのデータクラウドプラットフォームが過去10年間で急成長している点について強調。 毎日何千もの顧客がデータを共有し、毎日50億件のクエリに対応していることを言及。 RAMASWAMY氏は、データとビジネスをSnowflakeに託してくれた顧客に感謝の意を表示。 AIデータクラウドが企業のあらゆる場所に光を当てているが、これはまだ始まったばかりであると強調。 RAMASWAMY氏は、新たに「Polaris Catalog」を発表。 組織内の誰もが流動的で自然な言語でデータと対話できるようになったと言及。 Snowflakeは「エンタープライズAIの時代(The era of Enterprise AI)」を切り開いていると強調。 今後10年間で、過去20年、30年で成し遂げられたことをはるかに上回るほどのイノベーションが生まれるだろうと言及。 ただ一方、Snowflake社だけではこれを成し遂げることはできず、Snowflake Village全体の協力が必要であり、そのために幾社とのパートナーシップを結んでいることを強調。 RAMASWAMY氏は「我々がこのAIの旅を前進させる上で、NVIDIAのようなパートナーがいるのは素晴らしいことだ」と述べ、われわれはエンタープライズAIの時代にいることを改めて強調。   対談: SRIDHAR RAMASWAMY(Chief Executive Officer, Snowflake) JENSEN HUANG(Founder and CEO, NVIDIA) 両社はAIを理想の理論から現実へと移行させていると強調。 両社の提携発表により、顧客とパートナーはNVIDIA AIを活用したSnowflakeでカスタマイズされたAIデータアプリケーションを構築できるようになると言及。 「初めて、HPCと高速化されたGenAIコンピューティングをデータに持っていく」とJENSEN氏は言及。 強化されたNVIDIA × Snowflakeコラボレーションについて、「NeMo Retrieverはセマンティッククエリライブラリであり、データの埋め込みを行う。企業にとって最も重要な資産はそのプライオリティデータだが、それはSnowflake上に存在する」とJENSEN氏は言及。 両CEOによれば、この先には多くの潜在力、可能性、そして機会が広がっていると強調。   パネルディスカッション: DENISE PERSSON(Chief Marketing Officer, Snowflake) THOMAS DAVEY(Chief Data Officer, Booking.com) CAITLIN HALFERTY(Chief Global Data Officer, Ericsson) ANU JAIN(Head of Data and Technology, JPMC) SHAHRAN HAIDER(Deputy Chief Data Officer, NYC Health + Hospitals) DENISE PERSSON(Snowflake)によるパネリストの紹介:JPモルガン・チェースのANU JAIN、エリクソンのCAITLIN HALFERTY、NYCヘルス+ホスピタルズのSHAHRAN HAIDER、Booking.comのTHOMAS DAVEY HALFERTY氏(Ericsson)は、CDOが持つべき重要な特性は好奇心を持ち、継続的な学習を受け入れることだと強調。 HAIDER氏(NYC Health + Hospitals)は、組織のデータ要求すべてに対応することは不可能であり、ビジネスの優先事項に忠実であり続けることが重要だと強調。 DAVEY氏(Booking.com)は、Booking.comがML、AI、そして今ではGenAIを多用していると述べ、新しいGenAI機能はそのツールボックス内のもう1つのツールにすぎないと考えていると言及。 JAIN氏(JPMC)は、JPモルガン・チェースのこれまでのAI活用は主にコスト削減に重点を置いていたが、収益創出へと移行しつつあると言及。   おまけ:現地会場(Moscone Center)の様子 今回のSnowflake Data Cloud Summit 24は、サンフランシスコの『Moscone Center』にて開催されました。 サンフランシスコと日本との時差は約16時間ほどで、日本と比較するとかなり肌寒いです。現地の人は半袖の人も見かけますが、日中でも長袖の上着が欲しいところです。 一方、海が近く風が強いのにもかかわらず、空気はどこもカラッと澄んでいて気持ちがよく、とても過ごしやすいです。 ▽Moscone Center外観 ▽Moscone Center付近の街の景観 ▽会場内のグッズ売店 ▽会場内の雰囲気   会場MAP   最後に 今回はSnowflakeのフラグシップイベントである Snowflake Data Cloud Summit 24について、現地の実際の模様を速報ベースでお届けしました。 会場の中にいると、まさにSnowflakeがデータ利活用、AI/MLのトレンドの渦の中心にあるサービスなんだなと、改めて肌で感じることができました。 今後もSnowflakeに関する耳寄りな情報を皆様にいち早くお届けできたらと思っています。 最後まで読んでいただき、ありがとうございました!!!
アバター
今回はPrisma Cloud APIの解説をしていこうと思います。 その後、実際にPrisma CloudのAPIとPythonを用いてPrisma Cloudで検知した1か月分のアラート件数を取得するプログラムを作成します。 Prisma Cloud APIとは Prisma Cloud APIはプログラムを介してPrisma Cloudの機能にアクセスできるインターフェースです。APIを使用することで、Webコンソールで行っている操作をプログラムで実行することが可能になります。 Prisma CloudではAPIを実行するときにAPIキーを必要とします。まずはそのAPIキーを取得するために事前準備を行い、ログインAPIでAPIキーを取得してから、APIを実行する流れとなります。 事前準備 事前準備として以下のものが必要になります。 ・Prisma CloudのACCESS_KEY ・Prisma CloudのSECRET_KEY ・Prisma CloudのAPI URL API URLはドキュメントを参照: Cloud Security API | Develop with Palo Alto Networks (pan.dev) アクセスキーの発行方法 Prisma CloudのACCESS_KEYとSECRET_KEYを発行していない場合発行する必要があります。 Prisma Cloudコンソールに行き、右上の「Settings」> 左ペイン「Access Control」> 右上の「Add」> 「Access Key」を押下します。 押下後「Name」と「Enable Expiration」の設定値が求められますが、任意で入力してください。 ※Enable Expirationはアクセスキーの有効期限を決めるかの設定値になります。オフであれば有効期限はありません。 作成後以下の画像のようにAccess Key IDとSecret Access Keyがでてくるので必ず保存してください。 ※「Download.csv file」を押下するとAccess Key IDとSecret Access Keyの入ったファイルが保存されます。 ログイン処理 ここからはログイン処理のコードを書いていきます。 まず必要なライブラリをインポートします。 import requests from time import sleep import json リクエストするための情報を書いていきます。 url変数には事前準備で準備したURLを入力し、末尾にはAPIの/loginを入れてください。 usernameには事前準備で用意したACCESS_KEY passwordには事前準備で用意したSECRET_KEYを入力します。 wasResponseErrorはレスポンスのステータスコードが200以外の時に再リクエストするための変数です。 変数のpayload, headersには以下のドキュメントを参考に作成しました。 Login APIドキュメント: Login | Develop with Palo Alto Networks (pan.dev) url = "https://api.anz.prismacloud.io/login" username = "ACCESS_KEYを入れる"  password = "SECRET_KEYを入れる" wasResponseError = False payload = '{\"username\":\"' + username + \     '\",\"password\":\"' + password + '\"}' headers = {     "Accept": "application/json; charset=UTF-8",     "Content-Type": "application/json; charset=UTF-8" } Prisma Cloudにリクエストを送信していきます。 最初にresponse変数を作成してその変数の中身にリクエストするコードを書いていきます。 リクエストの中身にはPOST、先ほど変数で定義したurl、data=には変数で定義したpayload、headers=には同じく定義したheadersを入れます。 while True:     response = requests.request(         "POST", url, data=payload, headers=headers) 次に ステータスコードが200の場合にレスポンスからtokenだけを取り出す処理を書きます。このtokenがAPIキーとなります。 この時ステータスコードが200であれば wasResponseErrorをFalseにしてwhileを終わらせます。                             ステータスコードが200ではない場合(elseの場合)ステータスコードを表示して、過去にレスポンスのステータスコード200以外が返却されたことがあれば、プログラムを終了し、ステータスコード200以外が返却されるのが初めてであれば一定時間経過後、再度リクエストします if response.status_code == 200:         token = json.loads(response.text)['token']         wasResponseError = False         break     else:        print(f"You couldn't be authenticated [status_code:{response.status_code}]")         if wasResponseError:             exit()         else:             sleep(32)             wasResponseError = True ステータスコード200のレスポンスは以下の感じで返ってきます。 {     "message": "login_successful",     "token": "TokenID",     "customerNames": [         {             "customerName": "SCSK",             "prismaId": "12345678910",             "tosAccepted": true         }     ] } ログイン処理の全体コードが以下になります。 import requests from time import sleep import json url = "https://api.anz.prismacloud.io/login" username = "ACCESS_KEYを入れる"  password = "SECRET_KEYを入れる" wasResponseError = False payload = '{\"username\":\"' + username + \     '\",\"password\":\"' + password + '\"}' headers = {     "Accept": "application/json; charset=UTF-8",     "Content-Type": "application/json; charset=UTF-8" } while True:     response = requests.request(         "POST", url, data=payload, headers=headers)     if response.status_code == 200:         token = json.loads(response.text)['token']         wasResponseError = False         break     else:         print(f"You couldn't be authenticated [status_code:{response.status_code}]")         if wasResponseError:             exit()         else:             sleep(32)             wasResponseError = True アラート件数の取得 ログイン処理を作成したので次はアラート件数を取得していきます。 querystring辞書のdetailedキーの値はFalseにしておきます。 payloadはドキュメントを参照し、作成しました。 timeRange内のstartTimeとendTimeは4/1 ~ 4/31までのミリ秒のUnix時間になっています。 headersはx-redlock-authを追加し、そこにログイン処理で変数を作成したtokenを格納します。 Alert APIドキュメント: List Alerts V2 – POST | Develop with Palo Alto Networks (pan.dev) wasResponseError = False alert_url = "https://api.anz.prismacloud.io/v2/alert" querystring = {"detailed": False} payload = {     "detailed": False,     "fields": [],     "limit": 5000,     "offset": 0,     "pageToken": "",     "sortBy": ["alertTime:asc"],     "timeRange": {         "type": "absolute",         "value": {             "startTime": 1711897200000,             "endTime": 1714575599000                         }     } } headers = {     "content-type": "application/json; charset=UTF-8",     "x-redlock-auth": token } リクエスト処理です。 ここはログイン処理と同様になっています。 変わっているところとすれば、requestメソッドにjson、params引数が追加されたことです。 while True:     response = requests.request(         "POST", alert_url, json=payload, headers=headers, params=querystring)     if response.status_code == 200:         alertdata = json.loads(response.text)         wasResponseError = False         break     else:         print(f"Bad Request(/v2/alert)[status_code:{response.status_code}]")         if wasResponseError:             exit()         else:             sleep(32)             wasResponseError = True 取得したアラート一覧からアラートIDのみを抽出する処理です。 アラートIDを抽出して、リストに格納し、アラート件数を表示します。 alert_ids = [item['id'] for item in alertdata['items']] print(f"4/1 ~ 4/31までのアラート数は{len(alert_ids)} です。") 全体のコードです。 wasResponseError = False alert_url = "https://api.anz.prismacloud.io/v2/alert" querystring = {"detailed": False} payload = {     "detailed": False,     "fields": [],     "limit": 5000,     "offset": 0,     "pageToken": "",     "sortBy": ["alertTime:asc"],     "timeRange": {         "type": "absolute",         "value": {             "startTime": 1711897200000,             "endTime": 1714575599000                         }     } } headers = {     "content-type": "application/json; charset=UTF-8",     "x-redlock-auth": token } while True:     response = requests.request(         "POST", alert_url, json=payload, headers=headers, params=querystring)     if response.status_code == 200:         alertdata = json.loads(response.text)         wasResponseError = False         break     else:         print(f"Bad Request(/v2/alert)[status_code:{response.status_code}]")         if wasResponseError:             exit()         else:             sleep(32)             wasResponseError = True alert_ids = [item['id'] for item in alertdata['items']] print(f"4/1 ~ 4/31までのアラート数は{len(alert_ids)} です。") レスポンス時の中身です。 ※一部を切り取っていますので詳細はドキュメントを参照してください。 "items": [         {             "id": "P-12345",             "status": "resolved",             "reason": "RESOURCE_DELETED",             "firstSeen": 1711898107130,             "lastSeen": 1712157098580,             "alertTime": 1711898107130,             "lastUpdated": 1712157098580,             "policyId": "abcdef-12ab-1234-abcdef-123abcdef",             "saveSearchId": "ab12345n-123f-1234-abcd-abbbcs",             "metadata": {                 "saveSearchId": "abcdefg-123456-abcd"             },     ] プログラム全体 今回書いたプログラムの全体になります。 import requests from time import sleep import json # ログイン処理 url = "https://api.anz.prismacloud.io/login" username = "ACCESS_KEY" password = "SECRET_KEY" wasResponseError = False payload = '{\"username\":\"' + username + \     '\",\"password\":\"' + password + '\"}' headers = {     "Accept": "application/json; charset=UTF-8",     "Content-Type": "application/json; charset=UTF-8" } while True:      response = requests.request(          "POST", url, data=payload, headers=headers)      if response.status_code == 200:          token = json.loads(response.text)['token']          wasResponseError = False          break      else:          print(f"You couldn't be authenticated [status_code:{response.status_code}]")          if wasResponseError:             exit()          else:             sleep(32)             wasResponseError = True # アラート取得 wasResponseError = False alert_url = "https://api.anz.prismacloud.io/v2/alert" querystring = {"detailed": False} payload = {     "detailed": False,     "fields": [],     "limit": 5000,     "offset": 0,     "pageToken": "",     "sortBy": ["alertTime:asc"],     "timeRange": {         "type": "absolute",         "value": {             "startTime": 1711897200000,             "endTime": 1714575599000                         }     } } headers = {     "content-type": "application/json; charset=UTF-8",     "x-redlock-auth": token } while True:     response = requests.request(         "POST", alert_url, json=payload, headers=headers, params=querystring)     if response.status_code == 200:         alertdata = json.loads(response.text)         wasResponseError = False         break     else:         print(f"Bad Request(/v2/alert)[status_code:{response.status_code}]")         if wasResponseError:             exit()         else:             sleep(32)             wasResponseError = True alert_ids = [item['id'] for item in alertdata['items']] print(f"4/1 ~ 4/31までのアラート数は{len(alert_ids)} です。") 実行結果 以下画像が実行結果です。 おわりに 当社では、複数クラウド環境の設定状況を自動でチェックし、設定ミスやコンプライアンス違反、異常行動などのリスクを診断するCSPMソリューションを販売しております。 マルチクラウド設定診断サービス with CSPM| SCSK株式会社 ご興味のある方は是非、お気軽にお問い合わせください。
アバター
Prisma Cloudは、クラウド環境のセキュリティとコンプライアンスを一元管理するツールで、リアルタイムの脅威検出やリソースのチェックが可能です。 今回は、実際にAWS環境をPrisma Cloudに接続して、アラート内容を確認してみました。 Prisma Cloud から AWS に接続 11ステップあります。 ①Prisma Cloudに管理者権限でログインし、設定を押下します。 [作業場所:Prisma Cloudコンソール] ②左のメニューから「プロバイダ」を選択し、右上の「プロバイダーに接続する」から「クラウドアカウント」を押下します。 [作業場所:Prisma Cloudコンソール] ③接続するプロバイダを選択してください。今回の場合はAmazon Web Servicesです。 [作業場所:Prisma Cloudコンソール] ④今回はAWSアカウント単体を接続するため「アカウント」選択し、その他は項目を必要があればチェックしてください。今回は「CSPM」機能のみを利用するため、個別のチェックは外しています。「Next」を押下します。 [作業場所:Prisma Cloudコンソール] ⑤「アカウントID」に接続するクラウド環境のアカウントIDとアカウント名に任意の名前を入力します。「IAMロールの作成」を押下するとAWSコンソールに遷移しIAMロールの作成に作業に移ります。 [作業場所:Prisma Cloudコンソール] ⑥AWSマネジメントコンソールにログインするとCloudFormationのスタック作成画面に遷移するので「スタック名」を記入します。今回はデフォルトの”PrismaCloudApp”を使用しています。下部の青いボックスの「AWS~承認します」にチェックを入れます。 「スタックの作成」を押下します。 [作業場所:AWSマネジメントコンソール] ⑦スタックの作成が完了したことを確認します。 [作業場所:AWSマネジメントコンソール] ⑧出力を押下し、PrismaCloudAppARNをコピーします。 [作業場所:AWSマネジメントコンソール] ⑨Prisma Cloudコンソールに戻り「IAMロールARN」にコピーしたARNをペーストし、「Next」を押します。 [作業場所:Prisma Cloudコンソール] ⑩ステータス画面にて全ての項目で「成功」となっていることを確認して、「保存して閉じる」を押下します。 [作業場所:Prisma Cloudコンソール]   ⑪アカウントが追加されていることを確認して接続作業完了です。 [作業場所:Prisma Cloudコンソール] PrismaClodでアラートの確認をしてみる Prisma Cloud上のアラートから、検知されたアラートを見ることができます。 *以下手順の作業場所はすべてPrisma Cloudコンソールとなっています。 画面上部の「アラート」を選択すると、アラートを検知したポリシーの一覧が出ます、展開するとそのポリシーで検知したアラートが表示されます。   アラート一覧のアセット名をクリックするとアセットの概要が表示されます。また、結果のタイプから、アセットに関連付けられた様々な脅威またはセキュリティの問題が確認できます。 アラート一覧のアラートIDを押下するとアラートの対処手順が表示できます。設定の妥当性の評価と修正が必要な場合はこの対処手順に従って対処いただけます。 まとめ 今回はPrisma CloudにAWS環境を実際に接続してみて、環境のチェックしてみました。 接続作業をした感想としては、ガイドもありわかりやすく、簡単に接続できました。作業自体もだいたい10~15分ほどだったと思います。 Prisma Cloudコンソールでの調査も直感的でわかりやすいと感じました。 この記事でPrisma Cloudの導入イメージや使用感などが少しでも伝われば嬉しいです。 Prisma Cloudにはアラートの可視化など他にもクラウド環境設定のセキュリティチェックに便利な機能がありますので、他の記事でまたご紹介できればと思っています。   また、当社では、複数クラウド環境の設定状況を自動でチェックし、設定ミスやコンプライアンス違反、異常行動などのリスクを診断するCSPMソリューションを販売しております。ご興味のある方はお気軽にお問い合わせください。リンクはこちら↓ マルチクラウド設定診断サービス with CSPM| SCSK株式会社 マルチクラウド環境のセキュリティ設定リスクを手軽に確認可能なスポット診断サービスです。独自の診断レポートが、運用上の設定ミスや設計不備、クラウド環境の仕様変更などで発生し得る問題を可視化し、セキュリティインシデントの早期発見に役立ちます。 www.scsk.jp
アバター
こんにちは。SCSKの上田です。 今年も、延べ12万人が来場する国内最大級のICTイベント「 Interop Tokyo 2024 」が、 6月12日(水)~6月14日(金) の3日間、 幕張メッセ で開催されます。Interop Tokyoはインターネットテクノロジーのイベントで、毎年国内外から数百の企業・団体が参加し技術動向とビジネス活用のトレンドをいち早く体感できる場です。 SCSK は Zabbixプレミアムパートナー として、 Zabbixブース(ブース番号:6F04)に出展します!! ↓↓↓ご来場を希望される方は、以下のリンクから来場者登録をよろしくお願いします!↓↓↓ 詳しくはこちら > SCSK の出展内容 SCSK は、 Zabbixブース内(ブース番号:6F04) で 弊社のサービスや導入事例の紹介 します。 オープンソースの監視ツールであるZabbixに興味のある方は、ぜひご来場ください! また、同ブース内で ショートセミナー も開催します。 タイトル:【Zabbixに乗り換え検討されてる方必見】Zabbixへの移行とAIによる効率化で運用の安定を! 登壇日時:①6月12日(水)15:10~15:25      ②6月13日(木)17:15~17:30      ③6月14日(金)11:25~11:40 発表内容:既存監視ツールからZabbixへの移行、AIを使った運用効率化 本記事執筆者の上田も②の枠で登壇致します! 各セッションの内容は同じですので、ご都合のつく回にぜひお越しください! ShowNetへの参加 Interop Tokyoの同時開催イベントとして「 ShowNet 」があります。ShowNetは、Interop会場内で実際にネットワークを構築し、運用するイベントです。 出展社から提供された約2000の製品・サービス と、 約700名ものトップエンジニア達 が幕張メッセに集結して行われる巨大プロジェクトです。これは、幕張メッセ全体をインターネットに接続した実稼働ネットワークであり、各種相互接続の実証やチャレンジが行われます。 ZabbixもShowNet内での製品状態監視に導入 され、 SCSK はZabbix構築サポート として プロジェクトに参加します! Interopにご来場された際は、是非ShowNetにもお越しください。 それでは、 当日はZabbixブースへのご来場を心よりお待ちしております!   ★YouTubeに、SCSK Zabbixチャンネルを開設しました!★ SCSK Zabbixチャンネル 本チャンネルでは、SCSK株式会社でのZabbixに関するトレンド/事例紹介などを動画にまとめて取り上げております。 最新のトピックについては、以下の弊社HPもしくはツイッターアカウントをぜひ参照ください。 ツイッターアカウント: www.youtube.com ★X(旧Twitter)に、SCSK Zabbixアカウントを開設しました!★ 【公式】SCSK Zabbix (@SCSK_Zabbix) / Twitter SCSKが提供するZabbixサービスのオフィシャルアカウントです。 #Zabbix #SCSKPlusサポートforZabbix #監視 #SCSK twitter.com
アバター
こんにちは。ひるたんぬです。 春が終わりを告げ、夏が近づいてきましたね。 最近はニュースや新聞などで「今年は最も暑い」や、「観測史上一番の暑さ」「季節外れの暑さ」など、連日ホットな話題が報道されています。野菜やオリーブオイルも高騰が続いており、最近は手に取るのを躊躇してしまいます。 …ところで、皆さんは「夏」と「冬」、どちらが好きですか? 私は圧倒的に冬派¹なのですが、周囲に聞く限り少数派のようでした。 ¹ 冬派な理由としては、寒いのは「着ればなんとかなるから」です。暑いのには対処の限界がありますからね… 少し古い資料にはなりますが、日本リサーチセンターが2016年5月に行った調査によると、 日本人全体でみれば、 「夏」が52%と半数を超えて、「冬」(21%)の倍以上多い 。 性別でみると、男⼥ともに「夏」が優位だが、男性では58%と半数を超えて特に多い。 エリア別では、 「夏」は東⾼⻄低の傾向がみられ、北海道・東北では6割を超える 。 年代別でみても、いずれも「夏」が優位だが、15〜19才では「冬」が3割以上で比較的多い。 出典:日本リサーチセンター「 【NRCレポート】あなたはどっち?日本人の好み調査 Part3:生活とライフスタイル 」P.10 という結果でした。この結果を見る限り、夏派の方は涼しい地域の方に多い傾向があるので、夏が暑くなってきている今、その割合は減っているんでしょうかね?少しばかりですが気になります。 話題がそれてしまいましたが、本題に入ります。 今回は2023年4月にGAとなった「CodeCatalyst」を色々触ってみたので、それについてお話ししようと思います。 そもそも…CodeCatalystって? CodeCatalystについて初めて耳にする方もいるかと思いますので、簡単にご説明いたします。 詳細について知りたい方は、Black BeltのCodeCatalystシリーズをご覧になることをおすすめします。(全部で9編あるので、中々のボリュームです。) サービス別資料 | AWS クラウドサービス活用資料集 アマゾン ウェブ サービス (AWS) は安全なクラウドサービスプラットフォームで、ビジネスのスケールと成長をサポートする処理能力、データベースストレージ、およびその他多種多様な機能を提供します。それらを活用するために役立つ日本語資料、動画... aws.amazon.com CodeCatalystを一言で表すと「 統合ソフトウェア開発サービス 」です。 出典:AWS「 AWS Black Belt Online Seminar – Amazon CodeCatalyst Overview 編 」P.11 これを聞くと、「既にCodeBuildやCodePipelineなどがあるじゃないか」と思う方もいると思います。個人的には Code ○○が 一つにまとまって提供されている点 、 複数人での開発(コラボレーション)のしやすさ において、CodeCatalystの使いやすさがあるのではないかと思います。 やってみたこと プライベートで作りたいものがあったので、CodeCatalystを開発環境に設定し開発を進めました。 開発を進める中で、せっかくならCI/CDについても勉強したくなり、今回の記事を作成しております。 今回の記事では、下記フローを自動で行います。 前準備 CodeCatalystの利用にあたっては、AWS Builders IDの取得が必要です。 また、初期設定が必要となっておりますが、このあたりにつきましては参考サイトのご紹介のみさせていただきます。参考サイトなどをご覧の上、 自分のCodeCatalyst Spaceを作成 CodeCatalystで使用するRoleを作成 新規の空のプロジェクト(Start from scratchより)を作成 してください。 Amazon CodeCatalystを使ってblueprintでアプリを作るまで - Qiita CodeCatalyst挑戦の経緯仕事の案件とは全く関係ない趣味の範囲&自主学習用にWebアプリを作っております。今までは作ったものをローカルで動作させて、DBもSQLiteで…みたいな感じで作… qiita.com 20221207-CodeCatalystを触ってみた zenn.dev Amazon CodeCatalystで作るAWS CDKコントリビュート環境のススメ | DevelopersIO Amazon CodeCatalystの開発環境の変更方法と、CodeCatalyst上にAWS CDKのコントリビュート環境を構築する方法について解説します dev.classmethod.jp 作成が終わったら、下記のようなProjectのページができていることを想定しています。 また、ソースコードの格納先である任意のS3バケットが必要です。 あらかじめ作成しておいてください。 バケットではバージョニングを有効にしてください。 CDを行う際にオブジェクトのバージョンが必要となるためです。 リポジトリの作成 今回はCodeCatalyst内にリポジトリを作成します。(GitHubのリポジトリを紐づけることも可能です。) 上図画面から「Source repositories」欄右上の「Add repository」→「Create repository」を選択してください。 リポジトリ作成画面で適切に情報を入力し、「Create」を押下します。 今回の手順ではPythonを用いるので、.gitignoreはPythonを選んでおくと良いと思います。 作成が完了すると、リポジトリが表示されます。 開発環境の準備 CodeCatalystでは、開発環境としてCloud9やVS Codeなどを選択できます。 左側ペインより「Code」→「Dev Environments」を選択し、「Create Dev Environment」を押下します。今回は「Visual Studio Code」を選択します。 Visual Studio Codeがインストールされていない、など利用ができない場合は、Cloud9を選択してください。本記事ではVisual Studio Codeの例を示しますが、手順は大きくは変わりません。 下図が表示されリポジトリに関する設定や、開発環境のリソースの設定ができます。 今回は特に設定を変更せず「Create」を押下します。 しばらく待つと、作成が完了した旨のメッセージが表示されるので、作成された開発環境の「Open in Visual Studio Code」を押下します。 はじめてCodeCatalystからVS Code環境に接続した際などに、拡張機能(AWS Toolkit)のインストールや初期設定を求められます。手順に従い対応してください。 VS Codeが起動し、左下に「SSH: aws-devenv-…」と表示があれば接続に成功しています。 ここで、検証用の簡単なファイルを作成します。今回は以下のサイトを参考に、fizzbuzz問題のプログラムを作成します。 pytestで簡単にカバレッジを出力する方法 | とあるエンジニアのエソラゴト テストコードを書いていると、どれくらいテストコードを書くべきか迷うことがあります。その時に有効なのが、カバレッジです。カバレッジとは、開発したプログラムに対するテストのカバー率のことを言います。カバレッジが高いとテストの網羅率が高いと判断が... ya6mablog.com また、ここで作成する「resource.yaml」は以下のコードを複製してください。 AWSTemplateFormatVersion: "2010-09-09" Parameters: BucketName:   Type: String LambdaVersionId:   Type: String Resources: FizzBuzzFunction:   Type: "AWS::Lambda::Function"   Properties:     Code:       S3Bucket: !Ref BucketName       S3Key: "Artifacts/src.zip"       S3ObjectVersion: !Ref LambdaVersionId     Environment:       Variables:         bucket_name: !Ref BucketName     Handler: "get_index.lambda_handler"     Runtime: "python3.12"     Timeout: 10     FunctionName: "FizzBuzz-Function"     Role: !Ref FizzBuzzRole FizzBuzzFunctionLogGroup:   Type: "AWS::Logs::LogGroup"   Properties:     LogGroupName: !Sub "/aws/lambda/${FizzBuzzFunction}"     RetentionInDays: 30 FizzBuzzFunctionVersion:   Type: AWS::Lambda::Version   Properties:     FunctionName: !Ref FizzBuzzFunction FizzBuzzRole:   Type: AWS::IAM::Role   Properties:     RoleName: Lambda-FizzBuzzRole     AssumeRolePolicyDocument:       Version: '2012-10-17'       Statement:         - Effect: Allow           Principal:             Service:               - lambda.amazonaws.com           Action:             - sts:AssumeRole     ManagedPolicyArns:       - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole 最終的にファイル構成が下図のようになっていればOKです。 ここまでできたら、一旦VS Codeの拡張機能「AWS Toolkit」を選択し、「CODECATALYST」→「Stop Dev Environment」を押下し、開発環境を一旦停止させます。 VS Codeを ✕ で閉じた場合、開発環境は稼働したままの状態になっています。 今回の設定(初期設定)では、非アクティブの場合、15分で自動停止されるようになっていますが、利用可能な時間枠を消費してしまいますのでご注意ください。 誤ってVS Codeを ✕ で閉じた場合は、CodeCatalystのページより該当の開発環境を選択し、「Stop」を押下することで停止させることができます。 環境の登録 リソースをデプロイする先のAWSアカウントをここで指定します。 左側ペインより「CI/CD」→「Environments」を選択し「Create environment」を押下します。 設定値は以下のようにしてください。 Environment name:分かりやすい名前を設定します。今回は「Dev」としました。 AWS account connection:ご自身のAWSアカウントIDを選択してください。 設定ができたら、「Create environment」を押下します。 CI/CDワークフローの構築 …ここからが本番ですね。笑 左側ペインより「CI/CD」→「Workflows」を選択し「Create workflow」を押下します。 workflowの作成画面で、先ほど作成したリポジトリを選択し、「Create」を押下します。 これにより、workflowが作成されました。 workflowはStep Functionsと同じように、ブロック(Visual)もしくはコード(YAML)で作成することができます。今回は初めてということもあるので、Visualで説明を進めます。 CI: Continuous Integration 上図のうち、「PC」と「Source Repositoiry」の部分については既に作成されています。 そのため、単体テストを行うための準備をします。 Test Workflow編集画面の左上にある「Action」より、「Test」を探し、右下の「+」を押下します。 すると右側に設定項目が出てきますので、今回は以下に従って設定してください。 Inputs 何も変更しません。 Configuration Action name:分かりやすい名前に変更します。今回は「Test」としました。 Shell commands:以下のスクリプトを入力します。 - Run: pip install -r ./requirements.txt - Run: PYTHONPATH=. - Run: pytest --cov=src/ test --cov-report=xml - Run: pytest --junitxml=./unit_test.xml Packages 何も変更しません。 Outputs 何も変更しません。 CD: Continuous Deployment 単体テストを終えた作成物については、承認を挟んだ後にデプロイをするという流れを取っています。 Approval 先ほどの「Actions」の横にある「Gates」から「Approval」を追加します。 右側に出てくる設定項目を以下の通りに設定してください。 Inputs 何も変更しません。「Depends on」に、先ほどの「Test」が設定されていることを確認してください。 Configuration Gate name:分かりやすい名前に変更します。今回は「Approval」としました。 Deploy 今回はCloudFormationでのデプロイを行います。 そのため、ここでは リソースファイル(resource.yaml)と、ソースコードをS3にアップロードする ソースコードのオブジェクトバージョンを取得 リソースをデプロイ の3つに分けて手順をご説明します。 1. S3へのアップロード 「Actions」から「Build」を探し、追加します。 右側に出てくる設定項目を以下の通りに設定してください。 Inputs Variables:以下のキーと値を設定してください。 キー:bucket_name 値:(ソースコードなどを保管するバケット名) Depends on:「Approval」を選択してください。 Configuration Action name:分かりやすい名前に変更します。今回は「TransferArtifactsToS3」としました。 Environment:「Dev」を選択します。 AWS account connection:ご自身のAWSアカウントIDを選択します。 Role:事前準備で作成したロールを選択します。 Shell commands:以下のスクリプトを入力します。 - Run: sudo yum install zip -y - Run: cd ./src - Run: zip ./src.zip *.py - Run: cd ../ - Run: aws s3 mv ./resource.yaml s3://${bucket_name}/Resources/resource.yaml - Run: aws s3 mv ./src s3://${bucket_name}/Artifacts/ --recursive --include "*" Packages 何も変更しません。 Outputs Variables:「Add variables」を押下し、Nameに「bucket_name」と入力します。 2. オブジェクトバージョンを取得 先ほどと同様に「Actions」から「Build」を探し、追加します。 右側に出てくる設定項目を以下の通りに設定してください。 先程のS3へのコピーと同じブロックで実行しても良いのですが、分かりやすさのために、あえて分けてます。 Inputs Depends on:「TransferArtifactsToS3」を選択してください。 Configuration Action name:分かりやすい名前に変更します。今回は「GetObjectVersion」としました。 Environment:「Dev」を選択します。 AWS account connection:ご自身のAWSアカウントIDを選択します。 Role:事前準備で作成したロールを選択します。 Shell commands:以下のスクリプトを入力します。 - Run: src_info=$(aws s3api list-object-versions --bucket ${TransferArtifactsToS3.bucket_name} --prefix Artifacts/src.zip) - Run: src_version=$(echo ${src_info} | jq '.Versions[] | select(.IsLatest) | .VersionId') - Run: echo '{"Parameters":{"LambdaVersionId":'$src_version', "BucketName":"${TransferArtifactsToS3.bucket_name}"}}' | jq > ./version.json Packages 何も変更しません。 Outputs Artifacts:「Add artifact」を押下します。 Build artifact name:分かりやすい名前を設定します。今回は「ArtifactVersion」としました。 Files produced by build:「./version.json」と入力します。 3. リソースのデプロイ 「Actions」から「Deploy AWS CloudFormation stack」を探し、追加します。 右側に出てくる設定項目を以下の通りに設定してください。 Inputs Artifacts:「ArtifactVersion」を選択してください。 Depends on:「GetObjectVersion」を選択してください。 Configuration Action name:分かりやすい名前に変更します。今回は「DeployAWSCloudFormationStack」としました。 Environment:「Dev」を選択します。 AWS account connection:ご自身のAWSアカウントIDを選択します。 Role:事前準備で作成したロールを選択します。 Stack name:適当なスタック名を入力します。今回は「Lambda-CICD」としました。 Stack region:スタックをデプロイしたいリージョンを選択してください。東京リージョンでも問題ありません。 Template:「./resource.yaml」と入力します。 Advanced:オプションを展開し、以下を設定します。 Capabilities:IAMリソースを作成するため、「CAPABILITY_NAMED_IAM」にチェックを入れます。 Parameter overrides:オブジェクトバージョンを上書きするため、以下のように設定します 「Specify overrides using a file」を選択 ファイル名:file:///artifacts/DeployAWSCloudFormationStack/ArtifactVersion/version.json なお、パラメータの上書きについては以下のドキュメントを参考にしました。 "Deploy AWS CloudFormation stack" action YAML definition - Amazon CodeCatalyst The following is the YAML definition of the Deploy AWS CloudFormation stack action. To learn how to use this action, see... docs.aws.amazon.com すべてが完了したら、下図のようなフローが出来上がっていると思います。 確認ができたら左上の「Commit」を押下します。するとフローが動き出し、テストを開始します。 フローの進捗状況確認 左ペインより「CI/CD」→「Workflows」を選択することで確認できます。 また、それぞれのリンクをクリックすることで詳細な進捗を確認できます。 テスト結果の確認 フローの「Test」をクリックすると、テストの詳細を確認できます。例えば「Reports」タブをクリックすると、行われたテストの結果やカバレッジをひと目で確認することができます。 承認 今回は「Test」のあとに承認(Approval)を追加しているので、単体テスト終了後にApprovalを選択すると、以下のような画面が表示されます。 ここでテストのレビューを行い、承認するかどうかを選びます。 承認する(Approve)と先のフローに進み、却下する(Reject)とそこでフローが終了します。 デプロイ確認 フローが最後まで完了すると、指定したAWS環境にリソースがデプロイされています。 マネジメントコンソールのCloudFormationから、もしくはWorkflowの最後のブロック(DeployAWSCloudFormationStack)選択し、「Summary」タブを押下することで確認することができます。 おわりに 今回は比較的新しいサービスに触れてみました。 公式ドキュメントが英語であったり、「やってみた」というような記事が少なかったため試行錯誤するところが多かったです。 また、私自身CI/CDの枠組みに初めて触れてみて、改めて自動化の簡単さ・便利さに気づくことができました。 ▼ 今回参考にした、数少ない日本語の公式ブログです。 Amazon CodeCatalyst を用いたワークフローによるビルド、テスト、デプロイの実現 | Amazon Web Services (この記事は Using Workflows to Build, Test, and Deploy with aws.amazon.com
アバター
こんにちは、SCSK 池田です。 すっかり桜も散り、新緑がまぶしい季節となりましたが、皆さまいかがお過ごしでしょうか? ブログの更新が少しあいてしまいましたが、心機一転がんばっていきます! さて、「 第4回 【LifeKeeper】AWSでは仮想IPアドレスが使えない!?をこうして解決する!! 」では、 同一VPCからの接続方式 について、ルートテーブルシナリオをお伝えしましたが、読者のかたから「 AWSの外から接続する場合はどうするのですか? 」とご質問をいただきました。 第8回目の今回は、AWSの外(例えばオンプレミスのデータセンターなど)から、AWS内のHAクラスターシステムにアクセスする場合の仕組みについて解説します。 ◆おさらい◆ ルートテーブルシナリオとは ルートテーブルを使用した接続方式 AWSでは仮想IPアドレスの機能が提供されていません。その為、LifeKeeperを構成するサーバが存在するVPCのCIDR外に「ダミーの仮想IPアドレス」を用意し、その「ダミーの仮想IPアドレス」と「稼働系サーバのENI」をルートテーブルで紐づけることによって、稼働系サーバにアクセスできるようになります。 イメージ図は以下の様になります。   (1)クライアントは「ダミーの仮想IPアドレス」(図では10.1.0.10)にアクセスします。 (2)ルートテーブルには予め「ダミーの仮想IPアドレス」のTargetとして稼働系サーバのENI(図では10.0.2.4)を 指定しておくことによって、クライアントからの通信が稼働系サーバに送信されます。 (3)障害が発生しフェイルオーバ処理が必要となった際には、LifeKeeperの機能(AWS CLIによる自動実行)により、 ルートテーブルの「ダミーの仮想IPアドレス」のTargetが待機系サーバのENI(図では10.0.4.4)に書き換えられます。 この時は、接続元(クライアント)はLifeKeeperを構成するサーバと同一のVPC内に存在していました。   AWS外からの接続にどう対応する!? さてここからが本題となります。 AWS外から接続する場合は、Transit Gatewayを経由させることで可能となります。 Transit Gatewayとは 少し話はそれますが、Transit Gatewayについても簡単にご説明します。 Transit Gatewayとは、AWS公式サイトでは「 VPC とオンプレミスネットワークを中央ハブで接続 します」とあります。 Transit Gatewayを使用しない場合は、このように蜘蛛の巣上にサイトごとを接続する必要がある為、管理が煩雑となります。 ◆Transit Gatewayを使わない場合 これをTransit Gatewayを使用すると、こんなにスマートに! ◆Transit Gatewayを使った場合 Transit Gatewayを中央ハブとして シンプルな構成になんですね さて、Transit Gatewayが便利そうだなと、なんとなくご理解いただいた上で、いよいよAWS外からの接続をどうやって実現しているのかに進みます。 AWS外からの接続にはTransit Gatewayのルートテーブル使う AWS外(今回の例ではデータセンター)から接続するケースでみていきましょう。 構成イメージは以下の通りです。 データセンター内にあるコンピュータ(サーバやクライアントなど)から接続する場合の流れを順を追って解説します。 (1)クライアントは、接続先として「ダミーの仮想IPアドレス」(図では10.1.0.10)を指定します。 (2)Transit Gatewayのルートテーブルには、予め接続先(10.1.0.10)に対するTargetとして、接続先のHAクラスターが存在するVPCのセグメントが設定してあります。その為、通信は対象VPCに向けられます。 (3)対象VPCのルートテーブルには、予め接続先(10.1.0.10)に対するTargetとして、稼働系サーバのENIが設定してあるので、通信は稼働系サーバに到達します。   まとめ 今回は、AWS外からAWS内のクラスタ化したシステムへアクセスする方法について解説しました。基幹システムのパブリッククラウドへのシフト/リフトが急速に進む中で、オンプレミスとAWSの相互接続の要件は以前に増しています。また最近では、パブリッククラウド同士をネットワーク接続する、マルチクラウド構成の利用も活発化しています。そのような場面で、今回解説した接続構成が活用できるのではないかと思います。 まとめますと AWS外からの接続は以下で実現可能 ・Transit Gatewayのルートテーブルを利用する ・さらにVPCのルートテーブルも利用することで稼働系サーバに通信可能となる
アバター
Catoクラウドにリモート接続する際に、個人所有のPCやスマートデバイスなどのBYOD利用を制限するというニーズは多く、Catoのデバイス制御機能を使用しているお客様も数多くいらっしゃいます。 Catoのデバイス制御は、2024年5月現在では以下の3つの機能があります。 Catoで設定できるデバイス制御 1.Device Posture デバイスのセキュリティ状態をチェックして、条件を満たした場合Cato接続を許可します。 自社の標準PCの仕様に合わせてCato側の設定を行えるので手間なくデバイス制御が実装できます。 当初はSDPユーザーのみがサポート対象でしたが、Cato Socket配下でもDevice Posture機能が適用されるようになりました。但し、SDPユーザーではblockされてもSocket配下からアクセスすると接続できてしまったり、 Always-On 設定と組み合わせて使用する事が推奨だったりするので、現時点ではSDPユーザーに対する利用がベターです。 2.Device Authentication 認証局で発行したルート証明書をCatoクラウドに登録し、各デバイスにはクライアント証明書をインストールして証明書認証によるデバイス制御を行います。証明書の配布や更新の手間はあるかもしれませんが柔軟なコントロールが可能です。 証明書による認証については以下の記事をご参照下さい。 Catoクラウドでのデバイス証明書認証について Catoクラウドでのデバイス証明書認証の設定方法、エラー事例をご紹介します。 blog.usize-tech.com 2024.01.11 【Catoクラウド】iPhoneでのデバイス証明書認証 Catoクラウドのデバイス証明書認証について、iPhoneへの設定例とエラー事例を解説します。 blog.usize-tech.com 2024.01.04 3.MAC Authentication こちらは補足となりますが、Cato Socket配下のデバイスに対してMACアドレスによるデバイス認証が可能です。 実装方法は、Cato接続を許可するデバイスのMACアドレスを記載したcsvファイルを作成しCatoクラウドにアップロードします。 MACアドレスの追加や削除がある場合はCato Management Application(CMA)で操作はできず、都度csvファイルを更新する必要があります。 それでは、今回はDevice Postureの設定と動作結果をご紹介します。 Device Postureの設定方法 Device Postureの設定方法は以下の 3Step です。 [条件]を作成する Cato側で準備されている “OSの種類・ベンダー名・プロダクト名” などを選択して「条件」を作ります。 [条件]を組み合わせて[プロファイル]を作る 「条件」を組み合わせて「プロファイル」を作成します。プロファイルとは条件の組み合わせです。 例えば、Windows Firewallが有効になっているという条件と、会社指定のウィルス対策ソフトがバージョンxx以上になっているという条件を組み合わせて1つのプロファイルにするといったものです。 [プロファイル]を用いて[ポリシー]を作る Device Postureを適用するユーザー・プロファイル・アクションなどを決めて「ポリシー」を作成します。 では、実際にDevice Postureの設定を行いその挙動をみてみましょう。 <検証>Windows Firewallが無効のPCをブロックする 1.条件(Device Check)を作成する Device checkの設定は、Cato Management Application(CMA)のAccess >Device Posture >Device Checksで行います。 「New」ボタンをクリックすると設定ウィンドウが開きます。設定ウィンドウの最初にある「Device Test Type」(図1)でチェックに使いたいベンダーやプロダクトを設定していく事になります。 図1. Device Test Typeの画面 2024年5月時点では以下の6つタイプがありますが、Catoのアップデートによりタイプの種類はどんどん増えています。 各タイプで指定できる条件と選択できるプロダクトをいくつかピックアップしてみました。 No タイプ 指定条件と選択できるプロダクト例 1 Anti-malware 各種ウイルス対策ソフトウェアがインストールされているか? Windows Defenderや、Trend Micro、McAfeeなど 2 Firewall 各種ファイアウォールソフトウェア(OS標準のFirewall含む)がインストールされているか? Windows Firewallが有効、Trend Micro Deep Security Agent、Crowdstraikeなど 3 Disk Encryption ディスクの暗号化がされているか? 4 Patch Management 各種パッチ管理ソフトウェアがインストールされているか? Intune Client、 McAfee ePolicy Orchestrator Agentなど 5 Data Loss Prevention 各種DLPソフトウェアがインストールされているか? Trend Micro Apex One Security Agent、 McAfee DLP Endpointなど 6 Cato Client Catoクライアントが指定のバージョンかどうか? 今回の検証ではシンプルに「Windows FirewallをオフにしているPCはCato接続させない」という設定を行います。 下記の通りタイプは「Firewall」を選択し「Microsoft Corporation」から「Windows Firewall」という条件を作成します。 尚、Windows Firewallのversion指定もできますが、今回は「any version」を選択しています。 図1. Device Checkの設定 図2のように指定のversionとイコール若しくは指定のバージョン以上という設定も可能です。 図2. Device Checkの設定(バージョン指定)   2.プロファイルを定義する 次に、作成した条件からプロファイルを定義します。今回は「Windows Firewall」の1つのみとしますが、前述の通り複数の条件をまとめてプロファイルを定義する事もできます。 設定箇所は Access >Device Posture > Device Posture Profilesです。ここで 「New」ボタンをクリックして以下の設定ウィンドウで設定を行っていきます。ここではプロファイル名をつけた後は全て選択形式となっています。 図3. プロファイル設定 3.ポリシーを作る ポリシーの設定は、Access > Client Connectivity Policyで行います。 ここでも「New」ボタンをクリックして、これまでと同様に表示される設定ウィンドウに設定をしていきます。 ポリシーの設定項目は以下の通りです。 ・制御対象のユーザー/グループを選択します ・プラットフォームでOSの指定ができます ・制御対象の国を選択できます ・作成したプロファイルを選択します ・アクションでAllowかblockを選択します 設定画面を貼り付けると縦に長くなるので設定後に表示される画面を以下に添付します。 また、このDevice PostureもFirewallと同様で、上位のポリシーからマッチしたもが適用されるという動きなので「順番」は要注意です。 図4. 作成したポリシー    複数のポリシーを作成する例としては、例えばグループ会社毎にPC環境の違いや導入しているアプリケーションが異なる場合、会社毎のポリシーを作成して接続を許可するという使い道があります。 ポリシー01(A社用): Windows Firewallが有効 + McAfee Agentのバージョンが××以上 + 指定の証明書が入っている ポリシー02(B社用): Windows Firewallが有効 + TrendMicro Agentのバージョン××以上 + 特定のディスクドライブの暗号化 <検証>モバイルユーザーからアクセスした結果 今回作成したDevice Postureの設定はWindows Firewallが有効なPCはCato接続を許可し、Windows Firewallが無効になっているPCはブロックするという設定です。 実際にCato Client を入れたPCでWindows Firewallを有効/無効にして接続を試してみました。 Windows Firewallが有効だと問題なく接続できましたのでこの説明は割愛させていただき、次にWindows Firewallを無効にして接続してみました。 図5. Windows Firewallを無効化 この状態でCatoに接続しようとすると、図6の通り認証エラーとなりました。 エラー画面の「Details」をクリックすると「Windows Firewall」のルールでブロックされたとの内容が確認できます。 ネットワーク管理者は、ユーザーからこの内容を聞き出す事で切り分けができると思います。 図6. ブロックエラー画面 図6. ブロックの理由 また、CMAではブロックされたログが出力されていました。 図7. CMAのブロックログ 設定したプロダクトやバージョンを検出してくれない Device Postureで設定したベンダーのプロダクトやバージョンを期待通りに検出してくれず、稀にClient Connectivity Policyのルールをスルーする事があるようです。 その原因ですが、Cato Clientは「OPSWAT Framework」を使用してアプリケーションの識別をしているため、実際のプロダクト・バージョンと何らかの差異があった場合に検出がされないようです。 <参考>OPSWATのカテゴリ Windows https://software.opswat.com/OESIS_V4/Win/docs/support_charts/support_charts.html macOS https://software.opswat.com/OESIS_V4/Mac/docs/support_charts/support_charts.html 2024年5月時点で、上記URLにあるOPSWATのカテゴリのうち、以下がDevice Checkの対応製品となりますがこれ以外のカテゴリは未対応です。 Device Test Type(Cato) OPSWAT Category Anti-Malware  ANTIMALWARE Firewall FIREWALL Patch Management  PATCH_MANAGEMENT Data Loss Prevention DATA_LOSS_PREVENTION また、OPSWAT Frameworkの更新がされる際は、Catoのプロダクトアップデート情報にて次の様な内容が掲載されます。 Updated Vendors and Versions for Device Posture Checks:  We updated the  OPSWAT framework used by the Client to version x.x.xx.xxx 期待通りに検出されない場合の対処法は、一旦バージョン指定を無くして「Any-version」にするとか、別のベンダープロダクトに変更するかしか今のところはないように思います。 ただアップデートの頻度は多いので、暫くすると改善される可能性はあるかと思います。 まとめ 今回はDevice Postureの簡単な設定例をご紹介しました。 実際のDevice Checkでは複数の条件を組み合わせてポリシーを作成し、期待通りに接続が許可されるか又はブロックされるかのテストが必要になります。 またCatoが用意している条件はかなりの数があるので、そこから自社のデバイス環境に合うものを選択して動作テストする事も必要です。 更に条件のアップデートもどんどん行われるので、自社の環境により合うものをウォッチする必要もあるかもしれません。 ちょっと大変そうな気もしますが、ただこういった機能の利用をコンソール1つでコントロールできるのはクラウドならではの事だと思いますので是非活用してみて下さい。
アバター
こんにちは、SCSK株式会社の川原です。 今年も、延べ 30,000 人が参加する、日本最大の “AWS を学ぶイベント” AWS Summit Japan 2024 が  6月 20 日(木) 、 21 日(金) の二日間に渡り 幕張メッセ にて開催されます。 AWS Summit Japan 2024では、基調講演や150を超えるセッション、250を超えるEXPOコンテンツが用意されており、クラウド技術の最前線に触れる絶好の機会です。 SCSKはプラチナスポンサー として、パートナーセッションでの事例紹介とブースの出展を行います! すでに満席のセッションもございますので、お早めにご登録ください ↓↓ ※登録の際は、招待コード【 SPC7274802 】のご入力をお願いします。 SCSKセッションのご紹介 パートナーセッション(セッションID:AP-27)では、「 データセンターのラックぜんぶ抜く!SCSK だからできる脱オンプレの秘策とは? 」というテーマで、 沖電気工業様と当社メンバーの取り組みを事例に基づきご紹介いたします。 開始日時:6/21(金)16:00~16:30 登壇者: 沖電気工業株式会社 常務理事 情報責任者 髙島 豊徳様      SCSK株式会社 ソリューション事業グループ クラウドサービス事業本部 事業推進部 岸岡 学 【概要】 クラウドのメリットを理解し活⽤を進めようとするものの、様々な理由で「まだ⾏けない」「やっぱり⾏けない」と踏みとどまっている企業は多く存在します。Lift/Shift フェーズで障壁となる既存システム課題、コネクティビティ、どこまでクラウドネイティブに作るかなど。数多くの⼤規模クラウド移⾏にて AWS のベストプラクティスとクラウドコネクティビティをフル活⽤して開発した「クラウド Lift & Shift の秘訣」を、⼤⼿製造業の沖電気⼯業株式会社 CIO 髙島様と共に語ります。”ラックぜんぶ抜く” ために両社がどう⼿を取り合い、その難局を超えたのか。そしてクラウドネイティブへどう旅をしていくのか。本講演では、そのクラウドジャーニーへの挑戦記録を秘訣と共にお伝えします。 本セッションでは、 SCSKのクラウド移行のノウハウと知見を共有し、参加者の皆様の課題解決の糸口を提供できればと思います。 ぜひセッションをご登録してお待ちください!   「AWS 愛が、凄い 。SCSK」 ブースのご紹介 展示ブースでは、「 AWS愛が、凄い。SCSK 」をテーマに、 お客様のAWS利活用ステージに合わせて、クラウド移行、データ活用、生成AI、製造現場のデジタル化など、SCSKの独自ソリューションをご紹介します。 さらに、 ミニシアターでは7つのAWS関連ソリューションについて発表いたします。 最新のクラウド技術を活用したSCSKの取り組みやソリューションを間近でご体感いただけます。 ぜひAWS Summit JapanでSCSKのブースにお立ち寄りください! では皆様、 AWS Summit Japanを楽しみにお待ちください。 当日はSCSKセッションならびに展示ブースへの来場を心よりお待ちしております!
アバター
こんにちは。SCSKの山口です。 先日、あるアーティストのライブに当選したのですが、当選通知&料金支払いのメールが迷惑メールフォルダに入っていて、せっかくの強運が危うくオジャンになるところでした。 メールのフィルタリング基準が気になって少し調べたのですが、URL等が含まれているメールだとフィッシングを疑われてしまい、迷惑メールと判断されることがあるそうです。 しっかりと守ってくれていることはいいことですが、過保護すぎて必要なものまでブロックされてしまうのは考え物ですね。 「URLが含まれてるから怪しいメールだけど、コイツこのライブ申し込んでたから必要なメールだ。仕方ねえ通してやるか。」 みたいな判断をしてくれたらいいのに。と感じました。 いきなり何の話だと皆さん思っているころだと思いますが、先日業務でも似た(?)ような場面がありました。 通信要件:インスタンスからの下り通信を全拒否したいが、特定のURLへの通信だけは許可したい 要するに、 IPアドレス制御で下り通信を全拒否 しつつ、 FQDN制御で特定サイトへのアクセスを許可 する。ということです。 さらに嚙み砕くと、「 外部のサイトは危険なものも多いから、アクセスできないようにする 」かつ「 特定のサイトだけは通信ができるようにする 」ということです。 二段階で噛み砕きましたが、全然要約できていない気がするので、次章から詳しく書いていきます。   実現したいこと 今回実現したいことを図式化します。 ①GCEからの下り通信を全拒否(IPアドレスで制限) こちらはファイアウォールルールを設定することで簡単に実現可能ですね。 ②特定のURL(https://xxxx.jp)への通信を許可 問題はこっちです。Google Cloud のVPCファイアウォールルールでは、「 IPアドレスによる制御 」のみが可能です。FQDNによる制御は出来ません。 FQDNによる制御は、 ファイアウォール ポリシー ルール を使用することで実現することができます。 今回は、すでに FWルール(IPアドレス制御) がある状態で、新たに FWポリシールール(FQDN制御) を作成し、合わせ技で要件を実現してみます。   ファイアウォール ポリシー ルール 概要については、今回使用する部分のみ簡単に説明します。 詳細については下記ドキュメントをご参照ください。 参考資料 ファイアウォール ポリシー: https://cloud.www.google.com/firewall/docs/firewall-policies-overview?hl=ja   FWルールとFWポリシールールの評価順序 前述したとおり、今回はFWルールとFWポリシールールの合わせ技になります。(名前がややこしいですがついてきてください。。。) そのため、両者の 評価順序 が非常に重要になります。 デフォルト状態での評価順序は以下の通りです。上から下の順序で評価されます。 ①階層型 FW ポリシールール  ①-1 プロジェクトを含む組織レベル  ①-2 プロジェクトから最も遠い(上位)フォルダレベル  ①-3 プロジェクトに近い次のフォルダレベル ② VPC FW ルール ③ネットワーク FW ポリシールール  ③-1 グローバルネットワークのFWポリシールール  ③-2 リージョンネットワークの FW ポリシールール ④暗黙の FW ルール(上り全拒否+下り全許可) 図にすると以下の通りです。   実践①:FWルールとFWポリシールールの合わせ技による通信制御 改めて、要件を整理します。 要件①:GCEからの下り通信をすべて拒否する 要件②:特定のURLへの下り通信のみ許可する 今回は要件②で使用するFQDNとして「 www.google.com 」を使用します。 環境準備 下記環境を用意します。 要件①:GCEからの下り通信をすべて拒否する 下記FWルールを作成します。 FWルール名称 yamaguchi-egress-deny-all 説明 GCEからのすべての下り通信を拒否 ネットワーク vpc-test-yamaguchi 優先度 65534 方向 下り(内向き) 一致した時のアクション 拒否 ターゲットフィルタ IP範囲:0.0.0.0/0 プロトコルとポート all これによって、GCE(gce-test-yamaguchi)からのすべての下り通信が拒否されるはずです。 試しに www.google.com への疎通確認をしてみます。 pingを打っても応答がありません、下り通信が正常にブロックされているようです。 要件②:特定のURL( www.google.com )への下り通信のみ許可する 次に、FWポリシールールを使用して、 www.google.com への通信を許可します。 下記FWポリシーを作成します。 FWポリシー名称 fwpolicy-test-yamaguchi 説明 (省略) デプロイのスコープ リージョン リージョン asia-northeast1(東京) ※1 ルールの追加 なし(デフォルトで設定されるルール削除) ※2 ポリシーと VPC ネットワークの関連付け vpc-test-yamaguchi ※1 ルールの追加 ・この項目でFWポリシールールを作成することもできます。今回は説明のためにFWポリシーのみをまず作成し、その後ポリシーに含めるルールを作成します。 ※2 ポリシーと VPC ネットワークの関連付け ・FWポリシーはVPCに関連付けることができます。今回は「vpc-test-yamaguchi」に関連付けます。 作成したFWポリシーを見てみましょう FWポリシールールを作成しなかったので、デフォルトのポリシールールのみが表示されています。 デフォルトのポリシールールでは、上り/下りの通信を全て 「次に移動」 するルールがIPv6とIPv4で設定されています。 FWポリシーでは、「許可/拒否」に加えて 「次に移動」 のアクションが用意されています。それぞれ以下のように動きます。 許可 トラフィックを通す(階層が下位のルールは見ない) 拒否 トラフィックを通さない(階層が下位のルールは見ない) 次に移動 階層の下位のルールに評価を委ねる つまり、「次に移動」では「ここでは評価しないけど、次で決めてもらって。」みたいに次に当たるルールに判断を任せる動きをします。 では、作成したFWポリシーに「 www.google.com 」へのアクセスを許可(次に移動)するルールを作成していきましょう。 FWポリシーの詳細画面(上図)の 「+ルールを作成」 のボタンから作成することができます。 優先度 2147483640 説明 www.google.com への下り通信を許可(TCP/443,ICMP) トラフィックの方向 下り 一致した時のアクション 許可 ログ オフ ※1 対象 サービスアカウント サービスアカウントのスコープ このプロジェクト内 ターゲットサービスアカウント Compute Engine default service account 宛先 FQDN: www.google.com 送信元 10.20.30.0/24 プロトコルとポート 指定したプロトコルとポート TCP ポート:443 その他 icmp ※1 対象 FWポリシールールでは、ターゲット(対象)に「ネットワークタグ」を使用することができません。 代わりに、「ターゲットVPCネットワーク」もしくは「ターゲットサービスアカウント」を使用する必要があります。 今回は、「ターゲットサービスアカウント」を使用しています。 参考資料 : https://cloud.google.com/vpc/docs/using-firewall-policies?hl=ja#limitations では、この状態で www.google.com へpingを飛ばしてみましょう。 おや??? www.google.com へのicmp通信を許可するポリシールールを作成したのに通信ができませんね。 タネ明かしは次の章で行います。   再掲:FWルールとFWポリシールールの評価順序 初めの方に述べた、「FWルールとFWポリシールールの評価順序」の図をもう一度貼ります。 一番下の段に注目です。 評価順序が、 「② VPC FWルール → ③ ネットワークFWポリシールール」 となっています。 つまり、今回の要件では 先に「GCEからの下り全拒否」のFWルールが適用されてしまっている ため、 その後の「 www.www.google.com 」への許可ルールが意味をなしていません 。 じゃあ要件みたせないじゃん、、、となりそうですが、なんとこの 評価順序を変更する方法 があります。次の章で説明します。   実践②:FWポリシールール適用順序変更 下記のコマンドを実行することで、FWルールとFWポリシールールの評価順序を入れ替えることができます。 コマンド gcloud compute networks update VPC-NETWORK-NAME \     –network-firewall-policy-enforcement-order  BEFORE_CLASSIC_FIREWALL(AFTER _CLASSIC_FIREWALL ) 参考資料 : https://cloud.google.com/firewall/docs/firewall-policies-overview?hl=ja#change_policy_and_rule_evaluation_order FW ポリシー適用順序変更コマンドでの適用順序の変化 1. デフォルト状態 ① 階層型 FW ポリシールール ②  VPC FWルール ③  ネットワークFWポリシールール ④ 暗黙のFWルール(上り全拒否+下り全許可) 2. 以下を実行 gcloud compute networks update VPC-NETWORK-NAME \     –network-firewall-policy-enforcement-order  BEFORE_CLASSIC_FIREWALL ① 階層型 FW ポリシールール ②  ネットワークFWポリシールール ③  VPC FWルール ④ 暗黙のFWルール(上り全拒否+下り全許可) 3. 以下を実行 gcloud compute networks update VPC-NETWORK-NAME \     –network-firewall-policy-enforcement-order  AFTER _CLASSIC_FIREWALL ① 階層型 FW ポリシールール ②  VPC FWルール ③  ネットワークFWポリシールール ④ 暗黙のFWルール(上り全拒否+下り全許可) ⇒デフォルト状態に戻る 先ほどの実践①の環境でこのコマンドを実行します。 プロンプトが塩対応で適用できているか不安ですが、再度pingを飛ばしてみます。 応答が返ってきました。大成功です。 他のURL(FQDN)へのアクセスはというと 想定通り拒否されていますね。大成功です。 適用順序をもとに戻して再度 www.google.com へpingを投げてみましょう。 想定通り、通信できなくなりました。大成功です。 実践①、実践②で試した方法を使うことで、「インスタンスからの下り通信を全拒否したいが、特定のURLへの通信だけは許可する」という要件を満たすことができました。   まとめ 今回は、「インスタンスからの下り通信を全拒否したいが、特定のURLへの通信だけは許可したい」という要件を、FWルールとFWポリシールールの合わせ技で実現してみました。 今回はインスタンスからの下り通信を全拒否をあらかじめFWルールで実装しました(ちょうどその環境があった)が、初めから今回のような要件が見えている場合は、ルールを作成する際に 「FWポリシーの作成」の中にすべて吸収させた方が良い と感じました。 そうすることで、作成時の混乱を避けることができますし、管理やメンテナンスがより簡単になると思います。 今後の教訓にしたいと思います。
アバター
こんにちは。SCSK三上です。 今回は、先日参加したパートナー向けのAmazon Bedrockセミナーのセッションの1つにあった、 “ 本番稼働に至る生成AIプロジェクトにするための4つの質問 ” がとても印象的だったので、共有させていただこうと思います。 背景 最近ホットな生成AIですが、皆様 生成AIプロジェクトの本番稼働はうまくいっていますでしょうか? 一般的に、学習なしで利用できる生成AIは日本企業でのAI活用を約20%伸長させるポテンシャルがあります。 その一方で、日本では米国と約7倍差で、データ活用が売上増加やコスト削減に繋がりにくい傾向があると言われています。 生成AI活用も大体70~90%で失敗 、 機械学習プロジェクトは80%の確率で失敗 すると言われています。 実際に、皆様このようなお悩みを抱えていないでしょうか。 パートナーの方は、 PoC案件が多く、本番稼働に移れない 。本番環境に値する生成AIを活用した ユースケースの探索 に課題がある。 ユーザの方は、 生成AIをどのような業務に活かして良いか分からない 。生成AIを活用したいがどう進めて良いか分からない。 このようなお悩みを抱えている皆様に、少しでも役立つ4つの質問をご紹介します! これは、AWSのAI活用事例をもとに導かれた質問なので実践的に活用いただくことが出来ると思います。   生成AIプロジェクトを本番稼働にするために必要な4つの質問 生成AIが利益につながるための3つのステップ 質問を始める前に、生成AIが利益につながるためには3つのステップが重要です。 この先は、このステップに沿った質問を順番にご紹介します。 Biz:生成AIによる成長サイクルを設計する インパクトがあり実現・実装可能なユースケースを選ぶ Dev:迅速に顧客体験を検証する マネージドサービスを活用し、小さく・多く経験する ML:顧客から得られたフィードバックで体験を改善する より良い体験をコスト効率、よいモデルで提供する   第1問: 『生成AIの活用にあたり求められている成果はありますか。また、「あなた」の業績評価やキャリアにどのような影響がありますか?』 質問 『生成AIの活用にあたり求められている成果はありますか。』 1.自社のプロダクトに組み込み「売り上げ」を拡大する 2.自社の業務・開発プロセスを改善し「コスト」を削減する 3.良く分からない 『 また、「あなた」の業績評価やキャリアにどのような影響がありますか? 』 背景 この質問の背景としては、以下の通りです。 生成AIの活用にあたり求められている成果はありますか。 売り上げ・コストといった経営指標を改善するのか、市場認知を取ることなのか、従業員の意識改革なのかで施策が異なる。 また、「あなた」の業績評価やキャリアにどのような影響がありますか? 評価にかかわらない活動にモチベーション高く取り組むのは困難。 Biz:生成AIによる成長サイクルを設計する AI/MLで価値が高まるサイクルは、 ①顧客体験の改善②ユーザ増加による利益の増加③データの蓄積によるモデルの改善④データドリブンな意思決定 です。  実際に生成AIプロジェクトで成功している理想的な企業はどのようにこのサイクルを実現しているでしょうか? 事例①:デザイン作成サービスCanvaの価値が高まるサイクル ①顧客体験の改善:作りたいパンフレットに適したイラストがなければテキストで要望を書けばよい ②ユーザ増加による利益の増加:画像の生成量が増えると編集機能(有償)を使いたい人も増える ③データの蓄積によるモデルの改善:蓄積されたログから需要の高い用途に特化したモデルを生成 事例②:画像共有サービスPinterestの価値が高まるサイクル ①顧客体験の改善:分析したいアイディアをテキストで書けば、テーブルやクエリの提案が受けられる ②ユーザ増加による利益の増加:短期間で分析できれば、収益につながる様々な仮説を検証できる ③データの蓄積によるモデルの改善:蓄積されたテキストと実行可否をもとに、よりモデルの生成を制御できる ★各事例の共通ポイント★ 使用頻度が高いユースケースに挑戦している。 使用頻度が高く、効果が高い、ハイインパクトのユースケースに注目すること。 ★生成AIプロジェクトを進める第一歩★ 「ピザ2枚チーム」で素早く活動を開始する。 小規模なチーム(10名未満)で意思決定の速度を上げる。 参考: ジェフ・ベゾスの秘策「ピザ2枚」ルール。 アマゾンはこれで無駄をなくした | Business Insider Japan   第2問: 『身軽なチームで頻繁かつ改善効果が高いユースケースに注目していますか? 』 質問 『身軽なチームで頻繁かつ改善効果が高いユースケースに注目していますか。』 背景 この質問の背景としては、以下の通りです。 生成AIは進化が早い。身軽なチームが自社のフィードバックだけでなく外部の技術変化にも適応していく必要がある。 その一方で、 身近なチームは組織的権力が弱い傾向があるため、ハイインパクトではにと関係者の協力を得ることが難しい 。 Dev:迅速に顧客体験を検証する Devフェーズで検証すべきポイントとしては、②ユーザ増加による利益の増加 重要なこと 実際にやってみないと成立するかわからない。ので…迅速かつ低コストで検証したい。 事例から見る学び 事例①Canva: 3週間 で画像生成機能を実装。 事例②Pinnterest:テキストからSQLを生成するLLMをパートタイムのエンジニア 2人2ヶ月 で構築。データ分析の時間を40%効率化。 ⇒ AWSの20件以上の生成Ai事例でも、大半が小規模で2~3ヶ月でリリースされている。 ★注目ポイント★ 高頻度のユースケースに着目して高い効果を出す 有価証券報告書、毎日の文書作成、営業日報、会議、デザイン 分析時間の40%効率化、700時間の削減。   少人数・短時間 2~4名、数週間から1~3ヶ月 ★重要なこと★ リリース基準をきめておくこと。 評価の観点は、3H(Helpful/Honest/Harmless) ⇒ リリース基準がない状態だと、プロンプトの改善が生産的にならない。   第3問: 『短期間で本番稼働しフィードバックを得るには、どんな人を評価に巻き込む必要がありますか?』 質問 『短期間で本番稼働しフィードバックを得るには、どんな人を評価に巻き込む必要がありますか。』 Dev:迅速に顧客体験を検証する Who:評価者は? What:評価にはどんなデータを使うか? How:どのように評価するか? ML:顧客から得られたフィードバックで体験を改善する 生成AIを蓄積したデータでカスタマイズすることで顧客体験や業務プロセスを競争優位にする。 生成AIをそのまま使うこともできるが、それだと成長しない。優位に立てない。 通常の機械学習モデルを学習し続けると競争優位に立てる 。 競争優位につながる改善ポイント より良い応答を、より小さいモデルで実現する 体験向上によるインパクト増加、モデル縮小によるコスト削減 より良い応答へ改善する手段 プロンプトをチューニングする 回答の精度を上げるために、回答を人間が3段階で評価。 モデルそのものをチューニングする。 Amazon BedrockでFine Tuningを実施可能。 プロンプトの改善からモデル学習へ移行するタイミングは意外と早い。 第4問: 『生成AIによるインパクトを継続的に高めていくにはどんなデータを蓄積し誰に伝える必要がありますか?』 質問 『生成AIによるインパクトを継続的に高めていくにはどんなデータを蓄積し誰に伝える必要がありますか。』 ML:顧客から得られたフィードバックで体験を改善する 生成AIはまだ発展途上の技術のため、 継続的改善を前提 に考えてもらう。 改善結果が社内の認知や関係者の業績評価に繋がるよう な組織内のレポートラインの構築も不可欠 最後に、ポイントをまとめます。 ★今日から始めるチャレンジ★ 1.生成AIで狙う効果と関係者にとっての意義は? 2. 身軽なチームが効果の高い用途に注目しているか? 3.短期間でのフィードバック獲得を実現する関係者は? 4.蓄積するデータと共有先は? まとめ いかがでしょうか。私自身、お客様に生成AIを活用いただくために、この4つの質問は役立つと思いました。 特に印象に残った点は、①評価者はだれなのか?評価基準はなにか?を明確にすること。②高頻度のユースケースに着目し高い効果に着目すること。そのためには、お客様に”社内にはどんなユースケースが存在するか”を把握していただくことが大切だと感じました。 これから生成AIプロジェクトを進めていこうと思っている方は、ぜひ参考にしてみてください。 また、この日のセミナーのメインセッションはAmazon Bedrockについてでした。Amazon Bedrockは、API経由で基盤モデルにアクセスが可能となるサービスです。 こちらもとても興味深かったので、また記載していこうと思います!
アバター
こんにちは、SCSK松岡です。 本記事では、Power BIからSnowflakeにSSO(シングルサインオン)を使用して接続するための一連の手順と注意点をご紹介します。 Snowflakeに蓄積したデータをBIツールで可視化することは、データの価値を最大限引き出すために重要なポイントの一つです。 Microsoftのサービスと高い親和性を持つPower BIでは、SSOによりMicrosoft Entra IDの認証を利用して、データへのセキュアな接続が可能です。 SSOによりユーザーはシステム毎に別アカウントでログインする手間が省かれますが、そのためにはSnowflake側でのセキュリティ統合や、Power BI側での有効化などの事前設定が必要となります。 前提 これからご紹介する手順には、Snowflakeのアカウント全体に影響する設定と、Microsoftの組織全体に影響する設定が含まれます。そのため、設定を行うには次のユーザーが必要です。 ACCOUNTADMINロールを持つSnowflakeユーザー グローバル管理者権限を持つPower BIユーザー また、手順は以下のマニュアルをベースに記載していますので、設定の際は合わせてご参考ください。 Microsoft Learn:Power BI サービスで Snowflake に接続する Power BI で Snowflake に接続する - Power BI Power BI で Snowflake に接続し、SSO 認証またはゲートウェイ用に Microsoft Entra ID を使って構成する方法について説明します。 learn.microsoft.com   設定の流れ (Snowflake設定) Power BIセキュリティ統合 まず初めに、Snowflake側でPower BIとのセキュリティ統合の設定を行います。設定にはACCOUNTADMINロールを持つユーザーが必要です。 設定にあたり、Microsoft Entra ID (旧称:Microsoft Azure Active Directory)のテナントIDが必要なので、事前に取得しておきましょう。テナントIDは、Entra IDのトップページ(概要)から取得できます。 テナントIDが取得できたら、その値を「external_oauth_issuer」に含める形で以下のようなコマンドを実行します。 create security integration powerbi type = external_oauth enabled = true external_oauth_type = azure external_oauth_issuer = 'https://sts.windows.net/ [テナントID] /' external_oauth_jws_keys_url = 'https://login.windows.net/common/discovery/keys' external_oauth_audience_list = ('https://analysis.windows.net/powerbi/connector/Snowflake', 'https://analysis.windows.net/powerbi/connector/snowflake') external_oauth_token_user_mapping_claim = 'upn' external_oauth_snowflake_user_mapping_attribute = 'login_name' 例として、テナントIDがa828b821-f44f-4698-85b2-3c6749302698の場合、 external_oauth_issuerは、https://sts.windows.net/a828b821-f44f-4698-85b2-3c6749302698/ となります。 テナントIDの後にスラッシュ(/)を含める点に注意してください。 CREATE SECURITY INTEGRATION (Snowflake OAuth) | Snowflake Documentation docs.snowflake.com   (Snowflake設定) ユーザー作成 セキュリティ統合が成功すれば、Entra IDユーザーのUPN属性値と、Snowflakeユーザーのlogin_name属性値が紐づきます。 逆に言うと、Entra IDのユーザーからSSOを使用してSnowflakeに接続するためには、対象のUPNと同じlogin_nameのSnowflakeユーザーを作成する必要があります。 各ユーザーのUPN(ユーザープリンシパル名)は、Entra IDのユーザー一覧から、対象のユーザーを選択した概要ページから確認できます。 取得したUPNをもとに、SQLの実行等でSnowflakeユーザーを作成しましょう。 CREATE USER [ユーザー名(任意)] PASSWORD = '[パスワード(任意)]' LOGIN_NAME = ' [EntraIDのUPN] ' DEFAULT_ROLE = [デフォルトロール] CREATE USER | Snowflake Documentation docs.snowflake.com 注意点として、ユーザーを作成する際は、後にPower BIのレポートから参照しようとしているデータに応じた権限をデフォルトロールで設定する必要があります。また、Power BIから使用されるウェアハウスに対するUSAGE権限が付与されている必要があります。 付与された権限に不足がある場合、PowerBI側の認証時にエラーになってしまいます。 Snowflake Community Join our community of data professionals to learn, connect, share and innovate together community.snowflake.com   (Power BI設定)Snowflake SSOの有効化 続いて、Power BI側の管理設定です。 グローバル管理者権限を持つユーザーでPower BIにサインインし、 [設定]>[Power BI設定] > [管理ポータル] を選択します。 そこから、[テナント設定] > [統合の設定] > [Snowflake SSO] を選択して展開し、 設定を[有効]に切り替えた後、[適用]を選択します。 マニュアルだと、有効にしてから反映までに最大1時間かかるとの記載がありました。   (Power BI Desktop設定) データソースの追加 ここからは、Power BIでSnowflakeのレポート作成する際の考慮点になります。 まず、レポートを作成するためにはデータソースの用意が必要ですが、 データソースとしてSnowflakeに接続する場合、Power BI Desktopから行う必要があります。 Power BI Desktopと、ブラウザのPower BIサービス(クラウドベース)の違いや、 Power BI Desktopの取得方法は以下をご参考ください Power BI Desktop と Power BI サービスの比較 - Power BI Power BI Desktop ダウンロード アプリケーションとクラウドベースの Power BI サービスの違いについて説明し、比較します。 learn.microsoft.com Power BI Desktop の取得 - Power BI Power BI Desktop をダウンロードできるさまざまな方法と、それをインストールするために使用できるオプションについて説明します。 learn.microsoft.com 大まかな違いとしては、 Power BI Desktopはレポート作成用途の機能が充実しており、 Power BIサービス(クラウドベース)は、レポートの共有用途の機能が充実しています。 Power BI Desktopは、PowerBIサービスと同じアカウントでサインインできます。 データソースとしてSnoflakeに接続する場合は、レポートのデータ追加画面から、「別のソースからデータを取得する」をクリックし、Snowflakeを選択します。 Snowflakeのサーバ情報、ウェアハウス情報を入力した後にユーザー情報が聞かれますが、SSOを使用する場合はこのときに、「Microsoft Account」を選択します。 Snowflake側の設定が上手くいっていれば、Entra IDのユーザー情報による認証で、Snowflakeのデータが参照できるようになるはずです。   (Power BI設定) セマンティックモデル設定 Power BI Desktopで作成したレポートは「発行」ボタンからPower BI サービスに共有が可能です。 Power BI Desktop からの発行 - Power BI セマンティック モデルとレポートを Power BI Desktop から Power BI サービスに発行する方法について説明します。これにより、モデル内のデータが Power BI ワークスペースに発行されます。 learn.microsoft.com 発行先のワークスペースを選択すると、レポートとセマンティックモデルがPower BIサービスにアップロードされます。 Power BIのセマンティックモデルには、データソースに接続する際の認証に必要な情報が含まれます。 アップロードされたセマンティックモデルの設定にアクセスし、[データソースの資格情報]に進んでから[資格情報を編集]を選択します。 認証方法が「OAuth2」に選択されている場合、SSOを利用した設定が引き継がれています。 Power BI サービスのセマンティック モデル - Power BI Power BI サービスのセマンティック モデルについて説明します。これはレポート作成と視覚化の準備ができたデータのソースを表します。 learn.microsoft.com   最後に 上記の手順だと、利用ユーザーが増えるたびに手動でSnowflakeユーザーを作成する必要があります。追加でプロビジョニングの設定を行えば、その作業を自動化することも可能なようです。 チュートリアル: Snowflake を構成し、Microsoft Entra ID を使った自動ユーザー プロビジョニングに対応させる - Microsoft Entra ID Snowflake に対してユーザー アカウントのプロビジョニングとプロビジョニング解除を自動的に実行するための Microsoft Entra ID の構成方法について説明します。 learn.microsoft.com これで、接続のための設定は完了です。 設定してみて詰まったポイントがいくつかあったので、少しでも参考になれば幸いです!
アバター
みなさん、こんにちは。SCSKで飼われているひつじです! 最近の私、なんと週3でサウナに通ってるんだ。サウナって最高だよね! さてさて、半年前くらいからちょっとしたことがきっかけで、当社新人様の指導をすることになっちゃったんだ。そしたらね、みんなで一緒に考えたんだけど、新人のみんなが自分たちでテックブログを書いてみんなで楽しめるイベントをやろうってことになったんだ! うちの会社にはね、ありがたいことに「TechHarmony」というブログサイトがあるんだよ。そこで新人のみんなが自由に発信できるんだ。それを使って新人たちにブログを書いてもらっちゃったんだ。楽しみだよね、みんなの書いたブログを読むの。 そもそもなんでブログを書くのか? 新人様の取り組みとしてなぜブログなのか。以下に列挙したいと思います! 人に伝えようとすることで自分の理解になる。 昔の人は言いました「100回の購読より、1回の寄稿だと。」 新人様はインプットする機会は多いですがアウトプットすることで知識定着に寄与できます。 「テックブログを書く」という道の最初の一歩を作る。 テックブログなんて社外に発信できるなんてすごいエンジニアだけなんだ。という畏怖の取り除きを解消することができます。 新人育成の中で先輩社員がリードしてあげることで新人様の最初の一歩を促すことができます。 社内外に顔を売るチャンスを作る。 社外発信することにより人目につき、名前や顔が売れていきます。 パブリックな活動を評価するような仕組みも社外にはあるので、そこに取り上げてもらうことで当社としても個人としても対外的な評価を受けれるのは素晴らしいことです。また社内向けには報告会を行うこと新人様と役職者をつなげるような活動にも発展できます。 新人様の取り組み紹介 ということで今期取り組んだ新人様4名の記事を紹介したいと思います。 ヒルタさんの記事 AWS関連のブログをメインに寄稿頂きました。ブログ寄稿を通じて得られた自身の体験をわかりやすく整理していただきました! マセダさんの記事 親しみやすい記事をモットーにAWS、AIサービス関連のブログを寄稿頂きました。 ブログ寄稿にあたり最新の技術アップデートを意識できるようになったとのことです! サトウさんの記事 明るく楽しく元気よくをキャッチフレーズに当社クラウドサービス「USiZE」に関する寄稿をいただきました。 ブログ執筆を通してお客様からフィードバックを頂いたりと良いご経験もあったようです! エギさんの記事 Google関連のカンファレンスの参加レポートやご自身のGCP関連の業務に関する記事を投稿頂きました。 「知識の整理になった!」「創造性の刺激になった!」「カンファレンスのモチベになった!」など前向きに取り組んでいただきました。 まとめ 今期はなんと、4人の新人たちがブログに寄稿してくれたんだ!さらに、たくさんの役職者に向けて成果をプレゼンしたよ。 忙しい日々だけど、これからも会社内外で情報発信を頑張っていきたいね!初めの一歩を忘れずに! 末筆になりますが、ご査収のほど、よろしくお願い申し上げます。
アバター
はじめまして。SCSK渡辺(大)です。 シティーハンターの実写映画が面白かったので続編を熱望しています。 今回は、 Amazon Bedrock の Knowledge Base で 文字変換 をやってみました。 Pythonのreplaceメソッドを使えば簡単に文字変換することが出来るのですが、敢えてBedrockのKnowledge Baseを使いました。 まだまだ修行中の身ですので間違いが多々あるかもしれませんが、暖かい目で見て頂けると幸いです! 目標 文字変換前のテキストファイルをS3にアップロードするだけで、文字変換後のテキストファイルを得ることが出来るようになる! 結果 先に結果を見たい方のみクリック!    2回目で想定通りに変換することが出来ました! 概要 フロー図 処理の流れ ①.ユーザーは変換前のテキストを所定の S3 にアップロードします。 ②.Lambda は S3 にファイルがアップロードされたことをトリガーにして実行されます。 ③.Lambda は Bedrock を呼び出し、変換前のテキストを渡します。 ④.Bedrock は Knowledge Base OpenSearch に変換ルールの有無を確認します。 ⑤.Knowledge Base OpenSearch は Bedrock に変換ルールを返します。 ⑥.Bedrock は変換ルールに沿って変換前のテキストを変換することで、変換後のテキストを生成します。 ⑦.Bedrock は変換後のテキストを Lambda に返します。 ⑧.Lambda は変換後のテキストを所定の S3 にアップロードします。 Agents for Amazon Bedrock で Claude モデルに問い合わせる分岐のある RAG をつくる Agents for Amazon Bedrock を使用して簡単な RAG をつくってみましたので、RAG の分岐部分の設定や基盤モデルへの問い合わせコードを紹介します。 blog.usize-tech.com 2024.02.26   構築手順 記事執筆時点ではBedrockのKnowledge Baseを使えるリージョンはバージニア北部とオレゴンのみでしたので、今回はバージニア北部(us-east-1) で各資源を作成しました。Knowledge Baseを使えるリージョンの最新情報は ユーザーガイド を確認してください。 S3 S3バケットの作成 まずはS3バケットを3つ作成します。 バケット名を入力し、その他の設定はノールック(=デフォルト)で作成します。 変換ルール格納先 : Bedrock Knowledge Baseと再同期する際に変換ルール以外のファイルが存在していると、想定通りの変換をしない 可能性があるため専用で作成。 変換前テキスト格納先 : Lambdaのトリガーになるバケットであり、ここに変換前テキスト以外が格納されてしまうと、そのタイミングでもLamdaが 稼働してしまうため専用で作成。 変換後テキ スト格納先 : 上記に伴い、専用で作成。 変換ルールのアップロード 変換ルール格納先のS3バケッ トに「rule.txt」 をアップロードします。 このテキストに記載されているルールに則って変換処理を行ってください。 ルール①:りんご→赤色の丸い果物 ルール②:オレンジ→オレンジ色の丸い果物 ルール③:葡萄→紫色の丸くて小さい果物 ルール④:メロン→緑色の丸くて大きい果物 ルール⑤:バナナ→我が子がこよなく愛する黄色い果物 ルール⑥:ルール①からルール⑤のどれにも当てはまらない場合は、未知の果物   Bedrock Knowledge Base Bedrock Knowledge Base の作成 下記の記事を参考にBedrock Knowledge Baseを作成します。 生成AI初心者がAmazon BedrockのKnowledge baseを使ってRAGを試してみた AWS re:Invent2023にて、Amazon BedrockのKnowledge baseとAgentsがGAされたと発表がありました。今回はこのうちKnowledge baseを利用して、RAG(Retrieval Augment Generation)を試してみたいと思います。 blog.usize-tech.com 2023.12.07 続いて、下記の記事を参考に機械学習モデルの有効化を行います。 今回は流行りのClaude 3 Haikuを使用したかったので、有効化されていることを確認しました。 Amazon Bedrockの良いところを実感しよう Amazon Bedrockがリリースされました。python boto3を使ってAPIアクセスします。2つのモデルへの簡易的なアクセスをするプログラムを比較し、Amazon Bedrockの特徴を考えます。 blog.usize-tech.com 2023.10.02 ナレッジベースIDを控える Lambda(Python)の中でナレッジベースIDを指定する必要があるため控えておきます。   Lambda Lambdaの作成 「関数の作成」→「設計図の使用」にて下記で作成します。 設計図名:Get S3 object(Python3.10) 実行ロール:AWSポリシーテンプレートから新しいロールを作成 ポリシーテンプレート – オプション:Amazon S3 オブジェクトの読み取り専用アクセス権限 S3トリガー バケット:変換前テキスト格納先のバケット イベント:PUT ランタイム設定の変更 最新のPythonランタイムに変更します。 今回はPython3.12に変更しました。 アクセス制限の変更 LambdaがBedrockを使用できるようにする為、ロールにインラインポリシーで下記を追加します。 { "Version" : "2012-10-17" , "Statement" : [ { "Effect" : "Allow" , "Action" : "bedrock:*" , "Resource" : "*" } ] } また、AWSLambdaS3ExecutionRoleがアタッチされていますが、S3からファイルを取得(Get)する権限しかない為、こちらはデタッチします。 {     "Version": "2012-10-17",     "Statement": [         {             "Effect": "Allow",             "Action": [                 "s3:GetObject"             ],             "Resource": "arn:aws:s3:::*"         }     ] } 代わりにAmazonS3FullAccessをアタッチします。 {     "Version": "2012-10-17",     "Statement": [         {             "Effect": "Allow",             "Action": [                 "s3:*",                 "s3-object-lambda:*"             ],             "Resource": "*"         }     ] } boto3のバージョンアップ 下記の記事にある通り、boto3 ver.1.28.72が内包されているPython3.12がリリースされた為、boto3のバージョンアップは実施不要です。 後程出てきますが、私が理解出来ていなかっただけで、バージョンアップは必要でした。 Amazon Bedrock(Titan Textモデル)でAWSブログを要約して通知する 昨年、AWSブログの更新を検出しTeamsに通知するという記事を発信しました。 そこで今回はこれに生成AIの要素を追加し、記事を要約して通知することにチャレンジしてみたいと思います。 blog.usize-tech.com 2023.12.25 コードの修正 最初に掲げた目標の通りにLambdaが動くよう、コードを修正します。 下記は私が人生で初めて書いたPythonのコードです。ご査収ください。 RAGの一般的な使い方では資料リンクを付けて回答させるのが良いかと思いますが、今回は文字変換させたいだけで変換ルールテキスト(rule.txt)の リンクを貰っても使わないので、回答にリンクは付いてこないようにしています。 モデルID はリンクから確認してしてください。 ★の3箇所は適宜修正してください。 import json import boto3 import urllib.parse import sys s3 = boto3.client('s3') boto3 = boto3.client('bedrock-agent-runtime')   # Bedrock処理 def convert_text(knowledge_txt):     response = boto3.retrieve_and_generate(         input={"text": knowledge_txt},         retrieveAndGenerateConfiguration={             "type": "KNOWLEDGE_BASE",             "knowledgeBaseConfiguration": {                 'generationConfiguration': {                     'promptTemplate': {                         'textPromptTemplate': 'あなたは、ユーザーがs3にアップロードしたテキストの内容を変換して回答するエージェントです。'\                         '変換のルールは「rule.txt」に記載されています。回答は必ず日本語にしてください。'\                         'ユーザーには変換後のテキストのみを回答してください。ユーザーには変換前のテキストを回答しないでください。'\                         '$search_results$'                     }                 },                 "knowledgeBaseId": "★ナレッジベースID★",                 "modelArn": "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-3-haiku-20240307-v1:0",                 "retrievalConfiguration": {                     "vectorSearchConfiguration": {                         "overrideSearchType": "HYBRID"   # or SEMANTIC                     }                 },             },         },     )     return response["output"]["text"] def lambda_handler(event, context):     # トリガーされたイベントからバケット名とオブジェクトキーを取得     bucket = event['Records'][0]['s3']['bucket']['name']     key = urllib.parse.unquote(event['Records'][0]['s3']['object']['key'])          # 元のオブジェクトの内容を取得     response = s3.get_object(Bucket=bucket, Key=key)     original_txt = response['Body'].read().decode('utf-8')     # Bedrock処理コール     response_output = convert_text(original_txt)     # 新しいオブジェクト名を決める     new_key = ★新しいオブジェクト名★     # 書き換えた内容を新しいオブジェクトとしてS3にアップロード     bucket = ★変換後テキスト格納先S3バケット名★     s3.put_object(Bucket=bucket, Key=new_key, Body=response_output.encode('utf-8'))     print(f'Successfully uploaded {new_key} to {bucket}')     return {         'statusCode': 200,         'body': 'Object uploaded successfully'     }     sys.exit()   いざ出陣! ついに変換前テキストが出陣する時が来ました。 今回はAWSコンソールのS3画面から、下記の「果物.txt」を変換前テキスト格納先にアップロードしました。 りんご バナナメロン 葡萄 Orange オレンジ パパイヤ ドーナツ 林檎はりんごです りんごは林檎です エラー発生 下記のエラーとなりました。 [ERROR] ParamValidationError: Parameter validation failed: Unknown parameter in retrieveAndGenerateConfiguration.knowledgeBaseConfiguration: "generationConfiguration", must be one of: knowledgeBaseId, modelArn Unknown parameter in retrieveAndGenerateConfiguration.knowledgeBaseConfiguration: "retrievalConfiguration", must be one of: knowledgeBaseId, modelArn Traceback (most recent call last):   File "/var/task/lambda_function.py", line 48, in lambda_handler     response_output = convert_text(original_txt)   File "/var/task/lambda_function.py", line 10, in convert_text     response = boto3.retrieve_and_generate(   File "/var/lang/lib/python3.12/site-packages/botocore/client.py", line 553, in _api_call     return self._make_api_call(operation_name, kwargs)   File "/var/lang/lib/python3.12/site-packages/botocore/client.py", line 962, in _make_api_call     request_dict = self._convert_to_request_dict(   File "/var/lang/lib/python3.12/site-packages/botocore/client.py", line 1036, in _convert_to_request_dict     request_dict = self._serializer.serialize_to_request(   File "/var/lang/lib/python3.12/site-packages/botocore/validate.py", line 381, in serialize_to_request    raise ParamValidationError(report=report.generate_report()) boto3のバージョン更新履歴と思われるページ を見てもいまいち分からず。 Claude 3 Haikuに聞いてみました。 認識できないAPIがある様子なので、最新のboto3をインストールしてLambdaレイヤーにセットすることにしました。 boto3インストールはAWS CloudShellから実施しました。 全量ではありませんがログは下記の通りです。 なお、最新のboto3はv.1-34-100でした。 [cloudshell-user@ip-xx-xxx-xxx-xx ~]$ mkdir boto3work [cloudshell-user@ip-xx-xxx-xxx-xx ~]$ pip install -t ./boto3work boto3 Collecting boto3   Downloading boto3-1.34.100-py3-none-any.whl (139 kB)      |████████████████████████████████| 139 kB 3.6 MB/s           Collecting botocore<1.35.0,>=1.34.100   Downloading botocore-1.34.100-py3-none-any.whl (12.2 MB)      |████████████████████████████████| 12.2 MB 26.9 MB/s           Collecting jmespath<2.0.0,>=0.7.1   Downloading jmespath-1.0.1-py3-none-any.whl (20 kB) Collecting s3transfer<0.11.0,>=0.10.0   Downloading s3transfer-0.10.1-py3-none-any.whl (82 kB)      |████████████████████████████████| 82 kB 413 kB/s             Collecting python-dateutil<3.0.0,>=2.1   Downloading python_dateutil-2.9.0.post0-py2.py3-none-any.whl (229 kB)      |████████████████████████████████| 229 kB 44.1 MB/s           Collecting urllib3<1.27,>=1.25.4   Downloading urllib3-1.26.18-py2.py3-none-any.whl (143 kB)      |████████████████████████████████| 143 kB 49.3 MB/s           Collecting six>=1.5   Downloading six-1.16.0-py2.py3-none-any.whl (11 kB) Installing collected packages: six, urllib3, python-dateutil, jmespath, botocore, s3transfer, boto3 Successfully installed boto3-1.34.100 botocore-1.34.100 jmespath-1.0.1 python-dateutil-2.9.0.post0 s3transfer-0.10.1 six-1.16.0 urllib3-1.26.18 [ cloudshell-user@ip-xx-xxx-xxx-xx   ~ ] $ mv ./boto3work ./python [cloudshell-user@ip-xx-xxx-xxx-xx ~]$ zip -r boto3-1.34.100.zip ./python 以下省略 zipファイルをダウンロード後、レイヤーを作成し、Lambdaにセットしました。 ということで、再度「果物.txt」をアップロードしてみました。 タイムアウト発生 エラーは解消されましたが、タイムアウトが発生しました。 2024-XX-XXXXX:XX:XX.XXXX XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX Task timed out after 3.02 seconds Claude 3 Haikuから回答を得るまでに3秒以上掛かっているようなので、タイムアウトを30秒に変更してみました。 ということで、再々度、「果物.txt」をアップロードしてみました。 成功? 変換後テキストが作成されました! 中身を確認してみます。 りんご 黄色い果物メロン 紫色の丸くて小さい果物 オレンジ色の丸い果物 オレンジ 未知の果物 未知の果物 りんごはりんごです りんごはりんごです 惜しいですね。 質問するたびに回答精度が上がるかもしれないので、もう一度、変換前テキストをアップロードしてみました。 成功! 赤色の丸い果物 我が子がこよなく愛する黄色い果物、緑色の丸くて大きい果物 紫色の丸くて小さい果物 オレンジ色の丸い果物 オレンジ色の丸い果物 未知の果物 未知の果物 赤色の丸い果物 赤色の丸い果物 空白行を詰められてしまいましたが、、、 2回目で想定通りに変換することが出来ました! まとめ 良かった点は、新技術に触れることが出来たことは勿論として、業務経験が浅くても頑張ればモノづくりが出来ることに気づけたことです。 反省点としては、エラーとなってしまったboto3バージョン不足については事前に気づくべきでした。 また、後から気づいたのですが、今回のやってみたをやってみる前に下記の記事を見ておくべきでした。 ガイドラインに則ったプロンプトであれば、1回目で想定通りに変換することが出来たかもしれませんね。 Amazon Bedrockでプロンプトエンジニアリングを学ぶ Amazon Bedrockを使ってプロンプトエンジニアリングのコツやパラメータ調整についてご説明します。 blog.usize-tech.com 2024.01.25
アバター