<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sheltie Garage Tech</title>
	<atom:link href="https://sheltie-garage.xyz/tech/feed/" rel="self" type="application/rss+xml" />
	<link>https://sheltie-garage.xyz/tech/</link>
	<description>テクノロジー関連の話題をまとめたブログです</description>
	<lastBuildDate>Mon, 12 Oct 2026 10:32:04 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.3</generator>
	<item>
		<title>番外編：無職生活 10/05 – 10/12</title>
		<link>https://sheltie-garage.xyz/tech/2026/10/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-10-05-10-12/</link>
					<comments>https://sheltie-garage.xyz/tech/2026/10/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-10-05-10-12/#respond</comments>
		
		<dc:creator><![CDATA[monodon]]></dc:creator>
		<pubDate>Mon, 12 Oct 2026 10:32:01 +0000</pubDate>
				<category><![CDATA[無職生活]]></category>
		<guid isPermaLink="false">https://sheltie-garage.xyz/tech/?p=2301</guid>

					<description><![CDATA[<p>すっかり週一更新になってしまった日記、もはや日記じゃなくて週記 今週はカジュアル面談が2件うち1件はカジュアル面談後連絡が途絶えたと思ったら募集案件がクローズしたそうだ必要人数が集まったのかな・・・ もう1件はカジュアル [&#8230;]</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/10/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-10-05-10-12/">番外編：無職生活 10/05 – 10/12</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">すっかり週一更新になってしまった日記、もはや日記じゃなくて週記</p>



<p class="wp-block-paragraph">今週はカジュアル面談が2件<br>うち1件はカジュアル面談後連絡が途絶えたと思ったら募集案件がクローズしたそうだ<br>必要人数が集まったのかな・・・</p>



<p class="wp-block-paragraph">もう1件はカジュアル面談後の選考案内が来ていたので、お休み中に書類を送付しておいた<br>今のところ就活は一度に2社までで行っているから、今週また1件探して申し込んでみよう</p>



<p class="wp-block-paragraph">それ以外は基本ルーティーンに基づいて生活しています<br>朝5:30起床→ランニング→朝ごはん→就活→ゲーム開発→個人開発→情報処理安全確保支援士勉強→自由時間　みたいな感じで過ごしてます</p>



<p class="wp-block-paragraph">情報処理安全確保支援士は今回申し込んでみたので2週間後くらいに受験してきます！</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/10/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-10-05-10-12/">番外編：無職生活 10/05 – 10/12</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sheltie-garage.xyz/tech/2026/10/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-10-05-10-12/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>gRPCに触れてみる</title>
		<link>https://sheltie-garage.xyz/tech/2026/10/grpc%e3%81%ab%e8%a7%a6%e3%82%8c%e3%81%a6%e3%81%bf%e3%82%8b/</link>
					<comments>https://sheltie-garage.xyz/tech/2026/10/grpc%e3%81%ab%e8%a7%a6%e3%82%8c%e3%81%a6%e3%81%bf%e3%82%8b/#respond</comments>
		
		<dc:creator><![CDATA[monodon]]></dc:creator>
		<pubDate>Fri, 09 Oct 2026 03:00:37 +0000</pubDate>
				<category><![CDATA[Go]]></category>
		<guid isPermaLink="false">https://sheltie-garage.xyz/tech/?p=2285</guid>

					<description><![CDATA[<p>求人情報を見ていると、Go言語を利用した開発現場でgRPCを利用した通信もセットで出てくることも多いなと感じることがあり、時間がある無職中に触ってみることにしました※ちなみに先頭にgがついていることからGo専用の通信プロ [&#8230;]</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/10/grpc%e3%81%ab%e8%a7%a6%e3%82%8c%e3%81%a6%e3%81%bf%e3%82%8b/">gRPCに触れてみる</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">求人情報を見ていると、Go言語を利用した開発現場でgRPCを利用した通信もセットで出てくることも多いなと感じることがあり、時間がある無職中に触ってみることにしました<br>※ちなみに先頭にgがついていることからGo専用の通信プロトコルに見受けられてしまいますが、Go専用というわけではありません</p>



<h1 class="wp-block-heading">まずは環境構築</h1>



<p class="wp-block-paragraph">今回はgrpc.ioの<a href="https://grpc.io/docs/languages/go/quickstart/" target="_blank" rel="noreferrer noopener">Quick Start</a>に沿って準備を行います</p>



<p class="wp-block-paragraph">Go言語のインストールはすでに実施済みのため、今回はスキップ(Go未導入の方は上記Quick Startの手順に沿って導入してください)</p>



<h3 class="wp-block-heading">Protocol Buffer Compilerの導入</h3>



<p class="wp-block-paragraph">gRPCはprotoファイルに仕様を記述し、ソースを生成します<br>protoファイルのコンパイラを導入します</p>



<p class="wp-block-paragraph"><a href="https://protobuf.dev">https://protobuf.dev</a> の下部にDownload and Installのリンクがあるのでクリックします</p>



<figure class="wp-block-image size-full"><img fetchpriority="high" decoding="async" width="447" height="165" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_001.png" alt="" class="wp-image-2286" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_001.png 447w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_001-300x111.png 300w" sizes="(max-width: 447px) 100vw, 447px" /></figure>



<p class="wp-block-paragraph">GitHubに飛ぶので、C++ユーザー以外のリンクからGitHubリリースページへ移動します</p>



<figure class="wp-block-image size-full"><img decoding="async" width="861" height="181" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_002.png" alt="" class="wp-image-2287" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_002.png 861w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_002-300x63.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_002-766x161.png 766w" sizes="(max-width: 861px) 100vw, 861px" /></figure>



<p class="wp-block-paragraph">リリースページから自身の環境のバイナリをダウンロードします<br>自分の環境はIntel Macのため、x86-64のバイナリをダウンロードしました<br>(一覧にバイナリが存在しない場合、show allのリンクをクリックしてリストを展開します)</p>



<figure class="wp-block-image size-full"><img decoding="async" width="925" height="671" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_003.png" alt="" class="wp-image-2288" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_003.png 925w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_003-300x218.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_003-768x557.png 768w" sizes="(max-width: 925px) 100vw, 925px" /></figure>



<h3 class="wp-block-heading">Go Pluginの導入</h3>



<p class="wp-block-paragraph">以下のコマンドでプラグインをインストールします</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest</code></pre></div>



<p class="wp-block-paragraph">環境変数をアップデートして、インストールしたプラグインを認識されるようにします</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>export PATH=&quot;$PATH:$(go env GOPATH)/bin&quot;</code></pre></div>



<h1 class="wp-block-heading">サンプルを実行してみる</h1>



<p class="wp-block-paragraph">以下のリンクからリポジトリをダウンロードします<br>(git cloneでもok)</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="567" height="131" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_004.png" alt="" class="wp-image-2289" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_004.png 567w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_004-300x69.png 300w" sizes="auto, (max-width: 567px) 100vw, 567px" /></figure>



<p class="wp-block-paragraph">ダウンロードしたzipを展開します<br>自分はAntigravity IDEを利用しているため、プロジェクトフォルダの配下に展開しました<br>展開したフォルダ内にあるhelloworldを確認します</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="660" height="540" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_005.png" alt="" class="wp-image-2290" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_005.png 660w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_005-300x245.png 300w" sizes="auto, (max-width: 660px) 100vw, 660px" /></figure>



<p class="wp-block-paragraph">実際にサンプルを動かしてみます</p>



<p class="wp-block-paragraph">ターミナルをサーバ用、クライアント用で2つ開きます</p>



<p class="wp-block-paragraph">ターミナルでhelloworldディレクトリに移動し、以下のコマンドでサーバーを起動します</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>go run greeter_server/main.go</code></pre></div>



<p class="wp-block-paragraph">もう一つのターミナルでも同様にhelloworldディレクトリに移動し、以下のコマンドでクライアントを実行します</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>go run greeter_client/main.go</code></pre></div>



<p class="wp-block-paragraph">正常に動作すると、各ターミナルにそれぞれ以下のメッセージが表示されます</p>



<p class="wp-block-paragraph">サーバー側実行結果</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="756" height="70" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_006.png" alt="" class="wp-image-2291" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_006.png 756w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_006-300x28.png 300w" sizes="auto, (max-width: 756px) 100vw, 756px" /></figure>



<p class="wp-block-paragraph">クライアント側実行結果</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="614" height="28" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_007.png" alt="" class="wp-image-2292" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_007.png 614w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_007-300x14.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261005_007-600x28.png 600w" sizes="auto, (max-width: 614px) 100vw, 614px" /></figure>



<p class="wp-block-paragraph">無事Hello Worldが表示され、サーバー側でもリクエスト受信のログが残っていました</p>



<h1 class="wp-block-heading">サンプルの中身を見てみよう</h1>



<p class="wp-block-paragraph">HelloWorldサンプルに関連するプログラムファイルは5つで、そのうち3つが編集(作成)が必要なファイルになります<br>人が作成するファイル<br>helloworld.proto<br>greeter_client/main.go<br>greeter_server/main.go<br>(他ファイルは自動生成)</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="424" height="446" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261009_001.png" alt="" class="wp-image-2294" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261009_001.png 424w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/10/20261009_001-285x300.png 285w" sizes="auto, (max-width: 424px) 100vw, 424px" /></figure>



<h2 class="wp-block-heading">helloworld.proto &#8211; スキーマ定義ファイル</h2>



<p class="wp-block-paragraph">protoファイルはgRPC通信で使う「データの構造」や「APIのメソッド（インターフェース）」を定義する設計図（スキーマ）となっており、このファイル内容を元に各プログラミング言語向けの記述を生成します</p>



<p class="wp-block-paragraph">サンプルの中身を見ていきます<br>各セクションの解説はコメントにて記載しています</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>// Copyright 2015 gRPC authors.
//
// Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.


// Protocol Buffersのバージョン宣言　最初に記述する必要がある！
// 記述がない場合 proto2として扱われる
syntax = &quot;proto3&quot;;

// 言語ごとの生成オプション
// ここで生成後コードのパッケージ名などを設定する
// (パッケージ名は自分のプロジェクトフォルダの構成に合わせて設定する)
option go_package = &quot;google.golang.org/grpc/examples/helloworld/helloworld&quot;;
option java_multiple_files = true;
option java_package = &quot;io.grpc.examples.helloworld&quot;;
option java_outer_classname = &quot;HelloWorldProto&quot;;

// protoの名前空間。生成されるプログラム言語のパッケージとは別物で、
// gRPCの通信パスの一部として利用される
package helloworld;

// Serviceはメソッドの集まりで、Goのinterfaceに相当する宣言
// ここで記載したメソッドを、実際に各プログラム言語にて実装する
// 引数と戻り値の型はこの後登場するmessageにて定義する
// The greeting service definition.
service Greeter {
  // Sends a greeting
  rpc SayHello (HelloRequest) returns (HelloReply) {}
}

// messageは構造体のようなもので、やり取りするデータの形式を定義する
// フィールド番号は一度決めたら「変更は不可」となる(古いクライアントとの互換性を保つため)
// The request message containing the user&#39;s name.
message HelloRequest {
  string name = 1;
}

// The response message containing the greetings
message HelloReply {
  string message = 1;
}
</code></pre></div>



<p class="wp-block-paragraph">protoファイルができたら、実際にコードを生成します<br>まずはツールとプラグインをインストールします</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>brew install protobuf</code></pre></div>



<p class="wp-block-paragraph">Goプラグインもインストールします</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>go install google.golang.org/protobuf/cmd/protoc-gen-go@latest
go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@latest</code></pre></div>



<p class="wp-block-paragraph">環境変数への追加を行います</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code># PATHに追加(~/.bashrc などに書いておく)
export PATH=&quot;$PATH:$(go env GOPATH)/bin&quot;</code></pre></div>



<p class="wp-block-paragraph">protoファイルが存在するフォルダで、以下のコマンドを実行<br>source_relativeの指定は.protoファイルの位置を基準に、どのパスに生成ファイルを出力するのかを指定するためのオプション<br>(ここでは.指定のため、同一フォルダに出力される)</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>protoc \
  --go_out=. --go_opt=paths=source_relative \
  --go-grpc_out=. --go-grpc_opt=paths=source_relative \
  helloworld/helloworld.proto</code></pre></div>



<p class="wp-block-paragraph">上記コマンドを実行し、helloworld.pb.go helloworld_grpc.pb.goが生成されていればOK<br>go mod tidyコマンドを利用して依存性を解決すればビルドが行なえます</p>



<h2 class="wp-block-heading">コードを記述する(サーバー)</h2>



<p class="wp-block-paragraph">自動生成されたコードを元にサーバー側を実装します<br>ポイントになる部分はコメントで記載しています</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>/*
 *
 * Copyright 2015 gRPC authors.
 *
 * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

// Package main implements a server for Greeter service.
package main

import (
	&quot;context&quot;
	&quot;flag&quot;
	&quot;fmt&quot;
	&quot;log&quot;
	&quot;net&quot;

	&quot;google.golang.org/grpc&quot;
    // 生成したプロトコルバッファのインポート
    // 別名でpbとしている(Protocol Bufferの略)
	pb &quot;google.golang.org/grpc/examples/helloworld/helloworld&quot;
)

var (
	port = flag.Int(&quot;port&quot;, 50051, &quot;The server port&quot;)
)

// server is used to implement helloworld.GreeterServer.
// GreeterServerを実装するための構造体
// UnimplementedGreeterServerを埋め込む理由は2つ
//  UnimplementedGreeterServerを埋め込まないとビルドが通らない
//  埋め込むことで未実装のメソッドが存在してもビルドが壊れずUnimplementedエラーが返却される
type server struct {
	pb.UnimplementedGreeterServer
}

// SayHello implements helloworld.GreeterServer
// 実装部分
// 引数のinにクライアントから送信されたデータが構造体として復元され、格納されている
// 戻り値はprotoファイルのmessageで定義したHelloReply形式で生成する
// contextについては未使用のため_指定(メタデータなどが可能されている)
func (s *server) SayHello(_ context.Context, in *pb.HelloRequest) (*pb.HelloReply, error) {
    // Getterを利用することで、inがnilでもパニックにならず、空文字を返す
	log.Printf(&quot;Received: %v&quot;, in.GetName())
	return &pb.HelloReply{Message: &quot;Hello &quot; + in.GetName()}, nil
}

// メイン処理
// gRPCサーバーの起動は4段階
// 1. net.Listenでポートを開く
// 2. grpc.NewServer()でサーバーを作る
// 3. pb.RegisterGreeterServerで実装を登録する(これをしないとUnimplementedエラーが発生する)
// 4. s.Serve(lis)でリクエスト待ちとなる
func main() {
	flag.Parse()
	lis, err := net.Listen(&quot;tcp&quot;, fmt.Sprintf(&quot;:%d&quot;, *port))
	if err != nil {
		log.Fatalf(&quot;failed to listen: %v&quot;, err)
	}
	s := grpc.NewServer()
	pb.RegisterGreeterServer(s, &server{})
	log.Printf(&quot;server listening at %v&quot;, lis.Addr())
	if err := s.Serve(lis); err != nil {
		log.Fatalf(&quot;failed to serve: %v&quot;, err)
	}
}
</code></pre></div>



<h2 class="wp-block-heading">コードを記述する(クライアント)</h2>



<p class="wp-block-paragraph">自動生成されたコードを元にクライアント側を実装します<br>ポイントになる部分はコメントで記載しています</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>/*
 *
 * Copyright 2015 gRPC authors.
 *
 * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;);
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an &quot;AS IS&quot; BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 *
 */

// Package main implements a client for Greeter service.
package main

import (
	&quot;context&quot;
	&quot;flag&quot;
	&quot;log&quot;
	&quot;time&quot;

	&quot;google.golang.org/grpc&quot;
	&quot;google.golang.org/grpc/credentials/insecure&quot;
    // 生成したProtocol Bufferのインポート
    // 同じようにpbの別名を付けている
	pb &quot;google.golang.org/grpc/examples/helloworld/helloworld&quot;
)

const (
	defaultName = &quot;world&quot;
)

var (
	addr = flag.String(&quot;addr&quot;, &quot;localhost:50051&quot;, &quot;the address to connect to&quot;)
	name = flag.String(&quot;name&quot;, defaultName, &quot;Name to greet&quot;)
)

func main() {
	flag.Parse()
	// Set up a connection to the server.
    // 接続の管理オブジェクトの作成
    // 引数のinsecure.NewCredentials()はTLSは利用しないと言う指定
    // これはあくまでサンプルなので平文通信で問題ないが、本番では適切なTLS認証情報を設定する 
	conn, err := grpc.NewClient(*addr, grpc.WithTransportCredentials(insecure.NewCredentials()))
	if err != nil {
		log.Fatalf(&quot;did not connect: %v&quot;, err)
	}
    // deferを利用して確実に接続がクローズされるようにする
	defer conn.Close()
    // クライアントスタブの生成
    // SayHelloが実装されている
	c := pb.NewGreeterClient(conn)

	// Contact the server and print out its response.
    // gRPC通信時はtime.Secondでタイムアウトを設定する。これがないと、サーバー側で処理が止まった場合、いつまでもレスポンスを待ち続けてしまう
	ctx, cancel := context.WithTimeout(context.Background(), time.Second)
	defer cancel()
    // SayHello呼び出し。通常の関数の呼び出しに見えるが、HTTP/2通信が行われている
	r, err := c.SayHello(ctx, &pb.HelloRequest{Name: *name})
	if err != nil {
		log.Fatalf(&quot;could not greet: %v&quot;, err)
	}
	log.Printf(&quot;Greeting: %s&quot;, r.GetMessage())
}
</code></pre></div>



<h1 class="wp-block-heading">以上</h1>



<p class="wp-block-paragraph">ざっくりサンプルを見てきました<br>最後に、REST APIとgRPCを比較したときの主なメリット・デメリットを記載します</p>



<h4 class="wp-block-heading">gRPCを利用するメリット</h4>



<p class="wp-block-paragraph">・契約(proto)から型安全なコードが自動生成される<br>・複数言語で契約を共有しやすい(protoファイルから各言語向けのコードを生成できるため)<br>・軽くて速い(JSON形式のシリアライズより高速)<br>・互換性を保って進化させやすい(フィールド番号を変更しなければ、過去のクライアントとも互換性を保ちやすい)</p>



<h4 class="wp-block-heading">gRPCのデメリット</h4>



<p class="wp-block-paragraph">・curl + ブラウザで気軽に試せない(専用ツールを使わないと、メソッドの動作確認ができない)<br>・学習コストと環境構築の手間<br>・インフラ周りの注意点が増える(LBがHTTP/2対応、gRPC対応しているかなど)<br>・外部への公開APIには不向きなことが多い(気軽にためせないため)<br>・protoファイルの管理が必要</p>



<p class="wp-block-paragraph">主なメリットとしては通常のREST APIと比較して速度が早いことが挙げられると思います<br>その反面、外部公開するAPIに対しては使いにくいようです<br>そのため「全部をgRPCへ」ではなく、使い分けを意識する必要がありそうです</p>



<p class="wp-block-paragraph"><strong>使い分けの例</strong><br>REST APIを使う：<br>　外部公開APIなど<br>gRPCを使う<br>　マイクロサービス間における各種通信(内部での通信)など</p>



<p class="wp-block-paragraph">gRPC、REST APIそれぞれに向いている場面があるため、きちんと使用場面を見極めて利用していきたいですね！</p>


<div id="rinkerid2295" class="yyi-rinker-contents  yyi-rinker-postid-2295 yyi-rinker-img-m yyi-rinker-catid-16 ">
	<div class="yyi-rinker-box">
		<div class="yyi-rinker-image">
							<a href="https://af.moshimo.com/af/c/click?a_id=3394378&#038;p_id=54&#038;pc_id=54&#038;pl_id=616&#038;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FgRPC%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/rakutenkobo-ebooks/cabinet/8843/2000008118843.jpg?_ex=128x128" width="128" height="128" class="yyi-rinker-main-img" style="border: none;" loading="lazy"></a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616" width="1" height="1" style="border:none;">					</div>
		<div class="yyi-rinker-info">
			<div class="yyi-rinker-title">
									<a href="https://af.moshimo.com/af/c/click?a_id=3394378&#038;p_id=54&#038;pc_id=54&#038;pl_id=616&#038;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FgRPC%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow">gRPC: Up and Running Building Cloud Native Applications with Go and Java for Docker and Kubernetes【電子書籍】[ Kasun Indrasiri ]</a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616" width="1" height="1" style="border:none;">							</div>
			<div class="yyi-rinker-detail">
							<div class="credit-box">created by&nbsp;<a href="https://oyakosodate.com/rinker/" rel="nofollow noopener" target="_blank" >Rinker</a></div>
										<div class="price-box">
							<span title="" class="price">¥3,529</span>
															<span class="price_at">(2026/10/12 19:32:10時点&nbsp;楽天市場調べ-</span><span title="このサイトで掲載されている情報は当サイトの作成者により運営されています。価格、販売可能情報は、変更される場合があります。購入時に楽天市場店舗（www.rakuten.co.jp）に表示されている価格がその商品の販売に適用されます。">詳細)</span>
																	</div>
						</div>
						<ul class="yyi-rinker-links">
																                    <li class="amazonlink">
						<a href="https://www.amazon.co.jp/gp/search?ie=UTF8&amp;keywords=gRPC&amp;tag=monodon-22&amp;index=blended&amp;linkCode=ure&amp;creative=6339" rel="nofollow" class="yyi-rinker-link">Amazon</a>					</li>
													<li class="rakutenlink">
						<a href="https://af.moshimo.com/af/c/click?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616&amp;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FgRPC%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow" class="yyi-rinker-link">楽天市場</a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616" width="1" height="1" style="border:none;">					</li>
													<li class="yahoolink">
						<a href="https://af.moshimo.com/af/c/click?a_id=3442618&amp;p_id=1225&amp;pc_id=1925&amp;pl_id=18502&amp;url=https%3A%2F%2Fshopping.yahoo.co.jp%2Fsearch%3Fp%3DgRPC" rel="nofollow" class="yyi-rinker-link">Yahooショッピング</a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3442618&amp;p_id=1225&amp;pc_id=1925&amp;pl_id=18502" width="1" height="1" style="border:none;">					</li>
				                											</ul>
					</div>
	</div>
</div>



<div id="rinkerid2296" class="yyi-rinker-contents  yyi-rinker-postid-2296 yyi-rinker-img-m yyi-rinker-catid-16 ">
	<div class="yyi-rinker-box">
		<div class="yyi-rinker-image">
							<a href="https://af.moshimo.com/af/c/click?a_id=3394378&#038;p_id=54&#038;pc_id=54&#038;pl_id=616&#038;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FgRPC%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8288/9784910558288.jpg?_ex=128x128" width="128" height="128" class="yyi-rinker-main-img" style="border: none;" loading="lazy"></a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616" width="1" height="1" style="border:none;">					</div>
		<div class="yyi-rinker-info">
			<div class="yyi-rinker-title">
									<a href="https://af.moshimo.com/af/c/click?a_id=3394378&#038;p_id=54&#038;pc_id=54&#038;pl_id=616&#038;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FgRPC%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow">実践！Go言語とgRPCで学ぶマイクロサービス開発 （設計技術シリーズ　126） [ 古川 正寿 ]</a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616" width="1" height="1" style="border:none;">							</div>
			<div class="yyi-rinker-detail">
							<div class="credit-box">created by&nbsp;<a href="https://oyakosodate.com/rinker/" rel="nofollow noopener" target="_blank" >Rinker</a></div>
										<div class="price-box">
							<span title="" class="price">¥3,960</span>
															<span class="price_at">(2026/10/12 19:46:30時点&nbsp;楽天市場調べ-</span><span title="このサイトで掲載されている情報は当サイトの作成者により運営されています。価格、販売可能情報は、変更される場合があります。購入時に楽天市場店舗（www.rakuten.co.jp）に表示されている価格がその商品の販売に適用されます。">詳細)</span>
																	</div>
						</div>
						<ul class="yyi-rinker-links">
																                    <li class="amazonlink">
						<a href="https://www.amazon.co.jp/gp/search?ie=UTF8&amp;keywords=gRPC&amp;tag=monodon-22&amp;index=blended&amp;linkCode=ure&amp;creative=6339" rel="nofollow" class="yyi-rinker-link">Amazon</a>					</li>
													<li class="rakutenlink">
						<a href="https://af.moshimo.com/af/c/click?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616&amp;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FgRPC%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow" class="yyi-rinker-link">楽天市場</a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616" width="1" height="1" style="border:none;">					</li>
													<li class="yahoolink">
						<a href="https://af.moshimo.com/af/c/click?a_id=3442618&amp;p_id=1225&amp;pc_id=1925&amp;pl_id=18502&amp;url=https%3A%2F%2Fshopping.yahoo.co.jp%2Fsearch%3Fp%3DgRPC" rel="nofollow" class="yyi-rinker-link">Yahooショッピング</a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3442618&amp;p_id=1225&amp;pc_id=1925&amp;pl_id=18502" width="1" height="1" style="border:none;">					</li>
				                											</ul>
					</div>
	</div>
</div>

<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/10/grpc%e3%81%ab%e8%a7%a6%e3%82%8c%e3%81%a6%e3%81%bf%e3%82%8b/">gRPCに触れてみる</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sheltie-garage.xyz/tech/2026/10/grpc%e3%81%ab%e8%a7%a6%e3%82%8c%e3%81%a6%e3%81%bf%e3%82%8b/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>番外編：無職生活 9/28 – 10/04</title>
		<link>https://sheltie-garage.xyz/tech/2026/10/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-28-10-04/</link>
					<comments>https://sheltie-garage.xyz/tech/2026/10/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-28-10-04/#respond</comments>
		
		<dc:creator><![CDATA[monodon]]></dc:creator>
		<pubDate>Sun, 04 Oct 2026 02:13:30 +0000</pubDate>
				<category><![CDATA[無職生活]]></category>
		<guid isPermaLink="false">https://sheltie-garage.xyz/tech/?p=2282</guid>

					<description><![CDATA[<p>就活を始めてから日記を書く気力がありませんここ最近はClaudeと相談しながら1週間の予定を決めて、なるべくその予定通りに動くようにしています ちなみに現在2社落ち。一社は経歴ともマッチしそうだったけど、しょるすら通らず [&#8230;]</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/10/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-28-10-04/">番外編：無職生活 9/28 – 10/04</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">就活を始めてから日記を書く気力がありません<br>ここ最近はClaudeと相談しながら1週間の予定を決めて、なるべくその予定通りに動くようにしています</p>



<p class="wp-block-paragraph">ちなみに現在2社落ち。一社は経歴ともマッチしそうだったけど、しょるすら通らず残念でした<br>恨み節になるけど、スカウト送っておいて書類落ちはひどいと思う<br>何を見てスカウトを送ってきたのだろう・・・</p>



<p class="wp-block-paragraph">11月の支給を最後に失業保険もなくなるので、そのあとはどうするか(バイト or 業務委託 or フリーランス or どこでもいいから就職)も考えないとな</p>



<p class="wp-block-paragraph"></p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/10/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-28-10-04/">番外編：無職生活 9/28 – 10/04</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sheltie-garage.xyz/tech/2026/10/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-28-10-04/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>番外編：無職生活 9/24 &#8211; 9/27</title>
		<link>https://sheltie-garage.xyz/tech/2026/09/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-24-9-27/</link>
					<comments>https://sheltie-garage.xyz/tech/2026/09/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-24-9-27/#respond</comments>
		
		<dc:creator><![CDATA[monodon]]></dc:creator>
		<pubDate>Sun, 27 Sep 2026 21:37:45 +0000</pubDate>
				<category><![CDATA[無職生活]]></category>
		<guid isPermaLink="false">https://sheltie-garage.xyz/tech/?p=2279</guid>

					<description><![CDATA[<p>9/27は就活を初めて初めてのお祈りメールをいただき、その後の記憶はありません！経験的にマッチしないなと感じはしていましたが、いざお祈りいただくとやっぱりショックですね先日友人と話す機会があり、友人も会社を辞めるそうです [&#8230;]</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/09/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-24-9-27/">番外編：無職生活 9/24 &#8211; 9/27</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">9/27は就活を初めて初めてのお祈りメールをいただき、その後の記憶はありません！<br>経験的にマッチしないなと感じはしていましたが、いざお祈りいただくとやっぱりショックですね<br>先日友人と話す機会があり、友人も会社を辞めるそうですが10社以上受けても決まってないと言っていたので<br>長期戦も覚悟しないとだめかもしれません</p>



<p class="wp-block-paragraph">失業保険は年内には終わるので(のんびりしすぎたか)　年内にきまると嬉しいですね<br>決まらない場合はシステム開発系のアルバイトか、業務委託みたいな形で仕事を探そうかなという感じです<br>数年生活できるくらいの貯金はためているつもりですが、さすがにまた取り崩したくないですからねぇ</p>



<p class="wp-block-paragraph">28日は就活準備とゲーム開発、AI実験など<br>最近3Dキャラクター用のモーションもComfyUIで作れることが分かったので、実験がてら環境構築<br>一応モーションは作成できたけど、あくまでプロンプトでモーションを指示するので、細かい部分は手作業の修正は必須になりそうですが、今後活用していきたいと思ってます</p>



<p class="wp-block-paragraph">週末はツーリング・・・に行きたかったけど、天気が安定しなかったため自宅でのんびり<br>寝る前まで晴れだったのに、朝起きたら雨予報、でもしばらくたったら曇り予報に戻っていたり、天気予報が全く当てにならない週末でした</p>



<p class="wp-block-paragraph">一応、次回の週末は晴れそうなので、次回はツーリングに行きたい</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/09/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-24-9-27/">番外編：無職生活 9/24 &#8211; 9/27</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sheltie-garage.xyz/tech/2026/09/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-24-9-27/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>jenkinsを導入してみる</title>
		<link>https://sheltie-garage.xyz/tech/2026/09/jenkins%e3%82%92%e5%b0%8e%e5%85%a5%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/</link>
					<comments>https://sheltie-garage.xyz/tech/2026/09/jenkins%e3%82%92%e5%b0%8e%e5%85%a5%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/#respond</comments>
		
		<dc:creator><![CDATA[monodon]]></dc:creator>
		<pubDate>Sun, 27 Sep 2026 04:46:53 +0000</pubDate>
				<category><![CDATA[インフラ]]></category>
		<guid isPermaLink="false">https://sheltie-garage.xyz/tech/?p=2253</guid>

					<description><![CDATA[<p>CI/CDツールとしてjenkinsを導入してみました(個人開発アプリに)今までデプロイは手動でターミナルからサーバーにログインしてコマンドを叩いていたのですが、それすらもめんどくさくなったのでjenkins画面上からボ [&#8230;]</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/09/jenkins%e3%82%92%e5%b0%8e%e5%85%a5%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/">jenkinsを導入してみる</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">CI/CDツールとしてjenkinsを導入してみました(個人開発アプリに)<br>今までデプロイは手動でターミナルからサーバーにログインしてコマンドを叩いていたのですが、それすらもめんどくさくなったのでjenkins画面上からボタン一つでデプロイできるように設定してみます</p>



<p class="wp-block-paragraph">現在運用しているウェブサービスはtraefikをリバースプロキシとして利用し、書くサービスをDockerコンテナとして管理しているため、jenkinsについてもDockerコンテナで準備し、traefik管理下に配置します</p>



<h3 class="wp-block-heading">docker composeファイル準備</h3>



<p class="wp-block-paragraph">jenkins用のdocker composeファイルを作成します</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>services:
  jenkins:
    image: jenkins/jenkins:lts-jdk21
    container_name: jenkins
    restart: unless-stopped
    user: &quot;1000:1000&quot;
    environment:
      - TZ=Asia/Tokyo
      # 2GB VPS向けにJVMメモリを最大512MBに抑制し、SerialGCでオーバーヘッドを極小化
      - JAVA_OPTS=-Xms128m -Xmx512m -XX:+UseSerialGC
    deploy:
      resources:
        limits:
          memory: 768M
    labels:
      - traefik.enable=true
      - traefik.http.routers.jenkins.rule=Host(`jenkinsのサブドメイン`)
      - traefik.http.services.jenkins.loadbalancer.server.port=8080
      - logging=promtail
    volumes:
      - jenkins-data:/var/jenkins_home
    networks:
      ride_webservice_network:
    extra_hosts:
      - &quot;host.docker.internal:host-gateway&quot;
    logging:
      driver: &quot;json-file&quot;
      options:
        max-size: &quot;10m&quot;
        max-file: &quot;3&quot;

volumes:
  jenkins-data:

networks:
  ride_webservice_network:
    external: true
</code></pre></div>



<p class="wp-block-paragraph">レンタルしているVPSのメモリが少ないため、jenkinsが利用するメモリも768MBに制限しています<br>また、jenkinsコンテナからホストに設置されているデプロイスクリプトを起動させる必要があるためextra_hostsを利用してDockerのホストを参照できるようにしています<br>(docker.sockを直接マウントする方法もあるが、こちらはコンテナホストにroot権限を渡すことに等しく、jenkinsに侵入された際の被害が大きいので採用しなかった)</p>



<h3 class="wp-block-heading">パイプラインの準備</h3>



<p class="wp-block-paragraph">jenkinsではパイプラインをコードで準備できるようになっていました<br>(自分が勤務していた会社ではフリースタイルプロジェクトにシェルをガリガリ書いて運用していた)</p>



<p class="wp-block-paragraph">こちらのファイルは一部お見できない情報も含んでいるため、参考程度にご覧ください</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>pipeline {
    agent any

    options {
        // Jenkins コンテナ内に巨大リポジトリ（200MB超の Git LFS ファイル等）をチェックアウトするのをスキップ
        // （ホスト側で SSH 経由で pull・デプロイするため Jenkins 側への clone は不要）
        skipDefaultCheckout(true)
    }

    parameters {
        choice(
            name: &#39;TARGET_SERVICE&#39;,
            choices: [&#39;Service1&#39;, &#39;Service2&#39;, &#39;Service3&#39;, &#39;ALL&#39;],
            description: &#39;リリース対象のサービスを選択してください&#39;
        )
        string(
            name: &#39;BRANCH&#39;,
            defaultValue: &#39;main&#39;,
            description: &#39;Git取得元ブランチ&#39;
        )
        booleanParam(
            name: &#39;CONFIRM_DEPLOY&#39;,
            defaultValue: false,
            description: &#39;【重要】本番リリースを実行する場合はチェックを入れてください&#39;
        )
    }

    stages {
        stage(&#39;Release Confirmation&#39;) {
            steps {
                script {
                    if (!params.CONFIRM_DEPLOY) {
                        error(&#39;本番リリースチェックが無効です。誤操作防止のためジョブを中止しました。&#39;)
                    }
                }
            }
        }

        stage(&#39;Execute Deploy&#39;) {
            steps {
                script {
                    def targets = []
                    if (params.TARGET_SERVICE == &#39;ALL&#39;) {
                        targets = [&#39;Service1&#39;, &#39;Service2&#39;, &#39;Service3&#39;]
                    } else {
                        targets = [params.TARGET_SERVICE]
                    }

                    sshagent(credentials: [&#39;設定したクレデンシャル&#39;]) {
                        for (target in targets) {
                            echo &quot;=========================================&quot;
                            echo &quot;Deploying target service: ${target}&quot;
                            echo &quot;=========================================&quot;
                            sh &quot;&quot;&quot;
                                ssh -o StrictHostKeyChecking=no user@host.docker.internal &#39;
                                    set -e
                                    cd /home/user/${target}
                                    echo &quot;Working directory: \$(pwd)&quot;
                                    if [ -d .git ]; then
                                        echo &quot;Pulling latest git changes...&quot;
                                        git pull origin ${params.BRANCH} || git pull || true
                                    fi
                                    echo &quot;Executing deploy.sh...&quot;
                                    ./deploy.sh
                                &#39;
                            &quot;&quot;&quot;
                        }
                    }
                }
            }
        }
    }

    post {
        success {
            echo &quot;✓ [${params.TARGET_SERVICE}] 本番リリース処理が正常に完了しました！&quot;
        }
        failure {
            echo &quot;✗ [${params.TARGET_SERVICE}] 本番リリース処理に失敗しました。ログを確認してください。&quot;
        }
    }
}
</code></pre></div>



<p class="wp-block-paragraph">設定ファイルはGroovyで記述します(これはAIに作ってもらった)</p>



<p class="wp-block-paragraph">agent anyの指定で空いているjenkinsノードにジョブを割り当てます</p>



<p class="wp-block-paragraph">jenkinsのジョブが開始されると、デフォルトでリポジトリをCloneする動作となるが、今回はDockerホスト側で個別にCloneを行うためデフォルト動作が起こらないようにskipDefaultCheckout(true)を設定しています</p>



<p class="wp-block-paragraph">パイプラインの動作としては<br>・どのサービスをデプロイするのか選択<br>・本番リリース承認チェックボックスの状態を確認し、チェックが有ればデプロイを実行<br>・docker.host.internalでホストにSSHで接続し、デプロイ用シェルを実行<br>という動作を行います</p>



<h3 class="wp-block-heading">jenkins画面上での動作設定</h3>



<p class="wp-block-paragraph">jenkinsの初回起動時、起動ログ内に管理者用パスワードが出力されているので、このパスワードを使用してjenkinsにログインします</p>



<p class="wp-block-paragraph">まずはクレデンシャルを準備します<br>今回のパイプラインでは、以下のクレデンシャルが必要となりました<br>・DockerホストへSSH接続するためのクレデンシャル<br>・Githubよりリポジトリをクローンするためのクレデンシャル(今回はプライベートリポジトリのため)</p>



<p class="wp-block-paragraph">クレデンシャルを作成するにはjenkins画面の右上にある歯車マークをクリックします</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="201" height="159" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_001.png" alt="" class="wp-image-2254"/></figure>



<p class="wp-block-paragraph">セキュリティの中にあるクレデンシャルをクリックします</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="731" height="180" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_002.png" alt="" class="wp-image-2255" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_002.png 731w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_002-300x74.png 300w" sizes="auto, (max-width: 731px) 100vw, 731px" /></figure>



<p class="wp-block-paragraph">右上のAdd Credentialsをクリックします</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="252" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_003-1024x252.png" alt="" class="wp-image-2256" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_003-1024x252.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_003-300x74.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_003-765x188.png 765w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_003-1536x377.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_003.png 1783w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">最初にSSHユーザーと秘密鍵　を選択し、NEXTをクリックします</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="569" height="651" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_004.png" alt="" class="wp-image-2257" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_004.png 569w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_004-262x300.png 262w" sizes="auto, (max-width: 569px) 100vw, 569px" /></figure>



<p class="wp-block-paragraph">このクレデンシャル情報はjenkins DockerコンテナからホストへSSH接続を行うための情報なので、ホストにSSH接続できるユーザーの情報を設定します</p>



<p class="wp-block-paragraph">主な設定内容は<br>・スコープ：グローバルのまま<br>・ID：パイプラインに指定したID(sshagent(credentials: [&#8216;設定したクレデンシャル&#8217;])の「設定したクレデンシャル」の部分)<br>・説明：説明なのでわかりやすい内容を記載<br>・ユーザー名：ホストへ接続するためのユーザー<br>・Treat username as secret：コンソールに出力されるユーザー名もマスク(****)表示する場合はチェック※注意あり<br>・秘密鍵：直接入力をチェックすると、入力用の欄が表示されるので秘密鍵の情報を入力</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="556" height="740" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_005.png" alt="" class="wp-image-2258" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_005.png 556w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_005-225x300.png 225w" sizes="auto, (max-width: 556px) 100vw, 556px" /></figure>



<p class="wp-block-paragraph">Treat username as secretについては、単純にコンソールに出力される文字列の一致でマスクを掛けているようで、よくある単語(userなど)を利用している場合、ファイルパスなどもマスクされてしまうそうです<br>例：ユーザー名として「user」を指定した場合<br>　　コンソール出力で/home/user/projects→/home/*****/projestsと表示されてしまう</p>



<p class="wp-block-paragraph">次にGithubからリポジトリをクローンするためのクレデンシャルを設定します<br>事前に、Github側でFine-grained personal access tokensを準備しておきます</p>



<p class="wp-block-paragraph">ユーザー名とパスワードを選択し、NEXTをクリック</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="565" height="655" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20270927_007.png" alt="" class="wp-image-2259" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20270927_007.png 565w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20270927_007-259x300.png 259w" sizes="auto, (max-width: 565px) 100vw, 565px" /></figure>



<p class="wp-block-paragraph">主な設定内容は以下になります<br>・スコープ：グローバルのまま<br>・ユーザー名：Githubのユーザー名<br>・Treat username as secret：必要に応じてチェック<br>・パスワード：Fine-grained personal access tokensを設定<br>・ID：わかりやすいID<br>・説明：わかりやすい内容を設定</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="555" height="683" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_006.png" alt="" class="wp-image-2260" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_006.png 555w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_006-244x300.png 244w" sizes="auto, (max-width: 555px) 100vw, 555px" /></figure>



<h3 class="wp-block-heading">jenkinsジョブを作成する</h3>



<p class="wp-block-paragraph">デプロイを行うジョブを設定します<br>デプロイ時に実際に行う作業(コマンド一覧)はパイプラインに設定されているため、ジョブでは利用するパイプラインの取得方法や、どのクレデンシャルを利用するのか、といった情報を設定するイメージになります</p>



<p class="wp-block-paragraph">jenkinsトップページより「新規ジョブ作成」をクリックします</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="361" height="288" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_010.png" alt="" class="wp-image-2261" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_010.png 361w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_010-300x239.png 300w" sizes="auto, (max-width: 361px) 100vw, 361px" /></figure>



<p class="wp-block-paragraph">ジョブ名を入力し、パイプラインを選択して画面下のOKをクリックします</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="864" height="403" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_011.png" alt="" class="wp-image-2262" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_011.png 864w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_011-300x140.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_011-768x358.png 768w" sizes="auto, (max-width: 864px) 100vw, 864px" /></figure>



<p class="wp-block-paragraph">設定内容は以下のようにしました<br>説明にはわかりやすい説明を入力<br>ビルドのパラメータ化については、一旦チェックは入れず、ジョブを動かすことでjenkins側が自動でパラメータを認識します<br>(なので、1度ジョブを動かす必要あり)</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="464" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_012-1024x464.png" alt="" class="wp-image-2263" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_012-1024x464.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_012-300x136.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_012-767x347.png 767w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_012.png 1279w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">トリガーブロックについては、どの項目にもチェックは入れませんでした<br>(今回はデプロイタイミングは手動のため)</p>



<p class="wp-block-paragraph">パイプラインは以下のように設定しました<br>・Pipeline script from SCMを選択<br>・SCM：Gitを選択<br>・リポジトリURL：pipelineファイルが管理されているGithubリポジトリのURL<br>・認証情報：クレデンシャル設定で作成したGithub用の設定を指定</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="510" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_013-1-1024x510.png" alt="" class="wp-image-2266" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_013-1-1024x510.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_013-1-300x149.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_013-1-767x382.png 767w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_013-1.png 1340w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">パイプライン後半の設定は以下のようにしました<br>・ブランチ識別子：デフォルトのブランチ(こちらはアプリのリリース用ブランチ)を指定します<br>・Script Path：パイプラインが定義されたファイルまでのパスを指定します</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="588" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_014-2-1024x588.png" alt="" class="wp-image-2268" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_014-2-1024x588.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_014-2-767x440.png 767w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_014-2-300x172.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_014-2.png 1385w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">設定は以上です</p>



<h2 class="wp-block-heading">jenkinsからデプロイしてみる</h2>



<p class="wp-block-paragraph">以上の設定でデプロイが動くはずなので、実行してみます</p>



<p class="wp-block-paragraph">jenkinsトップページに追加したジョブが表示されます<br>ジョブ名をクリックします</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="766" height="461" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_020.png" alt="" class="wp-image-2269" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_020.png 766w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_020-300x181.png 300w" sizes="auto, (max-width: 766px) 100vw, 766px" /></figure>



<p class="wp-block-paragraph">パラメータ付きビルドをクリックします</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="817" height="375" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_021.png" alt="" class="wp-image-2270" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_021.png 817w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_021-300x138.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_021-767x352.png 767w" sizes="auto, (max-width: 817px) 100vw, 817px" /></figure>



<p class="wp-block-paragraph">パイプライン内に設定したパラメータが表示されるので、内容を設定してビルドをクリックします</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="541" height="424" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_022.png" alt="" class="wp-image-2271" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_022.png 541w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_022-300x235.png 300w" sizes="auto, (max-width: 541px) 100vw, 541px" /></figure>



<p class="wp-block-paragraph">ビルドを開始すると、左側に進捗が表示されます<br>時間の部分をクリックすると、詳細画面へ遷移します</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="344" height="366" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_023.png" alt="" class="wp-image-2272" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_023.png 344w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_023-282x300.png 282w" sizes="auto, (max-width: 344px) 100vw, 344px" /></figure>



<p class="wp-block-paragraph">Console Outputをクリックすれば、コンソール出力が閲覧できます<br>エラーなどが発生した場合はここから確認できます</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="798" height="556" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_024.png" alt="" class="wp-image-2273" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_024.png 798w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_024-300x209.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260927_024-768x535.png 768w" sizes="auto, (max-width: 798px) 100vw, 798px" /></figure>



<h2 class="wp-block-heading">以上です</h2>



<p class="wp-block-paragraph">ということで、jenkinsを導入してみた内容でした<br>これで、アプリのリリースはボタン一つで行えるようになったので、より運用が楽に行えるかと思います</p>



<p class="wp-block-paragraph">こういった自動化は運用の負担が減るだけでなく、手作業によるミスもなくなるため一石二鳥ですね</p>


<div id="rinkerid2274" class="yyi-rinker-contents  yyi-rinker-postid-2274 yyi-rinker-img-m yyi-rinker-catid-6 ">
	<div class="yyi-rinker-box">
		<div class="yyi-rinker-image">
							<a href="https://af.moshimo.com/af/c/click?a_id=3394378&#038;p_id=54&#038;pc_id=54&#038;pl_id=616&#038;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2Fjenkins%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/rakutenkobo-ebooks/cabinet/7560/2000006867560.jpg?_ex=128x128" width="128" height="128" class="yyi-rinker-main-img" style="border: none;" loading="lazy"></a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616" width="1" height="1" style="border:none;">					</div>
		<div class="yyi-rinker-info">
			<div class="yyi-rinker-title">
									<a href="https://af.moshimo.com/af/c/click?a_id=3394378&#038;p_id=54&#038;pc_id=54&#038;pl_id=616&#038;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2Fjenkins%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow">［改訂第3版］Jenkins実践入門 ーービルド・テスト・デプロイを自動化する技術 【電子書籍】[ 川口耕介【監修】 ]</a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616" width="1" height="1" style="border:none;">							</div>
			<div class="yyi-rinker-detail">
							<div class="credit-box">created by&nbsp;<a href="https://oyakosodate.com/rinker/" rel="nofollow noopener" target="_blank" >Rinker</a></div>
										<div class="price-box">
							<span title="" class="price">¥3,278</span>
															<span class="price_at">(2026/10/12 19:39:32時点&nbsp;楽天市場調べ-</span><span title="このサイトで掲載されている情報は当サイトの作成者により運営されています。価格、販売可能情報は、変更される場合があります。購入時に楽天市場店舗（www.rakuten.co.jp）に表示されている価格がその商品の販売に適用されます。">詳細)</span>
																	</div>
						</div>
						<ul class="yyi-rinker-links">
																                    <li class="amazonlink">
						<a href="https://www.amazon.co.jp/gp/search?ie=UTF8&amp;keywords=jenkins&amp;tag=monodon-22&amp;index=blended&amp;linkCode=ure&amp;creative=6339" rel="nofollow" class="yyi-rinker-link">Amazon</a>					</li>
													<li class="rakutenlink">
						<a href="https://af.moshimo.com/af/c/click?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616&amp;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2Fjenkins%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow" class="yyi-rinker-link">楽天市場</a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616" width="1" height="1" style="border:none;">					</li>
													<li class="yahoolink">
						<a href="https://af.moshimo.com/af/c/click?a_id=3442618&amp;p_id=1225&amp;pc_id=1925&amp;pl_id=18502&amp;url=https%3A%2F%2Fshopping.yahoo.co.jp%2Fsearch%3Fp%3Djenkins" rel="nofollow" class="yyi-rinker-link">Yahooショッピング</a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3442618&amp;p_id=1225&amp;pc_id=1925&amp;pl_id=18502" width="1" height="1" style="border:none;">					</li>
				                											</ul>
					</div>
	</div>
</div>



<div id="rinkerid2275" class="yyi-rinker-contents  yyi-rinker-postid-2275 yyi-rinker-img-m yyi-rinker-catid-6 ">
	<div class="yyi-rinker-box">
		<div class="yyi-rinker-image">
							<a href="https://af.moshimo.com/af/c/click?a_id=3394378&#038;p_id=54&#038;pc_id=54&#038;pl_id=616&#038;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2Fjenkins%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/bookoffonline/cabinet/2204/0016735476l.jpg?_ex=128x128" width="128" height="128" class="yyi-rinker-main-img" style="border: none;" loading="lazy"></a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616" width="1" height="1" style="border:none;">					</div>
		<div class="yyi-rinker-info">
			<div class="yyi-rinker-title">
									<a href="https://af.moshimo.com/af/c/click?a_id=3394378&#038;p_id=54&#038;pc_id=54&#038;pl_id=616&#038;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2Fjenkins%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow">【中古】 Jenkins実践入門 ビルド・テスト・デプロイを自動化する技術 WEB＋DB　PRESS　plusシリーズ／川口耕介【監修】，佐藤聖規【監修・著】，和田貴久，河村雅人，米沢弘樹，山岸啓【著】</a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616" width="1" height="1" style="border:none;">							</div>
			<div class="yyi-rinker-detail">
							<div class="credit-box">created by&nbsp;<a href="https://oyakosodate.com/rinker/" rel="nofollow noopener" target="_blank" >Rinker</a></div>
										<div class="price-box">
							<span title="" class="price">¥220</span>
															<span class="price_at">(2026/10/12 19:39:33時点&nbsp;楽天市場調べ-</span><span title="このサイトで掲載されている情報は当サイトの作成者により運営されています。価格、販売可能情報は、変更される場合があります。購入時に楽天市場店舗（www.rakuten.co.jp）に表示されている価格がその商品の販売に適用されます。">詳細)</span>
																	</div>
						</div>
						<ul class="yyi-rinker-links">
																                    <li class="amazonlink">
						<a href="https://www.amazon.co.jp/gp/search?ie=UTF8&amp;keywords=jenkins&amp;tag=monodon-22&amp;index=blended&amp;linkCode=ure&amp;creative=6339" rel="nofollow" class="yyi-rinker-link">Amazon</a>					</li>
													<li class="rakutenlink">
						<a href="https://af.moshimo.com/af/c/click?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616&amp;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2Fjenkins%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow" class="yyi-rinker-link">楽天市場</a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616" width="1" height="1" style="border:none;">					</li>
													<li class="yahoolink">
						<a href="https://af.moshimo.com/af/c/click?a_id=3442618&amp;p_id=1225&amp;pc_id=1925&amp;pl_id=18502&amp;url=https%3A%2F%2Fshopping.yahoo.co.jp%2Fsearch%3Fp%3Djenkins" rel="nofollow" class="yyi-rinker-link">Yahooショッピング</a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3442618&amp;p_id=1225&amp;pc_id=1925&amp;pl_id=18502" width="1" height="1" style="border:none;">					</li>
				                											</ul>
					</div>
	</div>
</div>

<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/09/jenkins%e3%82%92%e5%b0%8e%e5%85%a5%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/">jenkinsを導入してみる</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sheltie-garage.xyz/tech/2026/09/jenkins%e3%82%92%e5%b0%8e%e5%85%a5%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>番外編：無職生活 9/18 &#8211; 23</title>
		<link>https://sheltie-garage.xyz/tech/2026/09/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-18-23/</link>
					<comments>https://sheltie-garage.xyz/tech/2026/09/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-18-23/#respond</comments>
		
		<dc:creator><![CDATA[monodon]]></dc:creator>
		<pubDate>Thu, 24 Sep 2026 00:26:40 +0000</pubDate>
				<category><![CDATA[無職生活]]></category>
		<guid isPermaLink="false">https://sheltie-garage.xyz/tech/?p=2251</guid>

					<description><![CDATA[<p>世間では5連休ですが、自分はキャリアブレイク(無職)なので、特に関係なく・・・というわけでもなく一応無職期間中も「平日は作業」「休日は休む」みたいなサイクルになっているので、5連休は盛大に休んでました この期間は応募企業 [&#8230;]</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/09/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-18-23/">番外編：無職生活 9/18 &#8211; 23</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">世間では5連休ですが、自分はキャリアブレイク(無職)なので、特に関係なく・・・というわけでもなく<br>一応無職期間中も「平日は作業」「休日は休む」みたいなサイクルになっているので、5連休は盛大に休んでました</p>



<p class="wp-block-paragraph">この期間は応募企業の準備にちょっと手を付けていたのと、ゲーム開発を少し進めたのと、あとは関西引っ越し後初のバイクツーリングに出かけていました</p>



<p class="wp-block-paragraph">バイクツーリングは美山という京都の北部に行ってきました<br>自宅から往復200kmで午前中には帰ってこれる距離<br>無理なくツーリングできそうな良い位置にありました</p>



<p class="wp-block-paragraph">ただ、初めての関西の道路ということで道が全然わからず、ナビを利用しても間違いまくる始末<br>特に大阪は側道、高架橋、高速道路がすべて隣り合って走っており、どのレーンを走れば目的の道に行けるのか全然わからなかった<br>結果、行きも帰りも迷いに迷いましたが、何とか無事初ツーリングを終わることが出来ました</p>



<p class="wp-block-paragraph">ツーリング時の気温は行きが大体25℃前後、帰りは30℃オーバーということで、一応耐えられる気温でした<br>特に行きは少し肌寒さも感じるほどで、やっと夏が終わりかけているなぁと感じた次第です</p>



<p class="wp-block-paragraph">美山ふれあい広場は到着が早く、まだどのお店も回転していませんでしたが、開店時間になればいろいろなお店が開いてソフトクリームやその他の飲食が楽しめそうでした</p>



<p class="wp-block-paragraph">帰りに寄った道の駅スプリングひよしも様々な施設があり、こちらも開店時間に立ち寄ればいろいろ楽しめそうでした<br>特に、温泉が併設されていたため、今後利用してみたいなぁと考えています</p>



<p class="wp-block-paragraph">ということで、逆に上記以外は割と家でゆっくり過ごしていました<br>友人がプレゼントしてくれたエルデンリングのDLCもひとまずクリアできたので良かった！<br>倒していないボスや、改修していないアイテムはたくさんあるけど、いったん一区切り</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/09/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-18-23/">番外編：無職生活 9/18 &#8211; 23</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sheltie-garage.xyz/tech/2026/09/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-18-23/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>IPAのAppGoatで脆弱性の勉強をしてみる</title>
		<link>https://sheltie-garage.xyz/tech/2026/09/ipa%e3%81%aeappgoat%e3%81%a7%e8%84%86%e5%bc%b1%e6%80%a7%e3%81%ae%e5%8b%89%e5%bc%b7%e3%82%92%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/</link>
					<comments>https://sheltie-garage.xyz/tech/2026/09/ipa%e3%81%aeappgoat%e3%81%a7%e8%84%86%e5%bc%b1%e6%80%a7%e3%81%ae%e5%8b%89%e5%bc%b7%e3%82%92%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/#respond</comments>
		
		<dc:creator><![CDATA[monodon]]></dc:creator>
		<pubDate>Mon, 21 Sep 2026 08:14:23 +0000</pubDate>
				<category><![CDATA[インフラ]]></category>
		<guid isPermaLink="false">https://sheltie-garage.xyz/tech/?p=2229</guid>

					<description><![CDATA[<p>一応、ウェブアプリ開発に必要な脆弱性の知識は最低限覚えていると思っていますが、いったんきちんとしたツールなどで勉強したいなと思い調べたところ、IPAが学習用ツールを配布していたので使ってみることにしました ダウンロードに [&#8230;]</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/09/ipa%e3%81%aeappgoat%e3%81%a7%e8%84%86%e5%bc%b1%e6%80%a7%e3%81%ae%e5%8b%89%e5%bc%b7%e3%82%92%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/">IPAのAppGoatで脆弱性の勉強をしてみる</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">一応、ウェブアプリ開発に必要な脆弱性の知識は最低限覚えていると思っていますが、いったんきちんとしたツールなどで勉強したいなと思い調べたところ、IPAが学習用ツールを配布していたので使ってみることにしました</p>



<h2 class="wp-block-heading">ダウンロードには申請が必要</h2>



<p class="wp-block-paragraph">ツールのダウンロードには申請が必要です<br>企業名などを書くところがありますが、個人でも大丈夫そうでした</p>



<p class="wp-block-paragraph"><a href="https://www.ipa.go.jp/security/vuln/appgoat/index.html">https://www.ipa.go.jp/security/vuln/appgoat/index.html</a></p>



<p class="wp-block-paragraph">申請後、メールでダウンロードリンクがお知らせされるので、そこからダウンロードします</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="891" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_001-1024x891.png" alt="" class="wp-image-2246" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_001-1024x891.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_001-300x261.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_001-768x668.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_001.png 1045w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="748" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_002-1-1024x748.png" alt="" class="wp-image-2247" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_002-1-1024x748.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_002-1-300x219.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_002-1-768x561.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_002-1.png 1136w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">ツールを利用してみる</h2>



<p class="wp-block-paragraph">ダウンロードしたzipを展開し、AppGoatSettings.exeを起動します<br>ダイアログの「Apache起動」をクリックすると、学習用ページが起動する仕組みでした</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="483" height="204" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_002.png" alt="" class="wp-image-2230" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_002.png 483w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_002-300x127.png 300w" sizes="auto, (max-width: 483px) 100vw, 483px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="545" height="508" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_003.png" alt="" class="wp-image-2231" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_003.png 545w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_003-300x280.png 300w" sizes="auto, (max-width: 545px) 100vw, 545px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="364" height="279" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_004.png" alt="" class="wp-image-2232" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_004.png 364w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_004-300x230.png 300w" sizes="auto, (max-width: 364px) 100vw, 364px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="422" height="379" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_005.png" alt="" class="wp-image-2233" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_005.png 422w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_005-300x269.png 300w" sizes="auto, (max-width: 422px) 100vw, 422px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="524" height="386" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_007.png" alt="" class="wp-image-2234" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_007.png 524w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_007-300x221.png 300w" sizes="auto, (max-width: 524px) 100vw, 524px" /></figure>



<h2 class="wp-block-heading">体験してみる</h2>



<p class="wp-block-paragraph">最初の章である「クロスサイトスクリプティング」の体験内容を記載します</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="963" height="596" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_008.png" alt="" class="wp-image-2235" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_008.png 963w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_008-300x186.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_008-767x475.png 767w" sizes="auto, (max-width: 963px) 100vw, 963px" /></figure>



<p class="wp-block-paragraph">解説を読み進めていくと、実際に入力可能なページが表示されます</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="703" height="664" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_009.png" alt="" class="wp-image-2236" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_009.png 703w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_009-300x283.png 300w" sizes="auto, (max-width: 703px) 100vw, 703px" /></figure>



<p class="wp-block-paragraph">以下のように入力してみました</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="644" height="354" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_010.png" alt="" class="wp-image-2237" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_010.png 644w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_010-300x165.png 300w" sizes="auto, (max-width: 644px) 100vw, 644px" /></figure>



<p class="wp-block-paragraph">想定通り、アラートが表示されました</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="515" height="185" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_011.png" alt="" class="wp-image-2238" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_011.png 515w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_011-300x108.png 300w" sizes="auto, (max-width: 515px) 100vw, 515px" /></figure>



<p class="wp-block-paragraph">対策版の動作確認も行えます</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="649" height="666" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_012.png" alt="" class="wp-image-2239" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_012.png 649w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_012-292x300.png 292w" sizes="auto, (max-width: 649px) 100vw, 649px" /></figure>



<p class="wp-block-paragraph">今度はポップアップは表示されず、きちんと文字列がエスケープされて正しく処理されました</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="645" height="344" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_013.png" alt="" class="wp-image-2240" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_013.png 645w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_013-300x160.png 300w" sizes="auto, (max-width: 645px) 100vw, 645px" /></figure>



<p class="wp-block-paragraph">実際にコードを修正して動作確認も行えました</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="623" height="735" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_014.png" alt="" class="wp-image-2241" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_014.png 623w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_014-254x300.png 254w" sizes="auto, (max-width: 623px) 100vw, 623px" /></figure>



<p class="wp-block-paragraph">修正後はその場で修正動作の確認も行えました</p>



<h2 class="wp-block-heading">脆弱性の勉強には利用できそうだが、問題もあり</h2>



<p class="wp-block-paragraph">実際に動かして学習できるため、<br>・どのような攻撃手法があるか<br>・どのように修正できるのか<br>を、手を動かして演習できるのはとても良い！</p>



<p class="wp-block-paragraph">特に実際に攻撃が行われるとどのような挙動をするのかは、なかなか体験できない部分だと思う</p>



<p class="wp-block-paragraph">ただ、演習環境がPHP、テンプレートエンジンがsmartyということで、このあたりに馴染みがないと<br>「理屈も修正方法も分かるが、PHPがわからない」というもどかしい状態になる</p>



<p class="wp-block-paragraph">また、演習アプリ自体はWebアプリケーションとして動作しているようだけど、動作するのはWindowsのみのようで<br>他環境では動きません<br>WebアプリであれDocker環境などにして複数の環境で動くようになると、より学習しやすくなると思いました<br>(Web開発はMacBookを利用して行っているため)</p>



<p class="wp-block-paragraph">あと演習を進めていたら、一部ページでエラーが発生し、修正の演習が行えなかったのも気になった</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="639" height="282" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_015.png" alt="" class="wp-image-2244" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_015.png 639w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260921_015-300x132.png 300w" sizes="auto, (max-width: 639px) 100vw, 639px" /></figure>



<p class="wp-block-paragraph">自分はPHPは苦手な言語のため、プログラムを修正しようにもどのあたりを修正してよいのかわからなかった<br>ただ、この演習のためだけにPHPを勉強する気にもなれず・・・</p>



<p class="wp-block-paragraph">最低限、リクエストの取得や、smartyを利用した画面表示の部分が理解できていれば何とかなりそうなので<br>その部分だけ簡単に勉強してから演習を再開しようと思います</p>



<p class="wp-block-paragraph"></p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/09/ipa%e3%81%aeappgoat%e3%81%a7%e8%84%86%e5%bc%b1%e6%80%a7%e3%81%ae%e5%8b%89%e5%bc%b7%e3%82%92%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/">IPAのAppGoatで脆弱性の勉強をしてみる</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sheltie-garage.xyz/tech/2026/09/ipa%e3%81%aeappgoat%e3%81%a7%e8%84%86%e5%bc%b1%e6%80%a7%e3%81%ae%e5%8b%89%e5%bc%b7%e3%82%92%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>OCI(Oracle Cloud Infractracture)を触ってみる</title>
		<link>https://sheltie-garage.xyz/tech/2026/09/ocioracle-cloud-infractracture%e3%82%92%e8%a7%a6%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/</link>
					<comments>https://sheltie-garage.xyz/tech/2026/09/ocioracle-cloud-infractracture%e3%82%92%e8%a7%a6%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/#respond</comments>
		
		<dc:creator><![CDATA[monodon]]></dc:creator>
		<pubDate>Sun, 20 Sep 2026 03:14:13 +0000</pubDate>
				<category><![CDATA[インフラ]]></category>
		<guid isPermaLink="false">https://sheltie-garage.xyz/tech/?p=2201</guid>

					<description><![CDATA[<p>就職活動を始めています先日面談を行っていただいた企業でOCIを利用しているという話が出たので最低限触ってみることにしました 目標 一先ず、nginxのウェルカムページを表示するところまで行ってみます Oracle Clo [&#8230;]</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/09/ocioracle-cloud-infractracture%e3%82%92%e8%a7%a6%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/">OCI(Oracle Cloud Infractracture)を触ってみる</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">就職活動を始めています<br>先日面談を行っていただいた企業でOCIを利用しているという話が出たので最低限触ってみることにしました</p>



<h2 class="wp-block-heading">目標</h2>



<p class="wp-block-paragraph">一先ず、nginxのウェルカムページを表示するところまで行ってみます</p>



<h2 class="wp-block-heading">Oracle Cloud のアカウントが作成済みの状態からスタート</h2>



<p class="wp-block-paragraph">Oracle Cloudのアカウントが作成済みの状態からスタートします<br>アカウント作成にはクレジットカードが必要ですが、Free Tier枠を利用している限り、課金は発生しないはず・・・です</p>



<h3 class="wp-block-heading">VNCを作成</h3>



<p class="wp-block-paragraph">まずはVNC(Virtual Cloud Network)を作成します</p>



<p class="wp-block-paragraph">VCNはクラウド上に設定する仮想的なネットワークで、このネットワークの中に必要なリソース(インスタンスなど)を配置します</p>



<p class="wp-block-paragraph">よく出てくる用語の意味(Claude作成)</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>構成要素</th><th>役割</th></tr></thead><tbody><tr><td>CIDR Block</td><td>VCN全体が使えるIPアドレスの範囲(例: 10.0.0.0/16)</td></tr><tr><td>Subnet</td><td>VCNをさらに細かく区切った区画。Public/Privateの2種類がある</td></tr><tr><td>Internet Gateway</td><td>VCNとインターネットをつなぐ出入口</td></tr><tr><td>NAT Gateway</td><td>Privateサブネットのリソースが外部に出ていくための出入口(片方向)</td></tr><tr><td>Route Table</td><td>通信をどこに送るかの経路ルール</td></tr><tr><td>Security List / NSG</td><td>どのポート・どの送信元からの通信を許可するかのファイアウォール的な設定</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">具体的な作成手順は以下の通り</p>



<p class="wp-block-paragraph">まずはCreate VCNのボタンからネットワークを作成します</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="415" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_001-1024x415.png" alt="" class="wp-image-2203" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_001-1024x415.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_001-300x121.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_001-766x310.png 766w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_001.png 1267w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">以下のように設定しました</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="841" height="374" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_002.png" alt="" class="wp-image-2204" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_002.png 841w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_002-300x133.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_002-767x341.png 767w" sizes="auto, (max-width: 841px) 100vw, 841px" /></figure>



<p class="wp-block-paragraph">作成したVCNがインターネットへ接続できるよう、Internet Gatewayを設定します<br>作成したVCNをクリックし、Gatewayタブから設定できます<br>Internet Gateway自体にはほとんど設定項目は無く、他の設定を組み合わせ利用します</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="877" height="301" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_003.png" alt="" class="wp-image-2205" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_003.png 877w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_003-300x103.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_003-766x263.png 766w" sizes="auto, (max-width: 877px) 100vw, 877px" /></figure>



<p class="wp-block-paragraph">次はRouting Tableを設定します<br>作成したVCNをクリックし、Routingタブより確認できます</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="370" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_004-1024x370.png" alt="" class="wp-image-2206" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_004-1024x370.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_004-300x108.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_004-767x277.png 767w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_004-1536x555.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_004.png 1590w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">設定は以下のようにしました<br>Target Internet Gatewayは先程作成したGatewayを設定します</p>



<p class="wp-block-paragraph">Destination CDIR Blockは「0.0.0.0/0」を指定しました<br>この設定は経路選択を行う対象の範囲を指定するCIDRで、0.0.0.0/0を指定すると全範囲が対象になります</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="454" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_005-1024x454.png" alt="" class="wp-image-2207" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_005-1024x454.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_005-767x340.png 767w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_005-300x133.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_005-1536x681.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_005.png 1883w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">次にセキュリティを設定し、nginx用の80ポートを通信できるようにしておきます</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="453" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_006-1024x453.png" alt="" class="wp-image-2208" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_006-1024x453.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_006-300x133.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_006-766x339.png 766w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_006.png 1419w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">設定を追加します</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="396" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_007-1024x396.png" alt="" class="wp-image-2209" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_007-1024x396.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_007-300x116.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_007-766x296.png 766w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_007-1536x594.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_007.png 1871w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">以下の設定にしました<br>Source Port Range:<br>通信元のPort番号　Webブラウザなどのクライアントはエフェメラルポート(ポート番号がランダムになる)ため、Allを設定しています</p>



<p class="wp-block-paragraph">Destination Port Range:<br>待ち受け側のポート番号 HTTPサーバーとして利用する場合、80や443を指定します</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="477" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_008-1024x477.png" alt="" class="wp-image-2210" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_008-1024x477.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_008-300x140.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_008-766x357.png 766w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_008-1536x716.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_008.png 1876w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">次にサブネットを設定しておきます</p>



<p class="wp-block-paragraph">VCN内をサブネットで分離することでパブリックアクセス可能なリソースや、DBなどプライベートとしておきたいリソースを分けて管理することができます</p>



<p class="wp-block-paragraph">以下のように設定しました</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1012" height="690" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_000_001.png" alt="" class="wp-image-2212" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_000_001.png 1012w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_000_001-300x205.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_000_001-767x523.png 767w" sizes="auto, (max-width: 1012px) 100vw, 1012px" /></figure>



<p class="wp-block-paragraph">以下の設定にしました</p>



<p class="wp-block-paragraph">Subnet Typeはリージョン内のどのADからもアクセスできるRegionalを選択しました<br>(AD = Availability Domain　データセンター内の物理的な分離単位)</p>



<p class="wp-block-paragraph">IPv4 CIDR Blockが、サブネットとして切り出すIPアドレスの範囲になります</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="475" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_000_002-1024x475.png" alt="" class="wp-image-2213" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_000_002-1024x475.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_000_002-300x139.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_000_002-768x356.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_000_002-1536x712.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_000_002.png 1883w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h3 class="wp-block-heading">インスタンスを作成する</h3>



<p class="wp-block-paragraph">いよいよインスタンを作成します<br>以下の手順で作成しました</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="494" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_009-1024x494.png" alt="" class="wp-image-2211" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_009-1024x494.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_009-300x145.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_009-768x370.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_009.png 1357w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="534" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_001-1024x534.png" alt="" class="wp-image-2214" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_001-1024x534.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_001-300x157.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_001-766x400.png 766w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_001.png 1048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">無料枠で利用できるインスタンスには以下のマークがついています</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="782" height="313" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_002.png" alt="" class="wp-image-2215" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_002.png 782w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_002-300x120.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_002-767x307.png 767w" sizes="auto, (max-width: 782px) 100vw, 782px" /></figure>



<p class="wp-block-paragraph">セキュリティを強化する場合、Shieled Instanceも利用できます<br>ONにするとファームウェアの署名チェック、起動時間に変化がないかの監視、TPMの利用などセキュリティ機能が強化されます</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="968" height="427" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_003.png" alt="" class="wp-image-2216" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_003.png 968w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_003-300x132.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_003-766x338.png 766w" sizes="auto, (max-width: 968px) 100vw, 968px" /></figure>



<p class="wp-block-paragraph">ネットワークの設定を行います<br>ここまでで作成したVCNやサブネットがドロップダウンに表示されるはずなので、設定します</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="483" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_004-1024x483.png" alt="" class="wp-image-2217" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_004-1024x483.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_004-300x141.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_004-766x361.png 766w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_004-1536x724.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_004.png 1882w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">IPの設定を行います<br>プライベートアドレスは自動割り当て<br>HTTPサーバーとして利用するため、パブリックIPも割り当てられるようにしました</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="482" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_005-1024x482.png" alt="" class="wp-image-2218" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_005-1024x482.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_005-300x141.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_005-766x361.png 766w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_005-1536x724.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_005.png 1872w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">ネットワークの続きです<br>SSHで接続できるように、秘密鍵を生成してダウンロードしておきます</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="484" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_006-1024x484.png" alt="" class="wp-image-2219" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_006-1024x484.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_006-300x142.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_006-767x363.png 767w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_006-1536x727.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_006.png 1873w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">最後にストレージの設定を行います<br>デフォルトとしました</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="482" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_007-1024x482.png" alt="" class="wp-image-2220" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_007-1024x482.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_007-300x141.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_007-767x361.png 767w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_007-1536x723.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_010_007.png 1877w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">以上でインスタンスの設定は完了です<br>しばらくするとインスタンスが作成され、Runningとなるはずです</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="968" height="445" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_011.png" alt="" class="wp-image-2221" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_011.png 968w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_011-300x138.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/20260918_011-768x353.png 768w" sizes="auto, (max-width: 968px) 100vw, 968px" /></figure>



<p class="wp-block-paragraph">生成されたインスタンスには、ターミナルから以下のようなコマンドで接続できます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>ssh -i /path/to/[ダウンロードしたSSH秘密鍵] opc@[パブリックIP]
※パブリックIPはOracle Cloud InfrastractureのInstancリストから確認できます</code></pre></div>



<p class="wp-block-paragraph">ちなみに、SSH接続時以下の警告が出てきました</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>** WARNING: connection is not using a post-quantum key exchange algorithm.
** This session may be vulnerable to &quot;store now, decrypt later&quot; attacks.
** The server may need to be upgraded. See https://openssh.com/pq.html</code></pre></div>



<p class="wp-block-paragraph">これは、現在利用されている暗号化の手法が、将来的に量子コンピューターなどの高性能コンピュータが登場した際に復号化される恐れのある形式を採用している場合に表示されるようです<br>(今のコンピューターでは安全だけど、将来的には解読されるかもしれない　という警告)<br>※量子コンピュータに対しても安全な暗号方式を耐量子暗号化といいます(例：sntrup761x25519-sha512)</p>



<h2 class="wp-block-heading">nginxは断念</h2>



<p class="wp-block-paragraph">インスタンス作成後、以下のコマンドでnginxをインストールしようとしましたが、どうしてもコマンド実行後にフリーズしてしまうため、今回は断念しました<br>一応Free Tier枠内で構築したので、起動しっぱなしにしておいて時間を取ってまた調査してみたいと思っています</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>sudo dnf install -y nginx</code></pre></div>


<div id="rinkerid2224" class="yyi-rinker-contents  yyi-rinker-postid-2224 yyi-rinker-img-m yyi-rinker-catid-6 ">
	<div class="yyi-rinker-box">
		<div class="yyi-rinker-image">
							<a href="https://af.moshimo.com/af/c/click?a_id=3394378&#038;p_id=54&#038;pc_id=54&#038;pl_id=616&#038;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FOracle%2BCloud%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/rakutenkobo-ebooks/cabinet/3575/2000010093575.jpg?_ex=128x128" width="128" height="128" class="yyi-rinker-main-img" style="border: none;" loading="lazy"></a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616" width="1" height="1" style="border:none;">					</div>
		<div class="yyi-rinker-info">
			<div class="yyi-rinker-title">
									<a href="https://af.moshimo.com/af/c/click?a_id=3394378&#038;p_id=54&#038;pc_id=54&#038;pl_id=616&#038;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FOracle%2BCloud%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow">Oracle Cloud Infrastructure徹底入門 Oracle Cloudの基本からインフラ設計・構築まで 【電子書籍】[ 塩原浩太 ]</a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616" width="1" height="1" style="border:none;">							</div>
			<div class="yyi-rinker-detail">
							<div class="credit-box">created by&nbsp;<a href="https://oyakosodate.com/rinker/" rel="nofollow noopener" target="_blank" >Rinker</a></div>
										<div class="price-box">
							<span title="" class="price">¥3,828</span>
															<span class="price_at">(2026/10/12 19:46:30時点&nbsp;楽天市場調べ-</span><span title="このサイトで掲載されている情報は当サイトの作成者により運営されています。価格、販売可能情報は、変更される場合があります。購入時に楽天市場店舗（www.rakuten.co.jp）に表示されている価格がその商品の販売に適用されます。">詳細)</span>
																	</div>
						</div>
						<ul class="yyi-rinker-links">
																                    <li class="amazonlink">
						<a href="https://www.amazon.co.jp/gp/search?ie=UTF8&amp;keywords=Oracle+Cloud&amp;tag=monodon-22&amp;index=blended&amp;linkCode=ure&amp;creative=6339" rel="nofollow" class="yyi-rinker-link">Amazon</a>					</li>
													<li class="rakutenlink">
						<a href="https://af.moshimo.com/af/c/click?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616&amp;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FOracle%2BCloud%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow" class="yyi-rinker-link">楽天市場</a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616" width="1" height="1" style="border:none;">					</li>
													<li class="yahoolink">
						<a href="https://af.moshimo.com/af/c/click?a_id=3442618&amp;p_id=1225&amp;pc_id=1925&amp;pl_id=18502&amp;url=https%3A%2F%2Fshopping.yahoo.co.jp%2Fsearch%3Fp%3DOracle%2BCloud" rel="nofollow" class="yyi-rinker-link">Yahooショッピング</a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3442618&amp;p_id=1225&amp;pc_id=1925&amp;pl_id=18502" width="1" height="1" style="border:none;">					</li>
				                											</ul>
					</div>
	</div>
</div>



<div id="rinkerid2225" class="yyi-rinker-contents  yyi-rinker-postid-2225 yyi-rinker-img-m yyi-rinker-catid-6 ">
	<div class="yyi-rinker-box">
		<div class="yyi-rinker-image">
							<a href="https://af.moshimo.com/af/c/click?a_id=3394378&#038;p_id=54&#038;pc_id=54&#038;pl_id=616&#038;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FOracle%2BCloud%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8099/9784297118099.jpg?_ex=128x128" width="128" height="128" class="yyi-rinker-main-img" style="border: none;" loading="lazy"></a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616" width="1" height="1" style="border:none;">					</div>
		<div class="yyi-rinker-info">
			<div class="yyi-rinker-title">
									<a href="https://af.moshimo.com/af/c/click?a_id=3394378&#038;p_id=54&#038;pc_id=54&#038;pl_id=616&#038;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FOracle%2BCloud%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow">Oracle Cloud Infrastructure エンタープライズ構築実践ガイド [ 大塚紳一郎、協力：日本オラクル株式会社 ]</a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616" width="1" height="1" style="border:none;">							</div>
			<div class="yyi-rinker-detail">
							<div class="credit-box">created by&nbsp;<a href="https://oyakosodate.com/rinker/" rel="nofollow noopener" target="_blank" >Rinker</a></div>
										<div class="price-box">
							<span title="" class="price">¥3,740</span>
															<span class="price_at">(2026/10/12 19:39:34時点&nbsp;楽天市場調べ-</span><span title="このサイトで掲載されている情報は当サイトの作成者により運営されています。価格、販売可能情報は、変更される場合があります。購入時に楽天市場店舗（www.rakuten.co.jp）に表示されている価格がその商品の販売に適用されます。">詳細)</span>
																	</div>
						</div>
						<ul class="yyi-rinker-links">
																                    <li class="amazonlink">
						<a href="https://www.amazon.co.jp/gp/search?ie=UTF8&amp;keywords=Oracle+Cloud&amp;tag=monodon-22&amp;index=blended&amp;linkCode=ure&amp;creative=6339" rel="nofollow" class="yyi-rinker-link">Amazon</a>					</li>
													<li class="rakutenlink">
						<a href="https://af.moshimo.com/af/c/click?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616&amp;url=https%3A%2F%2Fsearch.rakuten.co.jp%2Fsearch%2Fmall%2FOracle%2BCloud%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow" class="yyi-rinker-link">楽天市場</a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3394378&amp;p_id=54&amp;pc_id=54&amp;pl_id=616" width="1" height="1" style="border:none;">					</li>
													<li class="yahoolink">
						<a href="https://af.moshimo.com/af/c/click?a_id=3442618&amp;p_id=1225&amp;pc_id=1925&amp;pl_id=18502&amp;url=https%3A%2F%2Fshopping.yahoo.co.jp%2Fsearch%3Fp%3DOracle%2BCloud" rel="nofollow" class="yyi-rinker-link">Yahooショッピング</a><img loading="lazy" decoding="async" src="https://i.moshimo.com/af/i/impression?a_id=3442618&amp;p_id=1225&amp;pc_id=1925&amp;pl_id=18502" width="1" height="1" style="border:none;">					</li>
				                											</ul>
					</div>
	</div>
</div>

<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/09/ocioracle-cloud-infractracture%e3%82%92%e8%a7%a6%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/">OCI(Oracle Cloud Infractracture)を触ってみる</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sheltie-garage.xyz/tech/2026/09/ocioracle-cloud-infractracture%e3%82%92%e8%a7%a6%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>番外編：無職生活 9/16, 17</title>
		<link>https://sheltie-garage.xyz/tech/2026/09/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-16-17/</link>
					<comments>https://sheltie-garage.xyz/tech/2026/09/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-16-17/#respond</comments>
		
		<dc:creator><![CDATA[monodon]]></dc:creator>
		<pubDate>Fri, 18 Sep 2026 04:04:28 +0000</pubDate>
				<category><![CDATA[無職生活]]></category>
		<guid isPermaLink="false">https://sheltie-garage.xyz/tech/?p=2199</guid>

					<description><![CDATA[<p>この2日間も就活準備がメイン面談があったので急いでビジネスカジュアルな服装を準備してきました 後はハロワで失業認定今回から就活っぽい活動実績をかけるようになった 書ける内容はそれくらい・・・しばらくは就活のため、これくら [&#8230;]</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/09/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-16-17/">番外編：無職生活 9/16, 17</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">この2日間も就活準備がメイン<br>面談があったので急いでビジネスカジュアルな服装を準備してきました</p>



<p class="wp-block-paragraph">後はハロワで失業認定<br>今回から就活っぽい活動実績をかけるようになった</p>



<p class="wp-block-paragraph">書ける内容はそれくらい・・・<br>しばらくは就活のため、これくらいの内容の日記になりそうです</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/09/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-16-17/">番外編：無職生活 9/16, 17</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sheltie-garage.xyz/tech/2026/09/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-16-17/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>番外編：無職生活 9/14</title>
		<link>https://sheltie-garage.xyz/tech/2026/09/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-14/</link>
					<comments>https://sheltie-garage.xyz/tech/2026/09/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-14/#respond</comments>
		
		<dc:creator><![CDATA[monodon]]></dc:creator>
		<pubDate>Tue, 15 Sep 2026 05:53:08 +0000</pubDate>
				<category><![CDATA[無職生活]]></category>
		<guid isPermaLink="false">https://sheltie-garage.xyz/tech/?p=2197</guid>

					<description><![CDATA[<p>エルデンリングも進めつつ、ブログを書きつつ就活もしつつな1日 就活はGooseというAIエージェントを導入したので、気になる企業の情報をまとめるのに使ってみたおおむね情報収集はできていそうだけど、何分ローカルで動かす(課 [&#8230;]</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/09/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-14/">番外編：無職生活 9/14</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">エルデンリングも進めつつ、ブログを書きつつ就活もしつつな1日</p>



<p class="wp-block-paragraph">就活はGooseというAIエージェントを導入したので、気になる企業の情報をまとめるのに使ってみた<br>おおむね情報収集はできていそうだけど、何分ローカルで動かす(課金モデルと比較すると)低性能なモデルのため内容の精査はきちんと行う必要がありそう</p>



<p class="wp-block-paragraph">後は地味にブログを書いている時間が長かった<br>無事Tesiが戻ってきたのでその内容と、GooseというAIエージェントを導入したのでその時の記事を書いてました</p>



<p class="wp-block-paragraph">一応今のアパートはバイク2台止めてもOKという返事をもらっているのだけど、先住の方たちが結構間をあけて自転車を止めていたりするので、どこまで動かしてよいのか微妙なところ・・・<br>現状、駐輪場の屋根から少しはみ出た場所に止めているけど、自転車の場所を整理すれば、十分にスペースを確保したうえで自分のバイクも屋根の中に収められるんだけどね</p>



<p class="wp-block-paragraph">近年は何が引き金となってトラブルに発展するかわからないから、うかつに手が出せない</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/09/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-14/">番外編：無職生活 9/14</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sheltie-garage.xyz/tech/2026/09/%e7%95%aa%e5%a4%96%e7%b7%a8%ef%bc%9a%e7%84%a1%e8%81%b7%e7%94%9f%e6%b4%bb-9-14/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
