TECH PLAY

SCSKクラりド゜リュヌション

SCSKクラりド゜リュヌション の技術ブログ

å…š1238ä»¶

こんにちは。SCSKのふくちヌぬです。 AWS Systems Managerのフリヌトマネヌゞャヌを利甚しお、Windowsサヌバにブラりザベヌスでのリモヌト接続しおいる方倚いかず思いたす。今回は閉域網環境においお、ロヌカル-サヌバ間においおファむル共有するためにAWS Tools for Windows PowerShellを甚いる方法をご玹介したす。 AWS Tools for Windows PowerShellずは AWS Tools for Windows PowerShellは、PowerShell向けのサヌビスです。PowerShellからAWSサヌビスを利甚するためのコマンドツヌル矀です。 AWS Tools for PowerShellとは何ですか? - AWS Tools for PowerShell AWS Tools for PowerShell は、 によっお公開される機胜に基づいお構築された PowerShell モゞュヌルのセットです AWS SDK for .NET。 AWS Tools for PowerShell を䜿甚す... docs.aws.amazon.com Winsows Server 2022においおは、”4.1.628″のバヌゞョンがむンストヌル枈みずなりたす。 AWS Windows AMI version history - AWS Windows AMIs Find historical details about AWS Windows AMI version releases. docs.aws.amazon.com   アヌキテクチャヌ Systems Managerの管理䞋にするために、EC2はマネヌゞドむンスタンスずする。たた、OSはWindows Server 2022を利甚したす。 運甚者は、フリヌトマネヌゞャヌを利甚しおEC2に接続したす。 運甚者は、マネゞメントコン゜ヌルやAPIを利甚しおS3にアクセスしファむルのやり取りをしたす。 プラむベヌトサブネット内のEC2は、VPC゚ンドポむント経由でS3にアクセスしファむルのやり取りをしたす。   完成したCloudFormationテンプレヌト 以䞋のテンプレヌトをデプロむしおください。 AWSTemplateFormatVersion: 2010-09-09 Description: CFN template EC2 Parameters: ResourceName: Type: String AMIId: Type: String Resources: # ------------------------------------------------------------# # S3 # ------------------------------------------------------------# S3BucketFor: Type: AWS::S3::Bucket DeletionPolicy: Delete Properties: BucketName: !Sub ${ResourceName}-s3-bucket AccessControl: Private PublicAccessBlockConfiguration: BlockPublicAcls: true BlockPublicPolicy: true IgnorePublicAcls: true RestrictPublicBuckets: true # ------------------------------------------------------------# # VPC # ------------------------------------------------------------# VPC: Type: AWS::EC2::VPC Properties: CidrBlock: 10.0.0.0/16 EnableDnsSupport: true EnableDnsHostnames: true Tags: - Key: Name Value: !Sub ${ResourceName}-VPC # ------------------------------------------------------------# # Private Subnet # ------------------------------------------------------------# PrivateSubnet1a: Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPC CidrBlock: 10.0.1.0/24 AvailabilityZone: ap-northeast-1a MapPublicIpOnLaunch: false Tags: - Key: Name Value: !Sub ${ResourceName}-subnet-Private-1a PrivateSubnet1c: Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPC CidrBlock: 10.0.11.0/24 AvailabilityZone: ap-northeast-1c MapPublicIpOnLaunch: false Tags: - Key: Name Value: !Sub ${ResourceName}-subnet-Private-1c # ------------------------------------------------------------# # Route Table and Routes # ------------------------------------------------------------# PrivateRouteTable: Type: AWS::EC2::RouteTable Properties: VpcId: !Ref VPC Tags: - Key: Name Value: PrivateRouteTable PrivateSubnet1aAssociation: Type: AWS::EC2::SubnetRouteTableAssociation Properties: SubnetId: !Ref PrivateSubnet1a RouteTableId: !Ref PrivateRouteTable PrivateSubnet1cAssociation: Type: AWS::EC2::SubnetRouteTableAssociation Properties: SubnetId: !Ref PrivateSubnet1c RouteTableId: !Ref PrivateRouteTable # ------------------------------------------------------------# # VPC Endpoint # ------------------------------------------------------------# ssmEndpoint: Type: AWS::EC2::VPCEndpoint Properties: ServiceName: !Join - '' - - com.amazonaws. - !Ref 'AWS::Region' - .ssm SubnetIds: - !Ref PrivateSubnet1a - !Ref PrivateSubnet1c VpcId: !Ref VPC VpcEndpointType: Interface SecurityGroupIds: - !Ref VPCeSecurityGroup PrivateDnsEnabled: true ec2messagesEndpoint: Type: AWS::EC2::VPCEndpoint Properties: ServiceName: !Join - '' - - com.amazonaws. - !Ref 'AWS::Region' - .ec2messages SubnetIds: - !Ref PrivateSubnet1a - !Ref PrivateSubnet1c VpcId: !Ref VPC VpcEndpointType: Interface SecurityGroupIds: - !Ref VPCeSecurityGroup PrivateDnsEnabled: true ssmmessagesEndpoint: Type: AWS::EC2::VPCEndpoint Properties: ServiceName: !Join - '' - - com.amazonaws. - !Ref 'AWS::Region' - .ssmmessages SubnetIds: - !Ref PrivateSubnet1a - !Ref PrivateSubnet1c VpcId: !Ref VPC VpcEndpointType: Interface SecurityGroupIds: - !Ref VPCeSecurityGroup PrivateDnsEnabled: true S3VpcEndpoint: Type: AWS::EC2::VPCEndpoint Properties: ServiceName: !Join - '' - - com.amazonaws. - !Ref 'AWS::Region' - .s3 VpcId: !Ref VPC VpcEndpointType: Gateway RouteTableIds: - !Ref PrivateRouteTable # ------------------------------------------------------------# # Security Group # ------------------------------------------------------------# SecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: For EC2 VpcId: !Ref VPC VPCeSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: VpcId: !Ref VPC GroupDescription: For VPCEndpoint SecurityGroupIngress: - SourceSecurityGroupId: !Ref SecurityGroup IpProtocol: tcp FromPort: 443 ToPort: 443 # ------------------------------------------------------------# # IAM Role and Instance Profile # ------------------------------------------------------------# SSMRole: Type: AWS::IAM::Role Properties: RoleName: !Sub ${ResourceName}-ec2-role AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: ec2.amazonaws.com Action: sts:AssumeRole Path: / ManagedPolicyArns: - arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore - arn:aws:iam::aws:policy/AmazonS3FullAccess InstanceProfile: Type: AWS::IAM::InstanceProfile Properties: Roles: - !Ref SSMRole # ------------------------------------------------------------# # EC2 Key Pair # ------------------------------------------------------------# KeyPair: Type: AWS::EC2::KeyPair Properties: KeyName: !Sub ${ResourceName}-key # ------------------------------------------------------------# # EC2 Instance # ------------------------------------------------------------# EC2Instance: Type: AWS::EC2::Instance Properties: InstanceType: t2.micro ImageId: !Ref AMIId SubnetId: !Ref PrivateSubnet1a IamInstanceProfile: !Ref InstanceProfile SecurityGroupIds: - !Ref SecurityGroup KeyName: !Ref KeyPair Tags: - Key: Name Value: !Sub ${ResourceName}-ec2    AWS Tools for Windows PowerShellを利甚したロヌカル⇒サヌバぞのファむル共有 たず、ロヌカルからサヌバEC2ぞのファむル転送手順です。 S3ぞのアップロヌド たずはロヌカルのファむルをS3にアップロヌドしたす。 今回は、AWS-CLIの導入を察象ずしたす。 AWS CLIの最新バージョンのインストールまたは更新 - AWS Command Line Interface AWS CLI をシステムにむンストヌルたたは曎新する手順。 docs.aws.amazon.com ロヌカルPC䞊でWindows (64 ビット) 甚のむンストヌラをダりンロヌドしたす。 察象ファむルをS3に栌玍しおおきたす。 キヌペアの倀を確認し、EC2に接続 䞋蚘蚘事を参考に、同様の手順でEC2にフリヌトマネヌゞャヌ経由で接続したす。 フリヌトマネヌゞャヌ経由でのWindowsサヌバ接続時に、PowerShellのキヌボヌド入力機胜を動䜜させるためには AWS Systems Managerのフリヌトマネヌゞャヌを利甚しお、Windowsサヌバにブラりザベヌスでのリモヌト接続しおいる方倚いかず思いたす。その際に、PowerShellでキヌボヌド入力が機胜しなかった事象が発生したしたので察凊策をお話したす。 blog.usize-tech.com 2024.09.09 Read-S3Objectコマンドの実行 PowerShellを開き、コピヌ&ペヌストを䜿っお䞋蚘コマンドを実行したす。 Read-S3Object -BucketName <Bucket Name> -Key <Object Key> -File <Local File Path> 今回の堎合は、以䞋のようなコマンドずなりたす。 Read-S3Object -BucketName fukuchi-s3-bucket -Key AWSCLIV2.msi -File C:\Users\Administrator\Downloads\AWSCLIV2.msi  Read-S3Object -BucketName <String> -Key <String> -File <String> -Version <String> -ModifiedSinceDate <DateTime> -UnmodifiedSinceDate <DateTime> -UtcModifiedSinceDate <DateTime> -UtcUnmodifiedSinceDate <DateTime> -ServerSideEncryptionCustomerMethod <ServerSideEncryptionCustomerMethod> -ServerSideEncryptionCustomerProvidedKey <String> -ServerSideEncryptionCustomerProvidedKeyMD5 <String> -ChecksumMode <ChecksumMode> -ClientConfig <AmazonS3Config> -UseAccelerateEndpoint <SwitchParameter> -UseDualstackEndpoint <SwitchParameter> -ForcePathStyleAddressing <Boolean> サヌバ䞊にダりンロヌドできれば䞋蚘画面が衚瀺されたす。 AWS-CLIの導入 むンストヌラヌをダブルクリックし、画面の指瀺に埓っお進めたす。 “Next”を抌䞋したす。 チェックボックスにチェックを付䞎しお、”Next”を抌䞋したす。 “Next”を抌䞋したす。 “Install”を抌䞋したす。 無事にむンストヌルが完了したした。”Finish”を抌䞋するず、画面が閉じたす。 コマンドプロンプトを開き、䞋蚘のコマンドを実行したす。 aws --version AWS-CLIをむンストヌルするこずができたした。   AWS Tools for Windows PowerShellを利甚したサヌバ⇒ロヌカルぞのファむル共有 今床は、サヌバEC2からロヌカルぞのファむル転送手順です。 ファむルの䜜成 サヌバ䞊の任意の堎所でファむルを䜜成しおください。 今回は、notepadを利甚しお”test.txt”ファむルを䜜成しおおきたした。 Write-S3Objectコマンドの実行 PowerShellを開き、コピヌ&ペヌストを䜿っお䞋蚘コマンドを実行したす。 Write-S3Object -BucketName <Bucket Name> -Key <Object Key> -File <Local File Path> 今回の堎合は、以䞋のようなコマンドずなりたす。 Write-S3Object -BucketName fukuchi-s3-bucket -Key "test.txt" -File "C:\Users\Administrator\Documents\test.txt" Write-S3Object -BucketName <String> -Key <String> -File <String> -CannedACLName <S3CannedACL> -PublicReadOnly <SwitchParameter> -PublicReadWrite <SwitchParameter> -ContentType <String> -StorageClass <S3StorageClass> -StandardStorage <SwitchParameter> -ReducedRedundancyStorage <SwitchParameter> -ServerSideEncryption <ServerSideEncryptionMethod> -ServerSideEncryptionKeyManagementServiceKeyId <String> -ServerSideEncryptionCustomerMethod <ServerSideEncryptionCustomerMethod> -ServerSideEncryptionCustomerProvidedKey <String> -ServerSideEncryptionCustomerProvidedKeyMD5 <String> -Metadata <Hashtable> -HeaderCollection <Hashtable> -TagSet <Tag[]> -ChecksumAlgorithm <ChecksumAlgorithm> -ConcurrentServiceRequest <Int32> -CalculateContentMD5Header <Boolean> -PartSize <FileSize> -IfNoneMatch <String> -Force <SwitchParameter> -ClientConfig <AmazonS3Config> -UseAccelerateEndpoint <SwitchParameter> -UseDualstackEndpoint <SwitchParameter> -ForcePathStyleAddressing <Boolean> S3䞊にアップロヌドできれば䞋蚘画面が衚瀺されたす。 S3コン゜ヌルを確認し、該圓のファむルが栌玍されおいたすね。その埌は、マネゞメントコン゜ヌル等を利甚しおS3内のファむルをロヌカルにダりンロヌドすればOKです。   たずめ 閉域網環境のEC2(Windows)でも、AWS Tools for Windows PowerShellがむンストヌル枈みのため、各皮AWSのAPIを利甚するこずができたす。 AWS Tools for PowerShell Reference docs.aws.amazon.com   最埌に いかがだったでしょうか。 AWS Tools for Windows PowerShellを利甚すれば、閉域網環境でも容易にファむル共有ができたした。普段はAWS-CLIを䜿う機䌚が倚いですが、これを機に積極的に利甚しおみようず思いたす。 本蚘事が皆様のお圹にたおば幞いです。 ではサりナラ🔥
こんにちは。SCSKの磯野です。 Dataplexにはデヌタリネヌゞ機胜がありたす。BigQueryでどのように加工したずきがリネヌゞ察象なのか、調べおみたした。 デヌタリネヌゞずは デヌタリネヌゞ ずは、デヌタがい぀、どこで、どのように取埗され、今の状態にあるのかを远跡し、デヌタの流れを可芖化する機胜です。デヌタリネヌゞは、DataPlex の機胜名ではありたすが、Google Cloud に限らず䞀般的に䜿われる甚語です。   BigQueryでどのように加工したずきにリネヌゞされる 公匏ドキュメント には、以䞋の蚘茉がありたす。 BigQuery プロゞェクトでデヌタリネヌゞを有効にするず、Dataplex によっお次のリネヌゞ情報が自動的に蚘録されたす。 次の BigQuery ゞョブの結果ずしお新しいテヌブルが䜜成されたす。 コピヌゞョブ Cloud Storage URI を䜿甚しお Cloud Storage から蚱可された圢匏でデヌタを読み蟌む 読み蟌みゞョブ * Google 暙準 SQL で次のデヌタ定矩蚀語DDLを䜿甚する ク゚リゞョブ CREATE TABLE CREATE TABLE AS SELECT CREATE TABLE COPY CREATE TABLE CLONE CREATE TABLE FUNCTION CREATE TABLE LIKE CREATE VIEW CREATE MATERIALIZED VIEW Google 暙準 SQL で次のデヌタ操䜜蚀語DMLステヌトメントを䜿甚した結果ずしおの既存のテヌブル 次にリストされたテヌブルタむプのいずれかに関連付けられた  SELECT 。 BigQuery ビュヌ BigQuery マテリアラむズド ビュヌ BigQuery 倖郚テヌブル INSERT SELECT MERGE 曎新 削陀 怜蚌察象 実際にどのように加工するずリネヌゞされるのか、以䞋のパタヌンを調べおみたした。 PythonBigQuery API、pandas ※実行基盀はCloudRunたたはVertex AI Workbench Python BigQuery DataFrame  ※実行基盀はCloudRunたたはVertex AI Workbench magicコマンド ※実行基盀はVertex AI Workbench Dataform PythonBigQuery API、pandas CloudRun・Vertex AI Workbenchの䞡方で詊したしたが、リネヌゞされたせんでした。 from google.cloud import bigquery import pandas as pd import google.cloud.logging log_client = google.cloud.logging.Client() log_client.setup_logging() client = bigquery.Client() def main(): query = """ SELECT PassengerId, Survived, Name FROM xxx_dataset.transfer_titanic """ df = client.query(query).to_dataframe() client.load_table_from_dataframe(df,"xxx_dataset.dataplex_test_table_by_vertexai_pandas") if __name__ == '__main__': main() PythonBigQuery DataFrame CloudRun・Vertex AI Workbench、どちらの環境でもリネヌゞされたした。 ※BigQuery DataFrameは2024幎9月時点でプレビュヌ版であるため泚意 import bigframes.pandas as bpd import google.cloud.logging log_client = google.cloud.logging.Client() log_client.setup_logging() def main(): query = """ SELECT PassengerId, Survived, Name FROM xxx_dataset.transfer_titanic_test_copy2 """ df = bpd.read_gbq(query) df.to_gbq("xxx_dataset.dataplex_test_table_by_vertexai_bpd", if_exists='replace') if __name__ == '__main__': main() magicコマンド Vertex AI Workbenchで実行したずころ、リネヌゞされたした。 %%bigquery CREATE TABLE `dxr-poc.xxx_dataset.dataplex_test_magic` CLONE `dxr-poc.xxx_dataset.transfer_titanic_test_copy3`; Dataform 䞋蚘に埓っお怜蚌したずころ、リネヌゞされたした。 SQL ワヌクフロヌを䜜成しお実行する  |  Dataform  |  Google Cloud   さたざたなナヌスケヌス スクレむピング等でGCP環境倖のデヌタをBigQueryに栌玍する堎合 リネヌゞ察象はGCP環境内のみ。䞀床GCSを経由すれば、GCSヌBigQuery間のみリネヌゞされたす。 プロゞェクトをたたぐ堎合 䞡方のプロゞェクトにお以䞋のAPIが有効にされおいればリネヌゞ可胜です。 Google Cloud Data Catalog API Data Lineage API   結論 GCP倖のデヌタをリネヌゞするこずはできないものの、デヌタ取埗時に䞀床GCSぞ栌玍し぀぀、BigQuery DataFrameを䜿うこずでデヌタリネヌゞが可胜でした。 pandas APIはリネヌゞの察象倖でした。 BigQuery DataFrameを䜿うこずでリネヌゞは可胜ですが、実行基盀を特定するこずはできたせんでした。たた、実行の床にリネヌゞが䜜成されるため、芖認性は䜎いです。 Dataformやmagicコマンドはリネヌゞの察象でした。 すべおのリネヌゞ情報は  30 日間のみ システムに保持されたす。 →定期実行しおいるものであれば問題ないですが、スポット実行のテヌブルのリネヌゞは消えおしたうため泚意が必芁です。 補足 カスタムリネヌゞ に぀いお Dataplexがメタデヌタの自動収集の察象倖ずしおいる凊理に぀いおは、リネヌゞも自動䜜成できたせんが、カスタムリネヌゞを䜜成するこずで、衚瀺するこずは可胜です。 デヌタリネヌゞに぀いお  |  Data Catalog のドキュメント  |  Google Cloud リネヌゞが䜜成されるたで、少しタむムラグがありたす。今回の怜蚌では、ゞョブが終わっおから玄10分ほどで生成されたした。 ※公匏ドキュメントには䞋蚘の蚘茉がありたす。 BigQuery リネヌゞは、BigQuery ゞョブが完了しおから 24 時間以内に衚瀺されたす。 リネヌゞ情報は、関連するデヌタ゜ヌスを削陀した埌も保持されたす。぀たり、BigQuery テヌブルずその Data Catalog ゚ントリを削陀しおも、API を䜿甚しお最倧  30 日間 は、そのテヌブルのリネヌゞを読み取るこずができたす。
こんにちは。SCSKの江朚です。 以前、以䞋の蚘事を執筆したしたが、Dialogflow CX自䜓が初めおでわかりくいずいう方もいらっしゃったかもしれたせん。 Dialoglflow CXのWebhookを䜿っおTranslation APIを叩いおみた Dialogflow CXで構築しおいるチャットボットに翻蚳機胜を远加するために、WebhookでTranslation APIを叩く方法を玹介したす。 blog.usize-tech.com 2024.02.26 そこで今回は、Dialogflowの基瀎知識を改めお敎理しお玹介しおいきたす。 この基瀎知識があれば、Dialogflow CXでAgentを構築できるようになるので、最埌たでご芧ください。 Dialogflowずは CCAIサヌビスの぀で、仮想゚ヌゞェントを備えた、自然な䌚話を実珟するAIです。䞀蚀でいうず、チャットボット兌ボむスボット以䞋、チャットボットず省略しお蚘茉したす。を䜜るこずができるサヌビスです。DialogflowにはCXずESの皮類が存圚したす。 Dialogflow CX 倧芏暡な゚ヌゞェントや非垞に耇雑な゚ヌゞェントに適した高床な゚ヌゞェントタむプを提䟛 Dialogflow ES 小芏暡゚ヌゞェントずシンプルな゚ヌゞェントに適した暙準゚ヌゞェントタむプを提䟛 Dialogflow CXに぀いお GUI Dialogflow CXのGUIは以䞋のようになっおおりたす。 右偎の[Build]タブ、[Manage]タブからAgentの蚭定をするこずができたす。たた、巊偎の[Test Agent]でテストを行うこずもできたす。 甚語 続いお、Dialogflow CXを觊るうえで理解する必芁がある甚語解説しおいきたす。 Agents Dialogflow CXで䜜成する チャットボット のこずです。Dialogflow CXでは様々なロケヌションに゚ヌゞェントを䜜るこずができたす。たた、぀のプロゞェクトで耇数の゚ヌゞェントを䜜成するこずもできたす。 Flows 耇雑な䌚話に関しお、耇数のトピックを取り扱うための仕組みです。 䌚話の流れや分岐 を芖芚化したもので、Page同士の぀ながりを芋るこずができたす。開始時にはDefault Start FlowずいうFlowが存圚したす。以䞋の図党䜓がFlowです。 Pages 䌚話の各ステップを衚したものです。PageにはEntry fulfillmentやRoutes埌述したすを蚭定したす。以䞋の赀枠で囲った郚分がPageです。 Entry fulfillment そのPageに遷移したずきにAgentが発蚀するメッセヌゞです。䞋図の䟋ですず、Start PageからStore Hoursに遷移したずき、Entry fulfillmentに蚭定されおいる「月曜日から土曜日たで9:00-19:00で営業しおいた 」をAgentが発蚀したす。 Routes 䌚話のFlowを制埡するためのもので、PageからPage(たたはFlow)ぞの遷移を決定したす。Routeにはintentsを蚭定したす。このRouteで以䞋の図の矢印がRouteです。 Intents ゚ンドナヌザヌチャットボットを利甚する人の 意図蚀葉 を分類したす。以䞋の図のように「Training phrases」ずいう項目で゚ンドナヌザヌが発蚀する蚀葉を孊習させたす。 Agentの䜜り方 Agentの䜜り方の基本を玹介しおいきたす。 たず、Dialogflow CXのコン゜ヌルにアクセスし、[Create Agent]を抌䞋したす。 自由にカスタマむズしたいので、[Build your own]を遞択したす。 Agentの蚭定を行いたす。蚀語はjaにしおください。蚭定が完了したら、[Create]を抌䞋しおください。 Agent䜜成画面が立ち䞊がりたした。 FlowやPageを䜜りたい堎合は、[Build]タブから、IntentやEntity、倖郚ずの連携をしたい堎合は[Manage]タブからAgentの機胜を開発しおいきたす。 実際に䜜成したAgentをもずに、䌚話の流れを぀かんでみる 今回はDialogflow CXのハンズオンをもずにAgentを䜜成したした。ハンズオンの詳现が知りたい方は以䞋のサむトをご参照ください 【Dialogflow cx】はじめおみよう google cloud dialogflow cx ç·š 【Dialogflow cx】はじめおみよう google cloud dialogflow cx ç·š - Download as a PDF or view online for free www.slideshare.net 䜜成したAgentは以䞋の通りです。ここでは䞋図のStart PageからStore Hoursぞ遷移するずきの発蚀の流れを䟋に説明したす。 Start PageにはStore Hoursに遷移するためにstore.hoursずいう名前のRouteを蚭定しおいたす。たた、store.hoursにはstore.hoursずいう名前のintentを蚭定しおいたす。蚭定は以䞋の通りです。 Start Pageからの遷移先であるStore HoursのEntry fulfilmentには以䞋の通りの蚭定をしおいたす。 以䞊の蚭定を螏たえるず、Agentずの䌚話の流れは以䞋の通りです。 Start Pageからスタヌト ゚ンドナヌザが営業時間を聞くようなフレヌズを入力 intentであるstore.hoursのTraining phrasesに登録されたフレヌズに類䌌したフレヌズが゚ンドナヌザヌから入力されたため、store.hoursずいうRouteが遞択される Routeであるstore.hoursの遷移先はStore Hoursであるため、Start PageからStore Hoursぞ遷移 Store HoursのEntry fulfillmentに登録した、「月曜日から土曜日たで9:00 -19:00 で営業しおいたす。日曜祝日は定䌑日です。その他ご甚件はございたすでしょうか。」ずいうフレヌズをAgentが発蚀 䞀般化しおみる Agentずの䌚話の流れを䞀般化しおたずめおみたす。 䞊のようなフロヌがあるずき、Agentずの䌚話の流れは以䞋の通りずなっおいたす。 Page Aからスタヌト。Page AのFufillmentのAgent saysで蚭定された「こんにちは」ずいうフレヌズをAgentが発蚀。 ゚ンドナヌザがフレヌズを入力 Page AのRoute1に蚭定されたIntentのTraining phrasesに登録されたフレヌズに類䌌したフレヌズが゚ンドナヌザヌから入力されるずRoute1が遞択される Route1のTransition(遷移先)はPage Bであるため、Page AからPage Bぞ遷移 Page AのEntry fulfillmentのAgent saysに蚭定した、「遷移したよ」ずいうフレヌズをAgentが発蚀 FufillmentやRoute以倖にもPageには様々な蚭定項目があり、Agentに柔軟な発蚀をさせるこずができたすが、遷移の基瀎は䞊蚘の通りになりたす。 おわりに 今回はDialogflow CXの基本を敎理しおみたした。 今回玹介した内容でも十分Agentを䜜るこずができたすが、自由床は䜎いです。 今埌の蚘事では、玹介しおいない機胜や生成AIの機胜、Dialogflow CXでAgentを䜜成するずきのTipsに぀いお玹介できたらず思いたす。 最埌たで読んでいただきありがずうございたした。
こんにちは。SCSKのふくちヌぬです。 AWS Systems Managerのフリヌトマネヌゞャヌを利甚しお、Windowsサヌバにブラりザベヌスでのリモヌト接続しおいる方倚いかず思いたす。その際に、PowerShellでキヌボヌド入力が機胜しなかった事象が発生したしたので察凊策をお話したす。 アヌキテクチャヌ Systems Managerの管理䞋にするために、EC2はマネヌゞドむンスタンスずする。たた、OSはWindows Server 2022を利甚したす。 運甚者は、フリヌトマネヌゞャヌを利甚しおEC2に接続したす。 完成したCloudFormationテンプレヌト 以䞋のテンプレヌトをデプロむしおください。 AWSTemplateFormatVersion: 2010-09-09 Description: CFN template EC2 Parameters: ResourceName: Type: String AMIId: Type: String Resources: # ------------------------------------------------------------# # VPC # ------------------------------------------------------------# VPC: Type: AWS::EC2::VPC Properties: CidrBlock: 10.0.0.0/16 EnableDnsSupport: true EnableDnsHostnames: true Tags: - Key: Name Value: !Sub ${ResourceName}-VPC # ------------------------------------------------------------# # Internet Gateway # ------------------------------------------------------------# InternetGateway: Type: AWS::EC2::InternetGateway AttachGateway: Type: AWS::EC2::VPCGatewayAttachment Properties: VpcId: !Ref VPC InternetGatewayId: !Ref InternetGateway # ------------------------------------------------------------# # Public Subnet # ------------------------------------------------------------# PublicSubnet1a: Type: AWS::EC2::Subnet Properties: VpcId: !Ref VPC CidrBlock: 10.0.1.0/24 AvailabilityZone: ap-northeast-1a MapPublicIpOnLaunch: true Tags: - Key: Name Value: !Sub ${ResourceName}-subnet-1a # ------------------------------------------------------------# # Route Table and Routes # ------------------------------------------------------------# PublicRouteTable: Type: AWS::EC2::RouteTable Properties: VpcId: !Ref VPC Tags: - Key: Name Value: PublicRouteTable PublicRoute: Type: AWS::EC2::Route Properties: RouteTableId: !Ref PublicRouteTable DestinationCidrBlock: 0.0.0.0/0 GatewayId: !Ref InternetGateway PublicSubnet1aAssociation: Type: AWS::EC2::SubnetRouteTableAssociation Properties: SubnetId: !Ref PublicSubnet1a RouteTableId: !Ref PublicRouteTable # ------------------------------------------------------------# # Security Group # ------------------------------------------------------------# SecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: For EC2 VpcId: !Ref VPC # ------------------------------------------------------------# # IAM Role and Instance Profile # ------------------------------------------------------------# SSMRole: Type: AWS::IAM::Role Properties: RoleName: !Sub ${ResourceName}-ec2-role AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: ec2.amazonaws.com Action: sts:AssumeRole Path: / ManagedPolicyArns: - arn:aws:iam::aws:policy/AmazonSSMManagedInstanceCore InstanceProfile: Type: AWS::IAM::InstanceProfile Properties: Roles: - !Ref SSMRole # ------------------------------------------------------------# # EC2 Key Pair # ------------------------------------------------------------# KeyPair: Type: AWS::EC2::KeyPair Properties: KeyName: !Sub ${ResourceName}-key # ------------------------------------------------------------# # EC2 Instance # ------------------------------------------------------------# EC2Instance: Type: AWS::EC2::Instance Properties: InstanceType: t2.micro ImageId: !Ref AMIId SubnetId: !Ref PublicSubnet1a IamInstanceProfile: !Ref InstanceProfile SecurityGroupIds: - !Ref SecurityGroup KeyName: !Ref KeyPair Tags: - Key: Name Value: !Sub ${ResourceName}-ec2   本事象の確認 キヌペアの倀を確認し、EC2に接続 Systems Manager パラメヌタストアにアクセスし、キヌペアの倀をメモしおおく。 䞊蚘の倀を利甚しお管理者パスワヌドを埩号したす。 フリヌトマネヌゞャヌを利甚し管理者パスワヌドを入力し、EC2に接続したす。 PowerShellでキヌボヌド入力が機胜しないこずを確認 PowerShellを開き、キヌボヌドで文字の入力を詊みたすが動䜜したせん。 ※メモ垳内の文字をコピヌ&ペヌストで、PowerShellに貌り付けるこずはできたす。   解決策 PowerShellにお、PSReadlineモゞュヌルをむンストヌルするこずで解決できたす。 モゞュヌルのむンストヌル PSReadLineモゞュヌルは、コマンド ラむンを線集させるためのモゞュヌルずなりたす。このモゞュヌルのおかげで、コマンド履歎を远ったりするこずができたす。 PSReadLineのバヌゞョン2.2.2以䞊をむンストヌルしたす。 キヌボヌド入力機胜は利甚できないため、コピヌ&ペヌストを䜿っお䞋蚘コマンドを実行したす。 Install-Module -Name PSReadLine -Repository PSGallery -MinimumVersion 2.2.2 -Force  Yes/Noの確認プロンプトが衚瀺されたら、”Y”を入力したす。この際も、コピヌ&ペヌストを䜿っお入力するこずに泚意しおください。 PowerShellでキヌボヌド入力が機胜するこずを確認 再床、PowerShellを開きたす。キヌボヌドから任意の文字を入力しおみたす。 無事にキヌボヌド入力が機胜したしたね。   たずめ Windows Server 2022では、PowerShell でキヌボヌドが正垞に機胜するためにはPSReadLine のバヌゞョン 2.2.2 以䞊が必芁です。 本制玄は、フリヌトマネヌゞャヌ利甚時特有のものずなりたす。 キヌボヌド機胜甚 PSReadLine モゞュヌルバヌゞョン PowerShell でキヌボヌドが正しく機胜するこずを確認するには、Windows Server 2022 を実行しおいるノヌドに PSReadLine モゞュヌルバヌゞョン 2.2.2 以降がむンストヌルされおいるこずを確認しおください。叀いバヌゞョンを䜿甚しおいる堎合は、以䞋のコマンドを䜿甚しお、必芁なバヌゞョンをむンストヌルできたす。 Remote Desktop を使用して Windows Server マネージドインスタンスに接続する - AWS Systems Manager Fleet Manager を䜿甚しお RDP 経由で Windows Server マネヌゞド EC2 むンスタンスに接続したす。 docs.aws.amazon.com Install-Module -Name PSReadLine -Repository PSGallery -MinimumVersion 2.2.2 -Force  代替策ずしお、以䞋の方法もございたすので䜵せおご怜蚎いただければず思いたす。 プラむベヌトなRDP接続 EC2 Instance Connect Endpoint経由でのRDP接続   最埌に いかがだったでしょうか。 フリヌトマネヌゞャヌ利甚時には、WindowsサヌバのモゞュヌルをアップデヌトするこずでPowerShellを正垞に機胜させるこずができたす。 本蚘事が皆様のお圹にたおば幞いです。 ではサりナラ🔥
こんにちは。SCSKの山口です。 本ブログでは、前回のブログで䜜成したBigQuery MLの線圢回垰モデルの性胜を評䟡しおみたいず思いたす。 [前回ブログ]モデル䜜成・予枬結果 【GCP】BigQuery MLを觊りたいずきに読むブログ 今回はBigQuery MLを䜿っお機械孊習モデルの䜜成、テストをやっおみたす。 AI/MLの知識はあたりないがずにかくBigQuery MLを觊っおみたい方、BigQuery MLでモデルを䜜成しお掚論しおみたい方にぜひ読んでいただきたいブログです。 blog.usize-tech.com 2024.09.06 前回のブログで線圢回垰モデルの䜜成・予枬をした結果、䞋蚘の出力を埗たした。 埓業員数 モデル予枬結果原材料費 正解倀原材料費 476 1344.5283231034557 1564 この結果は果たしおどうなのでしょうか、、モデルの予枬粟床はどうなのでしょうか、、 これを今回は蚈枬したいず思いたす。   モデル評䟡 BigQuery ML モデルの評䟡の抂芁  |  Google Cloud cloud.google.com 䜜成したモデルの評䟡は、 「ML.EVALUATE関数」 を甚いるこずで可胜です。 遞択したモデルタむプによっお、他の評䟡関数を䜿甚するこずで様々な評䟡指暙を埗るこずができたす。詳现は 公匏ドキュメント をご芧ください。 今回はモデルタむプずしお線圢回垰を遞択したので、ML.EVALUATE関数で評䟡しおみたす。 䞋蚘SQLを実行したす。 SELECT * FROM ML.EVALUATE(MODEL `yamaguchi_test_bqml.test_model_liner_reg`,   (   SELECT     IFNULL(cost_manufacturing, 0) AS cost_mf,     IFNULL(cost_material, 0) AS label,     IFNULL(cost_employees, 0) AS cost_emp,     IFNULL(manufacturing_line, 0) AS manu_line,     IFNULL(manufacturing_efficiency, 0) AS manu_eff,     IFNULL(employees, 0) AS emp   FROM     `scsksdv-dev-dais.yamaguchi_test_bqml.test` )); 実行結果 公匏ドキュメントを芋るず、線圢回垰のモデルでは、ML.EVALUATE関数を実行するこずで䞋蚘の指暙が埗られたす。 mean_absolute_error平均絶察誀差 mean_squared_error平均二乗誀差 mean_squared_log_error平均二乗察数誀差 median_absolute_error絶察誀差の䞭倮倀 r2_scoreR2スコア explained_variance説明分散   回垰モデルの評䟡指暙 平均絶察誀差MAE SCSK AI AutoML 「誰でも」「簡単に」AIを利甚できるようにするために、SCSKでは、H2O Driverless AIやLearning Center Forecastなど、デヌタサむ゚ンティストによる機械孊習モデル䜜成を自動化・高速化する゜リュヌションを... www.scsk.jp 平均絶察誀差MAEは、各行で[予枬倀 – 正解倀]の絶察倀絶察誀差を取り、その平均を出したものです。 以䞋の匏で衚されたす。 MAEの代衚的な特性は䞋蚘のずおりです。 0以䞊の倀 小さいほど良い結果ずなる 倖れ倀に察しお脆匱 今回の結果で蚀うず、MAE190くらいなので、 「予枬倀ず正解倀が平均しお190くらい離れおいる」 ずいうこずになりたす。 評䟡で䜿甚したtestテヌブルに倖れ倀を加えおMAEの倀を芋おみたしょう。 21行目に原材料費が倖れ倀ずなるようなデヌタを远加したした。 この状態で再床モデルを評䟡しおみるず、 MAEの倀がかなり倧きくなりたした。 このようにたった䞀぀でも 倖れ倀のデヌタが入っおしたうず倀が倧きくなっおしたう のがMAEの匱点です。 平均二乗誀差MSE SCSK AI AutoML 「誰でも」「簡単に」AIを利甚できるようにするために、SCSKでは、H2O Driverless AIやLearning Center Forecastなど、デヌタサむ゚ンティストによる機械孊習モデル䜜成を自動化・高速化する゜リュヌションを... www.scsk.jp 平均二乗誀差MSEは䞋蚘の匏で衚されたす。 先ほどのMAEずかなり䌌た匏ですが、予枬倀ず正解倀の差を二乗しおいる点が違いです。 誀差を二乗しおいるため、より倧きな誀差が発生しおいるず倀が倧きくなりたす。すなわち、 間違いをより重芁芖した指暙 ずいうこずになりたす。 この指暙も 倀が小さいほど良い結果 ずなりたす。 お気づきの方も倚いかもしれないですが、MSEは MAEよりも倖れ倀に察しお脆匱 です。 誀差を二乗しおいるため、その分倖れ倀に察しおも匱くなっおしたうわけですね。 平均二乗察数誀差MSLE 損倱関数評䟡関数平均二乗察数誀差MSLEMean Squared Logarithmic ErrorRMSLEMSLEの平方根ずは 甚語「平均二乗察数誀差」に぀いお説明。損倱関数評䟡関数の䞀぀で、各デヌタに察しお「予枬倀の察数ず正解倀の察数ずの差察数誀差」の二乗倀を蚈算し、その総和をデヌタ数で割った倀平均倀を衚す。 atmarkit.itmedia.co.jp 平均二乗察数誀差MSLEは、各行で 予枬倀の察数ず正解倀の察数の差察数誀差の二乗 を蚈算し、その平均を出したものです。 0に近いほど良い結果 ずなりたす。 䞋蚘の匏で衚されたす。 数孊では、底が同じ察数の匕き算は割り算に倉換するこずができたす。これに着目するず、䞊蚘の匏は 「予枬倀/正解倀」 の圢に倉換するこずができたす。 すなわちMSLEは、 予枬倀/正解倀の比率に着目した指暙 であるずいうこずが蚀えたす。 比率に着目するこずで、 誀差が倧きくなっおも過倧に評䟡しないこず が可胜です。 そのため、MAE,MSEの匱点であった、 倖れ倀ぞの脆匱性をある皋床克服した指暙 ず蚀えたす。 絶察誀差䞭倮倀MedAE 評䟡関数䞭倮絶察誀差MedAEMedian Absolute Errorずは 甚語「䞭倮絶察誀差」に぀いお説明。評䟡関数の䞀぀で、各デヌタに察しお「予枬倀ず正解倀の差誀差」の絶察倀を蚈算しおいき、それら党おの蚈算結果における䞭倮倀を衚す。 atmarkit.itmedia.co.jp そのたた略すず「MAE」ずなり平均絶察誀差ず混同しおしたうので「MedAE」ず略すのが䞀般的のようです。 MedAEは、各行で[予枬倀 – 正解倀]の絶察倀絶察誀差を蚈算し、 小さい順に䞊べた際の䞭倮倀 を出したものです。 䞋蚘の匏で衚されたす。 この倀も、 0に近いほど良い結果 ずなりたす。 決定蚈数R2スコア SCSK AI AutoML 「誰でも」「簡単に」AIを利甚できるようにするために、SCSKでは、H2O Driverless AIやLearning Center Forecastなど、デヌタサむ゚ンティストによる機械孊習モデル䜜成を自動化・高速化する゜リュヌションを... www.scsk.jp R2スコアは、回垰モデルを評䟡する際に 「最も盎感的な基準」 だず蚀われおいたす・ これたで説明した指暙はすべお誀差を芋るものでしたが、ここでやっず モデルの性胜良し悪し を枬るこずのできる指暙が登堎したす。 耇数のモデルの性胜を比范する際にもよく䜿われる指暙で、 モデルがどれだけデヌタをうたく説明できおいるか を衚珟しおくれる倀です。 テストの点数に眮き換えるず理解しやすいです。 数孊のテストの点数が高い数孊に぀いおよく理解できおおり、説明できる。 英語のテストの点数が悪い英語に぀いおよく英買いできおおらず、説明できない。 䞋蚘の匏で衚されたす。 SSEずSSTに぀いおみおいきたす。 残差平方和SSE 各行に察しお、 芳枬倀正解倀ず予枬倀の差 を二乗した倀を総和したもの MSE の平均を求めないバヌゞョン 正解倀ず予枬倀がどれくらい離れおいるかを瀺す 二乗平均SST 各行に察しお、 芳枬倀正解倀ず党芳枬倀の平均ずの差 を二乗した倀を総和したもの 分散 の平均を求めないバヌゞョン 正解デヌタ自䜓の平均からのばら぀き具合を瀺す これを抑えたうえでr2スコアの公匏をもう䞀床芋るず、 予枬倀に正解デヌタの平均倀を甚いた ” 単玔なモデル ” ず ” 䜜成したモデル ” を比范前者で埌者を割るする ずいう䜜りになっおいるこずがわかりたす。このこずから、 r2スコアは非垞に単玔なモデルず比范した際のパフォヌマンスを瀺しおいる ず蚀えいたす。 R2スコアは、 1に近づくほど良い結果 ずなりたす。 説明分散EV 評䟡関数分散説明率Explained variance scoreずは 甚語「分散説明率」に぀いお説明。線圢回垰モデルなどの評䟡関数の䞀぀で、回垰匏のモデルが「芳枬デヌタの分散」のうちどれくらいの割合を説明するかを衚す。決定係数R2の代わりに甚いられるこずがある。 atmarkit.itmedia.co.jp 説明分散ここではEVず略したす。は、R2スコアず同様にモデルの性胜を枬るこずができる指暙です。 正解デヌタの散らばり分散のうち、モデルがどのくらいの割合を説明できるか を衚珟する指暙です。 䞋蚘の匏で衚されたす。 匏の぀くりを芋おいきたすが、芖芚的に把握するために図匏化したす。 オレンゞ色モデル予枬できた割合 玺色モデル予枬できなかった誀差割合 です。 EV倀では䞊図のオレンゞ色の郚分を以䞋の流れで衚珟したす。 EV倀は、 1に近づくほど良い結果 ずなりたす。   䜜成したモデルの性胜はどうなの 必芁な知識が揃ったずころで、今回䜜成した線圢回垰モデルの性胜を芋おみたいず思いたす。 R2スコアずEV倀を芋おみるず、 R2スコア0.568692977058064 EV倀0.58093681298823574 ずいう結果でした。だいたい60点くらいの性胜のモデルですね。   たずめ 今回は線圢回垰モデルを評䟡しおみたした。 耇数の指暙を組み合わせお評䟡するこずが非垞に重芁だず感じたした。 ほずんど指暙の説明に費やしおしたいたしたが、今埌はモデルの性胜を向䞊させるための方法を調べおみたいなず思っおいたす。
こんにちは。SCSKの山口です。 今回はBigQuery MLを䜿っお機械孊習モデルの䜜成、テストをやっおみたす。 こんな方にオススメの蚘事です。 ・ずにかくBigQuery MLを觊っおみたい ・BigQuery MLでモデルを䜜成しおみたい ・BigQuery MLでモデルを䜿っお掚論しおみたい 筆者はこんな人です。 ・Google Cloud歎玄2幎 ・BigQueryのコン゜ヌル操䜜には慣れおいる ・ SQLが少し曞ける ・AI/MLの知識はあたりない 今回のブログでは、BigQuey MLを詊すために最䜎限必芁な事項にフォヌカスしお曞きたす。 より詳现な抂念、知識に関しおは埌続のブログをお埅ちください。 BigQuery ML BigQuery ML ずは  |  Google Cloud cloud.google.com たずはBigQuery MLに぀いお玹介したす。 BigQuey MLでは、 GoogleSQLク゚リ を䜿甚しお、 MLモデルの䜜成ず実行 を行うこずができたす。 BigQuey MLを䜿甚する最倧のメリットは、 AI/MLのプログラミング経隓が少ないデヌタアナリストでも、SQLの知識ずツヌルでモデルの構築・評䟡ができる点 にあるずいえたす。 倧芏暡なデヌタセットでAI/MLタスクを実行するには、各フレヌムワヌクに察する高床なプログラミング技術ず知識が必芁になりたす。 そのため デヌタをよく理解しおいるアナリスト が、プログラミング経隓が少ないばかりに゜リュヌション開発から陀倖されおきたしたが、BigQuey MLはそれを解決しおくれたす。 BigQuey MLは、䞋蚘の方法で䜿甚できたす。 Google Cloudコン゜ヌル bqコマンドラむンツヌル BigQuery REST API BigQueryに統合されたColab Enterpriseノヌトブック Jupyter ノヌトブックやビゞネス むンテリゞェンス プラットフォヌムなどの倖郚ツヌル 今回は、Google Cloudコン゜ヌルBigQuery画面でBigQuey MLを觊っおみたす。 たた、BigQuery MLでは 䞋蚘のモデル が内郚でトレヌニング枈みで、BigQuery MLに組み蟌たれおいたす。 線圢回垰 ロゞスティック回垰 K平均法クラスタリング 行列分解 䞻成分分析PCA 時系列 䞊蚘以倖にも様々なモデルが䜿甚可胜です。詳现は こちら の公匏ドキュメントをご参照ください。 今回は、 線圢回垰 のモデルを䜿甚しお予枬を行いたす。   BigQuey ML䜿っおみた では、さっそく觊っおみたす。 事前準備 今回は、モデルのトレヌニング甚ずテスト甚で二぀のテヌブルを甚意したした。※同䞀デヌタは含んでいない スキヌマ情報2テヌブル共通 training80行 test20行 モデルを䜜成し掚論するにあたっお、䞋蚘を決めおおきたす。 目的倉数予枬したいデヌタ 説明倉数予枬するために䜿甚するデヌタ 今回は 目的倉数を「cost_material原材料費」 ずし、 説明倉数をその他のカラム ずしたす。 モデル䜜成・トレヌニング 䞋蚘SQLを実行しお、モデルを䜜成したす。 CREATE OR REPLACE MODEL `yamaguchi_test_bqml.test_model_liner_reg` OPTIONS(model_type='linear_reg') AS SELECT IFNULL(cost_manufacturing, 0) AS cost_mf, IFNULL(cost_material, 0) AS label, --目的倉数 IFNULL(cost_employees, 0) AS cost_emp, IFNULL(manufacturing_line, 0) AS manu_line, IFNULL(manufacturing_efficiency, 0) AS manu_eff, IFNULL(employees, 0) AS emp FROM   `yamaguchi_test_bqml.training` ; CREATE MODEL文で簡単にモデルを䜜成するこずが可胜です。OPTIONS句内で今回䜿甚する線圢回垰linear_regを指定しおいたす。 その埌のSELECT文によっお指定されたデヌタを䜿甚しおモデルをtrainingしたす。 たた、 「cost_material」 に察しお、 「label」 ずいう゚むリアスを䜜成するこずで、 cost_materialが目的倉数であるこず を瀺しおいたす。CREATE句でinput_label_cols=オプションを䜿甚しお目的倉数を蚭定するこずも可胜です。 最埌のFROM句でトレヌニング甚のテヌブル「training」を指定しおいたす。 モデル䜜成が完了するず、゚クスプロヌラ画面の「モデル」配䞋に䜜成したモデルが衚瀺されたす。 以䞊でモデルの䜜成・トレヌニングは完了です。 モデルテスト 䜜成したモデルを䜿っお予枬をしおみたす。 䞋蚘SQLを実行したす。 SELECT predicted_label AS predicted_costs FROM ML.PREDICT(MODEL `yamaguchi_test_bqml.test_model_liner_reg`,   (   SELECT     IFNULL(cost_manufacturing, 0) AS cost_mf,     IFNULL(cost_employees, 0) AS cost_emp,     IFNULL(manufacturing_line, 0) AS manu_line,     IFNULL(manufacturing_efficiency, 0) AS manu_eff,     IFNULL(employees, 0) AS emp   FROM     `yamaguchi_test_bqml.test`   WHERE     employees=476 )) ML.PREDICT関数 を䜿っお予枬を行いたす。モデルの出力列名は predicted_<label_column_name> ずしおいたす。 SELECT句で指定しおいるpredicted_labelは labelの掚定倀 になりたす。 ネストされたSELECT句は、モデル䜜成のCREATE MODEL句ず同じにしおいたすが、FROM句にはtestテヌブルを指定しおいたす。 trainingのデヌタでモデルを孊習させ、testのデヌタを䜿っお予枬の挙動を芋る。ずいった狙いです。今回は、 「埓業員数が476人の堎合の原材料費」 を予枬しおいたす。 予枬結果を芋おみたしょう。 1344.5283  ずいう予枬が埗られたした。testテヌブルの実際のデヌタを比范しおみるず、 、、、、䜕ずも蚀えない結果ですね。。 ずはいえ、そこたでかけ離れおいる数倀ではないです。 予枬の粟床が良くない原因ずしお、そもそも孊習に䜿甚するデヌタ量が少ない点がたず考えられたす。 それ以倖にもモデルを孊習させる際に、CREATE句のOPTION内で様々な蚭定をし、予枬粟床を䞊げるこずも可胜です。ここに぀いおは埌続のブログで曞きたいず思いたす。   たずめ 今回は、BigQuery MLを䜿っおモデルを䜜成し、実際に予枬をしおみたした。 今回は 公匏ドキュメント に沿っお実践を進めたのですが、「モデルの評䟡」に぀いおは本ブログでは觊れたせんでした。長くなりそうだったので。 今回䜜成したモデルの評䟡結果を先出しおおきたす。 こんな感じです。初めお芋る評䟡指暙がズラリず䞊んでいたので、この蟺りは別のブログで深堀しおいきたす。
こんにちは。SCSK 䞭山です。 少し前に発衚のあったDevice Postureのアップデヌトでプロファむルでレゞストリキヌの倀や皌働しおいるプロセスを条件ずしお蚭定できるようになりたした。 匊瀟アカりントにもアップデヌトが適甚されたしたので、今回は蚭定・動䜜怜蚌をしおみたいず思いたす。 ず、その前に、、 Device Postureずいう機胜を軜く説明しおおきたす。 Device Postureずは Device Postureずは、端末の状態をチェックし属性を付䞎する機胜です。付䞎した属性に察しおポリシヌを蚭定するこずで、芁件を満たさない端末をネットワヌクぞ接続させないずいったコントロヌルが可胜になりたす。 詳现に぀いおは、別途蚘事を曞いおおりたすので、こちらをご芧ください。 CatoクラりドでDevice Postureを利甚したい Device Postureの簡単な蚭定䟋ず動䜜怜蚌結果をご玹介したす。 blog.usize-tech.com 2024.05.17 Device Postureは蚭定できる条件がいく぀かあり、よく䜿われるずころだずクラむアントのセキュリティ゜フトのむンストヌル有無、セキュリティ゜フトのバヌゞョンのチェックがありたすが、今回のアップデヌトでは条件ずしお端末のレゞストリキヌの倀や指定したプロセスが皌働しおいるかが指定できるようになったずいう感じです。 合わせおこの蚘事では觊れおたせんが、MacOS向けに「Property List」での指定も远加されおおりたす。 詳しくはCatoのナレッゞをご確認ください。察応OS/Cato Clientのバヌゞョンも蚘茉されおおりたす。 Creating Device Posture Profiles and Device Checks   それでは早速蚭定・怜蚌をしおいきたいず思いたす。 実斜手順 レゞストリキヌの蚭定 ① CMAから、「Access」 >「 Device Posture」>「Device Checks」の「New」から新芏のポリシヌを䜜成したす。 ②「General」>「Device Test Type」で「Registry Key」を遞択したす。 ③ 「Criteria」にポリシヌの内容を蚘茉したす。 OSWindows Registry Key Path<蚭定したいレゞストリヌのパス> Key Value Name<蚭定したいレゞストリキヌの名前> Key Value Data<蚭定したいレゞストリキヌの倀> むメヌゞずしおは、「Registry Key Path」ず「Key Value Name」でレゞストリキヌのフルパスを䜜る感じです。 䟋えば、以䞋画像のレゞストリキヌ(HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU\NoAutoUpdate)の倀で条件を䜜成したい堎合、CMA偎の蚭定はこんな感じになりたす。 ◆レゞストリ゚ディタヌの画面 ◆CMAの蚭定画面 レゞストリキヌに䜕かしら倀が入っおいたら、、、ずいう条件の堎合は「Key Value Data」で「Any Value」を遞択しおください。   ④ ポリシヌを䜜成できたら、「Device Posture Profiles」より、新芏でプロファむルを䜜成し、③で䜜成したポリシヌを玐づけたす。   プロセスの蚭定 ① レゞストリキヌの蚭定ず同様に新芏ポリシヌを䜜成したす。 ②「General」>「Device Test Type」で「Running Process」を遞択したす。   ③「Criteria」にポリシヌの内容を蚘茉したす。(以䞋蚭定はWindowsの堎合) OSWindows Process Name or path<蚭定したいプロセスのフルパス or プロセス名> Signer Certificate Thumbprint<蚌明曞の拇印> 以䞋は怜蚌の際にAWSのssm-agentで蚭定した際のCMAの画面です。 プロセス名、拇印の確認方法 ・ プロセス名 「タスクマネヌゞャヌ」よりプロセスの「プロパティ」を開くこずで確認できたす。 フルパスで指定したい堎合には、同じようにプロパティ画面から確認できたす。 CMAには 堎所+プロセス名+ファむルの皮類で蚘茉すれば蚭定できたす。 䞊蚘の堎合、「C:\Program Files\Amazon\SSM\amazon-ssm-agent.exe」ず指定する感じです。 サヌビスずしお皌働しおいる堎合には、各サヌビスのプロパティ画面から盎接フルパスを確認できたす。   ・ 蚌明曞の拇印の確認方法 ① プロセス名の確認手順ず同様にタスクマネヌゞャからプロセスのプロパティを開きたす。 ② 「デゞタル眲名」タブを開き、眲名を遞択し、詳现を開きたす。 ③「蚌明曞の衚瀺」し、蚌明曞の「詳现タブ」を開きたす。 詳现の䞭に「拇印」ずいう項目があるので、その倀をCMAの「Signer Certificate Thumbprint」に蚘茉したす。 Device Postureの蚭定自䜓はこれで完了です。 「Client Connectivity Policy」や「 Internet Firewall」、「WAN Firewall」で 䜜成したプロファむルを指定するこずで、察象のデバむスをコントロヌルするこずができたす。   実際にやっおみた レゞストリキヌを指定する堎合、プロセスを指定する堎合、どちらも怜蚌しおみたした。 レゞストリキヌはWindows Updateを無効化しおいるデバむスをCatoに接続できなくするような蚭定で怜蚌しおみたした。 CMAの各蚭定はこんな感じです。 ◆ Device Checks 「Default」はレゞストリ゚ディタヌ䞊で(芏定)ずなっおいる箇所の時に䜿甚したす。 ◆ Device Posture Profile ◆ Client Connectivity Policy 今回蚭定しおいるレゞストリキヌはWindows Updateの自動曎新を有効にする堎合は「0」、自動曎新を無効にする堎合は「1」を蚭定するような項目になっおいお、このポリシヌでは自動曎新が有効の堎合、ポリシヌが適甚されCatoに接続できたすが、自動曎新が無効の堎合はポリシヌが適甚され、接続できなくするような蚭定になっおたす。 クラむアント偎のレゞストリキヌはこんな感じで蚭定したした。 倀を1にしお自動曎新を無効にしおたす。 これでいざCato Clientの接続を詊みるず、、 ゚ラヌが出お接続できたせんでした。 こんな感じでWindows Updateを無効化しおいる端末をCatoに接続できないようにできたした。 次にプロセスを指定する堎合を怜蚌したした。 操䜜ログ取埗系のアプリがバックグラりンドで動いおいるむメヌゞで、そのアプリを停止させるずCatoに接続できなくするような想定で怜蚌しようず思いたしたが、操䜜ログ取埗系のアプリが怜蚌環境になかったので、適圓にバックグラりンドで動いおいるアプリを指定しお怜蚌したした。 CMAの各蚭定はこんな感じです。 ◆ Device Checks ◆ Client Connectivity Policy ◆ Client Connectivity Policy 基本的にはレゞストリず同様でプロセスが皌働䞭はポリシヌが適甚され、プロセスが停止䞭の堎合はポリシヌが適甚され接続できないような蚭定になっおたす。   クラむアント偎のプロセス皌働状況はこんな感じです。 蚭定した「amazon-ssm-agent」が皌働しおおりたす。 この状態で接続をするず、、 プロセス皌働䞭はもちろん接続はできたす。   Catoに接続した状態のたた、「amazon-ssm-agent」のプロセスを停止しお攟眮したす。 5分埌 接続が切れおしたい、再接続もできなくなりたした。 本環境では、Device Postureのチェック間隔を5分にしおいたため、怜蚌では再チェックのタむミングで接続が切れたした。 このように定期的にチェックが入るため、接続時のみプロセス皌働させおおき、接続埌にプロセスを萜ずすずいうこずはできないようになっおたす。 たた、䞊蚘含めお「Client Connectivity Policy」でCatoに接続させるか吊かを制埡しおおりたすが、 Internet Firewall、WAN Firewallで もDevice Postureの蚭定を䜿った制埡も可胜です。 䞀応こんな感じです。 ◆ むンタヌネットFW 「Action」郚分を茉せおたせんが、「BLOCK」に蚭定しおいお、「Device Posture Profiles」の条件に該圓する通信は党拒吊するようにしおたす。Profileは先皋のプロセスで怜蚌したものず同様。 ◆Cato Client 「Client Connectivity Policy」で制埡しおいないので、Cato自䜓ぞの接続はできおたす。 Catoに接続 か぀ 「amazon-ssm-agent」のプロセスが皌働しおいる状態でむンタヌネットにアクセスしようずするず、、 今回は条件該圓する堎合に通信をBLOCKするので、アクセスができないようになっおたす。   もちろんプロセスを止めるず、条件に圓おはたらないので、通垞通りむンタヌネットにアクセスするこずができたした。   䜙談ですが、ふず思い぀きで耇数ナヌザでログむンした状態でプロセスの刀定を怜蚌したずころ、片方のナヌザがプロセス起動しおいる状態であれば、もう䞀方のナヌザはプロセスを立ち䞊げおなくおも、Catoに繋げおしたったので、”Device Posture”ずいうだけあっお、Catoに接続しようずしおいるナヌザのプロセスだけではなく、端末党䜓のプロセスを芋おいるっぜいです。 誰かしらプロセスを立ち䞊げおいればすり抜けられちゃうみたいなので、ナヌザ単䜍で起動しおいるプロセスを条件に指定する堎合には、泚意が必芁そうです。   ナヌスケヌスを考えおみた レゞストリ/プロセスを指定しお制埡するナヌスケヌスを考えおみたいず思いたす。   たず、レゞストリから。 レゞストリは蚭定できる内容が倚いため、できるこずはたくさんあるず思いたす。 私が知っおいるレゞストリの知識の範囲で䟋を挙げおみたいず思いたす。 たずは怜蚌のようにWindows Updateを無効にしおいる端末の接続を䞍可にする堎合ですかね。 パッチ管理゜フトでの制埡をしおいる堎合は䞍芁かず思いたすが、パッチ管理゜フトを導入しおいない堎合、ルヌルは決めおいおもなかなか匷制はできず、セキュリティ基準を満たしおいないPCが接続しおしたう可胜性がありたす。このような端末をレゞストリで条件指定するこずによっお、瀟内NWに接続できないようにできるのかなず思いたす。 パッチ回りだず適甚されおいるセキュリティパッチを指すレゞストリキヌがありそうなので、そのキヌを条件指定するこずで、セキュリティパッチを適甚しおいないをCatoに接続させないずいうこずができそうかなず思ったのですが、毎回KB○○に新芏で䜜成されるみたいで、毎月条件を倉曎するずいった運甚が必芁そうなので、やろうず思えばできそうですが、運甚を螏たえるず珟実的ではなさそうです。 他だず䌚瀟から支絊されたPCに䜕かしらのフラグが蚭定されおいたりしたら、䌚瀟PC or 個人PCずで識別できたすかね。Cato Clientは正芏のナヌザであればログむンできおしたうので、個人のPCにClientを入れおCatoから瀟内NWに接続できおしたいたす。これに察し、フラグにあたるレゞストリキヌを条件にするこずで、䌚瀟PCのみCatoに接続でき、個人PCは接続させないずかができそうです。   次にプロセス。 こちらも怜蚌でやろうずしおいた管理系のアプリ/プロセスを条件にしお操䜜ログの取埗できない端末は瀟内NWに接続させないずかは結構有甚な気がしたす。 あずは、アンチりむルス゜フトのプロセスを指定するずかもありな気がしたす。埓来の蚭定でもアンチりむルス゜フトを蚭定する方法がありたしたが、あくたでむンストヌルされおいるか、バヌゞョンはポリシヌを満たしおいるかをチェックしおいるだけで、実際に起動しおいるかを条件にしおいるものではないです。なので、瀟内ルヌルに則りむンストヌルはしおいおも、実際にはアプリを止めおいるずかもできおしたすので、プロセスの方で条件するのも良いかもです。 ただ、プロセス党般に蚀えるこずかもですが、バヌゞョンアップ等でプロセス名が倉わっおしたうず蚭定倉曎が必芁なので、泚意が必芁かもです。アップデヌトごずに怜蚌をするずいう運甚もセットかもですね。   たずめ 今回はアップデヌトで远加されたDevice Postureのレゞストリキヌ/プロセスの指定での制埡を怜蚌しおみたした。 レゞストリキヌ/プロセスを条件を指定できるこずになり、蚭定にあたりOSの知識も必芁になっおきたしたが、今たでの条件より比范的柔軟にデバむス制埡ができるようになったかず思いたす。これたでにデバむス制埡を断念したこずがある方も今回のアップデヌトを機に再怜蚎しおみおは劂䜕でしょうか。  
本蚘事は 倏䌑みクラりド自由研究 8/31付の蚘事です 。 こんにちは、SCSK朚柀です。 8/1から始たった倏䌑みクラりド自由研究も今回で最終回ずなりたした。 今回の䌁画は幅広いクラりドや゜リュヌションを担圓する31名の執筆者にご協力いただき、無事完走するこずが出来たした。 TechHarmonyは 今春に500蚘事を超え 、その埌も順調に蚘事数を増やしおいたす。 今埌も色々な䌁画を考えおいきたいず思いたすので、どうぞ匕き続きご愛顧の皋よろしくお願いしたす。 さお今回は自由研究らしく、普段ずは違う話題ずしおAWS Lambdaのファむルシステムに぀いお調査しおみたした。 きっかけ 私が本件に興味を持ったのは、5幎前に携わった案件に遡りたす。 管理しおいるEC2むンスタンスに配垃する蚭定ファむル䞀匏に぀いおナヌザヌ毎むンスタンス毎にカスタマむズする必芁があり、調査の䞊、 Lambdaのファむルシステム䞊で凊理しおS3に出力するこずが適切 ず刀断しお実装したした。 S3バケットからzipファむルをダりンロヌドしおzip解凍 蚭定ファむルを曞き換え 再床zip圧瞮しお、S3バケットに曞き蟌み サヌバレスコンピュヌティングずはいえ、実態ずしおはサヌバヌがあるんだなず興味深く圓時は思った次第です。 そのあたりをもう少し詳现にお話しおいきたす。   動䜜仕様 Lambdaの動䜜原理 理解を深めるためにも、Lambdaの動䜜原理に぀いおから觊れたいず思いたす。 ずはいえJAWS DAYS 2022でのAWS(圓時)の亀田さんの講挔がずおも解りやすく私の印象に匷く残っおいるので、こちらから玹介したす。 AWS Lambdaは2014幎のre:Inventで発衚されたものずなりたすが、圓時はナヌザヌ毎に内郚にEC2むンスタンスを持぀構成でした。 その埌Lambdaの実行に特化した構成ずしおNitroシステムずFirecrackerが導入され、より匷固なアむ゜レヌション環境分離ず高速・倚数の起動環境を実珟しおいたす。 実は私はAWSを担圓する前に自瀟クラりドに携わっおいたため匷く思うのですが、AWS Lambdaのリリヌス圓初はEC2ベヌスコンテナの技術レベルであったにも関わらず、お客様ディベロッパヌにずっおあるべき姿を定矩し、あるべき䟡栌で赀字でも提䟛する、そしおその埌改善・解決しおいくずいう姿はThink BigでありCustomer Obesessionでもあるので感銘を受けたのを芚えおいたす。 話が長くなったので戻したすが、珟圚AWS LambdaはNitroシステムFirecrackerで提䟛されおいたす。 ぀たり Lambdaも小さい仮想サヌバヌ(microVM) ずいう蚳です。 よっお、圓然ながらファむルシステムもありたす。 クオヌタ制限に぀いおはこちらをご芧䞋さい。 Lambda クォータ - AWS Lambda Lambda 関数および API リク゚ストに関する最倧サむズ、制限、およびクォヌタです。 docs.aws.amazon.com ナヌザヌがLambdaにアタッチできるロヌカルファむルシステムは、 /tmp にマりントされ512MB10240MBの間で蚭定可胜 です。 りォヌムスタヌトずコヌルドスタヌト Lambdaのロヌカルファむルシステムに぀いお觊れる際に、この話は避けお通れたせん。 Lambdaを起動した際にmicroVMを䜜成される蚳ですが、どうしおもこの 初期化䜜業には䞀定の時間が掛かりたすコヌルドスタヌト 。そのため、 もし再利甚できるmicroVMがあれば再利甚 しおスピヌドアップするよう動䜜したす りォヌムスタヌト 参考AWS Blackbelt AWS Lambda(p60あたりから) https://pages.awscloud.com/rs/112-TZM-766/images/20190402_AWSBlackbelt_AWSLambda%20Part1&2.pdf この 再利甚りォヌムスタヌトが発生した際は、前の実行時のファむルがナヌザヌファむルシステムに残ったたた になっおいたす。 ファむル凊理を行った際にファむル重耇で゚ラヌになる可胜性があるのでご泚意ください。 実行開始時に䞀旊すべお削陀するか、䟋倖凊理を入れる必芁があるでしょう。   調査 さお、ファむルシステムの詳现を調べおみたいず思いたす。 容量・パヌミッションの確認 デフォルトの蚭定でLambdaを䜜成し、以䞋のコヌドで実行しおみたす。 PythonのOSラむブラリでOSコマンドを実行しおいたす。 import json import os def lambda_handler(event, context): # 実行ナヌザヌを確認 print("--user") print(os.system("whoami")) # ディスク容量を確認 print("--disk capacity") print(os.system("df -h")) # マりント状態を確認 print("--mount") print(os.system("cat /etc/fstab")) # パヌミッションの確認 print("--permisson /") print(os.system("ls -al /")) print("--permisson /tmp") print(os.system("ls -al /tmp")) # 曞き蟌み print("--write /") print(os.system("touch /test1.txt")) print(os.system("ls -al /")) print("--write /tmp") print(os.system("touch /tmp/test2.txt")) print(os.system("ls -al /tmp")) return { 'statusCode': 200, 'body': '' } 実行結果を確認したす 実行ナヌザヌ --user sbx_user1051 圓然ながら䞀般ナヌザヌ暩限でナヌザヌプロセスは実行されおいたす ディスク容量、マりント状態 --disk capacity Filesystem Size Used Avail Use% Mounted on /dev/vde 144G 143G 0 100% / /dev/vdb 1.5G 18M 1.4G 2% /etc/hosts tmpfs 64M 0 64M 0% /dev /dev/vdd 525M 8.0K 514M 1% /tmp /dev/root 9.7G 386M 9.3G 4% /etc/passwd /dev/vdc 128K 128K 0 100% /var/task --mount # LABEL=/ / auto defaults,noatime 1 1 /tmpはナヌザヌ蚭定により容量が倉わるので、別ディスクずしおマりントされおいたす 。 ルヌトディスクはリヌドオンリヌではないですが、曞き蟌み䞍可ずなっおいたす。 パヌミッション --permisson / total 116 drwxr-xr-x 18 root root 4096 Jul 31 08:47 . drwxr-xr-x 18 root root 4096 Jul 31 08:47 .. -rw-r--r-- 1 root root 48222 Jul 31 22:38 THIRD-PARTY-LICENSES.txt lrwxrwxrwx 1 root root 7 Jan 30 2023 bin -> usr/bin dr-xr-xr-x 2 root root 4096 Jan 30 2023 boot drwxr-xr-x 2 root root 200 Aug 30 00:50 dev drwxr-xr-x 34 root root 4096 May 10 11:16 etc drwxr-xr-x 2 root root 4096 Jan 30 2023 home -rwxr-xr-x 1 root root 397 Jul 31 15:59 lambda-entrypoint.sh lrwxrwxrwx 1 root root 7 Jan 30 2023 lib -> usr/lib lrwxrwxrwx 1 root root 9 Jan 30 2023 lib64 -> usr/lib64 drwxr-xr-x 2 root root 4096 Apr 25 19:25 local drwxr-xr-x 2 root root 4096 Jan 30 2023 media drwxr-xr-x 2 root root 4096 Jan 30 2023 mnt drwxr-xr-x 2 root root 4096 Jan 30 2023 opt dr-xr-xr-x 123 root root 0 Aug 30 01:40 proc dr-xr-x--- 2 root root 4096 Jan 30 2023 root drwxr-xr-x 5 root root 4096 Apr 25 19:25 run lrwxrwxrwx 1 root root 8 Jan 30 2023 sbin -> usr/sbin drwxr-xr-x 2 root root 4096 Jan 30 2023 srv drwxr-xr-x 2 root root 4096 Apr 25 19:25 sys drwxrwxrwx 2 root root 4096 Aug 5 15:36 tmp drwxr-xr-x 12 root root 4096 Jul 31 08:47 usr drwxr-xr-x 24 root root 4096 May 9 21:46 var /tmpは暩限777のため、䞀般ナヌザヌでも曞き蟌み可胜です。 ファむル曞き蟌みの確認 --write / touch: cannot touch '/test1.txt': Read-only file system 圓然ながらルヌトディスクは曞き蟌み䞍可です。 --write /tmp total 8 drwxrwxrwx 2 root root 4096 Aug 30 01:40 . drwxr-xr-x 18 root root 4096 Jul 31 08:47 .. -rw-r--r-- 1 sbx_user1051 990 0 Aug 30 01:40 test2.txt /tmpには曞き蟌み可胜です。 ファむル入出力速床の調査 さお、ロヌカルファむルシステム(/tmp)には䜕も保存されおいない蚳ですし、デヌタは氞続化できたせん。 よっお、 S3バケットなどからダりンロヌドしおきおから凊理を行う必芁がありたす 。 ファむルの入出力時間が気になるので、確認しおみたす。 S3バケットを䜜成しお、CloudShellから1GBのファむルを䜜成しお保存したす。 $ dd if=/dev/zero of=1gb.dat bs=1024k count=1024 $ aws s3 cp 1gb.dat s3://S3バケット名/ 以䞋のようなコヌドでLambda関数を䜜成したす。 import json import boto3 import os bucketname = "S3バケット名" def lambda_handler(event, context): s3r = boto3.resource('s3') # /tmp削陀 print("--delete") print(os.system("rm -rf /tmp/*")) # コピヌ data_bucket = s3r.Bucket(bucketname) print("--copy from S3 Bucket Start") data_bucket.download_file('1gb.dat','/tmp/1gb.dat') print("--copy from S3 Bucket End") return { 'statusCode': 200, 'body': '' } S3にアクセスできるLambda甹IAMロヌルを䜜成し、本関数に適甚したす。 ディスク容量は増やしおおきたす。 EC2むンスタンスず同様、Lambdaにおいおもメモリ容量ずCPUスペックは比䟋するように蚭蚈されおいたす。 そこで、メモリ容量≒CPU割り圓おずS3からの読み取り速床を調べたずころ、以䞋の通りになりたした。回平均、CloudWatch Logsに出力されたログのタむムスタンプから算定 Lambdaメモリ割圓量 ダりンロヌド時間 速床 128MB 74.2秒 110Mbps 256MB 40.4秒 203Mbps 512MB 19.4秒 422Mbps 1024MB 10.7秒 768Mbps 2048MB 10.4秒 785Mbps メモリ割り圓おに比䟋しおネットワヌクI/O垯域も拡匵されるこず、䜆しS3バケットからのダりンロヌドにおいおは800Mbps匱で頭打ちになる こずを確認したした。 ぀たり、/tmpの最倧容量10GBのダりンロヌドもしくはアップロヌドを行うには、最䜎100秒皋床の時間が掛かるこずになりたす。 この蟺りがロヌカルディスクを甚いた凊理の限界であるであろうこずが解りたした。 芁件満たさない堎合はEFS利甚 10GBを超える 倧容量ファむルを扱いたい堎合、あるいは氞続ファむルをマりントしたい堎合はAmazon EFSの利甚が可胜 です。 なお、Amazon EFSはVPC䞊のサヌビスですので、LambdaもVPCアタッチが必芁ずなりたす。   たずめ 実に地味な内容でしたが、Lambdaのファむルシステムに぀いお解説・確認したした。 ネットワヌク垯域にも倉動があるこずなど、新たな発芋があり楜しかったですね。 Lambdaのロヌカルファむルシステム(/tmp)は非氞続ずいうこずもあり、ディスク容量は課金には圱響したせん。 色々䜿いこなすず楜しいので、皆様もご掻甚䞋さい
本蚘事は 倏䌑みクラりド自由研究 8/30付の蚘事です 。 こんにちは、SCSKの束岡です。 今回は、Snowflakeをこれから利甚する方向けに、環境構築で最䜎限抑えおおきたいポむントをぎゅっず絞っおご玹介したす。Snowflakeのアカりントは䜜ったけど䜕から始めよう ずお悩みの方はぜひご参考ください! Snowflakeずは Snowflake (Snowflake Cloud Data Platform)は、Snowflake瀟が提䟛するSaaS型のクラりドデヌタプラットフォヌムです。 デヌタ管理、セキュリティ、ガバナンス、可甚性、デヌタレゞリ゚ンスをサポヌトしたフルマネヌゞド型のサヌビスであり、りェアハりスのスケヌリング/ポリシヌ制埡/デヌタ共有の柔軟性などから、デゞタルデヌタの䞀元管理に優れたプラットフォヌムずしお泚目を集めおいたす。 プラットフォヌムの抂芁 Snowflakeのクラりドデヌタプラットフォヌムが䞖界的に、あらゆる芏暡、あらゆる業界においお、をほが無制限の同時実行ワヌクロヌドで匷化した方法をご玹介したす。 www.snowflake.com   利甚する前に   ゚ディション Snowflakeでは、4぀の゚ディションが甚意されおおり、利甚するアカりントがどの゚ディションかによっお、䞀郚できるこずが異なりたす。 (䟋)Time Travelによるデヌタの保管期間の90日延長はEnterprise以䞊の゚ディションのみ (䟋)PrivateLinkを䜿甚したプラむベヌト接続のサポヌトはBusiness Critical以䞊の゚ディションのみ Snowflakeは埓量課金制ですが、䞊䜍の゚ディションほど利甚あたりの単䟡が高い点にも泚意が必芁です。 Snowflake Edition | Snowflake Documentation docs.snowflake.com 蚀語蚭定 Snowsight(Snowflakeを操䜜するりェブ画面)のデフォルト衚瀺は英語ですが、アむコンから「My profile」を遞択し、Languageで「日本語」を遞択するこずで日本語衚瀺に切り替わりたす。 システムロヌル Snowflakeでは、「ロヌル」ず呌ばれる単䜍でアクセス制埡や暩限管理を行いたす。 ナヌザヌには耇数のロヌルを割り圓おるこずができ、操䜜を行う際は、その操䜜ごずにロヌルを切り替えお(適切なアクティブロヌルを遞択しお)から実行を行いたす。 あらかじめ定矩されたロヌルずしお、以䞋のようなシステムロヌルが存圚しおいたす。 ACCOUNTADMIN アカりント内で最䞊䜍のロヌル。 アカりント管理者に限定しお付䞎し、アカりント党䜓に関わる蚭定等をする際に䜿甚したす。 SECURITYADMIN セキュリティ管理甚のロヌル。 ナヌザヌずロヌルの䜜成や、ロヌルの割り圓お等が可胜です。 USERADMIN ナヌザヌずロヌルの管理専甚のロヌル。 SECURITYADMINず同じくナヌザヌずロヌルの䜜成が可胜ですが、限定的です。 SYSADMIN りェアハりスやデヌタベヌス、スキヌマのようなオブゞェクトを䜜成する暩限を持぀ロヌル。 PUBLIC アカりント内のすべおのナヌザヌ、ロヌルにデフォルトで付䞎されるロヌル セキュリティや誀操䜜防止の芳点から、付䞎するロヌル、指定するロヌルはなるべく最小暩限のものが望たしいです。 最初の時点では、アカりント党䜓の蚭定はACCOUNTADMIN、ナヌザヌの䜜成はUSERADMIN、ロヌルの䜜成・割り圓おはUSERADMINかSECURITYADMIN、オブゞェクト(デヌタベヌス・スキヌマ・りェアハりス)の䜜成はSYSADMINず芚えおおくず良いでしょう。 アクセス制御の概要 | Snowflake Documentation docs.snowflake.com Snowsightでは、以䞋の箇所でロヌルの切替を行えたす。 (GUIで操䜜する堎合) アむコンから「ロヌルを切り替え」を遞択 (ク゚リを実行する堎合) ワヌクシヌトの画面右䞊からロヌルを遞択 Snowsightでは[プロゞェクト]>[ワヌクシヌト]からワヌクシヌトを開くこずで、ブラりザ䞊でSQLク゚リの実行が可胜です。   環境構築最初にやるこず集 最䜎限のパラメヌタ蚭定で䜜成する手順を玹介したす。 ナヌザヌ䜜成 利甚者ごずにナヌザヌを䜜成したしょう。 GUIで䜜成 [管理者]>[ナヌザヌずロヌル]>[ナヌザヌ]画面から、[+ ナヌザヌ]を遞択し、必芁情報を入力しお䜜成したす。 ク゚リで䜜成 (サンプル) --user_001ずいう名前でナヌザヌ䜜成 CREATE USER user_001   PASSWORD = '[パスワヌド]'    EMAIL = "[メヌルアドレス]"    MUST_CHANGE_PASSWORD = TRUE    DISPLAY_NAME = "[衚瀺名]" ; [MUST_CHANGE_PASSWORD]をTRUEにするこずで、初回ログむン時にパスワヌド倉曎を匷制させるこずができたす。 CREATE USER | Snowflake Documentation docs.snowflake.com ナヌザヌを䜜成したら、アむコンの[自分のプロファむル]から倚芁玠認蚌(MFA)を登録しおもらいたしょう。 特に管理者(ACCOUNTADMIN)ロヌルを持぀ナヌザヌに぀いおは蚭定が匷く掚奚されおいたす。 多要素認証(MFA) | Snowflake Documentation docs.snowflake.com りェアハりス䜜成 りェアハりスは、ク゚リの凊理時に䜿甚されるコンピュヌティングリ゜ヌスです。 デヌタベヌス・スキヌマのようなストレヌゞ領域がコンピュヌティングリ゜ヌスず分離しおいるのがSnowflakeの倧きな特城の䞀぀です。 仮想ウェアハウス | Snowflake Documentation docs.snowflake.com GUIで䜜成 [管理者]>[りェアハりス] 画面から、[+ りェアハりス]を遞択し、りェアハりス名を入力しお䜜成したす。 Snowflakeではりェアハりスの皌働時間が長いほど倚くの費甚が発生するので、りェアハりスの自動䞀時停止を有効にしおおくこずでコスト削枛に぀ながりたす。 ク゚リで䜜成 (サンプル) --wh_001ずいう名前でりェアハりス䜜成 CREATE WAREHOUSE wh_001 WAREHOUSE_SIZE = XSMALL AUTO_SUSPEND = 60 ; 䜜成時に[WAREHOUSE_SIZE]でりェアハりスのサむズを指定したす。お詊し甚途であれば、䞀番小さいXSMALLサむズで問題ないでしょう。 [AUTO_SUSPEND]の倀が自動䞀時停止されるたでの秒数を衚したすが、デフォルトの600より短い60に倉曎するこずで、利甚しおいない堎合はより玠早く䞀時停止されたす。(※60未満の倀は非掚奚) CREATE WAREHOUSE | Snowflake Documentation docs.snowflake.com   デヌタベヌス・スキヌマ䜜成 Snowflakeでは、デヌタを栌玍するためにテヌブルが必芁ですが、そのテヌブルの栌玍先ずしおデヌタベヌス、スキヌマが必芁です。 GUIで䜜成 [デヌタ]>[デヌタベヌス] 画面から、[+ デヌタベヌス]を遞択し、デヌタベヌス名を入力しお䜜成したす。 スキヌマは䜜成したデヌタベヌスの画面から、[+ スキヌマ]を遞択しお䜜成したす。 ク゚リで䜜成 (サンプル) --db_001ずいう名前でデヌタベヌス䜜成 CREATE DATABASE db_001; --schema_001ずいう名前で、db_001にスキヌマ䜜成 CREATE SCHEMA db_001.schema_001; デヌタベヌス、スキヌマずもに、通垞利甚であれば特別なパラメヌタの指定は必芁なく簡単に䜜成ができたす。 CREATE DATABASE | Snowflake Documentation docs.snowflake.com CREATE SCHEMA | Snowflake Documentation docs.snowflake.com   ロヌル䜜成・付䞎 序盀にシステムロヌルを玹介したしたが、独自のロヌルを䜜成しおナヌザヌに暩限付䞎するこずも可胜です。 䟋ずしお、特定のDB、特定のりェアハりスのみに察しお䞀般的な操䜜限定で行えるロヌルを䜜成しおみたす。 ク゚リで䜜成 (サンプル) --sample_role_001ずいう名前でロヌルの䜜成 CREATE ROLE sample_role_001; --sample_role_001ロヌルにUSAGE暩限付䞎 GRANT USAGE ON DATABASE db_001 TO ROLE sample_role_001; GRANT USAGE ON SCHEMA db_001.schema_001 TO ROLE sample_role_001; GRANT USAGE ON WAREHOUSE wh_001 TO ROLE sample_role_001; --sample_role_001ロヌルにテヌブル、ビュヌのCREATE暩限付䞎 GRANT CREATE TABLE, CREATE VIEW ON SCHEMA db_001.schema_001 TO ROLE sample_role_001; --sample_role_001ロヌルにテヌブル、ビュヌの操䜜暩限付䞎 GRANT SELECT, INSERT, UPDATE, DELETE, TRUNCATE ON ALL TABLES IN SCHEMA db_001.schema_001 TO ROLE sample_role_001; GRANT SELECT, INSERT, UPDATE, DELETE, TRUNCATE ON FUTURE TABLES IN SCHEMA db_001.schema_001 TO ROLE sample_role_001; GRANT SELECT ON ALL VIEWS IN SCHEMA db_001.schema_001 TO ROLE sample_role_001; GRANT SELECT ON FUTURE VIEWS IN SCHEMA db_001.schema_001 TO ROLE sample_role_001; --user_001ナヌザヌにample_role_001ロヌルを付䞎 GRANT ROLE sample_role_001 TO USER user_001; sample_role_001ずいう名前のロヌルを䜜成し、ロヌルに察しお暩限を付䞎し、そのロヌルを特定のナヌザヌuser_001に付䞎しおみたした。 ロヌルに付䞎しおいる暩限の䞭で、「USAGE」は䜿甚暩になりたす。䜿甚できるようにしたいデヌタベヌス、スキヌマ、りェアハりスに察しお、このUSAGE暩限をそれぞれ付䞎する必芁がありたす。 続けお、ロヌルに察し、スキヌマschema_001に限定しおテヌブル・ビュヌのcreate暩限や操䜜暩限を付䞎しおいたす。 テヌブルやビュヌを指定する際に、「ALL TABLES」や「ALL VIEWS」のような指定は、既存のテヌブルやビュヌすべおを察象に暩限を付䞎するこずを意味したす。䞀方で「FUTURE TABLES」や「FUTURE VIEWS」のような指定は、これから䜜成されるテヌブルやビュヌに察しお暩限を付䞎するこずを意味したす。 「ALL TABLES」で指定しただけでは、新芏で䜜成したテヌブルに察しお暩限が付䞎されないこずに泚意が必芁です。 最埌に、GRANT ROLE でナヌザヌに察しお䜜成したロヌルを付䞎するこずで、付䞎した特定のナヌザヌに察しおカスタマむズした暩限のみを付䞎するこずが可胜です。 GRANT <権限> | Snowflake Documentation docs.snowflake.com   ネットワヌクポリシヌ蚭定 Snowflakeでは、ネットワヌクポリシヌを蚭定し、Snowflakeに接続できるIPアドレスを制限するこずが掚奚されおいたす。䟋ずしお、IPアドレス範囲を指定しお、蚱可したIPアドレスのみ接続できるようにする蚭定を瀺したす。 ク゚リで蚭定 (サンプル) USE ROLE SYSADMIN; --Network Rules蚭定甚のデヌタベヌス・スキヌマを䜜成 CREATE DATABASE securitydb; CREATE SCHEMA securitydb.networkrules; USE ROLE ACCOUNTADMIN; --network_rule_sampleずいう名前でネットワヌクルヌルを䜜成 CREATE NETWORK RULE network_rule_sample MODE = INGRESS TYPE = IPV4 VALUE_LIST = ('47.88.25.32/27') ; --network_policy_sampleずいう名前でネットワヌクポリシヌを䜜成し、network_rule_sampleを蚱可 CREATE NETWORK POLICY network_policy_sample ALLOWED_NETWORK_RULE_LIST = ('network_rule_sample') ; --䜜成したネットワヌクポリシヌをアカりント党䜓に適甚 ALTER ACCOUNT SET NETWORK_POLICY = network_policy_sample; ネットワヌクルヌルはスキヌマオブゞェクトなので、䜜成時にデヌタベヌス、スキヌマを指定する必芁がありたす。 䞊蚘を実行するこずにより、Snowflakeアカりント党䜓が、 47.88.25.32/27 のIPアドレス範囲からの接続しか蚱可されなくなりたす。 ネットワヌクルヌルを耇数䜜成するこずで、蚱可する条件をOR条件で耇数蚭定するこずや、ネットワヌクポリシヌをアカりント党䜓でなくナヌザヌごずに別々に適甚するこずも可胜です。 アカりント党䜓に適甚する際は、蚭定誀りに泚意したしょう。 適甚埌、サむンアりトする前に別ブラりザを立ち䞊げる等しお接続できるかどうかの動䜜を確認しおおくず安心です。蚭定誀りがある堎合は、  ALTER ACCOUNT UNSET NETWORK_POLICY; を実行するこずでネットワヌクポリシヌを無効化できたす。   ネットワークポリシーを使用したネットワークトラフィックの制御 | Snowflake Documentation docs.snowflake.com   タむムゟヌンの倉曎 Snowflakeでは、デフォルトのタむムゟヌンがAmerica/Los_Angelesに蚭定されおいたす。 アカりント党䜓でデフォルトのタむムゟヌンを日本暙準時に倉曎する堎合は、以䞋のようにアカりントパラメヌタの倀を倉曎したす。 --タむムゟヌンを日本暙準時に倉曎 ALTER ACCOUNT SET TIMEZONE = 'Asia/Tokyo';   パラメーター管理 | Snowflake Documentation docs.snowflake.com   リ゜ヌスモニタヌ リ゜ヌスモニタヌを利甚するこずで、Snowflakeアカりント内でのクレゞット(リ゜ヌス䜿甚量)の状況を監芖するこずができたす。 リ゜ヌスモニタヌによる蚭定は、新芏の堎合は[管理者]>[コスト管理]>リ゜ヌスモニタヌ 画面から、[+ リ゜ヌスモニタヌ]を遞択したす。 リ゜ヌスモニタヌによる監芖は、[モニタヌタむプ]から、アカりント党䜓の監芖か、りェアハりス個別の監芖かを指定できたす。 [クレゞットクォヌタ]で、指定した期間で蚱可するクレゞットの䞊限を蚭定したす。そしお、指定したクレゞットクォヌタに察しお実際の䜿甚が䜕%に達したかに応じお、[アクション]で、通知や即時䞀時停止ずいった内容を蚭定するこずが可胜です。 䜜成したリ゜ヌスモニタヌの通知を受け取りたい堎合は、ACCOUNTADMIN暩限を持぀ナヌザヌのアむコンの[自分のプロファむル]を遞択し、「リ゜ヌスモニタヌからのメヌル通知」にチェックが入っおいるこずを確認したしょう。 リソースモニターの操作 | Snowflake Documentation docs.snowflake.com   最埌に Snowflakeでは公匏のガむドやブログ蚘事が充実しおおり、構築に関するヒントやベストプラクティスの蚘茉をたくさん芋぀けられるので芁チェックです。 環境が甚意できたら、どんどんデヌタを投入しお掻甚しおみたしょう! ガイド - Snowflakeドキュメント docs.snowflake.com Inside the AI Data Cloud From technical articles about AI and application strategies to real-world success stories, the Snowflake Blog explores w... www.snowflake.com
Prisma Cloudにおけるアラヌトずは、Prisma Cloudがクラりド環境内で怜知したセキュリティリスクや脆匱性等を通知するための機胜です。アラヌトが発生した埌、適切な察応を取りシステムのセキュリティを維持するこずが重芁です。 Prisma Cloudで怜知されたアラヌトに察しお取るこずができるアクションにはアラヌトの解陀や䞀時停止等がありたす。アラヌトに察しお取るこずができる䞻なアクションに぀いお解説しおいきたいず思いたす。 アラヌトの解決 クラりド偎で蚭定を修正した堎合やアラヌトが発生した察象のリ゜ヌスが削陀された堎合等、これらの倉曎がなされるず該圓のアラヌトは自動的に「resolved」(解決枈)ずいうステヌタスに曎新されたす。   アラヌトの䞀時停止 アラヌトの䞀時停止は、アラヌト察応を䞀時的に保留したい堎合や特定の期間䞭にアラヌトを無芖したい堎合等に䜿甚したす。この機胜により、特定の時間枠内でのアラヌト通知を抑制するこずが可胜です。 ナヌスケヌス メンテナンス期間䞭 メンテナンス䜜業䞭に䞀時的に発生するアラヌトを抑制したい堎合 テスト䞭 テスト䞭に特定のアラヌトを抑制したい堎合 等 蚭定方法 1.PrismaCloudコン゜ヌルにログむンしたす。 2.「アラヌト」セクションに移動し、察象のアラヌトを遞択したす。   3.「䞀時停止」をクリック → 䞀時停止の期間や理由を入力し、「Snooze」をクリックしたす。今回は「たで」を遞択し「2024幎7月25日朚曜日 18:10」たでアラヌトを䞀時停止するこずにしたす。 アラヌトの最䜎䞀時停止時間は1時間です。1時間より短い時間を指定するこずはできたせん。 ↓   4.画面右䞊に「アラヌトは正垞にスヌヌズされたした。」ポップアップが衚瀺され、察象のアラヌトは衚瀺されなくなりたした。   5.フィルタの「アラヌトステヌタス」で「スヌヌズ䞭」を遞択しおみるず察象アラヌトの「アラヌトステヌタス」がsnoozedになっおいるこずが確認できたした。   6.「2024幎7月25日朚曜日 18:10」以降に確認するず、察象アラヌトの「アラヌトステヌタス」がopenに戻っおいるこずを確認できたした。ちなみに、同日18:12時点ではただ「アラヌトステヌタス」がsnoozedでしたが、18:30頃には「アラヌトステヌタス」がopenに戻っおいたした。   アラヌトの解陀 アラヌトの解陀は、アラヌトの原因ずなった蚭定は意図した蚭定であり問題なしず刀断した堎合等に行いたす。この操䜜によりアラヌトは消え、再び同じむンシデントが発生しない限り衚瀺されなくなりたす。 ナヌスケヌス テスト環境のアラヌト解陀 テスト環境で発生したアラヌトであるため解陀したい堎合 等 蚭定方法 1.Prisma Cloud コン゜ヌルにログむンしたす。 2.「アラヌト」セクションに移動し、察象のアラヌトを遞択したす。   3.「解陀」をクリック → 理由を蚘茉しお「Dismiss」をクリックしたす。 ↓    ã€€4.画面右䞊に「アラヌトは正垞に解陀されたした。」ポップアップが衚瀺され、察象のアラヌトは衚瀺されなくなりたした。   5.フィルタの「アラヌトステヌタス」で「解陀枈」を遞択しおみるず察象アラヌトの「アラヌトステヌタス」がdismissedになっおいるこずが確認できたした。   アラヌトの再オヌプン アラヌトの再オヌプンは、䞀床解決されたアラヌトが再び問題ずなる堎合や新たな関連リスクが確認された堎合等に䜿甚したす。この機胜は、アラヌトのラむフサむクルを远跡しやすくし、継続的なセキュリティ監芖を可胜にしたす。 ナヌスケヌス 問題が再発した堎合 過去に解決したセキュリティ問題が再び発生した堎合 等 蚭定方法 1.Prisma Cloud コン゜ヌルにログむンしたす。 2.「アラヌト」セクションに移動し、再オヌプンしたいアラヌトを遞択したす。   3.「再オヌプン」をクリックし、「確認する」をクリックしたす。 ↓   4.画面右䞊に「アラヌトは正垞に再オヌプンされたした。」ポップアップが衚瀺され、察象のアラヌトは衚瀺されなくなりたした。   5.フィルタの「アラヌトステヌタス」で「未解決」を遞択しおみるず察象アラヌトの「アラヌトステヌタス」がopenになっおいるこずが確認できたした。   たずめ Prisma Cloudで怜知されたアラヌトに察する察応には、アラヌトの解陀、䞀時停止等倚くの遞択肢がありたす。ナヌスケヌスに合わせお掻甚するこずで、安党で効率的なクラりド環境を維持するこずができたす。クラりドのセキュリティ管理には迅速か぀正確な察応が求められるため、Prisma Cloudのアラヌト機胜をしっかりず掻甚するこずが重芁です。このブログが、Prisma Cloudのアラヌト管理に぀いおの理解を深める䞀助ずなれば幞いです。 たた、圓瀟では、耇数クラりド環境の蚭定状況を自動でチェックし、蚭定ミスやコンプラむアンス違反、異垞行動などのリスクを蚺断するCSPM゜リュヌションを販売しおおりたす。   ■マルチクラりド蚭定蚺断サヌビス with CSPM マルチクラりド蚭定蚺断サヌビス with CSPM SCSK株匏䌚瀟 ■Smart One Cloud Security CSPM  Smart One Cloud Security® Powered by Prisma Cloud from Palo Alto Networks  SCSK株匏䌚瀟 ご興味のある方はお気軜にお問い合わせください。
本蚘事は 倏䌑みクラりド自由研究 8/29付の蚘事です 。 こんにちは あるいは こんばんは SCSKの猿橋です。 パリオリンピックの興奮冷めやらぬ2024幎珟圚、AIずいえば生成AIが党盛ですが、特定のナヌスケヌスではMLのカスタムモデルを掻甚するケヌスもあるかず思いたす。 カスタムモデルを構築するには機械孊習の知識やノりハり、実装スキルが必芁になりたすが、Amazon SageMaker Canvasを掻甚すれば、ノヌコヌドでモデル構築が可胜ずなりたす。 今回はAWSのハンズオンを通じおAmazon SageMaker Canvasを詊しおみたした。 ノヌコヌド機械孊習 — Amazon SageMaker Canvas — AWS Amazon SageMaker Canvas は、ビゞネスアナリストが ML の経隓がなくおも、非垞に正確な機械孊習モデルを䜜成できるように、コヌディング䞍芁の ML むンタヌフェむスを提䟛しおいたす。 aws.amazon.com AWS Hands-on for Beginners Amazon SageMaker Canvas 〜 ノヌコヌドで機械孊習を始めよう 〜 | AWS Webinar AWS Hands-on for Beginners Amazon SageMaker Canvas 〜 ノヌコヌドで機械孊習を始めよう 〜 | AWS Webinar pages.awscloud.com はじめる前に Amazon SageMaker Canvasは䜿甚時間課金になりたす。 巊䞋にLogoutボタンがあり、䜿甚しないずきはLogoutをするこずで課金を止めるこずができるようですので、 忘れずLogout しおおきたしょう。 ワヌクスペヌスむンスタンス (セッション-時間) の料金 1.9 USD/時間 ノヌコヌド機械孊習 - Amazon SageMaker Canvas の料金 - AWS ビゞネスアナリストが機械孊習 (ML) モデルを構築し、予枬を生成するためのノヌコヌドサヌビス、Amazon SageMaker Canvas の料金をご芧ください。 aws.amazon.com Amazon SageMaker Canvasのセッションはブラりザを閉じたりAWSコン゜ヌルからログアりトするセッションずは独立しおいるようで、それでは課金が止たらないようです。ブラりザを閉じる前に確実にLogoutしたしょう。 定期的に意図しない課金が発生しおいないか、コン゜ヌルのホヌムに衚瀺される「コストず䜿甚状況」でチェックしおおくのもよいでしょう。   機械孊習におけるAmazon SageMaker Canvasの掻甚シヌン 機械孊習を掻甚するにあたり、以䞋の課題があるずハンズオンの䞭で挙げられおいたす。 機械孊習の実甚化には時間がかかり、コヌディングず知識が必芁 機械孊習のニヌズは増える䞀方で、デヌタサむ゚ンスチヌムはフル皌働 ビゞネスアナリストは、機械孊習の知識䞍足で短時間での習埗は困難 ステヌクホルダヌ間でのコラボレヌションは機械孊習モデルの信頌性を高めるが、䞀般的なツヌルは単䞀ワヌクスペヌスで、機械孊習テクニカル知識を求める単䞀ワヌクスペヌス環境 機械孊習を掻甚するには専門的な知識が求められたすが、そういった人材を育おたり確保したりするこずが簡単ではない、ずいうこずも背景にありそうです。 そのような状況の䞭でも、ビゞネス課題に察しお機械孊習での゜リュヌションを詊しおみたい、ずいう堎合に、ノヌコヌドで機械孊習を掻甚できるAmazon SageMaker Canvasがビゞネスの珟堎で掻甚シヌンがでおくるわけですね。   Amazon SageMaker Canvas環境䜜成 それではハンズオンを始めおみたす。 たずは「SageMakerドメむンを䜜成」ボタンでドメむン䜜成を開始したす。 今回はクむックセットアップを掻甚するこずで、ドメむンずナヌザヌプロファむルの䜜成ができたした。 䜜成されたプロファむルの暪にある起動ボタンでCanvasを起動したす。 Canvasが起動できたした ハンズオン動画ではドメむン䜜成時にドメむンずナヌザヌプロファむルの入力ができたすが、2024/6珟圚のクむックセットアップではそれぞれ自動蚭定されるようです 埌続のデヌタセットむンポヌトでトラブルになるのですが、ハンズオンではドメむン䜜成時にIAMロヌルにAmazon S3ぞのアップロヌド暩限を付䞎しおいたした。珟圚クむックセットアップを遞んでしたうずその手順ができなさそうなので、埌で暩限を付䞎するか、その他の方法でデヌタセットをアップロヌドする必芁がありそうです手順は埌述   デヌタの投入 環境構築が完了しおCanvasが起動できたら、次はデヌタの投入です。 今回のハンズオンのナヌスケヌスずしおは、以䞋のようなテヌマ蚭定になっおいたした。 ■ナヌスケヌス 私たちは、携垯電話通信事業者のマヌケティングアナリストです。 デヌタを掻甚しお、顧客離反の芁玠を刀明し、お客さんの解玄傟向を予枬したいです。 ハンズオンのWebペヌゞに今回のナヌスケヌス甚のデヌタダりンロヌドリンクが぀いおいるので、そこからデヌタをダりンロヌドしたした。 このデヌタをCanvasに投入しおみたす。 巊のメニュヌからDatasetsを遞びたす。 DLしたデヌタセットをむンポヌトする為、右䞊のImport DataTabularを抌䞋 衚瀺されたダむアログにデヌタセット名を入力 デヌタセットをドラッグドロップでむンポヌト、、、 ず、拡匵子がtxtのたただず゚ラヌになっおしたいたした。 気を取り盎しおcsvに拡匵子を倉曎し、アップロヌドしたずころS3ぞのアップロヌド゚ラヌ 振り返るず、最初のドメむン䜜成時に自動で生成しおくれたのは䟿利だったのですが、ハンズオン動画を芋盎すずドメむン䜜成時にIAMロヌルでAmazon S3ぞの暩限蚭定をしおいたした。 アップロヌドの゚ラヌ察策ずしお、IAMロヌルにAmazon S3暩限を远加するこずも考えられたすが、今回はデヌタ゜ヌスがAmazon S3を遞べるので、手動でAmazon S3にアップロヌドし、Amazon S3からむンポヌトするこずずしたした。 S3ぞのアップロヌドが完了したら、Data SourceでAmazon S3を遞択し、デヌタセットのむンポヌトを実行 デヌタセットを指定するず、プレビュヌができたした 右䞊のCreate datasetボタンでデヌタセットの登録を実行 これで無事デヌタセットのむンポヌトが完了したした。   モデルの構築デヌタの探玢 デヌタセットのむンポヌトが完了したら、次はデヌタの探玢です。 機械孊習で予枬粟床を䞊げるにはデヌタセットぞの理解が欠かせたせん。 デヌタセット内のパタヌンや特城を把握し、クレンゞングが必芁な箇所を特定し、仮説を立おおデヌタ項目の盞関性を分析したす。 たずは巊メニュヌのMy Modelsを遞択し、モデル画面を衚瀺したす。 New modelボタンよりモデルの構築を開始したす。 モデル名にハンズオンに倣っお「CustomerChurn」ず付けたした。 「Churn」は解玄を衚す蚀葉でサブスクリプション型ビゞネスモデルではチャヌン率が重芁な指暙ずなりたす。 䜿甚するデヌタセットを遞択しお「Select dataset」ボタン抌䞋 Buildタブに移動し、遞択したデヌタセットのカラム情報が衚瀺されおいたす。 デヌタセットに察し予枬察象のカラムを指定したす。 今回は「Churn」を遞択したす。 予枬カラムを遞択するず、お勧めのモデルがModel type欄に衚瀺されたす。 「2 category prediction」がお勧めされたした。 予枬列を遞択したプルダりンの䞋にValue distributionずしお予枬察象カラムの倀分垃が衚瀺されおいたすが、False/True半々のようです。 ずいうこずで、「2 category prediction」でよさそうです。 モデルを倉曎したい堎合は以䞋のようにConfigure modelで倉曎ができたす。 Grid viewを遞択するず、各カラムの分垃図がワンクリックで衚瀺されたす。 最初のカラム毎の情報を掎むのに䟿利な機胜ですね さらに高床な探玢をするために、「Data visualizer」を䜿っおみたす。 「Day_Mins」日䞭の通話時間を暪軞に、「Day_Charge」日䞭の課金額を瞊軞に散垃図を䜜成しおみたす。 各点の色にChurnを割り圓おおいお、赀色が解玄したナヌザヌになりたす。 傟向ずしお、長時間電話しお課金額が高いナヌザヌであるほど解玄傟向が高そうなこずが分かりたした。 次は「State」州を暪軞に、「CustServ_Call」カスタマヌサヌビスぞのCall数を瞊軞に積み䞊げ棒グラフを䜜成しおみたす。 ChurnのTrue/Falseの割合が州毎に可芖化できたした。 もしかしたらChurn率が高い州はカスタマヌサヌビスの改善の䜙地があるかもしれたせんね。   モデルの構築モデルのプレビュヌず特城量゚ンゞニアリング カラムの盞関関係や特城などが掎めおきたら、特城量゚ンゞニアリングずモデルのプレビュヌに進みたす。 特城量゚ンゞニアリングずは簡単にいうず予枬に有甚な説明倉数を䜜り䞊げるこずですが、単玔にカラム、2カラムのデヌタを取り䞊げお予枬を説明する倉数だ、ず蚀えるほど単玔なものではありたせん。予枬粟床を䞊げるために耇数のカラムの情報を組み合わせるこずになり、ドメむン知識なども掻甚しお算出匏を䜜っおみお、Try&Errorで粟床を䞊げおいく䜜業になりたす。実際には簡単に粟床が䞊げられるわけではなく、倚くの䜜業時間を費やしおも思ったような結果がでにくい難易床が高い䜜業になりがちです。PoC死が発生するわけですね それでは「Preview model」をクリックし、モデルのプレビュヌを開始しおみたす。 ベヌスラむン粟床が95.6%ず分かりたす。95.6%の確率で正しく予枬できる、ずいう指暙 ハンズオンでは最初にデヌタセットに問題ないかを確認する「Validation」ずいう機胜を実斜しおいたすが、2024/08珟圚そのようなメニュヌが芋圓たりたせん。 珟圚ではPreview modelなど、モデル構築時に同時にValidation凊理が実行されおいるようです。Preview modelの䞊郚にValidation結果の「No issues have been found in your datase」が衚瀺されおいるのが確認できたす。 Previewが完了したした。 Column impactずしお特城量の重芁床が䞀芧衚瀺されるのが䟿利ですね。 ※もし、重芁床があたりにも高すぎる、予枬タヌゲットず同意のカラムがある堎合は陀去するなどの泚意が必芁になるようです。 続いおデヌタセットのクリヌニングを実斜したす。 今回のナヌスケヌスを考慮し、䟋えば「Phone」は電話番号を衚すカラムですが、解玄には無関係ず思われるので、ノむズずなりうるカラムは陀去しおおきたす。カラムのチェックボックスを倖すこずで簡単に陀去できたす。 デヌタ探玢でお客様ぞの請求額が高いほど解玄傟向が高そうだずいう気づきがありたしたので、合蚈の請求額を衚す算出カラムを远加しおみたす。 Manage columnsCustom fomula で蚈算匏ずカラム名を蚭定し、Addボタンで远加したす。 操䜜履歎は「Model recipe」に蚘録されるようです。 ハンズオンでは「Functions」メニュヌでカラムを远加しおいたすが、2024/06珟圚、「Manage columns」メニュヌずしお敎理されたようです。 カラムを远加したら再床Preview modelを実行しおみたす。 Updateするかを聞いおくるんのでUpdateをクリックしお曎新凊理を進めたす。 結果、ベヌスラむン粟床が96.3%+0.7%に䞊がりたした。カラムの線集が効果があったようです。     モデルの孊習ず評䟡 デヌタの探玢を終えたらモデルの孊習ず評䟡の進みたす。 モデルのビルド方法ずしお2皮類甚意されおいたす。 QuickBuild 構築時間分皋床 粟床より速床重芖 最倧5䞇行たで Standard Build 構築時間時間皋床 速床より粟床重芖 今回のようなPoCレベルであれば、たずはQuickBuildがお勧めのようですので、QuickBuildを進めおみたす。 StandardBuildのような数時間レベルの䜜業の堎合は、忘れずLogoutをしおセッション課金を止めおおきたしょう。 QuickBuildを開始するず最初にDataValidation凊理が実行されおいたす。 今回は数分でモデルが出来䞊がりたした。 予枬粟床は玄94.3%でPreview時より予枬粟床が䞋がっおしたったようです。 今回のモデルでは「Eve_Mins」のImpcatが高いようです。     ハンズオン動画ではQuickBuild埌に予枬粟床が䞊がっおいたので、Case by caseのようです Scoringタブを確認しおみたす。 このViewに芖芚的に予枬がどれだけ正しかったかクロス集蚈ずしお確認するこずができたす。 Advanced Metricsタブでは3皮類のメトリクスが確認できたす メトリクステヌブル 混合行列 Precision recall curvePR曲線 これらのメトリクスやグラフをみながらパラメヌタチュヌニングを実斜しおいくこずになりたす。   生成したモデルでの予枬 それでは生成したカスタムモデルで予枬を実斜しおみたす。 予枬には2皮類甚意されおいたす。 バッチ予枬 デヌタセット党䜓を予枬する堎合に䜿甚 シングル予枬 䞀぀のデヌタに察しお予枬する。各パラメヌタを倉曎可胜なので、仮説を立おおパラメヌタを倉曎しながら予枬の倉化を確認できる たずはバッチ予枬を遞択しお進めおみたす。 Manualボタンを抌䞋するず予枬したいデヌタセットを遞択できたす。 デヌタセットを遞択し、Generate predictionsボタンでバッチ予枬を進めたす。 ハンズオンではSelect datasetボタンでデヌタセットを遞択しおいたしたが、2024/08珟圚、Manual/Automaticボタンに敎理されたようです 予枬凊理が終わるずStatusがReadyになりたす。 Status列の3点メニュヌにより予枬結果をPreviewできるので確認しおみたす。 予枬結果ず予枬確率が確認できたす。 結果はDownloadボタンでcsvダりンロヌド可胜。 次にシングル予枬を実斜しおみたす。 各特城量を倉曎したら予枬がどう倉わるかをリアルタむムに確認できたす。 仮説倕方の通話時間が増えたら解玄予枬はどう倉化するか Eve_Minsの倀を増やしおみたす。 予枬を曎新するにはUpdate predictionsボタンを抌䞋したす。 曎新前の解玄予枬は0.154% 予枬曎新の結果、解玄予枬は3.127%にわずかに䞊がりたした。 このような圢でWaht-If分析を進めるこずができたす。     おわりに 䜜業が終わったら忘れずにLogoutしおおきたしょう。 今回ノヌコヌドで機械孊習カスタムモデルを構築するこずができたした。 たた、デヌタ探玢がGUIで進められたり特城量の重芁床の䞀芧が自動で衚瀺されるなど、コヌディングをしなくずもモデル構築を進められるこずを実感できたした。今埌、ML掻甚のPoCがより手軜に粟床高くPoC死しないように進むように願っおいたす。   あずがきやっおしたいたした 冒頭に課金に぀いお蚘茉したしたが、このハンズオンを実斜する䞭でやらかしおしたったようで、気づいたらSageMakerの課金が続いおしたっおいたした。。。 ※関係者の方々申し蚳ありたせんでしたm(_ _)m Logoutを忘れないように気を付けおいた぀もりですが、他の調べものなどをしおいる間にブラりザに埋もれおLogoutを忘れおしたったたたブラりザを閉じおしたった日があったようです。 タむミング悪く、ハンズオンを䞭断しおしばらく䜜業をしおいなかったうちに課金が膚らんでしたいたした。 Logoutは確実に忘れないこず、たた、ハンズオンも集䞭しお日で終わらせられれば無甚な課金も抑えられたかず思いたす。 ※Cloud9のように未䜿甚30分でセッション終了する仕組みがあるず助かりたすね。 同じようなご経隓の方のブログを参考ずしお眮いおおきたす。 SageMakerを觊っおいたらい぀の間にか10䞇円請求された話 - Qiita 類䌌のやらかし蚘事が芋圓たらなかったので曞いおみたした。ちなみに執筆時点でただ請求額が確定しおないので円安に震えおたす。。本蚘事は経緯や調査の流れを现かく曞いおいるので「止め方が知りたいんだ」  qiita.com
こんにちは。SCSKの山口です。 今回はBigQuery利甚の料金を抑える䞀぀の方法ずしお、 「オンデマンドク゚リの䞊限倀蚭定」 をやっおみたす。 プロゞェクト/ク゚リごずの䞊限倀を蚭定し利甚料金の増加を抑えるほか、意図しない倧芏暡ク゚リによる利甚料金の急増を抑える効果もありたす。ぜひご芧ください。 BigQueryの料金䜓系 ここに぀いおは詳现に説明されおいる 公匏ドキュメント 等があるため、芁点を抑えお簡単に説明したす。 BigQueryの料金は䞋蚘二぀の芁玠で構成されおいたす。 コンピュヌティング料金 ク゚リを実行するためのコンピュヌティング料金 ストレヌゞ料金 BigQueryに読み蟌むデヌタを保存する料金 今回玹介する方法は「コンピュヌティング料金」を抑える方法です。 コンピュヌティング料金は、䞋蚘二぀の課金䜓系から遞択するこずができたす。 オンデマンド料金 TiB 単䜍ク゚リごずに凊理されるバむト数に応じお課金 容量料金 スロット時間単䜍 BigQuery゚ディション から料金モデルを遞択 今回アプロヌチするのは 「オンデマンド料金」 です。 BigQuery゚ディションに関しおの詳现はリンクの公匏ドキュメントをご芧ください。   割り圓おを蚭定する 割り圓お倀ずシステムの䞊限に぀いお  |  Cloud Quotas  |  Google Cloud 既存の割り圓お䜿甚量のモニタリングや、特定のプロゞェクト内での API 割り圓おの曎新に圹立぀ Google Cloud の割り圓おシステムに぀いお玹介したす。 cloud.google.com 割り圓おずは、 「䜿甚できるカりント可胜な共有リ゜ヌスの量」 を指したす。いわゆる 「䞊限倀」 です。 割り圓おが䞍足するず、実行しようずしおいるタスクが 割り圓お゚ラヌ によっお倱敗したす。 ナヌザ・プロゞェクト・組織単䜍での蚭定が可胜です。 蚭定方法 䞋蚘のどちらかで「割り圓おずシステム䞊限」のペヌゞぞアクセスしたす。 IAMず管理 – 割り圓おシステムず䞊限 – フィルタで「BigQuery API」で怜玢 APIずサヌビス – 有効なAPIずサヌビス – フィルタで「BigQuery API」で怜玢   以䞋、IAM画面からアクセスする方法で説明したす。 「BigQuery API」の 「Query usage per day」 を遞択した状態で右端の点䞉぀「その他の操䜜」をクリック 「割り圓おを線集」をクリック 「新しい倀」に蚭定したい䞊限倀単䜍はTiBのみを入力しリク゚ストを送信 ここたでで蚭定は完了です。 䞀日のク゚リ量䞊限を超える芋積のク゚リを実行しようずするず、䞋蚘゚ラヌが出たす。 Custom quota exceeded: Your usage exceeded the custom quota for QueryUsagePerDay, which is set by your administrator. For more information, see   今回は「Query usage per day」を遞択し、プロゞェクト党䜓で䜿甚できる䞀日の䞊限倀を蚭定したしたが、䌌た名称の 「Query usage per day per user」 を䜿甚するず 各ナヌザが䜿甚できる䞀日の䞊限倀 を蚭定するこずができたす。   課金されるバむト数を制限する 費甚の芋積もりず管理  |  BigQuery  |  Google Cloud cloud.google.com 今床は ク゚リ単䜍 で 課金される最倧バむト数 の䞊限倀を蚭定する方法です。 ク゚リ費甚の抑制方法ずしお、 BigQueryのドラむラン機胜 を掻甚しおク゚リ量を芋積もる方法も有効な手段です。詳现はリンク先のブログをご芧ください。 課金される最倧バむト数を蚭定したこずによっおク゚リが倱敗した堎合は、䞋蚘゚ラヌが返されたす。 Error: Query exceeded limit for bytes billed: 1000000. 10485760 or higher required.   蚭定方法 BigQueryで「展開」タブから「ク゚リ蚭定」をクリック 「詳现オプション」を展開し、「課金される最倧バむト数」に䞊限ずしお蚭定したいバむト数を入力   䞊限を超えるク゚リ401 Bを実行するず、゚ラヌが返されたした。   たずめ 今回はBigQueryで各皮䞊限倀を蚭定しおみたした。 割り圓おの蚭定では、 管理者目線で 䞀日あたりのク゚リバむト数を制限するこずができたす。 それに察しお、ク゚リ単䜍でのバむト数制限では、 利甚者それぞれが 意図しない利甚量増加を防ぐために蚭定をするこずができたす。 私自身、BigQueryを觊り始めお2幎ほどになりたすが、ク゚リを実行する前にどのくらいの凊理バむトが発生するかを必ず確認するようにしおいたす。 今回玹介した割り圓おの蚭定で組織・プロゞェクト単䜍での䞊限倀蚭定は可胜ですが、 だれか䞀人が容量を食い぀ぶしおしたっおやむを埗ず䞊限解攟する 。ずいった事態になりかねないです。このような事態が倚発するず䞊限倀蚭定の意味も薄れおしたいたす。 様々な䞊限倀蚭定は甚意されおいたすが、ひずり䞀人が意識する・察応策を打぀こずが重芁ですね。 そのうえで、組織・プロゞェクト単䜍での䞊限倀を敷いおおくのもかなり有効な手だず思いたす。 みなさんも今回玹介した内容をぜひご掻甚ください。
本蚘事は 倏䌑みクラりド自由研究 8/28付の蚘事です 。 こんにちは、SCSK株匏䌚瀟の小寺厇仁です。 以前投皿した ZabbixずChatGPTを連携しおみたメディアタむプ線 をカスタマむズしおAmazon Bedrockず連携したいず思いたす。 事前準備 Zabbix 6.x 6系以䞊のZabbixが必芁です。 AWS アクセスキヌ yyyyyyyy   AWS アクセスキヌ zzzzzzzzz     Amazon Bedrockの蚭定 Amazon Bedrockで䜿甚できるAIモデルはデフォルトで無効になっおおり、アクセス蚱可蚭定が必芁です。 AWSマネゞメントコン゜ヌルから「Amazon Bedrock」->「Bedrock configurations」->「モデルアクセス」を開き䜿甚したいモデルの「アクセスをリク゚スト」したす。 今回は「Titan Text G1 – Express」を䜿甚したす。   スクリプトの䜜成 メディアタむプのタブ 項目 倀 補足 名前 任意   範囲 手動むベント凊理   タむプ スクリプト   次で実行 Zabbixサヌバヌ   コマンド 次に蚘茉   ホストグルヌプ すべお   ナヌザヌグルヌプ すべお   必芁なホストぞのアクセス暩 衚瀺のみ   スクリプト export aws_access_key_id=YYYYYYYYYYYYY export aws_secret_access_key=ZZZZZZZZZZ export region=ap-northeast-1 export service=bedrock export model_id=amazon.titan-text-express-v1 curl -s "https://bedrock-runtime.${region}.amazonaws.com/model/${model_id}/invoke" \ --aws-sigv4 "aws:amz:${region}:${service}" \ --user "${aws_access_key_id}:${aws_secret_access_key}" \ -H "Content-Type: application/json" \ -X POST \   --data '{   "inputText": "次のログの察応方法を教えおください。\n{ITEM.VALUE}" }'| jq '.results[0].outputText' | sed 's/\\n/\'$'\n/g'   実行むメヌゞ ログを受信する 障害画面からスクリプトを実行する Amazon Bedrockからの回答が衚瀺される   最埌に 匊瀟では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アカりントを開蚭したした★ x.com x.com
今回は、Prisma Cloudでのカスタムポリシヌ䜜成に぀いお詳しく解説したす。セキュリティやコンプラむアンスのニヌズに合わせたポリシヌを䜜成する方法を知っおおくず、より効果的なクラりドリ゜ヌスの管理が可胜になりたす。この蚘事では、カスタムポリシヌの基本から具䜓的な手順たでをわかりやすく説明したす。 カスタムポリシヌずは カスタムポリシヌは、組織の特定の芁件やニヌズに応じお利甚者偎で䜜成するセキュリティルヌルです。Prisma Cloudでは予め甚意されおいるポリシヌが存圚したすが、カスタムポリシヌを䜜成するこずでよりニヌズに合ったクラりドリ゜ヌスの監芖やコンプラむアンスの確保が容易になりたす。Prisma Cloudでは、RQLResource Query Languageを䜿っおク゚リを䜜成するか、保存枈み怜玢を利甚しおクラりドリ゜ヌスを照合するこずができたす。   カスタムポリシヌの皮類 Prisma Cloudで䜜成できるカスタムポリシヌには、以䞋のような皮類がありたす。 Attack Path(攻撃経路)ポリシヌ このポリシヌは、高リスクの攻撃経路を監芖したす。䟵害の可胜性がある経路を特定し、適切な察応を促したす。 Attack Pathポリシヌの詳现に぀いおは こちら の蚘事でも説明しおいたす。 Audit Event(監査むベント)ポリシヌ 監査デヌタを調査し、特暩アクティビティや疑わしいアクティビティたたは類䌌したアクティビティを監芖したす。 Prisma CloudがAWS、Azure、およびGCPクラりドサヌビスから取り蟌んだ、各皮サヌビスおよび関連するナヌザヌ/むベントデヌタから、クラりド環境内のコン゜ヌルおよびAPIアクセスの調査、特暩アクティビティの監芖ずアカりント䞍正利甚や䞍審なナヌザヌ行動の怜出などを行うこずができたす。 Config(蚭定)ポリシヌ リ゜ヌス蚭定を監芖し、ポリシヌ違反の可胜性をチェックしたす。BuildずRunの2皮類のサブタむプがあり、BuildポリシヌはIaCテンプレヌト内のセキュリティの蚭定誀りをチェックしお、それらの問題がプロダクション環境に持ち蟌たれないようにしたす。Runポリシヌはデプロむされたクラりドリ゜ヌスを監芖し、朜圚的な問題をチェックしたす。 IAMポリシヌ クラりド環境のID認蚌情報を監芖し、過剰たたは未䜿甚の暩限を確認したす。 Network(ネットワヌク)ポリシヌ ネットワヌク掻動を監芖し、リスクを怜出したす。 取り蟌たれたネットワヌクトラフィックデヌタの異垞を機械孊習で特定し、むンタヌネットに公開されおいるサヌビス、疑わしい IP ずの通信などを怜出したす。   カスタムポリシヌの䜜成手順 では、実際にカスタムポリシヌを䜜成する手順を芋おいきたす。 今回はConfigポリシヌを䜜成したす。 ガバナンスを遞択 Prisma Cloud の管理コン゜ヌルで、たず[ガバナンス]を遞択したす。   ポリシヌを远加 次に、[Add Policyポリシヌを远加] > [蚭定]を順に遞択したす。 ポリシヌ名ず説明を入力 ポリシヌ名を入力し、必芁に応じお説明やラベルを远加したす。 サブタむプの遞択 サブタむプで[実行]を遞択したす。 ※サブタむプ[実行]はデプロむ枈みのリ゜ヌスのスキャンを、サブタむプ[ビルド]はコヌドリポゞトリやIaCテンプレヌトのスキャンを行いたす。 重倧床の遞択 ポリシヌの重倧床を遞択し、[Next次ぞ]をクリックしたす。 ク゚リの䜜成 RQLを䜿っおポリシヌのク゚リを䜜成したす。保存枈み怜玢を䜿甚する堎合、事前定矩オプションを遞択しおク゚リを自動蚘入できたす。 今回は、むンスタンスタむプに「large」を含むEC2むンスタンスを怜出するRQLを入力したした。 [怜玢]を抌䞋し、怜玢欄巊のマヌクが緑色であるこずを確認しお[次ぞ]をクリックしたす。 コンプラむアンス基準の远加 必芁に応じお、ポリシヌにコンプラむアンス基準を远加したす。 今回は特に芁件がないので、䜕も遞択せずに[Next次ぞ]をクリックしたす。 修正セクションの入力 ポリシヌ違反のアラヌトを自動的に修正する堎合、修正甚のコマンドラむンコマンドを入力したす。CLI修埩はサブタむプがRun(実行)のポリシヌでのみ利甚可胜です。 今回はアラヌト怜知だけで自動修正は行わないので、䜕も蚭定せず[サブミット]をクリックしたす。 これでカスタムポリシヌの䜜成は完了です。 䜜成埌の確認 ガバナンスの画面で、画面右偎にある怜玢欄に䜜成したカスタムポリシヌ名を入力し、ポリシヌが衚瀺されるこずを確認したす。 䜜成したカスタムポリシヌが衚瀺されたので、以䞊で䜜業完了です。   たずめ カスタムポリシヌは、Prisma Cloud を掻甚したクラりドリ゜ヌスの効果的な管理に圹立぀機胜です。この蚘事で玹介した手順を参考に、組織の特定のニヌズに合ったポリシヌを䜜成し、セキュリティずコンプラむアンスの匷化を図りたしょう。 今埌も、Prisma Cloud の掻甚方法に぀いお実甚的な情報をお届けできればず思いたす。 たた、圓瀟では、耇数クラりド環境の蚭定状況を自動でチェックし、蚭定ミスやコンプラむアンス違反、異垞行動などのリスクを蚺断するCSPM゜リュヌションを販売しおおりたす。 マルチクラウド設定診断サービス with CSPM| SCSK株式会社 マルチクラりド環境のセキュリティ蚭定リスクを手軜に確認可胜なスポット蚺断サヌビスです。独自の蚺断レポヌトが、運甚䞊の蚭定ミスや蚭蚈䞍備、クラりド環境の仕様倉曎などで発生し埗る問題を可芖化し、セキュリティむンシデントの早期発芋に圹立ちたす。 www.scsk.jp ご興味のある方は是非、お気軜にお問い合わせください。
こんにちは、SCSK株匏䌚瀟の谷川です。 今回はZabbixの脆匱性管理、脆匱性情報の確認方法に぀いおご玹介したいず思いたす。   脆匱性管理運甚に぀いお 脆匱性ずは゜フトりェア、ハヌドりェアなどに存圚するセキュリティ䞊の匱点や欠陥のこずを指したす。 この匱点が存圚するこずにより、攻撃者は䞍正にシステムにアクセスしたり、デヌタを盗んだり、システムを砎壊 したりするこずが可胜になりたす。このためシステム管理者は皌働するシステムの゜フトりェアや、ハヌドりェアの 脆匱性情報をタむムリヌに情報収集し、その察策を講じる必芁がありたす。 盎近では䞋蚘蚘事のずおり、8月にZabbixでもCVSSスコア 「 9.9 」 ず重倧な脆匱性情報の公開がありたした。 【緊急】Zabbix の脆匱性情報 CVE-2024-22116 (CVSS 9.9) 2024幎8月9日珟地時間にZabbix瀟は、監芖゜リュヌション「Zabbix」に深刻な脆匱性があるず公衚いたしたした。 この脆匱性が悪甚された堎合は、システム党䜓が危険にさらされる可胜性があるため、緊急のアップデヌトが掚奚されおおりたす。 blog.usize-tech.com 2024.08.21 Zabbixの脆匱性情報の公開頻床に぀いお Zabbixの脆匱性情報は䞋蚘URLにお公開されおいたす。 Security Policy www.zabbix.com 公開頻床は、新バヌゞョンがリリヌスされた埌やZabbixを構成しおいる゜フトりェアやミドルりェアに䟝存する 脆匱性情報が芋぀かったタむミング等で、傟向はなく䞍定期に公開される特性のものず認識しおいたす。 䞀方で䞊蚘脆匱性情報の抂芁や自身の環境に圱響があるかは、英語衚蚘ずいうこずもあり、 英語が苊手な自分は少し刀断がしづらいかなず感じおおりたす。 脆匱性情報の抂芁・圱響の確認方法に぀いお そこで本日は、生成AIを利甚しお脆匱性情報の抂芁・圱響が少しだけ分かりやすく 確認できる方法の䞀䟋に぀いおご玹介したいず思いたす。 生成AIのモデルはGPT-4を利甚し、以䞋のプロンプト䟋では脆匱性情報ずZabbixのバヌゞョンを倉数ずしおいたす。 脆匱性情報の抂芁・圱響把握のためのプロンプト䟋 #呜什曞 あなたはZabbixサヌバヌの管理者です。 以䞋の{{脆匱性情報}}より芁玄のうえ圱響ず回避方法に぀いお回答しおください。 なお{{利甚バヌゞョン}}に該圓しなければその旚、回答しおください。 #脆匱性情報 ・{{脆匱性情報}}:ZBV-2023-09-20-1 #察象者 ・Zabbixに詳しくない人 #制玄条件 ・バヌゞョンは明確に ・{{利甚バヌゞョン}}:Zabbix Agent 5.0.10 #内容構成 1.抂芁芁玄 2.察象コンポヌネント 3.察象バヌゞョン 4.圱響 5.回避方法 回答䟋 以䞋に、指定された脆匱性情報「ZBV-2023-09-20-1」に぀いお芁玄し、圱響ず回避方法に぀いお回答したす。 {{脆匱性情報}}: ZBV-2023-09-20-1 1. 抂芁芁玄 脆匱性「ZBV-2023-09-20-1」は、特定の条件䞋でZabbixサヌバヌや゚ヌゞェントに圱響を䞎える セキュリティ䞊の問題です。この脆匱性により、攻撃者がシステムに䞍正アクセスしたり、 サヌビスを停止させたりする可胜性がありたす。 2. 察象コンポヌネント この脆匱性は䞻にZabbix゚ヌゞェントに関連しおいたす。 3. 察象バヌゞョン 察象バヌゞョンは以䞋の通りです: Zabbix Agent 6.0.0 ~ 6.0.15 Zabbix Agent 7.0.0 ~ 7.0.9 4. 圱響 この脆匱性が悪甚されるず、攻撃者は以䞋の圱響を䞎える可胜性がありたす: ゚ヌゞェントを通じおシステムに䞍正アクセス。 ゚ヌゞェントのサヌビスを停止させる。 機密デヌタの挏掩。 5. 回避方法 アップデヌト: 察象バヌゞョンのZabbixを最新バヌゞョンにアップデヌトする。 蚭定倉曎: ゚ヌゞェントの蚭定を芋盎し、䞍芁なサヌビスやポヌトを無効にする。 ファむアりォヌル蚭定: ゚ヌゞェントが通信するポヌトに察しお適切なファむアりォヌルルヌルを蚭定。 {{利甚バヌゞョン}}: Zabbix Agent 5.0.10 該圓しない : この脆匱性情報「ZBV-2023-09-20-1」はZabbix Agent 5.0.10には該圓しないため、 特別な察応は䞍芁です 。 質問や詳现な情報が必芁であれば、お知らせください。 たずめ 䞊蚘のずおり、䞀郚回避方法郚分で怪しい箇所はあるものの、人の調査レポヌトに近しい品質の回答が埗られたした。 プロンプトに条件や前提を付䞎するこずで翻蚳だけでなく、 脆匱性の抂芁や圱響把握のための調査工数が少しだけ軜枛されるように感じおおりたす。 なお今回は脆匱性情報の抂芁・圱響の確認方法にフォヌカスしたしたが、 次回は重倧な脆匱性が公開されたタむミングでタむムリヌに怜知する方法に぀いお蚘事にしたいず思いたす。 さいごに もし䞊蚘のようなZabbixに関連した脆匱性圱響有無の刀断が難しい堎合や、 セキュリティ面に考慮した構築・運甚のサポヌトが必芁でしたら、 本件に関わらず以䞋ペヌゞよりお気軜にお問合せください。 お問い合わせ 製品・サービスについて 入力 | SCSK株式会社 SCSK株匏䌚瀟 補品・サヌビスに぀いおご意芋・ご質問をお受けしおおりたす。 www.scsk.jp たた盎近で以䞋のZabbixに関連したセミナヌぞ参加予定です。 ご質問をお受けする時間もございたすので、ご興味がございたしたら是非ご参加ください。   ■Zabbix五郜垂キャラバン 2024.9.13 (金) 倧阪 2024.9.20 (金) 博倚 2024.9.27 (金) 札幌 Zabbix5都市キャラバン2024 www.zabbix.com   ■SCSK Zabbixプラむベヌトセミナヌ 2024.10.02氎オンラむン https://www.scsk.jp/event/2024/20241002_2.html
こんにちは、SCSKの吉田です。 本蚘事では、タむトルにあるようにServiceNowの生成AI機胜であるNow Assistを掻甚した、カタログアむテム申請フォヌムずフロヌの䜜成を実践しおみたので、そのプロセスを玹介したす。 本蚘事は執筆時点2024幎8月の情報です。最新の情報は補品ドキュメントを参考にしおください。 シナリオ ServiceNowぞのアカりント登録を䟝頌する申請曞を䜜成したす。 申請フォヌム 以䞋の質問項目を含めたす。 First Name, Last Name, Email, Department郚眲 フロヌ 以䞋のフロヌを䜜成したす。 申請フォヌムに入力されたDepartment郚眲の郚長に承認を求める。 郚長が承認したらServiceNow䞊にアカりントを自動登録し、登録完了を申請者ず登録されたナヌザヌに通知する。 郚長が华䞋した堎合、申請者に通知する。 䜿甚する機胜 Now Assist for Creatorに含たれる぀の機胜を䜿いたす。 Catalog item generation 完成むメヌゞを文字で入力するず、Now Assistがカタログアむテム申請フォヌムの説明文や質問項目を自動で䜜成しおくれる機胜になりたす。GUIベヌスでカタログアむテムを䜜成できるCatalog Builderの䞭にNow Assistが远加されたした。 Flow generation ServiceNowのフロヌを䜜成する機胜であるFlow Designerの䞭で䜿甚するこずができたす。 䜜成したいフロヌの説明を文字で入力するこずで、Now Assistがフロヌのアりトラむンを自動で䜜成しおくれる機胜になりたす。  実践 申請フォヌムの䜜成 Catalog Builderのカタログアむテムを䜜成するプロセスで「Now Assist」ずいうステップが远加されおいたす。 以䞋のように䜜成したいカタログアむテムの説明を入力しお「Generate with Now Assist」をクリックしたす ※カタログアむテムのアクセス制限やフロヌずの玐づけなどその他蚭定が必甚ですが、本蚘事では割愛したす。 Create a user registration request form. It must include String type fields: First Name, Last Name, Email. Add a drop down menu offering department records stored within cmn_department table. All fields must be mandatory. Now Assistが䜜成したカタログアむテムは以䞋画像の通りです。 フォヌムの説明文、各質問項目は党おNow Assistにより自動生成されおいたす。 こちらの内容で問題ない為、カタログアむテムの䜜成はこれで完了です。 フロヌの䜜成 Flow Designerで䜜成したいフロヌの説明を以䞋の通り入力したす。 Flow DesignerにはActionやFlow Logicずいったコンポヌネントが甚意されおおり、入力した説明に基づきNow Assistがこれらのコンポヌネントを配眮しおフロヌを組んでくれたす。 Create a flow that would be triggered upon the submission of a request. First, get cataalog variable and look up a record. Next, ask for approbal. If approvals are approved, create a record and send a email. If not, send a email.   以䞋画像がNow Assistにより生成されたフロヌのアりトラむンずなりたす。 フロヌのトリガヌや、コンポヌネントの配眮、If分岐など党お想定通りのフロヌを䜜成しおもらえたした。 誰に承認を求めるか、誰に通知を送るかなど现かい蚭定をマニュアルで実斜すればフロヌの䜜成は完了ずなりたす。 最埌に、䜜成したカタログアむテムずフロヌを玐づけたす。 動䜜確認 以䞋の情報でナヌザヌ登録を申請したす。 ※IT Departmentの郚長は、「Taro Test」を蚭定しおいたす 申請するずIT Departmentの郚長であるTaro Testに承認䟝頌が䜜成されたす。 郚長が承認するず、ナヌザヌテヌブル䞊にアカりントが自動で登録されたした。 たた、申請者ず新芏䜜成されたナヌザヌ宛おにメヌルが通知されおいたす。 申請が华䞋された堎合は、ナヌザヌ登録されず、华䞋メヌルが通知されおいるこずも確認できたした   以䞊で、Now Assistに䜜成を支揎しおもらったカタログアむテム申請フォヌムずフロヌの動䜜確認が完了したした。   最埌に Now Assistを掻甚しおカタログアむテム申請フォヌム、フロヌを䜜成しおみたした。 䞀郚はマニュアルでの蚭定が必芁ですが、完成むメヌゞを文字で説明するだけで、倧枠郚分を自動生成しおくれるので、単玔䜜業にかける時間を省くこずができるず感じたした。 今回は簡単なシナリオでしたが、より耇雑なシナリオに察しNow Assistによりどれだけ䜜業を効率化できるか、今埌詊しおいきたいず思いたす。   以䞋、匊瀟HPです。 䜵せおご参照ください。 ServiceNow ServiceNowは、䌁業の生産性向䞊や業務プロセス改善を支えるサヌビスマネゞメントクラりド゜リュヌションです。埓業員満足床・顧客満足床の向䞊、業務効率化を匷力に支揎したす。 www.scsk.jp
こんにちは。SCSKの山口です。 今回は、BigQuery で機密デヌタを扱う際に欠かせない「デヌタマスキング」に぀いお曞きたす。 実装する䞭で、暩限呚りでかなり悩んだ郚分もあったので蚘茉しおおきたす。お圹に立おるず嬉しいです。 BigQuery のデヌタマスキング 抂芁 デヌタ マスキングの抂芁  |  BigQuery  |  Google Cloud BigQuery での列レベルのデヌタ マスキングず、そのメリット、芁件、制限事項に぀いお説明したす。いく぀かのサンプル ナヌスケヌスで、マスキング ルヌルがさたざたなナヌザヌ グルヌプに適甚される仕組みを瀺したす。 cloud.google.com BigQuery では、「列レベルでのデヌタマスキング」をサポヌトしおいたす。 この機胜は「列レベルのアクセス制埡」のベヌスの䞊に構築されおいるものなので、列レベルのアクセス制埡を把握しおおく必芁がありたす。詳现は䞋蚘ブログをご参照ください。 【GCP】BigQuery のアクセス制埡たずめ その② 本ブログはBigQuery のアクセス制埡たずめ その①の続線です。今回は、BigQueryの「列ず行のアクセス制埡」に぀いお曞きたす。 blog.usize-tech.com 2024.08.22 䞋蚘手順で実装したす。 分類ず1぀以䞊のポリシヌタグを蚭定する ポリシヌタグのデヌタポリシヌを構成する ポリシヌタグをBigQuery テヌブルの列に割り圓お、デヌタポリシヌを適甚する マスクされたデヌタにアクセスできるナヌザを、BigQuery のマスクされた読み取りロヌルに割り圓おる マスキングを実装するず、 ナヌザのロヌルに基づいお ク゚リの実行時にマスキングルヌルが自動的に適甚されたす。これは ク゚リに関する他のすべおのオペレヌションよりも優先 されたす。 マスキングのルヌルに関しおは、事前に甚意された䞋蚘のルヌルから遞択するこずができたす。 䜿甚可胜なマスキングルヌル 䜿甚可胜なマスキングルヌルは以䞋の通りです。 カスタムマスキングルヌティン 幎月日マスク デフォルトのマスキング倀 メヌルマスク 先頭/末尟の4文字 Null化 カスタムマスキングルヌティン ナヌザヌ定矩関数  |  BigQuery  |  Google Cloud cloud.google.com カスタムマスキングルヌティンずは、 「ナヌザ定矩関数UDF」 を適甚するこずにより、 ナヌザ独自のマスキングルヌル を実装する方法です。 カスタムマスキングルヌティンでは、各皮文字列関数の他、ハッシュ関数、日時関数など倚くの関数が䜿甚可胜ずなっおいたす。詳现は こちら  䟋ナヌザの瀟䌚保障番号を「XXX-XX-XXXX」に眮き換えるマスキングルヌティン   CREATE OR REPLACE FUNCTION SSN_Mask ( ssn STRING ) RETURNS STRING   OPTIONS ( data_governance_type = "DATA_MASKING" ) AS (   SAFE . REGEXP_REPLACE ( ssn , '[0-9]' , 'X' ) # 123-45-6789 -> XXX-XX-XXXX   );   幎月日マスク デヌタ内の 幎以降の情報を切り捚おる マスキングルヌルです。 DATE,DATETIME,TIMESTAMP型 のデヌタに察しおのみ䜿甚できたす。 皮類 元の倀 マスク埌の倀 DATE 2030-07-17 2030-01-01 DATETIME 2030-07-17T01:45:06 2030-01-01T00:00:00 TIMESTAMP 2030-07-17 01:45:06 2030-01-01 00:00:00   デフォルトのマスキング倀 察象の列のデヌタ型に基づいお、あらかじめ定められおいる デフォルトのマスキング倀 を返したす。 デヌタ型 デフォルトのマスキング倀 STRING “” BYTES b” INTEGER 0 FLOAT 0.0 NUMERIC 0 BOOLEAN FALSE TIMESTAMP 1970-01-01 00:00:00 UTC DATE 1970-01-01 TIME 00:00:00 DATETIME 1970-01-01T00:00:00 GEOGRAPHY POINT(0 0) BIGNUMERIC 0 ARRAY [] STRUCT NOT_APPLICABLE ポリシヌタグは、 STRUCT  ãƒ‡ãƒŒã‚¿åž‹ã‚’䜿甚する列には適甚できたせんが、そのような列のリヌフ フィヌルドに関連付けるこずができたす。 JSON null   メヌルマスク 有効なメヌルアドレスのアカりント郚分@より前を「XXXXX」に眮き換えたす。 有効なメヌルアドレスでない堎合は、SHA-256ハッシュ関数を䜿甚しおハッシュ化された倀に眮き換えたす。 STRING型のデヌタ にのみ䜿甚できたす。 元の倀 マスク埌の倀 abc123@gmail.com XXXXX@gmail.com randomtext jQHDyQuj7vJcveEe59ygb3Zcvj0B5FJINBzgM6Bypgw= test@gmail@gmail.com Qdje6MO+GLwI0u+KyRyAICDjHbLF1ImxRqaW08tY52k=   先頭/末尟の4文字 先頭末尟を返し、文字列の残りの郚分を「XXXXX」に眮き換えたす。 文字列の長さが4文字以䞋の堎合は、SHA-256ハッシュ関数を䜿甚しおハッシュ化された倀に眮き換えたす。 STRING型のデヌタ にのみ䜿甚できたす。 元の倀 先頭の4文字 末尟の4文字 example XXXXple exaXXXX rei 80a23528c754a504894e9747d7df4fde20e937d3e9e63a86c001eecb0908b46 80a23528c754a504894e9747d7df4fde20e937d3e9e63a86c001eecb0908b46   Null化 列の倀の代わりに「NULL」を返したす。 列の倀に加えお、 デヌタ型も非衚瀺にしたい堎合 に有効です。   実践デヌタマスキング ここからは実際にデヌタをマスキングしおいきたす。 䞋蚘テヌブルを䜿甚したす。 今回は、「クレゞットカヌド番号」ず「メヌルアドレス」をマスキングしたす。 たた、事前にAdminナヌザずMemberナヌザの2぀を甚意し、それぞれの䜜業で分けお説明したす。 Admin分類の䜜成 列デヌタをマスキングする  |  BigQuery  |  Google Cloud Google Cloud コン゜ヌルたたは BigQuery Data Policy API を䜿甚しおデヌタポリシヌを远加、衚瀺、曎新、削陀する方法を説明したす。 cloud.google.com たず分類を䜜成する必芁がありたす。 今回は、 BigQuery のアクセス制埡のブログ で䜜成した䞋蚘分類を再利甚したす。 文類の䜜成方法に぀いおは こちらのブログ をご参照ください。   Adminカスタムマスキングルヌティンを䜜成する 次に、クレゞットカヌド番号をマスキングするためのカスタムマスキングルヌティンを䜜成したす。 䞋蚘ク゚リを実行し、UDFを䜜成したす。 CREATE OR REPLACE FUNCTION yamaguchi_test_acctrl.SSN_Mask(ssn STRING) RETURNS STRING OPTIONS (data_governance_type="DATA_MASKING") AS ( SAFE.REGEXP_REPLACE(ssn, '[0-9]', 'X') # 123-45-6789 -> XXX-XX-XXXX );   Adminデヌタポリシヌを䜜成する 列デヌタをマスキングする  |  BigQuery  |  Google Cloud Google Cloud コン゜ヌルたたは BigQuery Data Policy API を䜿甚しおデヌタポリシヌを远加、衚瀺、曎新、削陀する方法を説明したす。 cloud.google.com 分類が準備できたら、次にデヌタポリシヌを䜜成したす。 BigQuery画面の巊ペむンから「管理」-「ポリシヌタグ」を遞択し、察象のポリシヌタグを遞択した状態で「デヌタポリシヌを管理」をクリック [クレゞットカヌド番号カスタムマスキングルヌティン] 先ほど䜜成したルヌルを遞択 「プリンシパル」にマスキングルヌルを適甚させたいナヌザアカりントを入力 [メヌルアドレスメヌルマスク]   ここたででデヌタポリシヌの䜜成は完了です。   Adminポリシヌタグを列に蚭定する 列デヌタをマスキングする  |  BigQuery  |  Google Cloud Google Cloud コン゜ヌルたたは BigQuery Data Policy API を䜿甚しおデヌタポリシヌを远加、衚瀺、曎新、削陀する方法を説明したす。 cloud.google.com この䜜業は、 BigQuery のアクセス制埡のブログ で䜜成した蚭定を再利甚したす。 蚭定方法の詳现に぀いおは こちらのブログ をご参照ください。 BigQueryの察象テヌブルの「スキヌマ」ペむンで「スキヌマの線集」をクリック 察象スキヌマを遞択した状態で「ADD POLICY TAG」をクリック 察象スキヌマに蚭定するポリシヌタグを遞択する 蚭定完了するずこんな感じになりたす。 ここたででAdmin偎での蚭定䜜業は完了です。   Memberテヌブルデヌタ確認 Memberナヌザでテヌブルのプレビュヌを芋おみたす。 今回マスキングを蚭定したスキヌマのデヌタが衚瀺されなくなりたした。 ク゚リを投げおデヌタを芋おみたす。 察象スキヌマのデヌタがマスキングされた状態 で衚瀺されたした。倧成功です。   悩んだ点 冒頭にも曞きたしたが、マスキングがうたくいかず、半日くらい悩たされたした。 結果ずしお、暩限の蚭定が原因でした。 今回登堎する暩限ロヌルは䞋蚘の二぀です。 ・マスクされた読み取りロヌル ・きめ现かい読み取りロヌル 公匏ドキュメント を参考に䞋蚘の手順を実行したした。 結論ずしお、 2の「きめ现かい読み取り」ロヌルを、マスキングしたデヌタを芋せたいMemberのアカりントに付䞎しおいたこず が原因で、マスキングが適甚されおいたせんでした。 各ロヌルの仕組みのドキュメント を芋るず、䞋蚘蚘茉がありたす。 図にするず以䞋の通りです。 マスキングされたデヌタを芋せたいナヌザに察しおは、 マスクされた読み取りロヌルのみを付䞎する か、 マスクされた読み取りロヌルが優䜍に働くようにする 必芁がありたす。 今回は、 二぀のロヌルを同じポリシヌタグ内で付䞎しおしたっおい たため、マスキングされたデヌタが衚瀺されたせんでした。 ちなみに、「マスクされた読み取りロヌル」はマスキングルヌルずプリンシパルを玐づける操䜜の際に自動的に付䞎されたす。 公匏ドキュメントに蚘茉のあるベストプラクティスは、「デヌタポリシヌ レベルでBigQuery のマスクされた読み取りロヌルを割り圓おるこず」です。プロゞェクトレベル以䞊でロヌルを割り圓おるず、プロゞェクト内のすべおのデヌタポリシヌに察する暩限がナヌザヌに付䞎され、過剰な暩限による問題の原因ずなりたす。 列デヌタをマスキングする  |  BigQuery  |  Google Cloud Google Cloud コン゜ヌルたたは BigQuery Data Policy API を䜿甚しおデヌタポリシヌを远加、衚瀺、曎新、削陀する方法を説明したす。 cloud.google.com   たずめ 今回はBigQueryのデヌタマスキングに぀いお曞きたした。 今回はあらかじめ甚意しおおいたデヌタに察しおマスキングを行いたしたが、蚭定以降に入っおきたデヌタに察しおももちろんマスキングが実行されたす。郜床蚭定する必芁がないので倧倉䟿利ですね。 今回玹介したマスキングや前回のブログで玹介したアクセス制埡に関しおは、 「分類やポリシヌの蚭蚈」 がずおも重芁になるず思いたす。 たた、デヌタマスキングを列レベルのアクセス制埡ず組み合わせお䜿甚するこずで、さたざたなナヌザヌグルヌプのニヌズに基づいたアクセス範囲を構成できたす。 BigQueryの列レベルのアクセス制埡に関しおは、 こちらのブログ をご芧ください。
本蚘事は 倏䌑みクラりド自由研究 8/27付の蚘事です 。 こんにちは。SCSKの島村です。 Googleが提䟛するオヌプンAIモデル Gemma に぀いおご存じでしょうか Gemma は、 Googleが公開した商甚利甚可胜なオヌプンモデル で、「軜量か぀高性胜なLLM」ずいう特城がありたす。 本蚘事では、 『 Gemma 』に぀いお色々調査いたしたしたので、それらを敎理しおみたいず思いたす。 たた、実際にGoogle Cloud䞊でGemmaを展開し、利甚しおみたした。その魅力に぀いお少しだけご玹介させおいただければず思いたす。 Google Gemmaずは Gemma は、「アプリケヌション内、ハヌドりェア、モバむル デバむス、ホスト型サヌビス」で実行できる 軜量型の生成 AIオヌプンモデルセット です。  Gemini モデルの䜜成に䜿甚されたのず同じ研究ずテクノロゞヌから構築された、軜量で最先端のオヌプンモデルです。 Gemma モデルは、ノヌトパ゜コン、ワヌクステヌション、たたは Google Cloud で実行できたす。 たた、Colab や Kaggle ノヌトブック、JAX、PyTorch、Keras 3.0、Hugging Face Transformers などのフレヌムワヌクなどでもサポヌトをしおいたす。 詳现に぀いおは、以䞋、Google Blog公匏からご確認ください。 Gemmaに぀いお- Google Blog 倧芏暡蚀語モデルLLMの性胜を評䟡するためのベンチマヌクの䞀぀であるMMLUでも 他のモデルず比范しお性胜が高いずのこずです。2024-06-27時点 MMLUMassive Multitask Language Understanding は、 様々な分野、倚岐にわたるタスクを網矅した膚倧な量の質問ず回答のペアで構成されおおり、LLMが幅広い知識ず理解胜力を持っおいるかを枬るために甚いられたす。                      暪軞: 評䟡されたLLMのモデル名ず、そのモデルのパラメヌタ数数十億単䜍 瞊軞: MMLUベンチマヌクにおける正解率   Gemma モデル ファミリヌ Gemmaは「様々なサむズや甚途に合わせお、耇数のモデルが提䟛」されおいたす。 それらを衚で敎理しおみたした。 Gemma 2 200 億、900 億、270 億のパラメヌタ サむズで利甚可胜です。 3 ぀の新しい パワフルで効率的なモデル を提䟛し、すべおセヌフティ機胜を備えおいたす。 Gemma 1 軜量でテキストからテキストを生成する、 デコヌダのみの 倧芏暡蚀語モデルです。 テキスト、コヌド、数孊コンテンツの膚倧なデヌタセットでトレヌニングされたす。 RecurrentGemma 再垰型ニュヌラル ネットワヌクずロヌカル アテンションを掻甚しおメモリ効率を向䞊させる、技術的に異なるモデルです。 PaliGemma PaLI-3 に着想を埗たオヌプンなビゞョン蚀語モデル SigLIP ず Gemma を掻甚しおおり、幅広い芖芚蚀語タスクに転送するための汎甚モデルずしお蚭蚈されおいたす。 CodeGemma CodeGemma は、オリゞナルの事前トレヌニング枈み Gemma モデルの基盀を利甚しお、ロヌカル コンピュヌタに適したサむズの匷力なコヌド補完ず生成機胜を提䟛したす。   Google AI Studio䞊でGemmaを詊しおみた。 ここからは実斜にGemmaモデルを利甚しおみたを共有できればず思いたす。 たずは簡単に詊しおみるずいうこずで、『 Google AI Studio 』からモデルを遞択しお、そのレスポンスを芋おみたす。 Google AI Studioずは Googleが提䟛 する、生成AIモデルであるGeminiを䜿っお、様々なタスクを実行できるプラットフォヌムです。 ナヌザヌフレンドリヌなむンタヌフェヌスによっお 開発の経隓がないナヌザヌでも簡単に利甚可胜なこずが特城です。 Google AI Studioぞのログむンはこちら Gemini appずの違いは、 「APIキヌの発行」や「モデルの遞択」、「パラメヌタの調敎」などのその他開発者向けの機胜が充実しおおりたす。 Google AI StudioでモデルGemmaを遞択しおみる。 Gemmaは3぀のサむズから遞択可胜です。 実際にpromptを入力しお実行しおみたした。☟☟☟ 耇数プロンプト実行しおみた結果、 Gemini1.5 Flashに比べるず出力たでの時間は倚少芁したしたが、粟床は申し分ないかず思いたす。   Google Cloud䞊でGemmaを動かしおみた。 Vertex AI で Gemma モデルを䜿甚するず、 開発者はモデルの調敎、管理、監芖をシンプルか぀盎感的に行える゚ンドツヌ゚ンドのMLプラットフォヌムを掻甚できたす。 Google CloudからGemmaを利甚するには Gemma は、Vertex AI Model Garden からノヌトブックを起動しお利甚開始するこずができたす。 たた、Google Kubernetes Engine や Dataflow などのGoogle Cloud プロダクトでも利甚可胜です。 Google Cloud から利甚できるGemma モデルのサむズず機胜 https://ai.google.dev/gemma?hl=ja GCEロヌカル環境䞊にGemamモデルをデプロむしお䜿っおみる 今回、Gemmaの実行環境ずしお Ollama を利甚したした。 『Ollam』はロヌカル環境でLLMモデルを動かすこずができる無料でツヌルあり、䜿いやすいむンタヌフェヌスが特城です。 GCEむンスタンを䜜成する。今回はGPUずしおNVIDIA T4を利甚したした。 䜜成したむンスタンスにSSHしお DokcerずOllamaをむンストヌルする。 Ollamaは公匏ドキュメントの手順通りにむンストヌルをしたす。 Download Ollama on Linux Download Ollama on Linux ollama.com                curl -fsSL https://ollama.com/install.sh | sh Ollama Open WebUIを起動する。 むンストヌルできたら以䞋のコマンドでDockerを起動したす。                 sudo docker run -d --network=host -v open-webui:/app/backend/data -e OLLAMA_BASE_URL=http://127.0.0.1:11434 --name open-webui --restart always ghcr.io/open-webui/open-webui:main ブラりザからOllama Open WebUIにアクセスする。 正しく起動でき、アクセスできるず以䞋の画面が珟れたす。 起動したOpenWebUIGCEぞのアクセスは適切なネットワヌクずファむアりォヌルの蚭定を実斜しお接続しおください。 モデルGemmaを遞択し、プロンプトを送信しおみる。 今回は「Gemma:7b」を利甚しおみした。 Gemmaをロヌカル環境でも利甚するこずができたした                 初回利甚時は、Gemmaモデルをむンストヌルする必芁がありたす。 蚭定-モデルから[Ollama.comからモデルをプル]におモデル名䟋gemma:7bず入力しダりンロヌドしおください。   ロヌカル環境のリ゜ヌスずいうこずもあり、出力には数十秒の時間を芁したした。 ですが、実際の粟床は申し分ないかず思いたす。 Gemma以倖の他のオヌプンモデルに぀いおも詊しおみおそれらの䜿いやすさをい敎理しおいこうず思いたす。   最埌に 今回は Google のオヌプンAIモデル『Gemma』 に぀いおご玹介させおいただきたした。 たた、実際にロヌカル環境で実行しおみおその手軜さを少しでもお䌝え出来たかなず思いたす。 より詳现な機胜に぀いおは、远っお公開させおいただきたす。匕き続き本ブログをお楜しみください 今埌ずも、AIMLに関する情報やGoogle CloudのAIMLサヌビスのアップデヌト情報を掲茉しおいきたいず思いたす。 最埌たで読んでいただき、ありがずうございたした
こんにちは。SCSKの䞊田です。 今回は Zabbixで耇雑な条件のログ監芖を行う方法 をご玹介したす。 ログ監芖は、䟋えば「”ERROR”ずいう文字列が含たれる」「むベントIDが”777″」などシンプルな条件なら簡単に䜜成できるのですが、 “Error”ずいう文字列ず”CPU”ずいう文字列をずもにを含む 深刻床が”譊告”以䞊、䜆しむベントIDが”777″の堎合は陀倖する ずいった 耇合条件 や 陀倖条件 が加わるず、䜜成が難しくなりたす。 そこで今回は、ログ監芖の䜜成方法ず、耇雑な条件のログ監芖を蚭定する方法に぀いお玹介しおいきたす。 Linuxのテキストログ監芖ずWindowsのむベントログ監芖でやり方が異なるので、それぞれに぀いお曞いおいきたす。 Linuxのログ監芖 たずは、 Linuxのログ監芖 に぀いおです。 ログ監芖のやり方 Linuxのログは、以䞋のアむテムキヌで取埗できたす。 アむテムキヌ log[監芖するファむル名] 以䞋は、実際に取埗されたアむテムの情報です。 Linuxログのアむテム取埗画面 このように、出力されたログが プレヌンテキスト ずしお取埗できたす。 このログから特定の文字列を怜知するには、以䞋のトリガヌ関数を䜿いたす。 トリガヌ関数 find(/ホスト名/log[監芖するファむル名],,,”怜知したい文字列”) このfind関数は、 アむテムの最新の倀に怜知したい文字列が 含たれおいる堎合1 を、 含たれおいない堎合0 を返したす。 䟋えば、/var/log/messagesで “ERROR” が含たれるログを怜知したい堎合、アむテムキヌが “log[/var/log/messages]” のアむテムを䜜成し、トリガヌ条件匏が “find(ホスト名/log[/var/log/messages],,,”ERROR”)=1″ ずなるトリガヌを䜜成したす。 耇雑なログ監芖のやり方 Linuxでは、 耇合条件 も 陀倖条件 も、 グロヌバル正芏衚珟 を䜿うのが有効です。 別の蚘事 “正芏衚珟の䜿い方” にお正芏衚珟の䜿い方ずログ監芖ぞの応甚方法を玹介しおおりたすので、そちらをご参照ください。 ログ監芖に圹立぀Zabbix正芏衚珟の䜿い方 Zabbixにおける正芏衚珟の䜿い方を説明したす。正芏衚珟を䜿うこずで、耇雑な条件にマッチするログの怜知を行うこずができたす。 blog.usize-tech.com 2024.07.24   Windowsのログ監芖 続いお、 Windowsのログ監芖 に぀いおです。こちらはLinuxず比べお少々耇雑です。理由は埌述 ログ監芖のやり方 たずログ取埗のアむテムですが、 アむテムキヌ eventlog[むベントログ名]たたは eventlog[むベントログ名称,,,,,,skip] で取埗したす。パラメヌタに「 skip 」を指定しないず、 ホストに蓄積された過去のログも党お取埗されおしたいたす ので、アむテム登録した時点からのログだけ取埗したい堎合はskip付きののアむテムキヌを䜿っおください。本蚘事ではskip無しのアむテムキヌを䜿甚しおいたす。 以䞋は、実際に取埗されたアむテムの情報です。 Windowsむベントログのアむテム取埗画面 Linuxのログずは異なり、1぀のプレヌンテキストではなく 「゜ヌス」 、 「深刻床」 、 「むベントID」 、 「倀ログの内容」 ず分かれお倀が取埗され、芁玠ごずにトリガヌ関数も分かれおいたす。 これがWindowsのむベントログ監芖が耇雑になる理由です ゜ヌス logsource (/ホスト名/eventlog[むベントログ名],,”怜知したい゜ヌス”) 深刻床 logseverity(/ホスト名/eventlog[むベントログ名]) むベントID logeventid (/ホスト名/eventlog[むベントログ名],,”怜知したいむベントID”) 倀 find(ホスト名/log[/var/log/messages],,,”怜知したい文字列”) ゜ヌス、むベントID、倀の関数は、 最新のむベントログに怜知したい芁玠が 含たれおいる堎合1 を、 含たれおいない堎合0 を返したす。 深刻床の関数は、深刻床が “情報”なら1、”譊告”なら2、,”゚ラヌ”なら4、”クリティカル”なら9 を返したす。 䟋えば、システムログでむベントの 深刻床が゚ラヌ のログを怜知したい堎合、” logseverity(/ホスト名/eventlog[System]) =4″、 むベントIDが777 のログを怜知したいずきは” logeventid (/ホスト名/eventlog[System],,”777″)=1″ ずいう颚に、適切な関数を遞んでトリガヌを蚭定したす。 耇雑なログ監芖のやり方 それでは、耇雑な条件のログ監芖を蚭定しおみたしょう。 ①耇合条件 たず、「゜ヌスが●● か぀ 深刻床が●● か぀ ・・・」ずいう 耇合条件 を考えおみたす。 トリガヌ条件匏は、 論理挔算子”and” や “or” が䜿えるので、それを䜿っお条件匏を組み立おおみたす。 䟋ずしお、以䞋のすべおの条件を満たす条件匏を䜜っおみたしょう。 ゜ヌスがtest 深刻床が譊告以䞊 むベントIDが777 この堎合、以䞋のような条件匏になりたす。 logsource(/ホスト名/eventlog[System],,”test”)=1 and logseverity(/ホスト名/eventlog[System])>=2 and logeventid(/ホスト名/eventlog[System],,”777″)=1 むベントログ監芖トリガヌ① これで実際に該圓のむベントログを怜知できるか詊しおみたしょう。むベントログを生成するには、 “EVENTCREATE” コマンドを䜿いたす。 監芖察象機噚のコマンドプロンプトで、以䞋のコマンドを実行しおみたしょう。 EVENTCREATE /ID 777 /L system /SO test /T ERROR /D "むベントテスト" するず、想定通り障害ずしお怜知したした。 障害怜知 ②陀倖条件 続いお、 陀倖条件 も考えおみたしょう。䟋えば、「深刻床が゚ラヌ以䞊 䜆し゜ヌスが●●のモノは陀く」ずいった条件です。 トリガヌ条件匏では、 吊定挔算子”not” も䜿えるので、これを䜿っお条件を組み立おたす。 以䞋の条件を考えおみたしょう。 深刻床が譊告以䞊 䜆し、むベントIDが”777″のログは陀く この堎合、以䞋のような条件匏になりたす。 logseverity(/ホスト名/eventlog[System])>=2 and not logeventid(/ホスト名/eventlog[System],,”777″)=1 むベントログ監芖トリガヌ② その埌、EVENTCREATEで以䞋のむベントを生成したす。 EVENTCREATE /ID 888 /L system /SO test /T ERROR /D "むベントテスト" これは、 深刻床が譊告以䞊 で むベントIDは”777″ではない ので、条件にマッチしお障害ずしお怜知されたす。 障害怜知② その埌、今床は陀倖条件にマッチする以䞋のむベントを生成したす。 EVENTCREATE /ID 777 /L system /SO test /T ERROR /D "むベントテスト" こちらは陀倖条件にマッチするので、想定通り 障害が発生したせん。 ③耇合条件ず陀倖条件のMIX 最埌に、さらに耇雑な、 耇合条件 ず 陀倖条件 の 合わせ技 をやっおみたす。 䟋えば、以䞋のような条件を考えたす。 深刻床が譊告以䞊 䜆し、以䞋の条件のいずれかを満たすものは陀倖する  1:「゜ヌスが”test”」か぀「むベントIDが”777″」  2:「゜ヌスが”hoge”」か぀「むベントIDが”888″」か぀「内容に”テスト”ずいう文字列が含たれる」 耇雑なので、䞀぀䞀぀玐解いおいきたす。 たず、”深刻床が譊告以䞊”ずいう条件は、今たで出おきおいる通り、 logseverity(/ホスト名/eventlog[System])>=2 ずなりたす。 続いお1ず2の条件匏は、耇合条件なので以䞋のように曞けたす。 1: logsource (/ホスト名/eventlog[System],,”test”)=1 and logeventid(/ホスト名/eventlog[System],,”777″)=1 2:logsource(/ホスト名/eventlog[System],,”hoge”)=1 and logeventid(/ホスト名/eventlog[System],,”888″)=1 and find(/ホスト名/eventlog[System],,,”テスト”)=1 これらの条件を満たす堎合は怜知しないので、この条件をnotで吊定し、最初の条件ず結合したす。耇数条件に挔算子を適甚する堎合は、()で括りたす。 logseverity(/ホスト名/eventlog[System])>=2 and not (logsource(/ホスト名/eventlog[System],,”test”)=1 and logeventid(/ホスト名/eventlog[System],,”777″)=1) and not (logsource(/ホスト名/eventlog[System],,”hoge”)=1 and logeventid(/ホスト名/eventlog[System],,”888″)=1 and find(/ホスト名/eventlog[System],,,”テスト”)=1) むベントログ監芖トリガヌ③ それでは、これが正しい動䜜をするかテストしおみたしょう。 たずは陀倖条件に圓おはたらないログを生成し、障害怜知するかテストしたす。 EVENTCREATE /ID 888 /L system /SO test /T ERROR /D "むベントテスト" これは陀倖条件1,2ずもにすり抜けおいるので、障害ずしお怜知されたす。 障害怜知③ 続いお、以䞋のログを生成したす。 EVENTCREATE /ID 777 /L system /SO test /T ERROR /D "むベントテスト" これは陀倖条件1にマッチしおいるので、障害ずしお怜知されたせん。 以䞋のログでも詊しおみたしょう。 EVENTCREATE /ID 888 /L system /SO hoge /T ERROR /D "むベントテスト" これは陀倖条件2にマッチしおいるので、こちらも障害ずしおは怜知されたせん。 以䞊のテストより、想定通り 陀倖条件にマッチするログは怜知しない こずが分かりたす。   たずめ 今回は、LinuxずWindowsのログ監芖に぀いお玹介したした。 Linuxは正芏衚珟を䜿えば耇合条件も陀倖条件も簡単に䜜成できたすが、Windowsはむベントログの芁玠によっお関数が分かれおいるため、どうしおも耇雑なトリガヌ条件匏になっおしたいたす。しかし、論理挔算子 “and” “or” “not” をうたく組み合わせれば柔軟な条件匏が䜜成できるので、この蚘事を参考にぜひ詊しおみおください。 最埌に、匊瀟が参加するむベントに぀いお宣䌝させおください。 ① Zabbix党囜5郜垂キャラバン2024 Zabbix瀟䞻催の、 党囜5郜垂を回るセミナヌむベント です。東京・名叀屋は終了したしたが 2024幎9月に倧阪・九州・北海道でも開催 したすので、是非お近くの䌚堎に足を運んでみおください Zabbix5都市キャラバン2024 www.zabbix.com ② Zabbix7.0セミナヌ こちらは 2024幎10月2日(æ°Ž) に開催される、 SCSK䞻催のWEBセミナヌ です。Zabbix7.0の新機胜やバヌゞョンアップの勘所に぀いおご玹介したす。 本蚘事の筆者が講垫ずしお登壇したす ので、是非ご芖聎ください Zabbix7.0セミナヌ新機胜ずバヌゞョンアップの芁点 本セミナヌでは、Zabbix 7.0の新機胜ず改善点に぀いお詳しくご玹介させおいただきたす。実際のアップグレヌド手順に぀いおもご説明し、皆様のZabbix 7.0ぞの移行をスムヌズに進めるためのヒントもお䌝えいたしたす。 www.scsk.jp 最埌たで読んでいただき、ありがずうございたした。 匊瀟では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アカりントを開蚭したした★ x.com x.com
本蚘事は 倏䌑みクラりド自由研究 8/26付の蚘事です 。 「倏䌑みクラりド自由研究」ずいうこずで、Microsoft Azure の Azure AI サヌビスの TTS (Text to speech) / SST (Speech to text) を䜿っお LLM (gpt-4o-mini) ず音声で䌚話しおみようず思いたす。 準備 たずはいろいろ詊せるように、Azure AI Studio をセットアップしたす。 Azure AI Studio は Azure AI 関連サヌビス (Azure ML や Azure OpenAI なども含む) を䞀元的に゚ンドツヌ゚ンドで管理できるようにしおくれたす。すべおを集めおきおくれおおり、簡単に䜿えおいろいろ捗るので、目的からは必須ではありたせんが䜿っおみたす。 Azure AI Studio ハブの䜜成 Azure AI Studio ハブは、次の 2 ぀の方法で䜜成できたす。 Azure AI Studio (ai.azure.com) から䜜成する Azure Portal (portal.azure.com) から䜜成する 1 は必芁最䜎限のパラメヌタヌで䜜成できるため簡単ですが、ネットワヌク蚭定などの゚ンタヌプラむズ利甚においおは必須の蚭定ができなかったりしたすので、たじめに䜿うずきは 2 で䜜成いただくのがよろしいかず思いたす。 ※ 今回は特にカスタマむズしたいこずもないのですが、どんな蚭定があるか芋たいので、 2 で蚭定内容などを眺めながら䜜成したす。 ※ なお、Azure OpenAI 利甚申請は終わっおいる前提です。 䜜成手順 (クリック) Azure Portal の怜玢バヌで Azure AI Studio を怜玢しおアクセスしたす。 「新しい Azure AI ハブ」をクリックしたす。 基本蚭定を行い、「次ぞ」をクリックしたす。 サブスクリプション: デプロむ先のサブスクリプションを指定 リ゜ヌスグルヌプ: デプロむ先の RG を指定 リヌゞョン: デプロむ先のリヌゞョンを指定 ※ 利甚可胜なモデルは䞋の「Azure AI サヌビスのベヌス モデル」で接続するリ゜ヌスのリヌゞョン䟝存 名前: リ゜ヌスの名前を指定 フレンドリ名: Azure AI Studio 䞊で利甚される衚瀺名 既定のプロゞェクトリ゜ヌスグルヌプ: 別途、Azure AI Studio プロゞェクトを䜜成する際のデフォルトの RG を指定 OpenAI を含む AI サヌビスに接続する: Azure AI Studio ず接続する Azure AI サヌビスのリ゜ヌスを指定 ※ 今回は新芏䜜成で Azure お任せ ストレヌゞ蚭定を行い、「次ぞ」をクリックしたす。 ストレヌゞアカりント: Azure AI Studio 䞊で扱うファむルや蚭定などを栌玍するストレヌゞアカりントを指定 ※ 今回は新芏䜜成で Azure お任せ キヌコンテナヌ: Azure AI Studio 䞊で扱うシヌクレットなどを栌玍する Key Vault を指定 ※ 今回は新芏䜜成で Azure お任せ Application Insights: 分析情報などを取埗するために䜿う Application Insights を指定 ※ 今回は必芁ないのでなし コンテナヌレゞストリ: Azure AI Studio 䞊で扱う Docker むメヌゞなどを栌玍するレゞストリを指定 ※ 今回は必芁ないのでなし ネットワヌク蚭定を行い、「次ぞ」をクリックしたす。 ※ 今回はデフォルトのたた 暗号化蚭定を行い、「次ぞ」をクリックしたす。 ※ 今回はデフォルトのたた ID 蚭定を行い、「確認および䜜成」をクリックしたす。 ※ 今回はデフォルトのたた ※ タグ蚭定はすっずばしたす   Azure AI Studio ず 付垯リ゜ヌスが䜜成されたした。 ※ リ゜ヌスグルヌプには指定したストレヌゞアカりントやKey Vaultも䜜成されおいたす。 モデルのデプロむ Azure AI Studio ハブが䜜成できたら、 Azure AI Studio にアクセスしお、利甚するモデルをデプロむしたす。 Azure Speech (Text to speech, Speech to text) Azure OpenAI (gpt-4o-mini) Azure Speech の方は、先ほど䜜成した AzureAI リ゜ヌスに含たれおおり個別にモデルをデプロむする必芁はないため、gpt-4o-mini だけ远加でデプロむしたす。 䜜成手順 (クリック) Azure AI Studio のホヌム画面で「すべおのハブ」をクリックしたす。 ※ 「管理」カテゎリが芋えおいない堎合はログむンできおいない可胜性がありたすので右䞊の方を芋おみおください。 モデルをデプロむするハブをクリックしたす。 「デプロむ」メニュヌに移動しお、「モデルのデプロむ」をクリックしたす。 デプロむするモデルを遞択しお「確認」をクリックしたす。 デプロむ名やその他のパラメヌタヌを指定しお、「デプロむ」をクリックしたす。 ※ モデルのデプロむ単䜍で固有の API パスを持぀こずになりたす ※ 今回は、デプロむの皮類を Global standard から Standard に倉曎しおいたす モデルがデプロむされたした。   gpt-4o-mini ず音声で䌚話しおみる MS 公匏サンプルを参考に䌚話する Microsoft がサンプルコヌドを公開しおくれおいるので、今回はそちらを参考に詊しおみたいず思いたす。 Azure OpenAI 音声読み䞊げチャット - Speech サヌビス - Azure AI services この攻略ガむドでは、Speech を䜿甚しお Azure OpenAI ず䌚話したす。 Speech ではオヌディオを認識し、それを Azure OpenAI に送信し、音声応答を合成したす。 learn.microsoft.com ゜ヌスコヌド (クリック) 自分のために少し手盎ししおいたす。 コメントを日本語に倉曎 環境倉数を .env ファむルから取埗するように倉曎 認識する蚀語を日本語 (ja-jp) に倉曎 import os import azure.cognitiveservices.speech as speechsdk from openai import AzureOpenAI from dotenv import load_dotenv # .envファむルから環境倉数を読み蟌みたす load_dotenv() # この䟋では、"OPEN_AI_KEY"、"OPEN_AI_ENDPOINT"、および "OPEN_AI_DEPLOYMENT_NAME" ずいう名前の環境倉数が必芁です # ゚ンドポむントは次のような圢匏である必芁がありたす https://YOUR_OPEN_AI_RESOURCE_NAME.openai.azure.com/ client = AzureOpenAI( azure_endpoint=os.environ.get('OPEN_AI_ENDPOINT'), api_key=os.environ.get('OPEN_AI_KEY'), api_version="2023-05-15" ) # これは、モデルをデプロむしたずきに遞択したカスタム名に察応したす。 deployment_id=os.environ.get('OPEN_AI_DEPLOYMENT_NAME') # この䟋では、"SPEECH_KEY" ず "SPEECH_REGION" ずいう名前の環境倉数が必芁です speech_config = speechsdk.SpeechConfig(subscription=os.environ.get('SPEECH_KEY'), region=os.environ.get('SPEECH_REGION')) audio_output_config = speechsdk.audio.AudioOutputConfig(use_default_speaker=True) audio_config = speechsdk.audio.AudioConfig(use_default_microphone=True) # スピヌカヌの蚀語に合わせたロケヌルを蚭定する必芁がありたす speech_config.speech_recognition_language="ja-JP" speech_recognizer = speechsdk.SpeechRecognizer(speech_config=speech_config, audio_config=audio_config) # Azure OpenAIが代わりに応答する音声の蚀語にしたす speech_config.speech_synthesis_voice_name='en-US-JennyMultilingualNeural' speech_synthesizer = speechsdk.SpeechSynthesizer(speech_config=speech_config, audio_config=audio_output_config) # tts sentence end mark tts_sentence_end = [ ".", "!", "?", ";", "。", "", "", "", "\n" ] # Azure OpenAIにリク゚ストを送信し、応答を合成したす。 def ask_openai(prompt): # Azure OpenAIにストリヌミングでリク゚ストを送信する response = client.chat.completions.create(model=deployment_id, max_tokens=200, stream=True, messages=[ {"role": "user", "content": prompt} ]) collected_messages = [] last_tts_request = None # ストリヌムレスポンスをむテレヌトする for chunk in response: if len(chunk.choices) > 0: chunk_message = chunk.choices[0].delta.content # extract the message if chunk_message is not None: collected_messages.append(chunk_message) # save the message if chunk_message in tts_sentence_end: # sentence end found text = ''.join(collected_messages).strip() # join the recieved message together to build a sentence if text != '': # if sentence only have \n or space, we could skip print(f"Speech synthesized to speaker for: {text}") last_tts_request = speech_synthesizer.speak_text_async(text) collected_messages.clear() if last_tts_request: last_tts_request.get() # 継続的に音声入力をリッスンし、認識しおテキストずしおAzure OpenAIに送信する def chat_with_open_ai(): while True: print("Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation.") try: # マむクから音声を取埗し、それをTTSサヌビスに送信したす。 speech_recognition_result = speech_recognizer.recognize_once_async().get() # 音声が認識された堎合、それをAzure OpenAIに送信しお応答を埅ちたす。 if speech_recognition_result.reason == speechsdk.ResultReason.RecognizedSpeech: if speech_recognition_result.text == "Stop.": print("Conversation ended.") break print("Recognized speech: {}".format(speech_recognition_result.text)) ask_openai(speech_recognition_result.text) elif speech_recognition_result.reason == speechsdk.ResultReason.NoMatch: print("No speech could be recognized: {}".format(speech_recognition_result.no_match_details)) break elif speech_recognition_result.reason == speechsdk.ResultReason.Canceled: cancellation_details = speech_recognition_result.cancellation_details print("Speech Recognition canceled: {}".format(cancellation_details.reason)) if cancellation_details.reason == speechsdk.CancellationReason.Error: print("Error details: {}".format(cancellation_details.error_details)) except EOFError: break # Main try: chat_with_open_ai() except Exception as err: print("Encountered exception. {}".format(err)) 環境倉数の確認方法 (クリック) いろいろ導線はありたすが、䞀䟋を瀺したす。 項目 確認方法 OPEN_AI_KEY 皮類が Azure OpenAI の行のキヌ倀 ※ 右偎にコピヌボタンがありたす OPEN_AI_ENDPOINT 皮類が Azure OpenAI の行のタヌゲット倀 ※ マりスオヌバヌでコピヌできたす OPEN_AI_DEPLOYMENT_NAME 先の手順で指定したモデルのデプロむ名 SPEECH_KEY 皮類が Azure OpenAI の行のキヌ倀 ※ 右偎にコピヌボタンがありたす SPEECH_REGION 先の手順で指定した Azure AI サヌビスのデプロむ先リヌゞョン では、さっそく Python スクリプトを実行しお䌚話しおみたしょう。 Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation. Recognized speech: こんにちは最近どうですか Speech synthesized to speaker for: こんにちは Speech synthesized to speaker for: 私は元気です。 Speech synthesized to speaker for: あなたはどうですか Speech synthesized to speaker for: 最近䜕か面癜いこずがありたしたか Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation. document.createElement('video'); https://blog.usize-tech.com/contents/uploads/2024/08/azure-ai-tts-sst_audio1.mp4 うたく日本語を認識しお䌚話できおいるようです。 男性の声は、ロヌカル PC のテキスト読み䞊げ機胜で発声させおおり、女性の声が gpt-4o-mini の応答を TTS で読み䞊げたものです。 ざっくり、こんな動きをしおいたす。 凊理の流れむメヌゞ カスタマむズしおみる 音声合成のレヌトを倉曎する 話し方がゆっくりしおいるので、音声合成のレヌトを倉曎しおみたす。 54行目を次のように (無理やり) 倉曎しお、SSML で音声合成をカスタマむズしたす。 # last_tts_request = speech_synthesizer.speak_text_async(text) ssml = f"<speak version='1.0' xmlns='http://www.w3.org/2001/10/synthesis' xml:lang='ja-JP'><voice name='en-US-JennyMultilingualNeural'><prosody rate='1.3'>{text}</prosody></voice></speak>" last_tts_request = speech_synthesizer.speak_ssml_async(ssml) collected_messages.clear() 音声合成マヌクアップ蚀語 (SSML) の抂芁 - 音声サヌビス - Azure AI services 音声合成マヌクアップ蚀語を䜿甚しお、テキスト読み䞊げの発音ず韻埋を制埡する方法を説明したす。 learn.microsoft.com それでは実行しお䌚話しおみたしょう。 Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation. Recognized speech: こんにちは最近どうですか Speech synthesized to speaker for: こんにちは Speech synthesized to speaker for: 私は元気です。 Speech synthesized to speaker for: あなたはいかがですか Speech synthesized to speaker for: 最近䜕か楜しいこずがありたしたか Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation. https://blog.usize-tech.com/contents/uploads/2024/08/azure-ai-tts-sst_audio2.mp4 先ほどより早めに話すようになりたした。   音声モデルを倉曎しおみる 音声モデルを日本人男性の声  ja-JP-DaichiNeural に倉曎しおみたす。 蚀語サポヌト - 音声サヌビス - Azure AI services 音声サヌビスでは、音声翻蚳に加え、音声テキスト倉換ずテキスト読み䞊げ倉換のためのさたざたな蚀語がサポヌトされおいたす。 この蚘事では、サヌビス機胜によっおサポヌトされおいる蚀語の包括的な䞀芧を瀺したす。 learn.microsoft.com 30行目を次のように倉曎したす。 # speech_config.speech_synthesis_voice_name='en-US-JennyMultilingualNeural' speech_config.speech_synthesis_voice_name='ja-JP-DaichiNeural' ※ 音声合成のレヌト倉曎 (SSML) はロヌルバックしおいたす。   それでは実行しお䌚話しおみたしょう。   Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation. Recognized speech: こんにちは最近どうですか Speech synthesized to speaker for: こんにちは Speech synthesized to speaker for: 私は元気です。 Speech synthesized to speaker for: あなたはいかがですか Speech synthesized to speaker for: 最近のこずに぀いお教えおください。 Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation. https://blog.usize-tech.com/contents/uploads/2024/08/azure-ai-tts-sst_audio3.mp4 男性の声に倉りたした。   システムロヌルをカスタマむズする システムロヌルのカスタマむズは TTS / SST ずいうよりは、LLM の方の制埡ですが、䞀応やっおおきたす。 39 行目に role が system のプロンプトを远加したす。       {"role": "system", "content": "織田信長になりきっおください。性栌や語気もトレヌスしたす。"},         {"role": "user", "content": prompt} それでは実行しお䌚話しおみたしょう。 Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation. Recognized speech: あなたのこずを教えおください。 Speech synthesized to speaker for: 我は織田信長。 Speech synthesized to speaker for: 尟匵の倧名ずしお、倩䞋統䞀を目指す者なり。 Speech synthesized to speaker for: か぀おは小さな領地を治めおいたが、今やその力を壮倧に広げ぀぀ある。 Speech synthesized to speaker for: 匷さや革新を重んじ、叀きものを打砎するこずに執念を燃やしおおる。 Speech synthesized to speaker for: 敵には容赊せず、味方には厚く接するが、今は戊囜の混乱を収め、安定した䞖を築くこずが我が䜿呜よ。 Speech synthesized to speaker for: 䜕か聞きたいこずがあれば、問うおみよ Azure OpenAI is listening. Say 'Stop' or press Ctrl-Z to end the conversation. https://blog.usize-tech.com/contents/uploads/2024/08/azure-ai-tts-sst_audio4.mp4 織田信長のようなこずを蚀う䜕かに倉りたした。   たずめ 今回の倏䌑みクラりド自由研究では、Microsoft Azure の Azure AI サヌビスの TTS (Text to Speech) / SST (Speech to Text) 機胜を掻甚し、LLMgpt-4o-miniず音声で察話する方法を詊しおみたした。 Azure AI Studio を䜿っおみたい気持ちず、Azure の音声サヌビスに入門したい気持ちから今回はこういった内容にしおみたしたが、実甚を考えるず、Azure OpenAI の Function Calling や Assistants API ずいったプラグむン機胜や、LangChain や Semantic Kernel などのフレヌムワヌクを利甚したほうが、より効率よく高床な凊理を実珟できる気がしたす。たた、gpt-4o / mini の音声察応版や、Azure OpenAI の TTS / SST も䞀郚プレビュヌが始たっおいたす。 その蟺りも远っお挑戊しながら、AI ずもっず自然に高床な䌚話ができないかもくもく詊しおいきたいず思いたす。