TECH PLAY

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

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

1268

こんにちは、SCSK株式会社の中野です。 2024年6月に最新バージョンであるZabbix 7.0 LTSがリリースされました。 Zabbix 7.0の新機能をいろいろ試しておりまして、今回は多要素認証機能(Duo認証)の利用方法をご紹介いたします。 多要素認証機能(TOTP)の利用方法は前回の記事「 多要素認証機能 (TOTP) を利用してみた 」にて紹介しております。 宜しければご覧ください。 Zabbixとは まずはZabbixの説明を簡単にさせていただきます。 Zabbixは、エンタープライズ対応のオープンソース統合監視ツールです。 サービスやそれを支える ITシステム(サーバ、ネットワーク機器等)の状態を把握し、障害の予兆やサービスへ影響を及ぼす事象が発生した際に、システム管理者やオペレータに通知を行うオープンソースの統合監視ソリューションです。 数万デバイス規模のエンタープライズ環境でも多数の稼動実績を誇っています。 Zabbixの詳細情報については、下記リンクよりご確認ください。 Zabbix :: The Enterprise-Class Open Source Network Monitoring Solution ZabbixはITインフラストラクチャ・コンポーネントの可用性やパフォーマンスを監視するためのエンタープライス向けソフトウェアです。Zabbixはオープンソース・ソフトウェアとして開発されており、無料でダウンロードいただくことが可能です。 www.zabbix.com   多要素認証機能 Zabbix7.0 LTSは多要素認証により、Zabbix Webインターフェースへのアクセスのセキュリティが強化されております。 認証方法としては、以下2つの認証が利用可能です。 ・ワンタイムパスワード(TOTP) ・Duo認証 今回はDuo認証を用いて、多要素認証を実装していきたいと思います。 ※Duo認証は多要素認証(MFA)を含む一連のセキュリティ機能を提供してます。また、シングルサインオン(SSO)やデバイスの信頼性チェック、適用型アクセスポリシーなど、セキュリティを強化しながらユーザビリティを維持するための追加機能が提供されていることが特徴です。 多要素認証機能(Duo認証)を実装 (事前準備) Duo認証を利用するためには、以下の事前準備を実施しておく必要がございます。 ・Duo Mobileアプリのインストール ・Zabbixサーバへphp-curlのインストール ・HTTPSでのZabbixへのアクセス ※ブラウザでZabbixへアクセスする際に、IPアドレスではなくホスト名でアクセスする必要があります。 ・Duoサーバへのアウトバウンド通信の許可設定 ・Webサーバでコンテンツセキュリティポリシーを有効にしている場合は、CSPディレクティブに「duo.com」を追加 また、Duo上でDashboard/Applications/Web SDK上から以下の認証情報をメモしてください。 ・Client ID ・Client secret ・API hostname 多要素認証機能(Duo認証)を実装 (Zabbixサーバ側の設定) ZabbixでDuo認証を利用する方法を記載します。 まずは「ユーザ」/「認証」/「多要素認証(MFA)の設定」で「多要素認証の有効化」にチェックを入れます。 新しい認証方法を「追加」します。 タイプ:「Duoユニバーサルプロンプト」 名前:任意の文字列 APIホスト名:上記でメモした「API hostname」を入力 クライアントID:上記でメモした「Client ID」を入力 クライアントシークレット:上記でメモした「Client secret」を入力 続いて、「ユーザ」/「ユーザーグループ」上で多要素認証を上記の多要素認証(MFA)方式名に変更し「追加」をクリックします。 以下の例だと「Duo」といった方式名にしてます。 以上でZabbix側の多要素認証機能の設定は完了です。 多要素認証機能(Duo認証)を実装 (ユーザー側の設定) 上記で設定したグループに所属するユーザーでZabbix Webインターフェースへのアクセスする際に Duoにリダイレクトされるので、「Get Started」をクリックし、Duoのセットアップをしていきます。   追加するデバイスを選択します。今回は「Duo Mobile」を選択してます。 電話番号の記載をした後に、「Continue」をクリックします。 Duo Mobileをダウンロードしていない場合はダウンロードを実施し、「Next」をクリックします。 Duo Mobile上でQRコードを読み込みます。 成功すると、Duo Mobileを追加できた旨が表示されるので「Continue」をクリックします。 他のデバイスを追加する画面が出ましたが、今回はスキップ「Skip for now」しました。 セットアップが完了し、「Log in with Duo」をクリックします。 以上でユーザー側の多要素認証機能の設定も完了です。 次回以降、Duo Mobileアプリが提供する方法(Duo Push、パスコード、バイバスコードなど)でログインすることが可能になります。 最後に Zabbix 7.0の新機能であるDuoによる多要素認証はTOTP同様に簡単に実装することができ、よりセキュリティの強化を図ることが可能になりました。 IDとパスワードだけでは不十分であると感じる場合は、多要素認証機能の実装をご検討いただければと思います。 また今回説明した機能の他にも、Zabbix7.0はプロキシ冗長化構成や分散監視の実装、スクリーンショットも取得ができる新しいWeb監視、監視処理の効率化によるパフォーマンスの大幅な向上やダッシュボードの新しいウィジェットなど、非常に多くの機能を実装しております。 他の新機能も試してみて情報を発信していきたいと思います。 最後まで読んでいただき、ありがとうございました。
こんにちは、SCSK株式会社の小寺崇仁です。 このブログではZabbixのデータベース内部構成について紹介をしたいと思ってます。 第1弾としてホスト設定を取得するSQLを作成してみます。 はじめに 私はZabbixの構築を主に担当しています。最近はZabbixと外部システムを連携しているお客様が増加傾向にあると感じています。外部システムと連携をしたいお客様にはサポート範囲内である、ZabbixAPIを使用した方法を案内しています。 しかし、Zabbixはオープンソースであり、RDBMSを使用しているため、DBを直接参照することが可能です。DBの知識がある方であれば、容易にデータ抽出ができますので、表の構造とサンプルSQLを記事にしたいと思います。 注意事項 Zabbixのデータベース内部に関するは情報が少ないです。そのため私が個人的にDBを解析して情報発信を行う非公式情報になります。 当社ではZabbixの有償サポートを実施しております。Zabbixのデータベース内部に関する問い合わせはサポート範囲に含まれておらず、本ブログの内容をサポート宛に問い合わせをいただいても回答ができません。 個人的に作成したSQLです。自己責任でご利用ください。間違っていた場合イベント等でこっそり教えてください。 テーブル定義 hosts ホスト情報が格納されるメインのテーブルです。 Field 日本語名称 Type Null Key Default Extra hostid ホストID bigint unsigned NO PRI NULL   host ホスト名 varchar(128) NO MUL     name 名前 varchar(128) NO MUL     description 説明 text NO   NULL   templateid テンプレートID bigint unsigned YES MUL NULL   flags フラグ int NO   0   status ステータス int NO MUL 0 0:有効 1:無効 3:テンプレート maintenance_status メンテナンスステータス int NO   0   ipmi_authtype IPMI認証タイプ int NO   -1   ipmi_privilege IPMI権限 int NO   2   ipmi_username IPMIユーザー名 varchar(16) NO       ipmi_password IPMIパスワード varchar(20) NO       maintenanceid メンテナンスID bigint unsigned YES MUL NULL   maintenance_type メンテナンスタイプ int NO   0   maintenance_from メンテナンス開始 int NO   0   tls_connect TLS接続 int NO   1   tls_accept TLS受け入れ int NO   1   tls_issuer TLS発行者 varchar(1024) NO       tls_subject TLSサブジェクト varchar(1024) NO       tls_psk_identity TLS PSKアイデンティティ varchar(128) NO       tls_psk TLS PSK varchar(512) NO       proxy_hostid プロキシホストID bigint unsigned YES MUL NULL – proxy_address プロキシアドレス varchar(255) NO       auto_compress 自動圧縮 int NO   1   discover ディスカバー int NO   0   lastaccess 最終アクセス int NO   0   custom_interfaces カスタムインターフェース int NO   0   uuid UUID varchar(32) NO       name_upper 名前(大文字) varchar(128) NO MUL     hosts_gropus ホストとグループの関連付けが保存されるテーブルです。 Field 日本語名称 Type Null Key Default Extra hostgroupid ホストグループID bigint unsigned NO PRI NULL   hostid ホストID bigint unsigned NO MUL NULL   groupid グループID bigint unsigned NO MUL NULL   hstgrp ホストグループが保存されるテーブルです。 Field 日本語名称 Type Null Key Default Extra groupid グループID bigint unsigned NO PRI NULL   name ホストグループ名 varchar(255) NO MUL     internal インターナル int NO   0   flags フラグ int NO   0   uuid UUID varchar(32) NO       interface インターフェースに関するテーブルです。 Field 日本語名称 Type Null Key Default Extra interfaceid インターフェースID bigint unsigned NO PRI NULL   hostid ホストID bigint unsigned NO MUL NULL   main メイン int NO   0   type タイプ int NO   1   useip IP使用 int NO   1   ip IPアドレス varchar(64) NO MUL 127.0.0.1   dns DNS varchar(255) NO       port ポート varchar(64) NO   10050   available 利用可能 int NO MUL 0   error エラー varchar(2048) NO       errors_from エラー発生元 int NO   0   disable_until 無効期限 int NO   0   サンプルSQL ホスト取得 SELECT h.hostid ,h.host ,h.name as 表示名 ,CASE h.status WHEN 1 THEN '無効' ELSE '有効' END AS ステータス FROM hosts h WHERE h.status in (0,1); ホスト+ホストグループ SELECT h.hostid ,h.host ,h.name as 表示名 ,CASE h.status WHEN 1 THEN '無効' ELSE '有効' END AS ステータス ,hg.name FROM hosts h LEFT JOIN hosts_groups hgs ON h.hostid = hgs.hostid LEFT JOIN hstgrp hg ON hgs.groupid = hg.groupid WHERE h.status in (0,1) ホスト+インターフェース SELECT h.hostid AS ホストID ,h.host as ホスト ,h.name as 表示名 ,CASE h.status WHEN 1 THEN '無効' ELSE '有効' END AS ステータス ,CASE i.type WHEN 1 THEN 'Zabbixエージェント' WHEN 2 THEN 'SNMP' WHEN '3' THEN 'IPMI' WHEN '4' THEN 'JAVA' END AS タイプ ,CASE i.main WHEN 1 THEN 'メイン' END AS メイン ,CASE i.useip WHEN 0 THEN 'DNS' ELSE 'IP' END AS 接続方法 ,i.ip AS IPアドレス ,i.dns AS DNS名 ,i.port AS ポート ,s.version AS SNMPバージョン ,s.community AS SNMPコミュニティ ,CASE s.bulk WHEN 1 THEN '有効' END AS SNMPバルク FROM hosts h LEFT JOIN interface i ON h.hostid = i.hostid LEFT JOIN interface_snmp s ON i.interfaceid = s.interfaceid WHERE h.status in (0,1) 最後に 弊社ではZabbix関連サービスを展開しています。以下ページもご参照ください。 SCSK Plus サポート for Zabbix SCSK Plus サポート for Zabbix 世界で最も人気のあるオープンソース統合監視ツール「Zabbix」の導入構築から運用保守までSCSKが強力にサポートします www.scsk.jp ★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
こんにちは、SCSK株式会社の中野です。 2024年6月4日に最新バージョンであるZabbix 7.0 LTSがリリースされました。 Zabbix 7.0の新機能として新たに多要素認証がサポートされましたので、機能の利用方法をご紹介いたします。 Zabbixとは まずはZabbixの説明を簡単にさせていただきます。 Zabbixは、エンタープライズ対応のオープンソース統合監視ツールです。 サービスやそれを支える ITシステム(サーバ、ネットワーク機器等)の状態を把握し、障害の予兆やサービスへ影響を及ぼす事象が発生した際に、システム管理者やオペレータに通知を行うオープンソースの統合監視ソリューションです。 数万デバイス規模のエンタープライズ環境でも多数の稼動実績を誇っています。 Zabbixの詳細情報については、下記リンクよりご確認ください。 Zabbix :: The Enterprise-Class Open Source Network Monitoring Solution ZabbixはITインフラストラクチャ・コンポーネントの可用性やパフォーマンスを監視するためのエンタープライス向けソフトウェアです。Zabbixはオープンソース・ソフトウェアとして開発されており、無料でダウンロードいただくことが可能です。 www.zabbix.com   多要素認証機能 Zabbix7.0 LTSは多要素認証により、Zabbix Webインターフェースへのアクセスのセキュリティが強化されております。 認証方法としては、以下2つの認証が利用可能です。 ・ワンタイムパスワード(TOTP) ・Duo認証 今回はワンタイムパスワード(TOTP)を用いて、多要素認証を実装していきたいと思います。 ※TOTPはTime-based One-Time Passwordの略称です。一度しか利用できない「ワンタイムパスワード」の一種であり、時間に基づいた乱数からパスワードを生成します。生成されるパスワードは30秒ほどで切り替わるため、不正アクセスなどのリスクを抑えられるのが特徴です。 多要素認証機能(TOTP)を実装 (Zabbixサーバ側の設定) Zabbixでワンタイムパスワード(TOTP)を利用する方法を記載します。 まずは「ユーザ」/「認証」/「多要素認証(MFA)の設定」で「多要素認証の有効化」にチェックを入れます。 新しい認証方法を「追加」します。 タイプ:「TOTP」 or 「Duoユニバーサルプロンプト」 名前:任意の文字列 ハッシュ関数:「SHA-1」or 「SHA-256」 or 「SHA-512」 認証コード長:「6」 or 「8」 続いて、「ユーザ」/「ユーザーグループ」上で多要素認証を上記の多要素認証(MFA)方式名に変更し「追加」をクリックします。 以下の例だと「MFA」といった方式名にしてます。 以上でZabbix側の多要素認証機能の設定は完了です。 多要素認証機能(TOTP)を実装 (ユーザー側の設定) 上記で設定したグループに所属するユーザーでZabbix Webインターフェースへのアクセスする際に 以下のQRコードが出てきますので、QRコードをスキャン、まやはGoogle Authenticatorアプリに秘密キーを入力し アプリで生成された認証コードを「Vertification code」に入力して「サインイン」ボタンをクリックします。 設定が完了後、次回のログイン時からワンタイムパスワード(TOTP)を使用したログインが可能になります。 以上でユーザー側の多要素認証機能の設定も完了です。   最後に Zabbix 7.0の新機能である多要素認証は簡単に実装することができ、よりセキュリティの強化を図ることが可能になりました。 IDとパスワードだけでは不十分であると感じる場合は、多要素認証機能の実装をご検討いただければと思います。 また今回説明した機能の他にも、Zabbix7.0はプロキシ冗長化構成や分散監視の実装、スクリーンショットも取得ができる新しいWeb監視、監視処理の効率化によるパフォーマンスの大幅な向上やダッシュボードの新しいウィジェットなど、非常に多くの機能を実装しております。 他の新機能も試してみて情報を発信していきたいと思います。 最後まで読んでいただき、ありがとうございました。
こんにちは、広野です。 AWS AppSync を使用したアプリケーションを開発する機会があり、リゾルバ、主に VTL の書き方に関してまとまった知識が得られたので紹介します。前回からの続きもので、今回は引数内のフラグ条件により実行させる処理 (オペレーション) を分岐する方法を紹介します。 本記事では、VTL の書き方にフォーカスしています。ご了承ください。 AWS AppSync、リゾルバ、VTL の説明については以下の記事をご覧下さい。 AWS AppSync リゾルバ (VTL) の書き方サンプル No.1 - Amazon DynamoDB GetItem Amazon DynamoDB に VTL で GetItem をかけるときの基本的な書き方を紹介します。 blog.usize-tech.com 2024.01.09 AWS AppSync リゾルバ (VTL) の書き方サンプル No.2 – Amazon DynamoDB BatchGetItem Amazon DynamoDB に VTL で BatchGetItem をかけるときの基本的な書き方を紹介します。 blog.usize-tech.com 2024.01.19 AWS AppSync リゾルバ (VTL) の書き方サンプル No.3 – Amazon DynamoDB Query Amazon DynamoDB に VTL で Query をかけるときの基本的な書き方を紹介します。 blog.usize-tech.com 2024.02.26 AWS AppSync リゾルバ (VTL) の書き方サンプル No.4 - Amazon DynamoDB PutItem Amazon DynamoDB に VTL で PutItem をかけるときの基本的な書き方を紹介します。 blog.usize-tech.com 2024.02.26 AWS AppSync リゾルバ (VTL) の書き方サンプル No.5 – Amazon DynamoDB UpdateItem Amazon DynamoDB に VTL で UpdateItem をかけるときの基本的な書き方を紹介します。 blog.usize-tech.com 2024.02.27 AWS AppSync を使って React アプリからキックした非同期ジョブの結果をプッシュ通知で受け取る 非同期ジョブを実行した後、結果をどう受け取るか?というのは開発者として作り込み甲斐のあるテーマです。今回は React アプリが非同期ジョブを実行した後に、AWS AppSync 経由でジョブ完了のプッシュ通知を受け取る仕組みを紹介します。 blog.usize-tech.com 2022.12.01 やりたいこと 例えば、AWS AppSync から以下のリクエストを受けたとします。Amazon DynamoDB には適切なデータがある想定です。テーブル名はリゾルバの別の設定 (Data Source) で行います。 引数となるパラメータ: status の中に true/false の Boolean 値、パーティションキー pkey、ソートキー skey、属性 attr 今回は受け取った status をフラグとして、 true の場合はパーティションキーとソートキー、属性をそのまま PutItem し、 false の場合はパーティションキーとソートキーに該当するデータを DeleteItem します。 Amazon DynamoDB に命令する VTL リクエストマッピングテンプレート { "version": "2018-05-29", "operation": #if($context.arguments.status) "PutItem" #else "DeleteItem" #end, #if($context.arguments.status) "key": { "pkey": $util.dynamodb.toDynamoDBJson($pkey), "skey": $util.dynamodb.toDynamoDBJson($skey) }, "attributeValues": { "attr": $util.dynamodb.toDynamoDBJson($context.arguments.attr) } #else "key": { "pkey": $util.dynamodb.toDynamoDBJson($pkey), "skey": $util.dynamodb.toDynamoDBJson($skey) } #end } operation の部分に、上記のように if 分岐を書くことで、オペレーションを PutItem にするか DeleteItem にするか、1行で分けることができます。 当然、PutItem のときと DeleteItem のときで DynamoDB に渡す “key” の項目が異なりますので、そこも if 分岐を書きます。 簡単な処理であれば、1つの VTL で引数によって処理を変えられるので、使いようによっては開発を効率化できると思います。もちろん他のオペレーションにも応用できます。 レスポンスマッピングテンプレート 結果は配列に格納されます。戻ってきたデータをそのままアプリ側に戻す書き方です。 $utils.toJson($context.result) VTL に関しては以下の AWS 公式ドキュメントも必要に応じてご確認ください。 Resolver mapping template reference for DynamoDB - AWS AppSync Resolver Mapping Template Reference for DynamoDB for AWS AppSync. docs.aws.amazon.com まとめ いかがでしたでしょうか。 VTL 内では if 分岐を自由に書けるので、今回の例に限らずやりたいことを試してみて頂けたらと思います。 本記事が皆様のお役に立てれば幸いです。
どうも、SCSK株式会社の2023 Japan AWS Jr. Championsの齋藤です。 2024年4月30日を持ちまして、2023 Japan AWS Jr. Championsの任期が満了しました。 Jr.Championsという制度の第一期生ということで、1年間活動してきた記録や感想をこのブログで記載します。 2023 Japan AWS Jr. Championsの活動について そもそもJr. Championsとは何なのか?という方は下記サイトをご参照ください。 2023 Japan AWS Jr. Champions の発表 | Amazon Web Services 皆様、こんにちは!PSA (Partner Solutions Architect) の Yukki です。「 aws.amazon.com 2023 Japan AWS Jr. Championsは、大きく分けて2つの種類の活動特性があったと個人的に考えております。 コミュニティ活動としての特性 公人(インフルエンサー)としての特性 コミュニティ活動としての特性 2023 Japan AWS Jr. Championsでは、毎月約3つのコミュニティ活動があり、他社のJr.Championsなどと交流することができました。 AWS社主催のJr. Champions限定MeetUp Jr. ChampionsによるLTが多め。月によってはWorkshopやJAM大会など実施。 Jr. Champions有志による勉強会 Jr. Champions内のみで開催される有志によるLT会。 Jr. Champions有志によるTopEngineers招待の勉強会 TopEngineersを招待して、Jr. ChampionsによるLTを実施。 公人(インフルエンサー)としての特性 2023 Japan AWS Jr. Championsという名前を背負って公人として活動し、AWSの良さを社内外に幅広くアピールして、周りに影響を与えていく、つまりインフルエンサーのような活動を実施することが求められました。 例えば、JAWSなどの社外勉強会の登壇、社内コミュニティのリード、ブログの執筆、書籍の執筆などです。 これに関しては、自分で機会を探して、自ら手を挙げて積極的に発信をしていく必要がありました。   私のこれまでの活動記録 2つの活動特性がある「2023 Japan AWS Jr. Champions」として、どのような活動をしてきたか書いていきます。 社内での登壇 社内での登壇は下記2件を実施しました。 社内勉強会でのLT 社内で開催された勉強会で、私はAWSハンズオン教材に関する登壇を実施しました。 開催された勉強会が「AWSの勉強法について」のようなテーマだったため、私なりにハンズオンを用いた学習方法のおすすめポイントや、おすすめ教材などの紹介を実施いたしました。 新人研修での登壇 昨年度の自分が所属する部門の新人研修にて、Jr.Championsとして登壇をいたしました。 Jr.Championsは若手が目指す制度という特性があるので、同制度のメリットや、なるための心得といったことを新人向けへ話してきました。登壇後の新人からのアンケートでも、好意的なフィードバックをいただけたことは大変嬉しかったです。 社外での登壇 JAWS-UG東京 ランチタイムLT会 #5 2023年11月に開催されたJAWS-UGのランチタイム会に登壇をしてきました。 テーマは、「AWS上のサイバー攻撃に気をつけよう!」という内容で、よくあると感じるAWS上のサイバー攻撃の事例とその対策についてLTをしてきました。 初めて公の場でのLT登壇をしましたが、オンラインでのLTに慣れていたので、そこまで実感が湧かなかったです(笑) JAWS-UG東京 ランチタイムLT会 #5 (2023/11/21 12:00〜) JAWS-UG東京のリブート企画として開催したフリーテーマのランチLT会、好評だったので毎月継続します! オンラインなので全国どこからでも参加OK。お昼食べながら気軽にご参加ください👍 # アジェンダ 1時間以内でサクッと終わる予定です! ... jawsug.connpass.com グローバルクラウドアーキテクトコミュニティJapan Meetup 2023年11月にNTTデータ様主催のグローバルイベントにて、LT登壇を実施いたしました。 NTTデータ様の海外法人(スペイン、イタリア、ドイツ)のAWS Ambassadorの方々が来日し、各国のコミュニティ活動の事例などをお話しされていました。 グローバルクラウドアーキテクトコミュニティJapan Meetup開催! NTTDATAでは、技術力の最大化に向けて、クラウド技術に関するグローバル連携の強化を推進している。2022年の夏、コロナ禍の最中にスタートしたグローバルクラウドアーキテクトコミュニティ(Global Cloud Architect Com... www.nttdata.com また、イベントの中で、参加者の中から英語によるLT大会がありましたので、そちらに立候補してきました。 初めての英語のLTで、完全にカンペ頼りなLTになってしまいましたが、貴重な体験となったことは間違い無いです! JAWS DAYS 2024 2024年3月に東京・池袋サンシャインシティで開催されJAWS DAYS 2024に、ランチタイムスポンサーとして登壇してきました。 お昼の中の15分でLTができるという枠なので、このTechHarmonyのおすすめ記事を紹介するという内容で、弊社AWS Ambassadorと登壇してきました。 本イベントでは、他の登壇者や、ボランティアの中にもJr.Championsの方々が参加しており、Jr.Championsが登壇するセッションには他のJr.Championsが応援しにいくなど、Jr.Championsの強いつながりを実感したイベントでありました! オンサイトイベントでのLTは慣れておらず、発表は大変緊張しましたが、この1年で1番楽しかったイベントで間違いないです!! コロナ世代で社会人1日目からフルリモート勤務を経験した身としては、オンサイトでのコミュニティ活動の良さを実感したイベントですので、来年も同様のイベントに参加したいと思っています!! JAWS DAYS 2024 JAWS DAYS 2024 Official HP jawsdays2024.jaws-ug.jp Jr. Championsコミュニティでの登壇 前述の「2023 Japan AWS Jr. Championsの活動について」で記載したJr. Championsのコミュニティ活動においても、LT登壇などを実施してきました。 AWS社主催のJr. Champions限定MeetUpでの登壇 前述した「①コミュニティ活動としての特性」の中の①に該当するイベントで登壇をしてきました。 内容としては、「AWS上のサイバー攻撃に気をつけよう!」という内容です。社外登壇のJAWS-UGのランチタイム会とほとんど同様の内容ですが、登壇としてはこちらの方が先です。 Jr.Champions内のイベントで発表した際、好意的なフィードバックなどをいただいたため、社外イベントであるJAWSへの登壇を決めるきっかけになりました。 中々社外のイベントに出る勇気がなかったのですが、Jr.Champions内のイベントというクローズドな場で発表して手応えを感じたため、出てみようというきっかけを作ることができたと考えております。 TopEngineers招待の勉強会 前述した「①コミュニティ活動としての特性」の中の③に該当するイベントで登壇をしてきました。 内容としては、「AWSサポートの使い方」という内容で、AWSサポートには適切の適切な使い方と、アンチパターンなどを発信しました。AWSサポートの使い方について詳しく話をする人はそうそういないようで珍しがられました(笑) ちなみに、このTopEngineers招待の勉強会は、基本オンラインでの開催ですが、弊社の本社がある東京都江東区豊洲周辺の企業はオンサイトで集まって一緒に勉強会を聞くという「 豊洲会 」を開催しております。 私が登壇した際は、弊社の豊洲本社に社内外含めて30人ほど招いて開催をいたしました!   1年を振り返っての感想 Jr.Championsの1年は、大変多くの人や機会に恵まれた1年だと感じております。 多くのイベントに参加し、社内外の多くの人と交流できたことは、私のエンジニア人生でこれから何がしたいのかを考えるいい機会になりました。 この1年で自分には技術的な経験が不足していると感じたのと、これからもっと技術力を磨き、技術の素晴らしさを世に発信できる人になりたいと考えたため、4月から新しい仕事内容に従事し、技術的な研鑽を日々行っております。 Jr.Championsを卒業した後も、技術を勉強し、それを発信し続け、業界をリードできるような人材になれるように努力していきます。   これからJr.Championsになる方へ 私からこれからJr.Championsになる方へ下記2点をすることをお勧めします。 自己分析をすること とにかく発信すること Jr.Championsになって、積極的な発信を求められる立場になりましたが、私自身技術的な仕事をしているわけではなかったのと、周りのJr.Championsの方が強そうに見えて、どのような発信をすれば良いか悩んだ時期も少しだけありました。 しかし、周りのJr.Championsの方が積極的に発信している姿勢を見て感化させられた部分があり、自分の詳しい分野は何か?強みは何か?というのを考えて、徐々に発信活動を増やしていきました。 発信をしてみると、周りの方からは「勉強になりました!」と言ってくださる方も多く、非常にやりがいを感じるようになりました。 そして、発信活動を増やしていくと、周りの方々からお声がけをいただいてイベントに登壇する機会をいただけるなど、周りからの視線も変わってきて、多くの機会や人との出会いに恵まれるようになります。 そのため、これからJr.Championsになる方は、自分の発信できる領域が何かというのを考えて、とにかくなんでも良いので発信してみるといいと思います! 1年という役割の期間は、長いようで短いと感じており、悩んでた時期がもったいなかったなと今は考えておりますので、選ばれた方は貴重な1年をどう過ごすのかをしっかり考えて過ごしていくことをお勧めします!
こんにちは、SCSK株式会社の中野です。 2024年6月4日に最新バージョンであるZabbix 7.0 LTSがリリースされましたので、                         早速インストールしてみたいと思います。 今回は、AWS環境上にRHEL9.3を立てて、その中にZabbix(Ver.7.0)をインストールしてみました。 Zabbixとは まずはZabbixの説明を簡単にさせていただきます。 Zabbixは、エンタープライズ対応のオープンソース統合監視ツールです。 サービスやそれを支える ITシステム(サーバ、ネットワーク機器等)の状態を把握し、障害の予兆やサービスへ影響を及ぼす事象が発生した際に、システム管理者やオペレータに通知を行うオープンソースの統合監視ソリューションです。 数万デバイス規模のエンタープライズ環境でも多数の稼動実績を誇っています。 Zabbixの詳細情報については、下記リンクよりご確認ください。 Zabbix :: The Enterprise-Class Open Source Network Monitoring Solution ZabbixはITインフラストラクチャ・コンポーネントの可用性やパフォーマンスを監視するためのエンタープライス向けソフトウェアです。Zabbixはオープンソース・ソフトウェアとして開発されており、無料でダウンロードいただくことが可能です。 www.zabbix.com   導入手順 早速、Zabbix7.0を導入していきたいと思います。今回の構成は以下とさせていただきます。 ZABBIX VERSION: 7.0 LTS OS DISTRIBUTION: Red Hat Enterprise Linux OS VERSION: 9 DATABASE: MySQL WEB SERVER: Apache SELinux: 無効 Firewalld: 無効 関連パッケージのインストール、DB初期設定 Zabbixをインストールする前に、MySQLとApacheをインストールしておきます。 # 関連パッケージのインストール dnf install mysql-server httpd # データベースを起動 systemctl start mysqld systemctl enable mysqld 続いて、Zabbix用データベースを作成します。                                          DB名、アカウント名やパスワード環境に応じて設定いただければと思います。 # DBへの接続 mysql -uroot -p Enter password: (MySQLのrootアカウントのパスワードを入力) # DB、アカウントを作成 > CREATE DATABASE zabbix CHARACTER SET utf8mb4 COLLATE utf8mb4_bin; > CREATE USER zabbix@localhost IDENTIFIED BY 'zabbix'; > GRANT all privileges ON zabbix.* TO zabbix@localhost; > SET global log_bin_trust_function_creators = 1; > exit Zabbixサーバのインストール Zabbixをインストールする前に、専用のリポジトリを追加します。 # 専用リポジトリのインストール rpm -Uvh https://repo.zabbix.com/zabbix/7.0/rhel/9/x86_64/zabbix-release-7.0-2.el9.noarch.rpm # キャッシュのクリア dnf clean all # Zabbixサーバのインストール dnf install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese zabbix-apache-conf zabbix-sql-scripts zabbix-agent 続いて、Zabbix用データベースへ初期データをインポートします。 # DBへ初期データをインポート zcat /usr/share/zabbix-sql-scripts/mysql/server.sql.gz | mysql --default-character-set=utf8mb4 -uzabbix -p zabbix Enter password: (MySQLのzabbixアカウントのパスワードを入力) 初期データのインポート後、log_bin_trust_function_creatorsを無効にします。 # DBへの接続 mysql -uroot -p Enter password: (MySQLのrootアカウントのパスワードを入力) > SET global log_bin_trust_function_creators = 0; > exit その後、Zabbixサーバーの設定と起動を行います。 # 各パラメータ設定 /etc/zabbix/zabbix_server.conf DBHost=localhost DBName=zabbix DBUser=zabbix DBPassword=zabbix # サービスの起動 systemctl start zabbix-server zabbix-agent httpd php-fpm systemctl enable zabbix-server zabbix-agent zabbix-agent httpd php-fpm Zabbix WEBコンソールへのアクセス Zabbixのインストールは完了しましたので、Webコンソール上でセットアップしていきます。 ブラウザを立ち上げて、以下にアクセスします。 http://xxx.xxx.xxx.xxx/zabbix xxxには、今回構築したIPアドレスを入れてください。例えば、もしZabbixサーバーのIPアドレスが192.168.0.1なら、アドレスバーには”http://192.168.0.1/zabbix”と入力します。 言語を【日本語(ja_JP)】に変更して、【次のステップ】をクリックします。 すべての項目が「OK」になっていることを確認し、【次のステップ】をクリックします。 パスワード欄に先ほど設定したZabbixDBのパスワードを入力し、【次のステップ】をクリックします。 タイムゾーン欄で【(UTC+9:00) Asia/Tokyo】を選択、Zabbixサーバ名を記入し、【次のステップ】をクリックします。 設定内容に問題がなければ、【次のステップ】をクリックします。 【終了】をクリックすると、以下のようなログイン画面が表示されます。 初期状態でユーザーが登録されているので、以下のユーザー名・パスワードでログインします。 ユーザ名:Admin パスワード:zabbix ログインすると、WEBコンソール画面が表示されます。 以上でZabbixのインストールは完了です。   最後に Zabbix7.0は以前のバージョンと比較的に変わりなく、インストールすることができました。 Zabbix7.0はプロキシ冗長化構成や分散監視の実装、スクリーンショットも取得ができる新しいWeb監視、監視処理の効率化によるパフォーマンスの大幅な向上やダッシュボードの新しいウィジェットなど、非常に多くの機能を実装しているとのことです。 今回はインストールのみでしたが、新機能も試してみて情報を発信していきたいと思います。                     最後まで読んでいただき、ありがとうございました。
Prisma Cloudでは、クラウドインフラストラクチャ全体の設定ミスやリスクを監視するために”ポリシー”と呼ばれるものを使用します。 ポリシーには複数のポリシータイプが存在しますが、その中でもAttackPathポリシーは重要度が高いポリシーとなっています。 今回は、AttackPathポリシーの重要性と検知の仕組みについて調査した結果をもとに解説していきたいと思います。 AttackPathポリシーとは? AttackPathポリシーは、セキュリティリスクの高い経路を特定し、対策を講じるためのポリシーです。 AttackPathポリシーはデフォルトで有効になっており、さまざまなセキュリティリスクを評価して相関関係を見つけ出します。 セキュリティリスクを評価して相関関係を見つけ出します、と言われてもピンと来ないと思いますので、例を挙げて説明したいと思いますが、たとえば以下のようなインスタンスA・Bがあったとします。 ・インスタンスA:脆弱性を抱えている ・インスタンスB:脆弱性を抱えている、 かつ、パブリック公開されている この場合、脆弱性を抱えているのはインスタンスA・Bどちらも同じですが、パブリック公開されているインスタンスBの方がAと比較してセキュリティリスクが高い、というような考え方ができるかと思います。 このように、複数の条件(セキュリティリスク)に当てはまるものは攻撃や侵害を受ける可能性が高いとしてアラート検知するのがAttackPathポリシーとなります。   なぜAttackPathポリシーが重要なのか? AttackPathポリシーは、セキュリティ侵害の可能性を高める要因を特定する意味で非常に重要になります。 要因には、過度に寛容なIDや権限、ネットワークへの露出、インフラストラクチャの設定ミス、アプリケーションの脆弱性などが含まれます。これらの要因が組み合わさることで、リスクがより高まることになります。 AttackPathポリシーは、こうしたリスク要因を視覚化し、すぐに対応が必要なものを特定するのに役立ちます。 特に、インターネットに公開されている仮想マシンやアプリケーションが、外部からの攻撃に対してどれだけ脆弱であるかを把握するのに役立ちます。 たとえば、脆弱性を抱えるリソースが大量にあったとして(それはそれで問題がありますが)、AttackPathポリシーで検知されたアラートを確認することで、よりリスクが高いリソースから優先的に対処していくといった対応が可能になります。 AttackPathポリシーのほとんどはPrismaCloudが定めているポリシー重要度がCritical(一番重要度が高い)となっていることからも、その重要性が伺えるかと思います。 アラートが大量に発生して対応が追い付いていない状態になってしまっているような場合でも、AttackPathポリシーで検知したアラートは最優先で確認・対処すべきというような位置づけだと考えられます。   AttackPathポリシーでの検知の仕組み AttackPathポリシーで監視を行うためには、まずポリシーが有効化されている必要があります。 基本的にはデフォルトで有効になっていますが、PrismaCloudコンソールで[ガバナンス]を選択し、ポリシータイプを「AttackPath(攻撃経路)」でフィルタリングして、AttackPathポリシーが有効になっていることを確認できます。 また、各AttackPathポリシーは、それぞれ複数のルールがあり、すべてのルールに一致するものが見つかるとアラートを生成する動きになります。 イメージが付きづらいと思うので、「Data breach risk due to an Azure Cosmos DB that is reachable from untrusted Internet sources having key based authentication enabled」というAttackPathポリシーで検知した場合を例に挙げて説明したいと思います。 ・検知したアラートのポリシー名の左横にあるマークをクリックします   ・左ペインで「ルールの表示」を選択すると、このAttackPathポリシーで検知する条件となるルールが表示されます。 以下の場合、 ①Azure Cosmos DB (PaaS) instance reachable from untrust internet source ②Azure Cosmos DB key based authentication is enabled という別のポリシーがあり、その両方でアラート検知されていることがこのAttackPathポリシーで検知するためのルールになります。 ・試しに①②のポリシーでアラート検知しているか確認したところ、AttackPathポリシーでアラート検知されていた「cosmosdb-test-account」というリソースに対して、①②両方のポリシーでアラート検知されていることが確認できました 上記の通り、AttackPathポリシーには、複数のポリシーでアラート検知していることを条件(ルール)としているものが存在します。 その場合には、ルールとなっているポリシーすべてについても有効化されている必要があることに注意しましょう。   AttackPathポリシーの注意点 「AttackPathポリシーでの検知の仕組み」でも触れた通り、AttackPathポリシーは様々なセキュリティ侵害の可能性を高める要因の組み合わせでアラート検知します。 要因の中には、CSPM機能だけ利用している場合には監視できないものも含まれています。 たとえば、CWPP(Prisma CloudのCompute機能)で検知される項目がルールの一つになっている場合や、CIEM(Prisma CloudのIAMセキュリティ機能)で検知される項目がルールの一つになっている場合は、その機能が利用できる状態になっていないとアラート検知しませんので、その点は注意が必要です。   まとめ 調べてみた結果、AttackPathポリシーがセキュリティリスクを特定し、対策を講じるのに役立つ重要なポリシーであることが分かりました。次回も、Prisma Cloudについて情報をお届けできればと思います。 また、当社では、複数クラウド環境の設定状況を自動でチェックし、設定ミスやコンプライアンス違反、異常行動などのリスクを診断するCSPMソリューションを販売しております。 マルチクラウド設定診断サービス with CSPM| SCSK株式会社 マルチクラウド環境のセキュリティ設定リスクを手軽に確認可能なスポット診断サービスです。独自の診断レポートが、運用上の設定ミスや設計不備、クラウド環境の仕様変更などで発生し得る問題を可視化し、セキュリティインシデントの早期発見に役立ちます。 www.scsk.jp ご興味のある方は是非、お気軽にお問い合わせください。
こんにちは。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のルートテーブルも利用することで稼働系サーバに通信可能となる