Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
第103回 雲勉【オンライン】インフラエンジニアにおける ChatGPT の便利な使い方と注意点
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
Y.Sumikura
May 12, 2023
Technology
320
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
第103回 雲勉【オンライン】インフラエンジニアにおける ChatGPT の便利な使い方と注意点
Y.Sumikura
May 12, 2023
More Decks by Y.Sumikura
See All by Y.Sumikura
第101回 雲勉【オンライン】VPC から始めるネットワーク入門
sumikurayurie1125
0
190
第99回 雲勉【オンライン:初心者向け】Infrastructure as Code (IaC) 入門 〜TerraformとAnsibleを使ってみよう〜
sumikurayurie1125
0
260
第96回 雲勉【オンライン:初心者向け】インフラエンジニアのKubernetes入門
sumikurayurie1125
0
270
第8回 雲勉LT【オンライン:中級者向け】AthenaでS3上のデータとDynamoDBのデータを結合する
sumikurayurie1125
0
390
第93回 雲勉【オンライン:初心者向け】CI/CDって結局何なの?インフラエンジニアがCode3兄弟を学ぶ
sumikurayurie1125
13
4.9k
第7回 雲勉LT【オンライン:初心者向け】サーバレスコンテナサービス Lambda, Fargate, App Runnerの特徴、違いを解説
sumikurayurie1125
3
680
第6回 雲勉LT【オンライン:初心者向け】2022年 気になったアップデート情報:「RDSコンソールの、EC2ワンクリック接続オプション」について
sumikurayurie1125
0
190
第5回 雲勉LT【オンライン:初心者向け】GCのサービスだけでCI_CDを構築してみよう
sumikurayurie1125
0
82
第90回 雲勉【オンライン:初心者向け】AWS App RunnerにLaravelをデプロイしてLINEBotを作ってみよう
sumikurayurie1125
0
930
Other Decks in Technology
See All in Technology
Oracle AI Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
6
1.5k
Oracle AI Database@AWS:サービス概要のご紹介
oracle4engineer
PRO
4
3k
Oracle Cloud Infrastructure:2026年6月度サービス・アップデート
oracle4engineer
PRO
0
130
Lightning近況報告
kozy4324
0
190
いまさら聞けない「仕様駆動開発入門」 〜AI活用時代の開発プロセスを考える〜
findy_eventslides
2
160
GitHub Copilot 最新アップデート – 「一歩先」の実践活用術
moulongzhang
5
1.5k
FPGAの開発コンペでZephyrを使ってみた
iotengineer22
0
140
2026TECHFRESH畢業分享會 - Lightning Talk - 資料也要 CI/CD? 用 Airbyte 自動化資料同步
line_developers_tw
PRO
0
1.3k
iAEONの段階的リアーキテクト戦略 / iAEON's_Gradual_Re-architecture_Strategy
aeonpeople
0
230
【セミナー資料】Claude Code をセキュアに使うための考え方と設定の勘どころ / Claude Code Webinar 20260616
masahirokawahara
2
420
20260619 私の日常業務での生成 AI 活用
masaruogura
1
230
あなたの知らないPDFのアクセシビリティ
lycorptech_jp
PRO
0
220
Featured
See All Featured
The Cult of Friendly URLs
andyhume
79
6.9k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.5k
GraphQLとの向き合い方2022年版
quramy
50
15k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
Sharpening the Axe: The Primacy of Toolmaking
bcantrill
46
2.9k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
2
580
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
350
Navigating Weather and Climate Data
rabernat
0
220
AI Search: Where Are We & What Can We Do About It?
aleyda
0
7.6k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
160
The Language of Interfaces
destraynor
162
27k
Transcript
2023/05/11 第103回 雲勉【オンライン】 インフラエンジニアにおける ChatGPT の便利な使い方と注意点 平田 健士郎
アジェンダ (ざっくり) ・自己紹介 ・デモ ・ChatGPT の便利な使い方紹介 ・ChatGPT を使ってうまくいかなった例 ・ChatGPT を使う上での注意点
話すこと ・実際に使ってみて感じた ChatGPT の便利な使い方 ・ChatGPT を使う上で注意すべきこと ※ あくまでユーザー視点でのお話し 話さないこと
・AI や ML の話 ・登場するツールやサービスの詳細な使い方 (Terraform, NewRelic 等)
ChatGPT-3.5 と ChatGPT-4 の違い 今回の勉強会においては ChatGPT-4 のみを使っております。 ChatGPT-3.5 ChatGPT-4 料金
無料 月額20ドル のプランで利用可能 ※ 有料 マルチタスク言語理解ベンチマーク 3ショットの正解率 70.1% 85.5% ※ より優秀
自己紹介
自己紹介 ▪ 平田 健士郎 • クラウドインテグレーション事業部 構築第八セクション • 前職で MSP を
2 年を経験してそこで初めて AWS に触れる • アイレット入社約1年半 ←奥さんに描いてもらった似顔絵
早速ですが!
これから動画を見ていただきます
ChatGPT で サーバレスアーキテクチャを 作成する様子です
イメージ
ChatGPT への命令文 (プロンプト) API Gateway と ランタイムが Python の Lambda
を使って HTTPS 接続したら "Hello ChatGPT" と表示するためのサー バーレスアーキテクチャを Terraform で構築する方法を教えて ください。
ChatGPT への命令文 (プロンプト) API Gateway と ランタイムが Python の Lambda
を使って HTTPS 接続したら "Hello ChatGPT" と表示するためのサー バーレスアーキテクチャを Terraform で構築する方法を教えて ください。 コードでインフラを構築できる IaC ツールです。 コードで一度定義すれば作成/削除が簡単に行えるため、 今回は ChatGPT に Terraform のコードを生成してもらい そのコードを使って環境を作成します。
※実際の登壇ではここに動画を埋め込んでいました。 YouTube にアップした登壇動画をご参照ください。 以下は Youtube 内の動画を流した 該当時間のリンクです。 https://www.youtube.com/watch?v=uph6rms1aVc&t=374s 上記リンクの QR
コード →
ChatGPT で 作りたいものを作れました!
もちろんこれだけでも 便利なのですが。。。
さらに発展した使い方として 学習目的での利用方法があります
Lambda と API Gateway で サーバーレスアーキテクチャが作れるという知識はあるけど 実際にどうやって作ればいいか分からないなー
API Gateway と ランタイムが python の Lambda を使って HTTPS 接
続したら "Hello ChatGPT" と表示するためのサーバーレスアーキテク チャを Terraform で構築する方法を教えてください。 Lambda と API Gateway で サーバーレスアーキテクチャが作れるという知識はあるけど 実際にどうやって作ればいいか分からないなー 言語化
出来上がったもの
出来上がったもの
出来上がったもの resource "aws_api_gateway_rest_api" "api" { name = "hello_chatgpt_api" } resource
"aws_api_gateway_resource" "resource" { rest_api_id = aws_api_gateway_rest_api.api.id parent_id = aws_api_gateway_rest_api.api.root_resource_id path_part = "hello" } resource "aws_api_gateway_method" "method" { rest_api_id = aws_api_gateway_rest_api.api.id resource_id = aws_api_gateway_resource.resource.id http_method = "GET" authorization = "NONE" } resource "aws_api_gateway_integration" "lambda" { rest_api_id = aws_api_gateway_rest_api.api.id resource_id = aws_api_gateway_resource.resource.id http_method = aws_api_gateway_method.method.http_method integration_http_method = "POST" type = "AWS_PROXY" uri = aws_lambda_function.hello_chatgpt.invoke_arn } resource "aws_api_gateway_deployment" "deployment" { depends_on = [aws_api_gateway_integration.lambda] rest_api_id = aws_api_gateway_rest_api.api.id stage_name = "prod" } output "api_gateway_invoke_url" { value = "https://${aws_api_gateway_rest_api.api.id}.execute-api.${var.region}.amazonaws.com/prod/hello" } main.tf の API Gateway 部分
出来上がったもの
出来上がったもの resource "aws_lambda_function" "hello_chatgpt" { function_name = "hello_chatgpt" handler =
"lambda_function.lambda_handler" runtime = "python3.8" role = aws_iam_role.lambda_exec.arn filename = "lambda_function.zip" tags = { Name = "hello_chatgpt" } } resource "aws_iam_role" "lambda_exec" { name = "lambda_exec" assume_role_policy = jsonencode({ Version = "2012-10-17" Statement = [ { Action = "sts:AssumeRole" Effect = "Allow" Principal = { Service = "lambda.amazonaws.com" } } ] }) } resource "aws_iam_role_policy_attachment" "lambda_exec" { policy_arn = "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" role = aws_iam_role.lambda_exec.name } resource "aws_lambda_permission" "apigw" { statement_id = "AllowAPIGatewayInvoke" action = "lambda:InvokeFunction" function_name = aws_lambda_function.hello_chatgpt.function_name principal = "apigateway.amazonaws.com" source_arn = "${aws_api_gateway_rest_api.api.execution_arn}/*/${aws_api_gateway_method.method.http_method}${aws_api_gateway_resourc e.resource.path}" } main.tf の Lambda 部分
出来上がったもの resource "aws_lambda_function" "hello_chatgpt" { function_name = "hello_chatgpt" handler =
"lambda_function.lambda_handler" runtime = "python3.8" role = aws_iam_role.lambda_exec.arn filename = "lambda_function.zip" tags = { Name = "hello_chatgpt" } } resource "aws_iam_role" "lambda_exec" { name = "lambda_exec" assume_role_policy = jsonencode({ Version = "2012-10-17" Statement = [ { Action = "sts:AssumeRole" Effect = "Allow" Principal = { Service = "lambda.amazonaws.com" } } ] }) } resource "aws_iam_role_policy_attachment" "lambda_exec" { policy_arn = "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" role = aws_iam_role.lambda_exec.name } resource "aws_lambda_permission" "apigw" { statement_id = "AllowAPIGatewayInvoke" action = "lambda:InvokeFunction" function_name = aws_lambda_function.hello_chatgpt.function_name principal = "apigateway.amazonaws.com" source_arn = "${aws_api_gateway_rest_api.api.execution_arn}/*/${aws_api_gateway_method.method.http_method}${aws_api_gateway_resourc e.resource.path}" } main.tf の Lambda 部分 Chat GPT に Terraform コードの説明をして もらうことも可能
出来上がったもの resource "aws_lambda_function" "hello_chatgpt" { function_name = "hello_chatgpt" handler =
"lambda_function.lambda_handler" runtime = "python3.8" role = aws_iam_role.lambda_exec.arn filename = "lambda_function.zip" tags = { Name = "hello_chatgpt" } } resource "aws_iam_role" "lambda_exec" { name = "lambda_exec" assume_role_policy = jsonencode({ Version = "2012-10-17" Statement = [ { Action = "sts:AssumeRole" Effect = "Allow" Principal = { Service = "lambda.amazonaws.com" } } ] }) } resource "aws_iam_role_policy_attachment" "lambda_exec" { policy_arn = "arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole" role = aws_iam_role.lambda_exec.name } resource "aws_lambda_permission" "apigw" { statement_id = "AllowAPIGatewayInvoke" action = "lambda:InvokeFunction" function_name = aws_lambda_function.hello_chatgpt.function_name principal = "apigateway.amazonaws.com" source_arn = "${aws_api_gateway_rest_api.api.execution_arn}/*/${aws_api_gateway_method.method.http_method}${aws_api_gateway_resourc e.resource.path}" } main.tf の Lambda 部分 ChatGPT の便利な使い方① 出来上がったリソースを マネジメントコンソール で確認して Terraform のコードと見比べることで 自分が作りたいものを作るには何をすればいいかが学習できる!
お片付けも簡単! $ terraform destroy Destroy complete! Resources: 9 destroyed. terraform
destroy コマンドで作成したリソースも簡単に削除 できる
気をつけたいこと (今回のデモにおいて) セキュリティ ・意図せずインターネットに公開されないか 費用 ・作成したリソースでどれくらいの費用が発生するか 真偽 ・ChatGPT で出力された内容の真偽を自分で確認できるか
気をつけたいこと (今回のデモにおいて) セキュリティ ・意図せずインターネットに公開されないか 費用 ・作成したリソースでどれくらいの費用が発生するか 真偽 ・ChatGPT で出力された内容の真偽を自分で確認できるか 知識として知っているけど作ったことはない
くらいがちょうどいいかも
便利な使い方紹介 (New Relic の NRQL 作成)
New Relic の NRQL 作成 New Relic とは ・全世界17,000社以上が採用するシステムパフォーマンス管理ツール ・インフラの監視、アプリケーションのモニタリングなどを行う
SaaS ※ 弊社の運用保守サービスで利用しているため 例として使用させていただきます。 NRQL とは ・New Relic のデータを操作するクエリ言語
New Relic の NRQL 作成 例えば バーストパフォーマンスインスタンス EC2 インスタンスのクレジットを 監視するための
NRQL が欲しい
New Relic の NRQL 作成 例えば バーストパフォーマンスインスタンス EC2 インスタンスのクレジットを 監視するための
NRQL が欲しい
New Relic の NRQL 作成 例えば バーストパフォーマンスインスタンス EC2 インスタンスのクレジットを 監視するための
NRQL が欲しい SELECT average(provider.cpuCreditBalance.Average) FROM ComputeSample WHERE provider = 'Ec2Instance' AND providerAccountName = 'Your AWS Account Name' AND instanceId = 'Your EC2 Instance ID' TIMESERIES
New Relic の NRQL 作成 実行 値が取得できた SELECT average(provider.cpuCreditBalance.Average) FROM
ComputeSample WHERE provider = 'Ec2Instance' AND providerAccountName = 'Your AWS Account Name' AND instanceId = 'Your EC2 Instance ID' TIMESERIES
New Relic の NRQL 作成 ここからは学習 「average(`aws.ec2.CPUCreditBalance`) FROM Metric 〜」という
書き方を想定していた SELECT average(provider.cpuCreditBalance.Average) FROM ComputeSample WHERE provider = 'Ec2Instance' AND providerAccountName = 'Your AWS Account Name' AND instanceId = 'Your EC2 Instance ID' TIMESERIES SELECT average(`aws.ec2.CPUCreditBalance`) FROM Metric WHERE awsAccountId = 'Your AWS Account ID' AND ec2InstanceId = 'Your EC2 Instance ID' TIMESERIES 出力された NRQL は以下
New Relic の NRQL 作成 質問してみる ・provider の部分を aws とした
NRQL の書き方について
New Relic の NRQL 作成 質問してみる ・from の後について
New Relic の NRQL 作成 違いに気付く 以下の NRQL の違いがデータソースの違いであることに ChatGPT
説明によって気付く SELECT average(provider.cpuCreditBalance.Average) FROM ComputeSample WHERE provider = 'Ec2Instance' AND providerAccountName = 'Your AWS Account Name' AND instanceId = 'Your EC2 Instance ID' TIMESERIES SELECT average(`aws.ec2.CPUCreditBalance`) FROM Metric WHERE awsAccountId = 'Your AWS Account ID' AND ec2InstanceId = 'Your EC2 Instance ID' TIMESERIES
New Relic の NRQL 作成 データソースを Metric にして NRQL 作成を依頼
New Relic の NRQL 作成 データソースを Metric にして NRQL 作成を依頼
SELECT average(`aws.ec2.CPUCreditBalance`) FROM Metric WHERE awsAccountId = 'Your AWS Account ID' AND ec2InstanceId = 'Your EC2 Instance ID' TIMESERIES
New Relic の NRQL 作成 想定していた記法で 意図した値が取得できた SELECT average(`aws.ec2.CPUCreditBalance`) FROM
Metric WHERE awsAccountId = 'Your AWS Account ID' AND ec2InstanceId = 'Your EC2 Instance ID' TIMESERIES
New Relic の NRQL 作成 想定していた記法で 意図した値が取得できた と同時に NRQL についての
知識がついた SELECT average(`aws.ec2.CPUCreditBalance`) FROM Metric WHERE awsAccountId = 'Your AWS Account ID' AND ec2InstanceId = 'Your EC2 Instance ID' TIMESERIES
New Relic の NRQL 作成 調べた内容を元に一次情報を確認して知識を補完
便利な使い方紹介 (その他)
そのほかの便利な使い方 (1/4) トレーニングメニュー作成 例 ・チームメンバー向けに ECS のトレーニングメニューを作りたい ・自分は ECS についての知識がある
・どういった項目を作ればいいかを ChatGPT に考えてもらう
そのほかの便利な使い方 (1/4) トレーニングメニュー作成
そのほかの便利な使い方 (1/4) トレーニングメニュー作成 各項目の掘り下げも可能
そのほかの便利な使い方 (2/4) 正規表現作成 文章でなんとなく指示して 骨組みを作ってくれるので便利 作成された正規表現を ウェブの正規表現チェッカーで 確認すると良い 最後は自分でも検証しましょう
そのほかの便利な使い方 (3/4) バケットポリシー作成 希望するアクセス制限を 文章でなんとなく指示して バケットポリシーを作成 最後は自分でも検証しましょう
そのほかの便利な使い方 (4/4) AWS CLI コマンド作成 コマンドのざっくりとした 使い方だけ分かれば ドキュメントを調べる手間が 少し省ける 最後は自分でも検証しましょう
ChatGPT を使ってうまくいかなった例
新しい情報について main.tf の Lambda 部分 最近 GA された VPC Lattice
について質問してみたところ。。。
新しい情報について main.tf の Lambda 部分 最近一般公開された VPC Lattice について質問してみたところ。。。
新しい情報について main.tf の Lambda 部分 最近 GA された VPC Lattice
について質問してみたところ。。。 現行の ChatGPT の学習データは 2021年9月 のもののため 回答ができない
新しくない情報でも。。。 main.tf の Lambda 部分 CloudWatch の「EBSByteBalance%」というメトリクスについて質問し たところ
新しくない情報でも。。。 main.tf の Lambda 部分 CloudWatch の「EBSByteBalance%」というメトリクスについて質問し たところ
新しくない情報でも。。。 main.tf の Lambda 部分 CloudWatch の「EBSByteBalance%」というメトリクスについて質問し たところ
新しくない情報でも。。。 main.tf の Lambda 部分 CloudWatch の「EBSByteBalance%」というメトリクスについて質問し たところ あります。
新しくない情報でも。。。 main.tf の Lambda 部分 CloudWatch の「EBSByteBalance%」というメトリクスについて質問し たところ あります。 2018年の記事に記載があります。
https://aws.amazon.com/jp/blogs/compute/improving-application-performance-and-reducing-costs-with-amazon-ebs-optimized-instance-burst-capability/
うまくいかなかった例について ・現行の ChatGPT の学習データは 2021年9月 までのため ・2021年9月以前のことでも学習できていないことはある
うまくいかなかった例について ・現行の ChatGPT の学習データは 2021年9月 までのため ・2021年9月以前のことでも学習できていないことはある ・ChatGPT の知識限界を意識しつつ使う ・ググってわかることは人間が調べた方が良さそう
弱点を克服するかもしれない新機能 ChatGPT プラグイン「Browsing」 ・インターネット上から収集した上で質問に回答する
弱点を克服するかもしれない新機能 ChatGPT プラグイン「Browsing」 ・インターネット上から収集した上で質問に回答する ・2021年9月以降のことについても回答できる 現状では Alpha 版として一部での公開状態のため一般公開はまだ
ChatGPT を使う上での注意点
情報漏洩 main.tf の Lambda 部分
情報漏洩 main.tf の Lambda 部分
情報漏洩 main.tf の Lambda 部分 注意点 漏洩したら困る情報を ChatGPT に入力すべきではない
情報漏洩 ChatGPT に入力した情報が学習に使われるの?
情報漏洩 OpenAIのデータ使用に関する FAQ https://help.openai.com/en/articles/7039943-data-usage-for-consumer-services-faq
情報漏洩 OpenAIのデータ使用に関する FAQ https://help.openai.com/en/articles/7039943-data-usage-for-consumer-services-faq 要約 入力した情報を使用してサービスを改善することが あります。 (入力した情報が学習に使われる)
入力情報を学習データとして使用させない方法 →オプトアウト 情報漏洩
入力情報を学習データとして使用させない方法 情報漏洩 手段1 : 履歴と学習の無効化 新しいチャットを履歴に保存し、モデル トレーニングを通じて ChatGPT を改善するために使用で きるようにします。
保存されていないチャットは、30 日以内にシステムから削除されます。
入力情報を学習データとして使用させない方法 情報漏洩 手段2 : フォームから オプトアウトを 申請 OpenAI 社のWebフォームから ↑
入力情報を学習データとして使用させない方法 情報漏洩 手段2 : フォームから オプトアウトを 申請 ※情報漏洩のリスクが ゼロになるわけではないので注意
アウトプットに対する責任 main.tf の Lambda 部分
アウトプットに対する責任 main.tf の Lambda 部分 注意点 ChatGPT のアウトプットの真偽は ユーザーが判断しなければならない
まとめ ChatGPT は。。。 ・エンジニアの様々な仕事を助けてくれます
まとめ ChatGPT は。。。 ・エンジニアの様々な仕事を助けてくれます ・学習ツールとしても便利に使うことができます
まとめ ChatGPT は。。。 ・エンジニアの様々な仕事を助けてくれます ・学習ツールとしても便利に使うことができます ・自分の責任の持てる範囲で使いましょう
番外編
ChatGPT に対して私が抱いたイメージ(人格)
ChatGPT に対して私が抱いたイメージ(人格) 最近のことには詳しくなくなくて 機密情報を漏洩させちゃうけど、
ChatGPT に対して私が抱いたイメージ(人格) 最近のことには詳しくなくなくて 機密情報を漏洩させちゃうけど、 温和で何でも丁寧に教えてくれる 知識が豊富で想像力豊かな ベテランの先輩社員
ChatGPT に対して私が抱いたイメージ(人格) 最近のことには詳しくなくなくて 機密情報を漏洩させちゃうけど、 温和で何でも丁寧に教えてくれる 知識が豊富で想像力豊かな ベテランの先輩社員 画像生成 AI で
上記のイメージを画像化 ⇨
ChatGPT に対して私が抱いたイメージ(人格) 最近のことには詳しくなくなくて 機密情報を漏洩させちゃうけど、 温和で何でも丁寧に教えてくれる 知識が豊富で想像力豊かな ベテランの先輩社員 画像生成 AI で
上記のイメージを画像化 ⇨
いつもありがとうございます! ChatGPT に対して私が抱いたイメージ(人格)
ChatGPT に対して私が抱いたイメージ(人格)
じゃあ最後にこの登壇の締めの挨拶を 考えてもらっていいですか🙏 ChatGPT に対して私が抱いたイメージ(人格)
ChatGPT に対して私が抱いたイメージ(人格)