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
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
アンオフィシャルな、オフィシャルからのお願い
wyamazak_devrel
0
140
ザ・データベース、MySQL ~ OSC 2026 Sendai ~
sakaik
0
140
AIチャット検索改善の3週間
kworkdev
PRO
2
140
【NRUG vol.18】KubernetesにおけるNew Relicデータ取得量削減の考え方
nrug_member
0
170
10年間のブログ発信を振り返って見えたWebアプリケーションエンジニアとしての軌跡
stefafafan
0
160
コミュニティの有益性 ~JAWS Days 2026 での体験を通して~ / The Benefits of a Community ~Through My Experience at JAWS Days 2026~
seike460
PRO
0
180
アジャイルな経理と Claude Code と経営の未来
kawaguti
PRO
3
160
AWS Security Agent といっしょに脅威モデリングをやってみよう
amarelo_n24
1
180
AIネイティブな開発のサプライチェーンリスク対策 〜激動の開発現場でリスクに立ち向かう〜【ZennFes】
cscengineer
PRO
2
140
FPC(フレキシブル)基板にZephyr実装してみた。
iotengineer22
0
120
【Snowflake Summit 2026 Recap!!】Snowflake Summit Deep Dive: Security & Governance
civitaspo
1
270
日本 Fintech 未来予測レポート 2027〜2028年(手動編集版)
8maki
1
2.5k
Featured
See All Featured
Redefining SEO in the New Era of Traffic Generation
szymonslowik
1
340
Agile Actions for Facilitating Distributed Teams - ADO2019
mkilby
0
210
Mobile First: as difficult as doing things right
swwweet
225
10k
Navigating the Design Leadership Dip - Product Design Week Design Leaders+ Conference 2024
apolaine
1
350
Git: the NoSQL Database
bkeepers
PRO
432
67k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
49
10k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
1
1.7k
Six Lessons from altMBA
skipperchong
29
4.3k
Making the Leap to Tech Lead
cromwellryan
135
9.9k
Site-Speed That Sticks
csswizardry
13
1.2k
Practical Orchestrator
shlominoach
191
11k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
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 に対して私が抱いたイメージ(人格)