<?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/category/%E3%82%A4%E3%83%B3%E3%83%95%E3%83%A9/feed/" rel="self" type="application/rss+xml" />
	<link>https://sheltie-garage.xyz/tech/category/インフラ/</link>
	<description>テクノロジー関連の話題をまとめたブログです</description>
	<lastBuildDate>Sun, 27 Sep 2026 04:46:55 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>
	<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 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 fetchpriority="high" 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="(max-width: 731px) 100vw, 731px" /></figure>



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



<figure class="wp-block-image size-large"><img 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="(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 loading="lazy" 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;"></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/30 12:06:55時点&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 loading="lazy" 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;"></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/30 12:06:56時点&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>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/30 12:06:56時点&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">
							</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>MySQL 127.0.0.1とlocalhostは微妙に違う話</title>
		<link>https://sheltie-garage.xyz/tech/2026/09/mysql-127-0-0-1%e3%81%a8localhost%e3%81%af%e5%be%ae%e5%a6%99%e3%81%ab%e9%81%95%e3%81%86%e8%a9%b1/</link>
					<comments>https://sheltie-garage.xyz/tech/2026/09/mysql-127-0-0-1%e3%81%a8localhost%e3%81%af%e5%be%ae%e5%a6%99%e3%81%ab%e9%81%95%e3%81%86%e8%a9%b1/#respond</comments>
		
		<dc:creator><![CDATA[monodon]]></dc:creator>
		<pubDate>Sat, 05 Sep 2026 08:47:27 +0000</pubDate>
				<category><![CDATA[インフラ]]></category>
		<guid isPermaLink="false">https://sheltie-garage.xyz/tech/?p=2151</guid>

					<description><![CDATA[<p>127.0.0.1, localhostはどちらも自分自身に接続するためによく利用される記述です 当然、ローカルで動作しているMySQLに接続する場合、以下のように記述を行うわけですが、「ローカルマシンで動作しているMy [&#8230;]</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/09/mysql-127-0-0-1%e3%81%a8localhost%e3%81%af%e5%be%ae%e5%a6%99%e3%81%ab%e9%81%95%e3%81%86%e8%a9%b1/">MySQL 127.0.0.1とlocalhostは微妙に違う話</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">127.0.0.1, localhostはどちらも自分自身に接続するためによく利用される記述です</p>



<p class="wp-block-paragraph">当然、ローカルで動作しているMySQLに接続する場合、以下のように記述を行うわけですが、「ローカルマシンで動作しているMySQL」「ローカルのDockerコンテナで動いているMySQL」に接続する場合、それぞれ注意が必要です</p>



<h2 class="wp-block-heading">ローカルマシンのMySQLに接続するなら、127.0.0.1, localhostのどちらでもOK</h2>



<p class="wp-block-paragraph">例えば以下のコマンドでローカルマシンのMySQLに接続できます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>mysql -u user -p -h 127.0.0.1 → TCP/IP接続
mysql -u user -p -h localhost → Unixソケット接続</code></pre></div>



<h2 class="wp-block-heading">Dockerコンテナに接続する場合、127.0.0.1を利用する</h2>



<p class="wp-block-paragraph">ホストOSからDockerコンテナのMySQLに接続する場合、127.0.0.1を利用します</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>mysql -u user -p -h 127.0.0.1</code></pre></div>



<p class="wp-block-paragraph">localhostを利用してしまうと、以下のエラーが発生します</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>ERROR 2002 (HY000): Can&#39;t connect to local MySQL server through socket &#39;/tmp/mysql.sock&#39; (2)</code></pre></div>



<p class="wp-block-paragraph">DockerコンテナのMySQLはホストOSとは別の環境で動作しているため、ホストOS側のUnixソケットからDockerコンテナのMySQLへ接続することはできません</p>



<h2 class="wp-block-heading">なぜDockerコンテナにはlocalhostで接続できないのか</h2>



<p class="wp-block-paragraph">MySQL接続時にlocalhostを指定すると、MySQLクライアントが「localhost接続ならソケットを利用する」という仕様に基づいて、ソケット接続でMySQLに接続します</p>



<p class="wp-block-paragraph">参考情報<br><a href="https://dev.mysql.com/doc/refman/9.7/en/can-not-connect-to-server.html">https://dev.mysql.com/doc/refman/9.7/en/can-not-connect-to-server.html</a></p>



<p class="wp-block-paragraph">ただし、Dockerコンテナで動作しているMySQLに接続する場合、TCP/IP接続を行わないとポートフォワードでコンテナのMySQLに接続できないため、DockerコンテナのMySQLに接続する場合は「127.0.0.1」を指定する必要があります</p>



<p class="wp-block-paragraph">ちなみにprotocolオプションを指定すれば、localhostを指定してもTCP/IP接続となり、Dockerコンテナ内のMySQLに接続できます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>mysql -u user -p -h localhost --protocol=TCP</code></pre></div>



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



<p class="wp-block-paragraph">ということで、MySQL利用時の127.0.0.1、localhostの小話でした<br>普段はあまり両者の違いを意識することは少ないですが、MySQLを利用するときは意識する必要がありますね</p>



<p class="wp-block-paragraph">また今回は「ホストOSからポートフォワードされたDockerコンテナのMySQLに接続する場合」の内容のため、別の環境の場合は上記の限りではないのでご注意ください</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/09/mysql-127-0-0-1%e3%81%a8localhost%e3%81%af%e5%be%ae%e5%a6%99%e3%81%ab%e9%81%95%e3%81%86%e8%a9%b1/">MySQL 127.0.0.1とlocalhostは微妙に違う話</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sheltie-garage.xyz/tech/2026/09/mysql-127-0-0-1%e3%81%a8localhost%e3%81%af%e5%be%ae%e5%a6%99%e3%81%ab%e9%81%95%e3%81%86%e8%a9%b1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>k8s(クバネティス)を触ってみる その1:環境構築〜nginx初期ページ表示まで</title>
		<link>https://sheltie-garage.xyz/tech/2026/09/k8s%e3%82%af%e3%83%90%e3%83%8d%e3%83%86%e3%82%a3%e3%82%b9%e3%82%92%e8%a7%a6%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b-%e3%81%9d%e3%81%ae1%e7%92%b0%e5%a2%83%e6%a7%8b%e7%af%89%e3%80%9cnginx%e5%88%9d/</link>
					<comments>https://sheltie-garage.xyz/tech/2026/09/k8s%e3%82%af%e3%83%90%e3%83%8d%e3%83%86%e3%82%a3%e3%82%b9%e3%82%92%e8%a7%a6%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b-%e3%81%9d%e3%81%ae1%e7%92%b0%e5%a2%83%e6%a7%8b%e7%af%89%e3%80%9cnginx%e5%88%9d/#respond</comments>
		
		<dc:creator><![CDATA[monodon]]></dc:creator>
		<pubDate>Wed, 02 Sep 2026 02:11:47 +0000</pubDate>
				<category><![CDATA[インフラ]]></category>
		<category><![CDATA[未分類]]></category>
		<guid isPermaLink="false">https://sheltie-garage.xyz/tech/?p=2123</guid>

					<description><![CDATA[<p>今までインフラはずっとDocker Compose止まりだったのですが、無職期間を利用してk8s(クバネティス)を触ってみることにしました実行環境は以下のとおりです・MacBookPro 2019(Intel Mac)  [&#8230;]</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/09/k8s%e3%82%af%e3%83%90%e3%83%8d%e3%83%86%e3%82%a3%e3%82%b9%e3%82%92%e8%a7%a6%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b-%e3%81%9d%e3%81%ae1%e7%92%b0%e5%a2%83%e6%a7%8b%e7%af%89%e3%80%9cnginx%e5%88%9d/">k8s(クバネティス)を触ってみる その1:環境構築〜nginx初期ページ表示まで</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">今までインフラはずっとDocker Compose止まりだったのですが、無職期間を利用してk8s(クバネティス)を触ってみることにしました<br>実行環境は以下のとおりです<br>・MacBookPro 2019(Intel Mac)</p>



<h2 class="wp-block-heading">Docker Composeとの違い</h2>



<p class="wp-block-paragraph">k8sもコンテナ管理ツールですが、自分が今メインで利用している「Docker Composeと何が違うのか」を最初に理解しておきたいと思います</p>



<p class="wp-block-paragraph">Docker Compose：1台のマシンの中で複数のコンテナを管理するためのツール<br>k8s：複数台のマシン(ノード)を跨いで、コンテナを管理するためのツール</p>



<p class="wp-block-paragraph">が大きな違いのようです<br>Docker Composeでは1台のマシン内で完結するため、最悪マシンごと落ちたら推しましですが、<br>k8sは複数マシンに跨いでコンテナを管理できるため、万が一1台のマシンが落ちてもサービスを継続することができます</p>



<p class="wp-block-paragraph">他、k8sが持つ気になる機能として<br>・HPA(Horizontal Pod Autoscaler)：アクセス数が増えてきたら自動でPodを増やすオートスケール機能<br>・ローリングアップデート / ロールバック：ローリングアップデートを行うための機能がデフォルトで用意されている</p>



<p class="wp-block-paragraph">この辺りの機能は個人開発アプリでも十分に恩恵を受けられそうです</p>



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



<p class="wp-block-paragraph">今回は「kind(Kubernetes in Docker)」を利用して環境を構築します<br>Dockerがインストールされていることが前提で、それ以外のセットアップは下記の通り行いました</p>



<p class="wp-block-paragraph">kindのインストール</p>



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



<p class="wp-block-paragraph">インストール後のバージョン確認</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>kind version
↓
kind v0.33.0 go1.27.0 darwin/amd64</code></pre></div>



<h2 class="wp-block-heading">早速クラスターを作ってみる</h2>



<p class="wp-block-paragraph">以下のコマンドでクラスターが作成されます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>kind create cluster --name study
↓
Creating cluster &quot;study&quot; ...
 ✓ Ensuring node image (kindest/node:v1.37.0) &#x1f5bc;
 ✓ Preparing nodes &#x1f4e6;
 ✓ Writing configuration &#x1f4dc;
 ✓ Starting control-plane &#x1f579;
 ✓ Installing CNI &#x1f50c;
 ✓ Installing StorageClass &#x1f4be;
Set kubectl context to &quot;kind-study&quot;
You can now use your cluster with:

kubectl cluster-info --context kind-study

Thanks for using kind! &#x1f60a;</code></pre></div>



<p class="wp-block-paragraph">以下のコマンドで作成したクラスターの情報が閲覧できます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>kubectl cluster-info --context kind-study
↓
Kubernetes control plane is running at https://127.0.0.1:57690
CoreDNS is running at https://127.0.0.1:57690/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use &#39;kubectl cluster-info dump&#39;.</code></pre></div>



<p class="wp-block-paragraph">Node(実行環境)一覧を表示</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>kubectl get nodes
↓
NAME                  STATUS   ROLES           AGE    VERSION
study-control-plane   Ready    control-plane   4m6s   v1.37.0</code></pre></div>



<p class="wp-block-paragraph">全Podを表示するにはこちらのコマンドを利用します</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>kubectl get pods -A
↓
NAMESPACE            NAME                                          READY   STATUS    RESTARTS   AGE
kube-system          coredns-559f6c778d-d8txz                      1/1     Running   0          5m55s
kube-system          coredns-559f6c778d-n79ln                      1/1     Running   0          5m55s
kube-system          etcd-study-control-plane                      1/1     Running   0          6m3s
kube-system          kindnet-v2z9q                                 1/1     Running   0          5m55s
kube-system          kube-apiserver-study-control-plane            1/1     Running   0          6m3s
kube-system          kube-controller-manager-study-control-plane   1/1     Running   0          6m3s
kube-system          kube-proxy-p7qb4                              1/1     Running   0          5m55s
kube-system          kube-scheduler-study-control-plane            1/1     Running   0          6m3s
local-path-storage   local-path-provisioner-75f7fc7dc5-6mlb9       1/1     Running   0          5m55s</code></pre></div>



<h2 class="wp-block-heading">Podを配置してみる</h2>



<p class="wp-block-paragraph">実際にPodを配置して、nginx初期画面を表示させてみます</p>



<p class="wp-block-paragraph">まずはnginxのイメージを利用してpodを作成します</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>kubectl run nginx --image=nginx
↓
pod/nginx created</code></pre></div>



<p class="wp-block-paragraph">Podの状態を確認します</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>kubectl get pods
↓
NAME    READY   STATUS    RESTARTS   AGE
nginx   1/1     Running   0          83s

より詳しい情報を見る
kubectl describe pod nginx
↓
Name:             nginx
Namespace:        default
Priority:         0
Service Account:  default
Node:             study-control-plane/172.19.0.2
Start Time:       Wed, 02 Sep 2026 10:46:34 +0900
Labels:           run=nginx
Annotations:      &lt;none&gt;
Status:           Running
IP:               10.244.0.5
IPs:
  IP:  10.244.0.5
Containers:
  nginx:
    Container ID:   containerd://e7921ffe7728e479ab0cd4fcc004e3b98bfb8537289a535942d25d2920ad8967
    Image:          nginx
    Image ID:       docker.io/library/nginx@sha256:b34848eff6db786b6b1282d3a9c3fd0b5563dfb6d261df4923378b419e0d24f0
    Port:           &lt;none&gt;
    Host Port:      &lt;none&gt;
    State:          Running
      Started:      Wed, 02 Sep 2026 10:46:44 +0900
    Ready:          True
    Restart Count:  0
    Environment:    &lt;none&gt;
    Mounts:
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-r6x7t (ro)
Conditions:
  Type                        Status
  PodReadyToStartContainers   True
  Initialized                 True
  Ready                       True
  ContainersReady             True
  PodScheduled                True
Volumes:
  kube-api-access-r6x7t:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    Optional:                false
    DownwardAPI:             true
QoS Class:                   BestEffort
Node-Selectors:              &lt;none&gt;
Tolerations:                 node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
Events:
  Type    Reason     Age    From               Message
  ----    ------     ----   ----               -------
  Normal  Scheduled  2m26s  default-scheduler  Successfully assigned default/nginx to study-control-plane
  Normal  Pulling    2m26s  kubelet            spec.containers{nginx}: Pulling image &quot;nginx&quot;
  Normal  Pulled     2m16s  kubelet            spec.containers{nginx}: Successfully pulled image &quot;nginx&quot; in 9.876s (9.877s including waiting). Image size: 63348835 bytes.
  Normal  Created    2m16s  kubelet            spec.containers{nginx}: Container created
  Normal  Started    2m16s  kubelet            spec.containers{nginx}: Container started</code></pre></div>



<p class="wp-block-paragraph">Podのログを見るには以下のコマンドを利用します</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>kubectl logs nginx
↓
/docker-entrypoint.sh: /docker-entrypoint.d/ is not empty, will attempt to perform configuration
/docker-entrypoint.sh: Looking for shell scripts in /docker-entrypoint.d/
/docker-entrypoint.sh: Launching /docker-entrypoint.d/10-listen-on-ipv6-by-default.sh
10-listen-on-ipv6-by-default.sh: info: Getting the checksum of /etc/nginx/conf.d/default.conf
10-listen-on-ipv6-by-default.sh: info: Enabled listen on IPv6 in /etc/nginx/conf.d/default.conf
/docker-entrypoint.sh: Sourcing /docker-entrypoint.d/15-local-resolvers.envsh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/20-envsubst-on-templates.sh
/docker-entrypoint.sh: Launching /docker-entrypoint.d/30-tune-worker-processes.sh
/docker-entrypoint.sh: Configuration complete; ready for start up
2026/09/02 01:46:44 [notice] 1#1: using the &quot;epoll&quot; event method
2026/09/02 01:46:44 [notice] 1#1: nginx/1.31.4
2026/09/02 01:46:44 [notice] 1#1: built by gcc 14.2.0 (Debian 14.2.0-19)
2026/09/02 01:46:44 [notice] 1#1: OS: Linux 7.0.12-linuxkit
2026/09/02 01:46:44 [notice] 1#1: getrlimit(RLIMIT_NOFILE): 1073741816:1073741816
2026/09/02 01:46:44 [notice] 1#1: start worker processes
2026/09/02 01:46:44 [notice] 1#1: start worker process 33
2026/09/02 01:46:44 [notice] 1#1: start worker process 34
2026/09/02 01:46:44 [notice] 1#1: start worker process 35
2026/09/02 01:46:44 [notice] 1#1: start worker process 36
2026/09/02 01:46:44 [notice] 1#1: start worker process 37
2026/09/02 01:46:44 [notice] 1#1: start worker process 38
2026/09/02 01:46:44 [notice] 1#1: start worker process 39
2026/09/02 01:46:44 [notice] 1#1: start worker process 40
2026/09/02 01:46:44 [notice] 1#1: start worker process 41
2026/09/02 01:46:44 [notice] 1#1: start worker process 42
2026/09/02 01:46:44 [notice] 1#1: start worker process 43
2026/09/02 01:46:44 [notice] 1#1: start worker process 44</code></pre></div>



<p class="wp-block-paragraph">現在の設定ではクラスタ内部用のIPしか設定されていないため直接アクセスができない<br>Docker Composeと同じ用にポートフォワードを設定して外部からアクセスできるようにします</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>kubectl port-forward pod/nginx 8080:80
↓
Forwarding from 127.0.0.1:8080 -&gt; 80
Forwarding from [::1]:8080 -&gt; 80</code></pre></div>



<p class="wp-block-paragraph">コマンド自体はフォアグラウンドで起動するため、バックグランドで起動するか、もう一つターミナルを立ち上げて実行するのが良さそうです</p>



<p class="wp-block-paragraph">上記コマンド実行後、ブラウザの8080にアクセスします</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1016" height="703" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/スクリーンショット-2026-09-02-10.59.21.png" alt="" class="wp-image-2124" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/スクリーンショット-2026-09-02-10.59.21.png 1016w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/スクリーンショット-2026-09-02-10.59.21-300x208.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/09/スクリーンショット-2026-09-02-10.59.21-767x531.png 767w" sizes="auto, (max-width: 1016px) 100vw, 1016px" /></figure>



<p class="wp-block-paragraph">無事にウェルカムページが表示されました!</p>



<p class="wp-block-paragraph">もう一度、nginxのログを確認してみます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>kubectl logs nginx
↓
34#34: *2 open() &quot;/usr/share/nginx/html/tools&quot; failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: &quot;GET /tools HTTP/1.1&quot;, host: &quot;localhost:8080&quot;, referrer: &quot;http://localhost:8080/&quot;
127.0.0.1 - - [02/Sep/2026:01:58:42 +0000] &quot;GET /tools HTTP/1.1&quot; 404 555 &quot;http://localhost:8080/&quot; &quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36&quot; &quot;-&quot;
127.0.0.1 - - [02/Sep/2026:01:58:43 +0000] &quot;GET /build.json HTTP/1.1&quot; 404 555 &quot;http://localhost:8080/&quot; &quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36&quot; &quot;-&quot;
2026/09/02 01:58:43 [error] 35#35: *3 open() &quot;/usr/share/nginx/html/build.json&quot; failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: &quot;GET /build.json HTTP/1.1&quot;, host: &quot;localhost:8080&quot;, referrer: &quot;http://localhost:8080/&quot;
2026/09/02 01:58:43 [error] 35#35: *3 open() &quot;/usr/share/nginx/html/props&quot; failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: &quot;GET /props?autoload=false HTTP/1.1&quot;, host: &quot;localhost:8080&quot;, referrer: &quot;http://localhost:8080/&quot;
127.0.0.1 - - [02/Sep/2026:01:58:43 +0000] &quot;GET /props?autoload=false HTTP/1.1&quot; 404 555 &quot;http://localhost:8080/&quot; &quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36&quot; &quot;-&quot;
2026/09/02 01:58:43 [error] 35#35: *3 open() &quot;/usr/share/nginx/html/v1/models&quot; failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: &quot;GET /v1/models HTTP/1.1&quot;, host: &quot;localhost:8080&quot;, referrer: &quot;http://localhost:8080/&quot;
127.0.0.1 - - [02/Sep/2026:01:58:43 +0000] &quot;GET /v1/models HTTP/1.1&quot; 404 555 &quot;http://localhost:8080/&quot; &quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36&quot; &quot;-&quot;
127.0.0.1 - - [02/Sep/2026:01:58:45 +0000] &quot;GET /sw.js HTTP/1.1&quot; 404 555 &quot;http://localhost:8080/sw.js&quot; &quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36&quot; &quot;-&quot;
2026/09/02 01:58:45 [error] 35#35: *3 open() &quot;/usr/share/nginx/html/sw.js&quot; failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: &quot;GET /sw.js HTTP/1.1&quot;, host: &quot;localhost:8080&quot;, referrer: &quot;http://localhost:8080/sw.js&quot;
127.0.0.1 - - [02/Sep/2026:01:59:05 +0000] &quot;GET / HTTP/1.1&quot; 200 896 &quot;-&quot; &quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36&quot; &quot;-&quot;
2026/09/02 01:59:05 [error] 36#36: *4 open() &quot;/usr/share/nginx/html/favicon.ico&quot; failed (2: No such file or directory), client: 127.0.0.1, server: localhost, request: &quot;GET /favicon.ico HTTP/1.1&quot;, host: &quot;localhost:8080&quot;, referrer: &quot;http://localhost:8080/&quot;
127.0.0.1 - - [02/Sep/2026:01:59:05 +0000] &quot;GET /favicon.ico HTTP/1.1&quot; 404 555 &quot;http://localhost:8080/&quot; &quot;Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/152.0.0.0 Safari/537.36&quot; &quot;-&quot;</code></pre></div>



<p class="wp-block-paragraph">サイトにアクセスした形跡が残っていますね!</p>



<h2 class="wp-block-heading">Podの削除</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>kubectl delete pod nginx
↓
pod &quot;nginx&quot; deleted from default namespace</code></pre></div>



<p class="wp-block-paragraph">Podが消えたのか確認</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>kubectl get pods
↓
No resources found in default namespace.</code></pre></div>



<p class="wp-block-paragraph">以上でPodの削除も完了です</p>



<h3 class="wp-block-heading">Claudeさんからのアドバイス</h3>



<p class="wp-block-paragraph"><strong>Podは基本的に使い捨て</strong><br>kubectl runコマンドで作成したPodは使い捨てで、消したら同じものは二度と戻ってこない<br>実運用ではDeploymentを使う(今後学習)</p>



<p class="wp-block-paragraph"><strong>port-forwardは開発時の確認用</strong><br>きちんとしたアクセス設定はServiceを利用する(今後学習予定)</p>



<p class="wp-block-paragraph"><strong>describeとlogsの使い分け</strong><br>describe:Podsが起動しないときの原因調査用(Eventsを確認する)<br>logs:Pods起動後に何が起きているかの確認用(アクセスやアプリケーションエラーなど)</p>



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



<p class="wp-block-paragraph">ということで、k8s入門ということで環境設定からnginx起動までをやってみました<br>今後はDeploymentやServiceと言った、より本番運用に役立てられるような部分を勉強していきたいです</p>


<div id="rinkerid2126" class="yyi-rinker-contents  yyi-rinker-postid-2126 yyi-rinker-img-m yyi-rinker-catid-6 yyi-rinker-catid-1 ">
	<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%2FKubernetes%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/9795/9784295009795.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%2FKubernetes%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow">Kubernetes完全ガイド 第2版 （top gear） [ 青山真也 ]</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">
							</div>
						</div>
						<ul class="yyi-rinker-links">
																                    <li class="amazonlink">
						<a href="https://www.amazon.co.jp/gp/search?ie=UTF8&amp;keywords=Kubernetes&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%2FKubernetes%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%3DKubernetes" 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/k8s%e3%82%af%e3%83%90%e3%83%8d%e3%83%86%e3%82%a3%e3%82%b9%e3%82%92%e8%a7%a6%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b-%e3%81%9d%e3%81%ae1%e7%92%b0%e5%a2%83%e6%a7%8b%e7%af%89%e3%80%9cnginx%e5%88%9d/">k8s(クバネティス)を触ってみる その1:環境構築〜nginx初期ページ表示まで</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sheltie-garage.xyz/tech/2026/09/k8s%e3%82%af%e3%83%90%e3%83%8d%e3%83%86%e3%82%a3%e3%82%b9%e3%82%92%e8%a7%a6%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b-%e3%81%9d%e3%81%ae1%e7%92%b0%e5%a2%83%e6%a7%8b%e7%af%89%e3%80%9cnginx%e5%88%9d/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>OWASP ZAPを使ってみる</title>
		<link>https://sheltie-garage.xyz/tech/2026/08/owasp-zap%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/</link>
					<comments>https://sheltie-garage.xyz/tech/2026/08/owasp-zap%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/#respond</comments>
		
		<dc:creator><![CDATA[monodon]]></dc:creator>
		<pubDate>Mon, 31 Aug 2026 06:24:55 +0000</pubDate>
				<category><![CDATA[インフラ]]></category>
		<guid isPermaLink="false">https://sheltie-garage.xyz/tech/?p=2105</guid>

					<description><![CDATA[<p>OSSで利用できる脆弱性スキャンツール「OWASP ZAP (現ZAP By Checkmarkx)」を使ってみます公式サイトはこちらhttps://www.zaproxy.org/ 実行環境は・MacBookPro 2 [&#8230;]</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/08/owasp-zap%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/">OWASP ZAPを使ってみる</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">OSSで利用できる脆弱性スキャンツール「OWASP ZAP (現ZAP By Checkmarkx)」を使ってみます<br>公式サイトはこちら<br><a href="https://www.zaproxy.org/">https://www.zaproxy.org/</a></p>



<p class="wp-block-paragraph">実行環境は<br>・MacBookPro 2019(Intel Mac)<br>・ローカルで実行しているWebサイトに対して実行</p>



<h2 class="wp-block-heading">まずはインストール</h2>



<p class="wp-block-paragraph">ダウンロードページから自身の環境に合ったバイナリをダウンロードします<br><a href="https://www.zaproxy.org/download/">https://www.zaproxy.org/download/</a></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="918" height="607" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_001.png" alt="" class="wp-image-2106" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_001.png 918w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_001-300x198.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_001-767x507.png 767w" sizes="auto, (max-width: 918px) 100vw, 918px" /></figure>



<p class="wp-block-paragraph">自分の環境では「macOS(Intel &#8211; amd64)」が該当するため、ダウンロードしてインストールを行いました</p>



<p class="wp-block-paragraph">初回起動時、安全が確認できないという警告が表示されるため、設定から開きます</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="528" height="584" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_002.png" alt="" class="wp-image-2107" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_002.png 528w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_002-271x300.png 271w" sizes="auto, (max-width: 528px) 100vw, 528px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="600" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_003-1024x600.png" alt="" class="wp-image-2108" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_003-1024x600.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_003-300x176.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_003-767x449.png 767w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_003.png 1414w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">起動後、セッションと拡張機能の更新が表示されますが、今回は<br>・セッションは保持しない<br>・アドオンは何もせず閉じる<br>としました(お試しのため)</p>



<figure class="wp-block-gallery has-nested-images columns-default is-cropped wp-block-gallery-1 is-layout-flex wp-block-gallery-is-layout-flex">
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="766" data-id="2110" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_004-1024x766.png" alt="" class="wp-image-2110" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_004-1024x766.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_004-300x225.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_004-767x574.png 767w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_004-1536x1150.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_004.png 1614w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1012" height="1024" data-id="2109" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_005-1012x1024.png" alt="" class="wp-image-2109" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_005-1012x1024.png 1012w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_005-296x300.png 296w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_005-768x777.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_005-1517x1536.png 1517w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_005.png 1794w" sizes="auto, (max-width: 1012px) 100vw, 1012px" /></figure>
</figure>



<h2 class="wp-block-heading">早速スキャンしてみる</h2>



<p class="wp-block-paragraph">早速スキャンしてみましょう<br>今回はローカル環境に起動させた自作Webアプリをスキャンしてみます</p>



<p class="wp-block-paragraph">ZAPを起動すると「クイックスタート」タブがデフォルトで選択されているはずです<br>その中の自動スキャンをクリックします</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="620" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_006-1024x620.png" alt="" class="wp-image-2111" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_006-1024x620.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_006-300x182.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_006-767x464.png 767w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_006-1536x930.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_006-2048x1240.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">今回はローカル環境に立ち上げたWebサイトに対してチェックを行います</p>



<p class="has-vivid-red-color has-text-color has-link-color has-medium-font-size wp-elements-3 wp-block-paragraph"><strong>脆弱性チェックの際、実際に指定したサイトに攻撃を行うため、自身の所有していないサイトに対して使用しないでください</strong></p>



<p class="has-vivid-red-color has-text-color has-link-color wp-elements-4 wp-block-paragraph"><strong>また、テストの過程でテストデータがDBに登録される可能性もあるため、実行環境には留意が必要です</strong></p>



<p class="wp-block-paragraph">攻撃ボタンを押すと、実際にチェックが走ります</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="422" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_007-1024x422.png" alt="" class="wp-image-2112" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_007-1024x422.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_007-300x124.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_007-766x316.png 766w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_007-1536x634.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_007.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">実行後は自動でブラウザが立ち上がりつつ、テストが実施されます</p>



<h2 class="wp-block-heading">テストの終了</h2>



<p class="wp-block-paragraph">テストが完了すると、アラートとして検出された脆弱性一覧が表示されます</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="624" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_008-1024x624.png" alt="" class="wp-image-2113" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_008-1024x624.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_008-300x183.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_008-768x468.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_008-1536x936.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/08/20260831_008-2048x1248.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">アラート一覧に検出された脆弱性一覧が表示されます<br>もちろん、すべての項目に対処が必要というわけではなく、「疑いのあるもの」も検出されるため、対応判断は一つ一つ行う必要がありそうでした<br>(上記画像の例では、座標がクレカ番号と認識され、情報漏洩の疑いが指摘されている)</p>



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



<p class="wp-block-paragraph">ということで、OWASP ZAPを利用した脆弱性テストの紹介を行いました<br>とりあえず簡易スキャンを実行するだけであれば、難しい設定も必要とせずシンプルに使うことができました</p>



<p class="wp-block-paragraph">CIにも組み込むことができるようなので、GitHub Actionなどのパイプラインに組み込めば、リリース前の脆弱性チェックの自動化も行えそうですね</p>



<p class="wp-block-paragraph">昨今はAIの進化により、Webアプリのセキュリティの重要性も増しているため、このようなツールを活用して脆弱性を潰していきたいと思います</p>


<div id="rinkerid2117" class="yyi-rinker-contents  yyi-rinker-postid-2117 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%2Fowasp%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/rakutenkobo-ebooks/cabinet/5976/2000020545976.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%2Fowasp%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow">OWASP for LLM Apps A Practical Security Checklist for GenAI Product Teams【電子書籍】[ Trex Team ]</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">¥1,568</span>
															<span class="price_at">(2026/10/30 12:06:56時点&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=owasp&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%2Fowasp%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%3Dowasp" 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="rinkerid2115" class="yyi-rinker-contents  yyi-rinker-postid-2115 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%2FOWASP%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/rakutenkobo-ebooks/cabinet/8511/2000010348511.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%2FOWASP%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow">OWASP ZAPとGitHub Actionsで自動化する脆弱性診断 【電子書籍】[ 松本 隆則 ]</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">¥1,980</span>
															<span class="price_at">(2026/10/30 12:06:56時点&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=OWASP&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%2FOWASP%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%3DOWASP" 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/08/owasp-zap%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/">OWASP ZAPを使ってみる</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sheltie-garage.xyz/tech/2026/08/owasp-zap%e3%82%92%e4%bd%bf%e3%81%a3%e3%81%a6%e3%81%bf%e3%82%8b/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>モダンクラウド演習：AzureにWordPressのCDを構築する</title>
		<link>https://sheltie-garage.xyz/tech/2026/07/%e3%83%a2%e3%83%80%e3%83%b3%e3%82%af%e3%83%a9%e3%82%a6%e3%83%89%e6%bc%94%e7%bf%92%ef%bc%9aazure/</link>
					<comments>https://sheltie-garage.xyz/tech/2026/07/%e3%83%a2%e3%83%80%e3%83%b3%e3%82%af%e3%83%a9%e3%82%a6%e3%83%89%e6%bc%94%e7%bf%92%ef%bc%9aazure/#respond</comments>
		
		<dc:creator><![CDATA[monodon]]></dc:creator>
		<pubDate>Wed, 29 Jul 2026 11:56:50 +0000</pubDate>
				<category><![CDATA[インフラ]]></category>
		<guid isPermaLink="false">https://sheltie-garage.xyz/tech/?p=2004</guid>

					<description><![CDATA[<p>AWS、GCPと比較してイマイチ存在感の薄いAzureとはいえ、3大クラウド(だと思っている)の一翼を担うクラウドと言うことで、同じ用にWordpressのCDを構築してみます リソースグループを作成 Azureではリソ [&#8230;]</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/07/%e3%83%a2%e3%83%80%e3%83%b3%e3%82%af%e3%83%a9%e3%82%a6%e3%83%89%e6%bc%94%e7%bf%92%ef%bc%9aazure/">モダンクラウド演習：AzureにWordPressのCDを構築する</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">AWS、GCPと比較してイマイチ存在感の薄いAzure<br>とはいえ、3大クラウド(だと思っている)の一翼を担うクラウドと言うことで、同じ用にWordpressのCDを構築してみます</p>



<h2 class="wp-block-heading">リソースグループを作成</h2>



<p class="wp-block-paragraph">Azureではリソースグループという単位で管理を行うようなので、まずはリソースグループを作成します</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="594" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/001_resource_group_001-1024x594.png" alt="" class="wp-image-2005" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/001_resource_group_001-1024x594.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/001_resource_group_001-300x174.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/001_resource_group_001-768x445.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/001_resource_group_001.png 1162w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="651" height="412" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/001_resource_group_002.png" alt="" class="wp-image-2006" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/001_resource_group_002.png 651w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/001_resource_group_002-300x190.png 300w" sizes="auto, (max-width: 651px) 100vw, 651px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="767" height="368" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/001_resource_group_003.png" alt="" class="wp-image-2007" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/001_resource_group_003.png 767w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/001_resource_group_003-300x144.png 300w" sizes="auto, (max-width: 767px) 100vw, 767px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="973" height="394" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/001_resource_group_004.png" alt="" class="wp-image-2008" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/001_resource_group_004.png 973w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/001_resource_group_004-300x121.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/001_resource_group_004-768x311.png 768w" sizes="auto, (max-width: 973px) 100vw, 973px" /></figure>



<p class="wp-block-paragraph">リソースグループが作成されました</p>



<h2 class="wp-block-heading">AppServiceを作成する</h2>



<p class="wp-block-paragraph">AWSやGCPでは仮想マシンを作成しLEMP環境を作成しましたが、AzureではPaaSを利用します(無料プランの関係で)<br>PaaSのため、PHPやNginXと言ったWordpressを動かすための環境が整っている状態となります</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="331" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/002_app_service_001-1024x331.png" alt="" class="wp-image-2009" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/002_app_service_001-1024x331.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/002_app_service_001-300x97.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/002_app_service_001-768x248.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/002_app_service_001.png 1195w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="493" height="320" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/002_app_service_002.png" alt="" class="wp-image-2010" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/002_app_service_002.png 493w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/002_app_service_002-300x195.png 300w" sizes="auto, (max-width: 493px) 100vw, 493px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="768" height="747" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/002_app_service_003.png" alt="" class="wp-image-2011" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/002_app_service_003.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/002_app_service_003-300x292.png 300w" sizes="auto, (max-width: 768px) 100vw, 768px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="807" height="844" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/002_app_service_004.png" alt="" class="wp-image-2012" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/002_app_service_004.png 807w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/002_app_service_004-287x300.png 287w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/002_app_service_004-768x803.png 768w" sizes="auto, (max-width: 807px) 100vw, 807px" /></figure>



<h2 class="wp-block-heading">CIの設定</h2>



<p class="wp-block-paragraph">CIを設定します<br>MicrosoftがGitHubを買収したことで、他クラウド(AWS、GCP)よりも親和性が高いように感じました</p>



<p class="wp-block-paragraph">作成したサービスで以下の設定を行います<br>SCM基本認証の発行資格情報→チェック<br>FTP基本認証の発行資格情報→チェック</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="830" height="303" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_001-1.png" alt="" class="wp-image-2014" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_001-1.png 830w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_001-1-300x110.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_001-1-768x280.png 768w" sizes="auto, (max-width: 830px) 100vw, 830px" /></figure>



<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/07/003_ci_002-1024x415.png" alt="" class="wp-image-2015" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_002-1024x415.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_002-300x122.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_002-768x311.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_002.png 1285w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1014" height="535" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_003.png" alt="" class="wp-image-2016" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_003.png 1014w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_003-300x158.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_003-768x405.png 768w" sizes="auto, (max-width: 1014px) 100vw, 1014px" /></figure>



<p class="wp-block-paragraph">次にGitHub側で設定を行います</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1003" height="626" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_004.png" alt="" class="wp-image-2017" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_004.png 1003w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_004-300x187.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_004-768x479.png 768w" sizes="auto, (max-width: 1003px) 100vw, 1003px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="522" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_005-1024x522.png" alt="" class="wp-image-2018" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_005-1024x522.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_005-300x153.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_005-768x391.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_005.png 1246w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">環境変数の設定は以下のとおりです</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>AZURE_WEBAPP_PUBLISH_PROFILE	
→.PublishSettingsの中身をまるごと貼り付け

AZURE_WEBAPP_NAME
→App Serviceの名前</code></pre></div>



<p class="wp-block-paragraph">.PublishSettingsは、AppServiceの「発行プロファイルのダウンロード」でダウンロードできます</p>



<p class="wp-block-paragraph">GitHubのリポジトリの構成は以下のようになっています</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="929" height="642" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260729.png" alt="" class="wp-image-2019" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260729.png 929w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260729-300x207.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260729-768x531.png 768w" sizes="auto, (max-width: 929px) 100vw, 929px" /></figure>



<p class="wp-block-paragraph">GIthub Workflowは以下の内容で作成しました</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>name: Deploy to Azure App Service

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Deploy to Azure App Service
        uses: azure/webapps-deploy@v2
        with:
          app-name: ${{ secrets.AZURE_WEBAPP_NAME }}
          publish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
          package: .</code></pre></div>



<p class="wp-block-paragraph">GitHubにプッシュすると、CDが動くはずです</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="333" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_006-1-1024x333.png" alt="" class="wp-image-2021" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_006-1-1024x333.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_006-1-300x98.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_006-1-768x250.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/003_ci_006-1.png 1526w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">DBセットアップ</h2>



<p class="wp-block-paragraph">WordPress用DBのセットアップを行います<br>AzureだとMySQLフレキシブルサーバーという機能を使います</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="615" height="357" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_001.png" alt="" class="wp-image-2022" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_001.png 615w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_001-300x174.png 300w" sizes="auto, (max-width: 615px) 100vw, 615px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="880" height="509" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_002-1.png" alt="" class="wp-image-2024" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_002-1.png 880w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_002-1-300x174.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_002-1-768x444.png 768w" sizes="auto, (max-width: 880px) 100vw, 880px" /></figure>



<p class="wp-block-paragraph">以下の設定で作成しました<br>(管理者のログイン　の項目がパスワードぽくなっていますが、ここには管理ユーザーIDを指定します)</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="565" height="827" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_003.png" alt="" class="wp-image-2025" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_003.png 565w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_003-205x300.png 205w" sizes="auto, (max-width: 565px) 100vw, 565px" /></figure>



<p class="wp-block-paragraph">以下の設定を行い、Azure内のサービスから接続できるようにしておきます</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="764" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_004-1024x764.png" alt="" class="wp-image-2026" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_004-1024x764.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_004-300x224.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_004-768x573.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_004.png 1098w" 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="330" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_005-1024x330.png" alt="" class="wp-image-2027" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_005-1024x330.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_005-300x97.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_005-768x247.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_005-1536x494.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_005-2048x659.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">WordPress用のデータベースを作成しておきます</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
SHOW DATABASES;
EXIT;</code></pre></div>



<h2 class="wp-block-heading">トラブル対応</h2>



<p class="wp-block-paragraph">以上の設定でWordpressがインストールできるはずですが、アクセスしたところCSSが適用されておらず、インストールにも失敗しました</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="637" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_006-1024x637.png" alt="" class="wp-image-2028" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_006-1024x637.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_006-300x187.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_006-768x477.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/004_db_006.png 1031w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">wp-config.phpに以下の設定を行うことで解決できました</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="627" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/007_wordpress_001-1024x627.png" alt="" class="wp-image-2029" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/007_wordpress_001-1024x627.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/007_wordpress_001-300x184.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/007_wordpress_001-768x471.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/007_wordpress_001-1536x941.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/007_wordpress_001.png 1668w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



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



<p class="wp-block-paragraph">ということで、簡単ですがAzureでCDを設定したときのメモでした<br>AWS、GCPと比較して、UI周りが使いにくい印象・・・<br>このご時世、メニューも文字化けしてますしね</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="273" height="200" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/008_mojibake_001.png" alt="" class="wp-image-2030"/></figure>



<p class="wp-block-paragraph">CD自体は簡単に設定できるのは良いと思いますが、仕事以外で使うことは、無いかなぁ・・・</p>


<div id="rinkerid2031" class="yyi-rinker-contents  yyi-rinker-postid-2031 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%2FAzure%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8609/9784296208609_1_31.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%2FAzure%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow">Azureクラウド設計完全ガイド 最適なサービスを選定して組み合わせる [ アクセンチュア株式会社　山川 美佐代 ]</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">
							</div>
						</div>
						<ul class="yyi-rinker-links">
																                    <li class="amazonlink">
						<a href="https://www.amazon.co.jp/gp/search?ie=UTF8&amp;keywords=Azure&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%2FAzure%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%3DAzure" 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="rinkerid2032" class="yyi-rinker-contents  yyi-rinker-postid-2032 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%2FAzure%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/0103/9784295020103_1_3.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%2FAzure%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow">Azureネットワーク設計・構築入門　基礎知識から利用シナリオ、設計・運用ベストプラクティスまで [ 山本 学 ]</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,520</span>
															<span class="price_at">(2026/10/30 12:06:57時点&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=Azure&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%2FAzure%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%3DAzure" 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/07/%e3%83%a2%e3%83%80%e3%83%b3%e3%82%af%e3%83%a9%e3%82%a6%e3%83%89%e6%bc%94%e7%bf%92%ef%bc%9aazure/">モダンクラウド演習：AzureにWordPressのCDを構築する</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sheltie-garage.xyz/tech/2026/07/%e3%83%a2%e3%83%80%e3%83%b3%e3%82%af%e3%83%a9%e3%82%a6%e3%83%89%e6%bc%94%e7%bf%92%ef%bc%9aazure/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>モダンクラウド演習：GCPでCloudBuildを利用してWordPressを設置するまで</title>
		<link>https://sheltie-garage.xyz/tech/2026/07/%e3%83%a2%e3%83%80%e3%83%b3%e3%82%af%e3%83%a9%e3%82%a6%e3%83%89%e6%bc%94%e7%bf%92%ef%bc%9agcp%e3%81%a7cloudbuild%e3%82%92%e5%88%a9%e7%94%a8%e3%81%97%e3%81%a6wordpress%e3%82%92%e8%a8%ad%e7%bd%ae/</link>
					<comments>https://sheltie-garage.xyz/tech/2026/07/%e3%83%a2%e3%83%80%e3%83%b3%e3%82%af%e3%83%a9%e3%82%a6%e3%83%89%e6%bc%94%e7%bf%92%ef%bc%9agcp%e3%81%a7cloudbuild%e3%82%92%e5%88%a9%e7%94%a8%e3%81%97%e3%81%a6wordpress%e3%82%92%e8%a8%ad%e7%bd%ae/#respond</comments>
		
		<dc:creator><![CDATA[monodon]]></dc:creator>
		<pubDate>Tue, 21 Jul 2026 02:33:15 +0000</pubDate>
				<category><![CDATA[インフラ]]></category>
		<guid isPermaLink="false">https://sheltie-garage.xyz/tech/?p=1942</guid>

					<description><![CDATA[<p>はじめに モダンクラウド演習第二弾として、GCPを利用してCIを設定の設定を行いましたGCPはAWSに次ぐシェア2位のクラウドサービスになります 比較しやすいように今回もWordpressのCD環境を構築しますGCPにも [&#8230;]</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/07/%e3%83%a2%e3%83%80%e3%83%b3%e3%82%af%e3%83%a9%e3%82%a6%e3%83%89%e6%bc%94%e7%bf%92%ef%bc%9agcp%e3%81%a7cloudbuild%e3%82%92%e5%88%a9%e7%94%a8%e3%81%97%e3%81%a6wordpress%e3%82%92%e8%a8%ad%e7%bd%ae/">モダンクラウド演習：GCPでCloudBuildを利用してWordPressを設置するまで</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">はじめに</h2>



<p class="wp-block-paragraph">モダンクラウド演習第二弾として、GCPを利用してCIを設定の設定を行いました<br>GCPはAWSに次ぐシェア2位のクラウドサービスになります</p>



<p class="wp-block-paragraph">比較しやすいように今回もWordpressのCD環境を構築します<br>GCPにもAWSのCodeDeployのような機能が用意されていますが、設定方法はAWSとはかなり異なるものとなっています<br>ぜひ、前回の記事「<a href="https://sheltie-garage.xyz/tech/2026/07/%e3%83%a2%e3%83%80%e3%83%b3%e3%82%af%e3%83%a9%e3%82%a6%e3%83%89%e6%bc%94%e7%bf%92%ef%bc%9aaws%e3%81%a7codedeploy%e3%82%92%e5%88%a9%e7%94%a8%e3%81%97%e3%81%a6wordpress%e3%82%92%e8%a8%ad%e7%bd%ae/">モダンクラウド演習：AWSでCodeDeployを利用してWordPressを設置するまで</a>」と比較しながら読んでいただければと思います</p>



<h2 class="wp-block-heading">管理コンソールでのプロジェクト設定</h2>



<p class="wp-block-paragraph">GCPではプロジェクトという単位で管理するため、wordpressのCD用のプロジェクトを作成します</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="548" height="434" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/gcp_001.png" alt="" class="wp-image-1943" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/gcp_001.png 548w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/gcp_001-300x238.png 300w" sizes="auto, (max-width: 548px) 100vw, 548px" /></figure>



<h2 class="wp-block-heading">IAMの設定</h2>



<p class="wp-block-paragraph">作業用にサービスアカウントを設定します<br>GCPはGoogleアカウントで利用もできますが、ロールが「オーナー」となっているため、権限が強すぎます</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="568" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/iam_001-1024x568.png" alt="" class="wp-image-1944" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/iam_001-1024x568.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/iam_001-300x166.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/iam_001-768x426.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/iam_001.png 1116w" 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="756" height="414" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/iam_002.png" alt="" class="wp-image-1945" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/iam_002.png 756w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/iam_002-300x164.png 300w" sizes="auto, (max-width: 756px) 100vw, 756px" /></figure>



<p class="wp-block-paragraph">項目は以下として、他はデフォルトとしました</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>項目値サービスアカウント名:main-operator
サービスアカウントID:自動入力でOK
説明:任意
権限：編集者
アクセス権を持つプリンシバル：未入力</code></pre></div>



<h2 class="wp-block-heading">Compute Engineの作成</h2>



<p class="wp-block-paragraph">VMインスタンスを作成します</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="562" height="359" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ce_001.png" alt="" class="wp-image-1946" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ce_001.png 562w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ce_001-300x192.png 300w" sizes="auto, (max-width: 562px) 100vw, 562px" /></figure>



<p class="wp-block-paragraph">以下の設定を行い、他はデフォルトとしました</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1001" height="570" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ce_002.png" alt="" class="wp-image-1947" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ce_002.png 1001w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ce_002-300x171.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ce_002-768x437.png 768w" sizes="auto, (max-width: 1001px) 100vw, 1001px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1021" height="649" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ce_003.png" alt="" class="wp-image-1948" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ce_003.png 1021w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ce_003-300x191.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ce_003-768x488.png 768w" sizes="auto, (max-width: 1021px) 100vw, 1021px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1001" height="630" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ce_004.png" alt="" class="wp-image-1949" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ce_004.png 1001w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ce_004-300x189.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ce_004-768x483.png 768w" sizes="auto, (max-width: 1001px) 100vw, 1001px" /></figure>



<h2 class="wp-block-heading">作成したVMマシンへSSH接続してみる</h2>



<p class="wp-block-paragraph">GCPではブラウザ上から手軽にSSH接続が行えます</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="640" height="394" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ce_005.png" alt="" class="wp-image-1950" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ce_005.png 640w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ce_005-300x185.png 300w" sizes="auto, (max-width: 640px) 100vw, 640px" /></figure>



<h2 class="wp-block-heading">LEMP環境を作成する</h2>



<p class="wp-block-paragraph">以下のコマンドでLEMP(Linux, NginX, MariaDB, PHP)環境を作成しました<br>(ちなみにphp^fpmはバージョン番号まで指定する必要があり、次の手順で修正版を載せています)</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>sudo apt update && sudo apt upgrade -y

sudo apt install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx

sudo apt install -y php php-fpm php-mysql php-gd php-xml php-mbstring php-json php-curl
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

sudo apt install -y mariadb-server
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo mysql_secure_installation</code></pre></div>



<p class="wp-block-paragraph">php-fpmのインストール(修正版)は以下になります</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>php -v
sudo systemctl list-units | grep php

sudo systemctl start php8.4-fpm
sudo systemctl enable php8.4-fpm</code></pre></div>



<p class="wp-block-paragraph">MariaDBのインストールは以下のように実行しました</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>/usr/bin/mariadb-secure-installation

NOTE: MariaDB is secure by default in Debian. Running this script is
      useless at best, and misleading at worst. This script will be
      removed in a future MariaDB release in Debian. Please read
      /usr/share/doc/mariadb-server/README.Debian.gz for details.

Enter root user password or leave blank:

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer &#39;n&#39;.

Switch to unix_socket authentication [Y/n] 
Enabled successfully (or at least no errors was emitted)!
Reloading privilege tables..
 ... Success!


You already have your root account protected, so you can safely answer &#39;n&#39;.

Change the root password? [Y/n] 
New password: &lt;パスワードを入力&gt;
Re-enter new password: &lt;パスワードを入力&gt;
Password updated successfully!
Reloading privilege tables..
 ... Success!


By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] 
SQL executed without errors!
The operation might have been successful, or it might have not done anything.

Normally, root should only be allowed to connect from &#39;localhost&#39;.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] 
SQL executed without errors!
The operation might have been successful, or it might have not done anything.

By default, MariaDB comes with a database named &#39;test&#39; that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] 
 - Dropping test database...
SQL executed without errors!
The operation might have been successful, or it might have not done anything.
 - Removing privileges on test database...
SQL executed without errors!
The operation might have been successful, or it might have not done anything.

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] 
 ... Success!

Cleaning up...

All done!  If you&#39;ve completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!</code></pre></div>



<h2 class="wp-block-heading">WordPressを設置</h2>



<p class="wp-block-paragraph">WordPressの設置を行います<br>まずは準備として、MariaDBにデータベースを作成します</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>sudo mariadb -u root -p

CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER &#39;wpuser&#39;@&#39;localhost&#39; IDENTIFIED BY &#39;パスワード&#39;;
GRANT ALL PRIVILEGES ON wordpress.* TO &#39;wpuser&#39;@&#39;localhost&#39;;
FLUSH PRIVILEGES;
EXIT;</code></pre></div>



<p class="wp-block-paragraph">WordPress本体を設置します</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
sudo mv wordpress /var/www/html/
sudo chown -R www-data:www-data /var/www/html/wordpress</code></pre></div>



<p class="wp-block-paragraph">設定ファイルを作成します</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>sudo vi /etc/nginx/sites-available/wordpress

server {
    listen 80;
    server_name _;

    root /var/www/html/wordpress;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.4-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}</code></pre></div>



<p class="wp-block-paragraph">NginXのデフォルト設定を無効化し、Wordpressの設定を有効化</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>sudo ln -s /etc/nginx/sites-available/wordpress /etc/nginx/sites-enabled/
sudo rm /etc/nginx/sites-enabled/default</code></pre></div>



<p class="wp-block-paragraph">NginXをリロードして設定を反映</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>sudo nginx -t
sudo systemctl reload nginx</code></pre></div>



<p class="wp-block-paragraph">上記設定後、VMのIPアドレスにアクセスすることでWordpressのインストール画面が表示されます</p>



<p class="wp-block-paragraph">以下はWordpressの設定例です</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="776" height="821" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/wp_001.png" alt="" class="wp-image-1951" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/wp_001.png 776w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/wp_001-284x300.png 284w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/wp_001-768x813.png 768w" sizes="auto, (max-width: 776px) 100vw, 776px" /></figure>



<h2 class="wp-block-heading">Cloud Buildの設定</h2>



<p class="wp-block-paragraph">Cloud Buildを利用するため、以下のAPIを有効化しました<br>・Cloud Build API<br>・Compute Engine API<br>・Secret Manager API</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="914" height="820" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_001.png" alt="" class="wp-image-1952" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_001.png 914w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_001-300x269.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_001-768x689.png 768w" sizes="auto, (max-width: 914px) 100vw, 914px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="487" height="319" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_002.png" alt="" class="wp-image-1953" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_002.png 487w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_002-300x197.png 300w" sizes="auto, (max-width: 487px) 100vw, 487px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="580" height="300" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/compute_engine_001.png" alt="" class="wp-image-1954" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/compute_engine_001.png 580w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/compute_engine_001-300x155.png 300w" sizes="auto, (max-width: 580px) 100vw, 580px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="720" height="337" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/compute_engine_002.png" alt="" class="wp-image-1955" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/compute_engine_002.png 720w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/compute_engine_002-300x140.png 300w" sizes="auto, (max-width: 720px) 100vw, 720px" /></figure>



<h2 class="wp-block-heading">Git Repository準備</h2>



<p class="wp-block-paragraph">以下の構成としました<br>wordpressのファイル群 + cloudbuild.yaml(cloud build構成ファイル)になっています</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1022" height="1024" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/スクリーンショット-2026-07-21-10.48.12-1022x1024.png" alt="" class="wp-image-1956" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/スクリーンショット-2026-07-21-10.48.12-1022x1024.png 1022w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/スクリーンショット-2026-07-21-10.48.12-300x300.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/スクリーンショット-2026-07-21-10.48.12-150x150.png 150w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/スクリーンショット-2026-07-21-10.48.12-768x770.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/スクリーンショット-2026-07-21-10.48.12-1533x1536.png 1533w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/スクリーンショット-2026-07-21-10.48.12-600x600.png 600w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/スクリーンショット-2026-07-21-10.48.12.png 1840w" sizes="auto, (max-width: 1022px) 100vw, 1022px" /></figure>



<p class="wp-block-paragraph">cloudbuild.yamlの内容は以下としました<br>(当初の設定ではwordpressをzip圧縮せずClaudStorageにアップしていましたが、ファイル数が多すぎて時間がかかったため、zip圧縮してからアップロードを行っています)</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>steps:
  # zipに圧縮してアップロード
  - name: &quot;gcr.io/cloud-builders/gsutil&quot;
    entrypoint: &quot;bash&quot;
    args:
      - &quot;-c&quot;
      - |
        zip -r wordpress.zip . -x &quot;*.git*&quot;
        gsutil cp wordpress.zip gs://&lt;後に設定するCloud Storageバケット名&gt;/wordpress.zip

  # VMにSSHしてzipを取得・展開
  - name: &quot;gcr.io/google.com/cloudsdktool/cloud-sdk&quot;
    entrypoint: &quot;bash&quot;
    args:
      - &quot;-c&quot;
      - |
        gcloud compute ssh &lt;プロジェクトID&gt;-compute@wordpress-vm \
          --zone=us-central1-a \
          --command=&quot;gsutil cp gs://&lt;後に設定するCloud Storageバケット名&gt;/wordpress.zip /tmp/ && sudo unzip -o /tmp/wordpress.zip -d /var/www/html/wordpress && sudo chown -R www-data:www-data /var/www/html/wordpress && sudo systemctl reload nginx php8.4-fpm&quot;

options:
  logging: CLOUD_LOGGING_ONLY</code></pre></div>



<h2 class="wp-block-heading">Cloud BuildとGitHubの接続</h2>



<p class="wp-block-paragraph">GCPとGitHubを接続します<br>第一世代、第二世代があるため、第二世代で作業を行いました</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="990" height="538" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_003.png" alt="" class="wp-image-1957" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_003.png 990w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_003-300x163.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_003-768x417.png 768w" sizes="auto, (max-width: 990px) 100vw, 990px" /></figure>



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



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="863" height="918" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_005.png" alt="" class="wp-image-1959" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_005.png 863w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_005-282x300.png 282w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_005-768x817.png 768w" sizes="auto, (max-width: 863px) 100vw, 863px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="551" height="701" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_006.png" alt="" class="wp-image-1960" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_006.png 551w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_006-236x300.png 236w" sizes="auto, (max-width: 551px) 100vw, 551px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="560" height="708" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_007.png" alt="" class="wp-image-1961" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_007.png 560w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_007-237x300.png 237w" sizes="auto, (max-width: 560px) 100vw, 560px" /></figure>



<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/07/cloudbuild_008-1-1024x477.png" alt="" class="wp-image-1963" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_008-1-1024x477.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_008-1-300x140.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_008-1-768x358.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_008-1.png 1133w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">トリガー作成</h2>



<p class="wp-block-paragraph">Cloud Buildが動作するトリガーを設定します</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="740" height="485" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_015_1.png" alt="" class="wp-image-1964" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_015_1.png 740w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_015_1-300x197.png 300w" sizes="auto, (max-width: 740px) 100vw, 740px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="851" height="914" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_015_2.png" alt="" class="wp-image-1965" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_015_2.png 851w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_015_2-279x300.png 279w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_015_2-768x825.png 768w" sizes="auto, (max-width: 851px) 100vw, 851px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="551" height="622" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_015_3.png" alt="" class="wp-image-1966" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_015_3.png 551w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_015_3-266x300.png 266w" sizes="auto, (max-width: 551px) 100vw, 551px" /></figure>



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



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="633" height="819" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_015_5.png" alt="" class="wp-image-1968" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_015_5.png 633w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_015_5-232x300.png 232w" sizes="auto, (max-width: 633px) 100vw, 633px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="570" height="734" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_015_6-1.png" alt="" class="wp-image-1970" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_015_6-1.png 570w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudbuild_015_6-1-233x300.png 233w" sizes="auto, (max-width: 570px) 100vw, 570px" /></figure>



<h2 class="wp-block-heading">バケットの作成</h2>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="595" height="381" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudstorage_001.png" alt="" class="wp-image-1971" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudstorage_001.png 595w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudstorage_001-300x192.png 300w" sizes="auto, (max-width: 595px) 100vw, 595px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="590" height="873" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudstrage_002.png" alt="" class="wp-image-1972" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudstrage_002.png 590w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/cloudstrage_002-203x300.png 203w" sizes="auto, (max-width: 590px) 100vw, 590px" /></figure>



<p class="wp-block-paragraph">ここまでの設定を行えば、GitへPushすることでGCP側で検知し、自動でWordpress再配置が動きます</p>



<h2 class="wp-block-heading">終わりに</h2>



<p class="wp-block-paragraph">Cloud Buildを利用したCD環境構築の内容を紹介しました<br>AWSとGCP、どちらも似たような機能を備えていますが、利用してみて感じた印象は「GCPのほうがシンプルにまとめられている」ということです<br>例えば・・・<br>・AWSはCodeDeployを行うためにユーザーを作成したり、GitHub側にも設定が必要であったが、GCPでは不要<br>・AWSではCodeDeploy、GitHubActionの2種類の設定ファイルが必要だったが、GCPでは1種類のみ<br>・GCPのほうがGitHubリポジトリとの接続設定が容易<br>・AWSではCodeDeploy AgentをVMにインストールする必要があったが、GCPでは不要<br>となります</p>



<p class="wp-block-paragraph">手順としても、GCPのほうが設定手順は短くまとめられています</p>



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



<p class="wp-block-paragraph">簡単にですがGCPを利用したCI環境を作成してみました<br>WordPressは、最初Zip圧縮せずファイル転送していましたが、ファイル数が多すぎて30分近く経ってもビルドが終わらなかったため、zip圧縮化してから転送するようにしました<br>(そのためVMにあらかじめunzipコマンドをインストールしておく必要があります)</p>



<p class="wp-block-paragraph"></p>



<p class="wp-block-paragraph"></p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/07/%e3%83%a2%e3%83%80%e3%83%b3%e3%82%af%e3%83%a9%e3%82%a6%e3%83%89%e6%bc%94%e7%bf%92%ef%bc%9agcp%e3%81%a7cloudbuild%e3%82%92%e5%88%a9%e7%94%a8%e3%81%97%e3%81%a6wordpress%e3%82%92%e8%a8%ad%e7%bd%ae/">モダンクラウド演習：GCPでCloudBuildを利用してWordPressを設置するまで</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sheltie-garage.xyz/tech/2026/07/%e3%83%a2%e3%83%80%e3%83%b3%e3%82%af%e3%83%a9%e3%82%a6%e3%83%89%e6%bc%94%e7%bf%92%ef%bc%9agcp%e3%81%a7cloudbuild%e3%82%92%e5%88%a9%e7%94%a8%e3%81%97%e3%81%a6wordpress%e3%82%92%e8%a8%ad%e7%bd%ae/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>モダンクラウド演習：AWSでCodeDeployを利用してWordPressを設置するまで</title>
		<link>https://sheltie-garage.xyz/tech/2026/07/%e3%83%a2%e3%83%80%e3%83%b3%e3%82%af%e3%83%a9%e3%82%a6%e3%83%89%e6%bc%94%e7%bf%92%ef%bc%9aaws%e3%81%a7codedeploy%e3%82%92%e5%88%a9%e7%94%a8%e3%81%97%e3%81%a6wordpress%e3%82%92%e8%a8%ad%e7%bd%ae/</link>
					<comments>https://sheltie-garage.xyz/tech/2026/07/%e3%83%a2%e3%83%80%e3%83%b3%e3%82%af%e3%83%a9%e3%82%a6%e3%83%89%e6%bc%94%e7%bf%92%ef%bc%9aaws%e3%81%a7codedeploy%e3%82%92%e5%88%a9%e7%94%a8%e3%81%97%e3%81%a6wordpress%e3%82%92%e8%a8%ad%e7%bd%ae/#respond</comments>
		
		<dc:creator><![CDATA[monodon]]></dc:creator>
		<pubDate>Fri, 03 Jul 2026 12:15:37 +0000</pubDate>
				<category><![CDATA[インフラ]]></category>
		<guid isPermaLink="false">https://sheltie-garage.xyz/tech/?p=1790</guid>

					<description><![CDATA[<p>長らくAWSやGCPと言ったモダンクラウド環境に触れていなかったので、無職期間を利用して基本的な部分を触っておくことにしましたまずは3大クラウドで最も高いシェアを誇る「AWS」を学習ターゲットとしました学習メニューはCl [&#8230;]</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/07/%e3%83%a2%e3%83%80%e3%83%b3%e3%82%af%e3%83%a9%e3%82%a6%e3%83%89%e6%bc%94%e7%bf%92%ef%bc%9aaws%e3%81%a7codedeploy%e3%82%92%e5%88%a9%e7%94%a8%e3%81%97%e3%81%a6wordpress%e3%82%92%e8%a8%ad%e7%bd%ae/">モダンクラウド演習：AWSでCodeDeployを利用してWordPressを設置するまで</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">長らくAWSやGCPと言ったモダンクラウド環境に触れていなかったので、無職期間を利用して基本的な部分を触っておくことにしました<br>まずは3大クラウドで最も高いシェアを誇る「AWS」を学習ターゲットとしました<br>学習メニューはClaudeさんと相談し、AWSについては「<strong>EC2インスタンス作成からCodeDeployを利用してCD環境を作ってみる</strong>」ということで進めてみることにしました</p>



<h2 class="wp-block-heading">はじめに</h2>



<p class="wp-block-paragraph">本記事ではAWSの演習を目的としており、以下の実践内容を記事にしています<br>・EC2インスタンス作成<br>・AWS作業用ユーザー作成<br>・Wordpress動作環境の構築<br>・GitHub Actionの設定<br>・CodeDeployの設定</p>



<p class="wp-block-paragraph">本環境については演習後に破棄する前提で作業を進めているため、IAMの設定は多少権限が強いものを設定しています<br>あらかじめご了承ください</p>



<h2 class="wp-block-heading">最初に、請求アラートを設定</h2>



<p class="wp-block-paragraph">AWS利用において必須なのが請求アラート設定です(個人の感想)<br>これは、請求金額が一定額を超えた場合、お知らせしてくれる機能ですね<br>AWSは従量課金なので万が一使いすぎてしまった場合に多額の請求が発生することがあります<br>請求アラートを設定することで、想定外の請求金額となった場合、早めに気がつくことができます</p>



<p class="wp-block-paragraph">設定方法はAWSコンソール画面のアップデートで変更となる可能性があるので、以下の手順は2026/6時点の参考としてください</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>AWSコンソール
  → 右上のアカウント名クリック
  → 「請求とコスト管理」
  → 左メニュー「請求設定」
  → 「アラート設定」「AWS 無料利用枠アラート」にチェック
  → 保存</code></pre></div>



<p class="wp-block-paragraph">請求額はCloudewatchで監視するようなので、こちらも設定</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>AWSコンソール
　→ https://us-east-1.console.aws.amazon.com/cloudwatch/home?region=us-east-1#home:
　→ 左メニュー「アラーム」
　→ 右上「アラーム作成」
　→ メトリクスの選択で「EstimatedCharges」を選択してメトリクスを追加
　→ 条件を「静的」「しきい値以上」「3(ドル)」で次へ
　→ アラーム状態トリガー「アラーム状態」、通知の送信先:BillingCharges
　→ 名前をつける
　→ アラームの作成を押して終了</code></pre></div>



<p class="wp-block-paragraph">※AWSコンソールのURLはお使いのリージョンによって変わります<br>※しきい値はご自身の予算に合わせて設定してください</p>



<h2 class="wp-block-heading">IAMユーザーを作成する</h2>



<p class="wp-block-paragraph">通常作業用のユーザーを作成します</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="476" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_001-1-1024x476.png" alt="" class="wp-image-1794" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_001-1-1024x476.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_001-1-300x139.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_001-1-768x357.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_001-1-1536x713.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_001-1.png 1899w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">今回はあくまでCD構築に利用するユーザーとなるため、EC2のインスタンス作成/停止などが行える強めの権限を持つ「PowerUserAccess」を設定しています</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="452" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_002-1024x452.png" alt="" class="wp-image-1795" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_002-1024x452.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_002-300x132.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_002-768x339.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_002-1536x677.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_002.png 1914w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="469" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_003-1024x469.png" alt="" class="wp-image-1796" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_003-1024x469.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_003-300x137.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_003-768x352.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_003-1536x703.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_003.png 1916w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="379" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_004-1024x379.png" alt="" class="wp-image-1797" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_004-1024x379.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_004-300x111.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_004-768x284.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_004-1536x569.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_004.png 1912w" 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="294" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_005-1024x294.png" alt="" class="wp-image-1798" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_005-1024x294.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_005-300x86.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_005-768x220.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_005-1536x441.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/aws_005.png 1907w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">EC2インスタンスの作成</h2>



<p class="wp-block-paragraph">CDの実験のみ行えれば良いため、無料枠のある「t3.micro」を選択<br>(ただし、自分の場合はかなり昔にアカウントを作成し、数回使用した経験があったため無料枠はありませんでした)</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="498" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_001-1024x498.png" alt="" class="wp-image-1799" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_001-1024x498.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_001-300x146.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_001-768x374.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_001-1536x747.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_001.png 1776w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="478" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_002-1024x478.png" alt="" class="wp-image-1800" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_002-1024x478.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_002-300x140.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_002-768x358.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_002-1536x716.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_002.png 1782w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">キーペアを作成します<br>ローカルPCからターミナルを利用してSSH接続する際に必要となります</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="613" height="618" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_003.png" alt="" class="wp-image-1801" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_003.png 613w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_003-298x300.png 298w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_003-150x150.png 150w" sizes="auto, (max-width: 613px) 100vw, 613px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="503" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_004-1024x503.png" alt="" class="wp-image-1802" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_004-1024x503.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_004-300x147.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_004-768x377.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_004-1536x754.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_004.png 1770w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="504" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_005-1024x504.png" alt="" class="wp-image-1803" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_005-1024x504.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_005-300x148.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_005-768x378.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_005-1536x756.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_005.png 1772w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="502" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_006-1024x502.png" alt="" class="wp-image-1804" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_006-1024x502.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_006-300x147.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_006-768x377.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_006-1536x754.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ec_006.png 1773w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">作成したEC2インスタンスにIPを割り当てて接続できるようにします</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="440" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ip_001-1024x440.png" alt="" class="wp-image-1805" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ip_001-1024x440.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ip_001-300x129.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ip_001-768x330.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ip_001-1536x659.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ip_001.png 1803w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="462" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ip_002-1024x462.png" alt="" class="wp-image-1806" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ip_002-1024x462.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ip_002-300x135.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ip_002-768x346.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ip_002-1536x693.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ip_002.png 1911w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="402" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ip_003-1024x402.png" alt="" class="wp-image-1807" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ip_003-1024x402.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ip_003-300x118.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ip_003-768x302.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ip_003-1536x603.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/ip_003.png 1813w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">接続</h2>



<p class="wp-block-paragraph">IPアドレスが設定出来たらターミナルから接続してみます<br>AWSより接続用の鍵をローカルPCに保存し、以下のSShコマンドで接続します<br>(cdコマンドでカギ(ED25519ファイル)を保存したディレクトリに移動してください)</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>cd Project/AWS
ssh -i PersonalLern.pem ec2-user@IPアドレス</code></pre></div>



<h2 class="wp-block-heading">WordPressを設置してみる</h2>



<p class="wp-block-paragraph">まずはnginxをインストールします</p>



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

sudo dnf install -y nginx
sudo systemctl start nginx
sudo systemctl enable nginx</code></pre></div>



<p class="wp-block-paragraph">上記コマンドでNginXが起動します<br>今後httpでアクセスできるように、80ポートを開けておきます</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="346" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260629_001-1024x346.png" alt="" class="wp-image-1808" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260629_001-1024x346.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260629_001-300x102.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260629_001-768x260.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260629_001-1536x520.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260629_001.png 1788w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="308" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260629_002-1024x308.png" alt="" class="wp-image-1809" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260629_002-1024x308.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260629_002-300x90.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260629_002-768x231.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260629_002.png 1361w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">NginXが起動していれば、ウェルカム画面が表示されます</p>



<h2 class="wp-block-heading">WordPress動作環境を整える</h2>



<p class="wp-block-paragraph">PHP-FPMをインストールする</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>sudo dnf install -y php php-fpm php-mysqlnd php-gd php-xml php-mbstring php-json
sudo systemctl start php-fpm
sudo systemctl enable php-fpm</code></pre></div>



<p class="wp-block-paragraph">MariaDBをインストールします</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>sudo dnf install -y mariadb1011-server
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo mysql_secure_installation</code></pre></div>



<p class="wp-block-paragraph">MariaDBの対話セットアップは以下のように設定しました</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>[ec2-user@ip- ~]$ sudo mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we&#39;ll need the current
password for the root user. If you&#39;ve just installed MariaDB, and
haven&#39;t set the root password yet, you should just press enter here.

Enter current password for root (enter for none):
OK, successfully used password, moving on...

Setting the root password or using the unix_socket ensures that nobody
can log into the MariaDB root user without the proper authorisation.

You already have your root account protected, so you can safely answer &#39;n&#39;.

Switch to unix_socket authentication [Y/n] n
 ... skipping.

You already have your root account protected, so you can safely answer &#39;n&#39;.

Change the root password? [Y/n] n
 ... skipping.

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] Y
 ... Success!

Normally, root should only be allowed to connect from &#39;localhost&#39;.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] Y
 ... Success!

By default, MariaDB comes with a database named &#39;test&#39; that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] Y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] Y
 ... Success!

Cleaning up...

All done!  If you&#39;ve completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!</code></pre></div>



<h2 class="wp-block-heading">サービス起動確認</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>sudo systemctl status nginx
sudo systemctl status php-fpm
sudo systemctl status mariadb</code></pre></div>



<h2 class="wp-block-heading">WordPress用 DB作成</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>sudo mysql -u root -p

CREATE DATABASE wordpress CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER &#39;wpuser&#39;@&#39;localhost&#39; IDENTIFIED BY &#39;パスワード&#39;;
GRANT ALL PRIVILEGES ON wordpress.* TO &#39;wpuser&#39;@&#39;localhost&#39;;
FLUSH PRIVILEGES;
EXIT;</code></pre></div>



<h2 class="wp-block-heading">WordPress本体設置</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>cd /tmp
wget https://wordpress.org/latest.tar.gz
tar -xzf latest.tar.gz
rm -f latest.tar.gz
sudo mv wordpress /var/www/html/
sudo chown -R nginx:nginx /var/www/html/wordpress</code></pre></div>



<h2 class="wp-block-heading">NginX設定変更</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>sudo vi /etc/nginx/conf.d/wordpress.conf

server {
    listen 80;
    server_name _;

    root /var/www/html/wordpress;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php-fpm/www.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}</code></pre></div>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>基本設定の一部を無効化
sudo vi /etc/nginx/nginx.conf

serverブロックを削除

NginXリロード
sudo nginx -t
sudo systemctl reload nginx</code></pre></div>



<h2 class="wp-block-heading">wp-config周りの設定</h2>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>cd /var/www/html/wordpress
sudo cp wp-config-sample.php wp-config.php
sudo vi wp-config.php

開いたファイルの以下を修正
define( &#39;DB_NAME&#39;, &#39;wordpress&#39; );
define( &#39;DB_USER&#39;, &#39;wpuser&#39; );
define( &#39;DB_PASSWORD&#39;, &#39;設定したパスワード&#39; );</code></pre></div>



<p class="wp-block-paragraph">wp-config.php設定後、EC2のアドレスにアクセスしてインストール画面が表示されるか確認する<br>http://IPアドレス/</p>



<h2 class="wp-block-heading">WordPressのインストール</h2>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="788" height="795" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260629_003.png" alt="" class="wp-image-1810" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260629_003.png 788w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260629_003-297x300.png 297w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260629_003-150x150.png 150w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260629_003-768x775.png 768w" sizes="auto, (max-width: 788px) 100vw, 788px" /></figure>



<p class="wp-block-paragraph">インストールを行い、Wordpressのブログ画面が表示されれば設定終了です</p>



<h2 class="wp-block-heading">AWS CodeDeployを利用したデプロイ</h2>



<p class="wp-block-paragraph">CodeDeployを利用してCD環境を作成します<br>GitHubへのプッシュをトリガーとしてリリースできるようにし、手動でのファイル転送を不要とします<br>将来的な展望として、サーバー台数が増えてもリリースが自動化できるというメリットもあります</p>



<p class="wp-block-paragraph">EC2にCodeDeployエージェントをインストールします</p>



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

以下は北米(バージニア北部)の例なので、別リージョンならus-east-1の部分を変更してください
cd /home/ec2-user
wget https://aws-codedeploy-us-east-1.s3.us-east-1.amazonaws.com/latest/install

chmod +x ./install
sudo ./install auto

インストール確認
sudo systemctl status codedeploy-agent</code></pre></div>



<h2 class="wp-block-heading">CodeDeploy用のIAMを作成</h2>



<p class="wp-block-paragraph">CodeDeploy用のIAMを作成します<br>仕組みとして、リリース対象のコードを一度Amazon S3へ登録し、そのファイルをEC2へ転送します<br>そのため、S3ReadOnlyの属性を付与します</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="417" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_001-1024x417.png" alt="" class="wp-image-1812" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_001-1024x417.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_001-300x122.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_001-768x313.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_001-1536x626.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_001.png 1617w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="493" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_002-1024x493.png" alt="" class="wp-image-1813" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_002-1024x493.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_002-300x144.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_002-768x370.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_002.png 1383w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="758" height="408" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_003.png" alt="" class="wp-image-1814" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_003.png 758w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_003-300x161.png 300w" sizes="auto, (max-width: 758px) 100vw, 758px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="1013" height="413" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_004.png" alt="" class="wp-image-1815" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_004.png 1013w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_004-300x122.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_004-768x313.png 768w" sizes="auto, (max-width: 1013px) 100vw, 1013px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="850" height="718" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_005.png" alt="" class="wp-image-1816" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_005.png 850w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_005-300x253.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_005-768x649.png 768w" sizes="auto, (max-width: 850px) 100vw, 850px" /></figure>



<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/07/20260630_006-1024x454.png" alt="" class="wp-image-1817" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_006-1024x454.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_006-300x133.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_006-768x340.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_006.png 1223w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="838" height="491" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_007.png" alt="" class="wp-image-1818" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_007.png 838w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_007-300x176.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_007-768x450.png 768w" sizes="auto, (max-width: 838px) 100vw, 838px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="400" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_008-1024x400.png" alt="" class="wp-image-1819" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_008-1024x400.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_008-300x117.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_008-768x300.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_008-1536x600.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_008.png 1646w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="317" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_009-1024x317.png" alt="" class="wp-image-1820" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_009-1024x317.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_009-300x93.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_009-768x238.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_009.png 1118w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">S3バケットの作成</h2>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="907" height="699" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_010.png" alt="" class="wp-image-1821" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_010.png 907w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_010-300x231.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_010-768x592.png 768w" sizes="auto, (max-width: 907px) 100vw, 907px" /></figure>



<h2 class="wp-block-heading">CodeDeployの設定</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="336" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_011-1024x336.png" alt="" class="wp-image-1822" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_011-1024x336.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_011-300x98.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_011-768x252.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_011-1536x504.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_011.png 1655w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="328" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_012-1024x328.png" alt="" class="wp-image-1823" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_012-1024x328.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_012-300x96.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_012-768x246.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_012-1536x492.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_012.png 1753w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="535" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_013-1024x535.png" alt="" class="wp-image-1824" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_013-1024x535.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_013-300x157.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_013-768x401.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_013.png 1187w" 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="479" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_014_1-1024x479.png" alt="" class="wp-image-1825" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_014_1-1024x479.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_014_1-300x140.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_014_1-768x360.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_014_1-1536x719.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_014_1.png 1726w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="437" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_014_2-1024x437.png" alt="" class="wp-image-1826" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_014_2-1024x437.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_014_2-300x128.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_014_2-768x327.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_014_2-1536x655.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_014_2.png 1724w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="466" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_014_3-1024x466.png" alt="" class="wp-image-1827" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_014_3-1024x466.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_014_3-300x136.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_014_3-768x349.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_014_3-1536x699.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260630_014_3.png 1735w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<h2 class="wp-block-heading">GitHubリポジトリの整備</h2>



<p class="wp-block-paragraph">以下の構成としました</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="767" height="382" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/image.png" alt="" class="wp-image-1828" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/image.png 767w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/image-300x149.png 300w" sizes="auto, (max-width: 767px) 100vw, 767px" /></figure>



<p class="wp-block-paragraph">各ファイルの中身は以下になります</p>



<p class="wp-block-paragraph">deploy.yml<br>(環境変数の設定は後程行います)</p>



<p class="wp-block-paragraph">ファイル内の大まかな設定は<br>・mainブランチへのpushをトリガーとする<br>・OpenIDConnectを利用して認証を行い、zip圧縮したソースをS3にアップロード<br>・CodeDeployを利用して、S3からzipファイルを取得し、指定サーバーに展開<br>となっています</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>name: Deploy to EC2 via CodeDeploy

on:
  push:
    branches:
      - main

permissions:
  id-token: write
  contents: read

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Configure AWS credentials (OIDC)
        uses: aws-actions/configure-aws-credentials@v4
        with:
          role-to-assume: ${{ secrets.AWS_ROLE_ARN }}
          aws-region: ${{ secrets.AWS_REGION }}

      - name: Zip and upload to S3
        run: |
          zip -r deploy.zip . -x &quot;*.git*&quot;
          aws s3 cp deploy.zip s3://${{ secrets.S3_BUCKET }}/deploy.zip

      - name: Deploy via CodeDeploy
        run: |
          aws deploy create-deployment \
            --application-name wordpress-app \
            --deployment-group-name wordpress-deploy-group \
            --s3-location bucket=${{ secrets.S3_BUCKET }},key=deploy.zip,bundleType=zip \
            --region ${{ secrets.AWS_REGION }}</code></pre></div>



<p class="wp-block-paragraph">after_install.sh</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>#!/bin/bash
systemctl restart php-fpm
systemctl restart nginx</code></pre></div>



<p class="wp-block-paragraph">.gitignore</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code># WordPress - ignore core, configuration, examples, uploads and logs.
# https://github.com/github/gitignore/blob/main/WordPress.gitignore

# Core
#
# Note: if you want to stage/commit WP core files
# you can delete this whole section/until Configuration.
/wp-admin/
/wp-content/index.php
/wp-content/languages
/wp-content/plugins/index.php
/wp-content/themes/index.php
/wp-includes/
/index.php
/license.txt
/readme.html
/wp-*.php
/xmlrpc.php

# Configuration
wp-config.php

# Example themes
/wp-content/themes/twenty*/

# Example plugin
/wp-content/plugins/hello.php

# Uploads
/wp-content/uploads/

# Log files
*.log

# htaccess
/.htaccess

# All plugins
#
# Note: If you wish to whitelist plugins,
# uncomment the next line
#/wp-content/plugins

# All themes
#
# Note: If you wish to whitelist themes,
# uncomment the next line
#/wp-content/themes</code></pre></div>



<p class="wp-block-paragraph">appspec.yml</p>



<p class="wp-block-paragraph">CodeDeployの動作指示書のようなファイルです<br>ソースファイルの配置場所<br>ファイルが存在した場合の処理(今回は上書き)<br>ファイルパーミッションの変更<br>フックとして「AfterInstall(インストール終了後の処理)」が定義されています</p>



<p class="wp-block-paragraph">after_install.shについては少し前に登場していますが、nginx, php-fpmの再起動が記述されています</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>version: 0.0
os: linux
files:
  - source: /
    destination: /var/www/html/wordpress
file_exists_behavior: OVERWRITE

permissions:
  - object: /var/www/html/wordpress
    pattern: &quot;**&quot;
    owner: nginx
    group: nginx

hooks:
  AfterInstall:
    - location: scripts/after_install.sh
      timeout: 300
      runas: root</code></pre></div>



<h2 class="wp-block-heading">GitHubアクション用ユーザーの登録</h2>



<p class="wp-block-paragraph">GitHubActionで利用するためのユーザーを作成します<br>S3、CodeDeployの操作が必要なため、それぞれのポリシーを選択して付与しています</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="258" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_001-1024x258.png" alt="" class="wp-image-1829" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_001-1024x258.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_001-300x76.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_001-768x194.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_001-1536x387.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_001.png 1646w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="436" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_003-1024x436.png" alt="" class="wp-image-1830" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_003-1024x436.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_003-300x128.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_003-768x327.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_003-1536x653.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_003.png 1667w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="289" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_004-1024x289.png" alt="" class="wp-image-1831" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_004-1024x289.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_004-300x85.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_004-768x217.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_004-1536x434.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_004.png 1908w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="451" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_005-1024x451.png" alt="" class="wp-image-1832" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_005-1024x451.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_005-300x132.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_005-768x338.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_005-1536x677.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_005.png 1741w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="421" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_006-1024x421.png" alt="" class="wp-image-1833" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_006-1024x421.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_006-300x123.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_006-768x316.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_006-1536x631.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_006.png 1893w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="664" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_007-1024x664.png" alt="" class="wp-image-1834" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_007-1024x664.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_007-300x195.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_007-768x498.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_007.png 1153w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="336" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_008-1024x336.png" alt="" class="wp-image-1835" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_008-1024x336.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_008-300x99.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_008-768x252.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_008-1536x505.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_008.png 1601w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">ユーザー作成の過程でARMが表示されるので、控えておきます<br>(GitHubに設定します)</p>



<p class="wp-block-paragraph">GitHubのリポジトリセッティングからシークレットを登録します</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="775" height="664" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_009.png" alt="" class="wp-image-1836" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_009.png 775w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_009-300x257.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_009-768x658.png 768w" sizes="auto, (max-width: 775px) 100vw, 775px" /></figure>



<p class="wp-block-paragraph">以下のように設定しました<br>AWS_REGION:作業中のAWSリージョン<br>AWS_ROLE_ARN:控えておいたARN<br>S3_BUCKET:作成したS3バケット</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="940" height="248" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_010.png" alt="" class="wp-image-1837" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_010.png 940w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_010-300x79.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/20260702_010-768x203.png 768w" sizes="auto, (max-width: 940px) 100vw, 940px" /></figure>



<h2 class="wp-block-heading">デプロイ確認</h2>



<p class="wp-block-paragraph">以上の設定でCodeDeployが動くようになっているはずです<br>GitHubのmainブランチに変更点をプッシュすると、GitHubアクションが動作し、CodeDeployが動きます</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="181" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/スクリーンショット-2026-07-02-15.24.40-1024x181.png" alt="" class="wp-image-1838" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/スクリーンショット-2026-07-02-15.24.40-1024x181.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/スクリーンショット-2026-07-02-15.24.40-300x53.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/スクリーンショット-2026-07-02-15.24.40-768x136.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/スクリーンショット-2026-07-02-15.24.40-1536x271.png 1536w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/07/スクリーンショット-2026-07-02-15.24.40.png 1856w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



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



<p class="wp-block-paragraph">AWSのCodeDeployを使用したCDパイプライン構築をざっと紹介しました</p>



<p class="wp-block-paragraph">CodeDeployを利用することでGitHub Actionと連携しソースデプロイを自動化することが出来ます<br>また、権限管理もAWSに集約される(ローカルからSFTPなどでサーバーにファイル転送するためのユーザー管理が不要になる)点でも、管理が楽になるのではないでしょうか</p>



<p class="wp-block-paragraph">なかなかモダンクラウド環境を触る機会がなかったのですが、AWSコンソールも日本語化が進んでおり、大きく迷うことなく設定できました</p>



<p class="wp-block-paragraph">AWSは従量課金なので、利用金額だけは注意が必要です</p>


<div id="rinkerid1473" class="yyi-rinker-contents  yyi-rinker-postid-1473 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%2FAmazon%2BAWS%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/booxstore/cabinet/01180/bk4295016608.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%2FAmazon%2BAWS%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow">【3千円以上送料無料】いちばんやさしい新しいAWS(アマゾンウェブサービス)の教本 人気講師が教えるDXを支えるクラウドコンピューティング／近藤恭平／中村哲也</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">
							</div>
						</div>
						<ul class="yyi-rinker-links">
																                    <li class="amazonlink">
						<a href="https://www.amazon.co.jp/gp/search?ie=UTF8&amp;keywords=Amazon+AWS&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%2FAmazon%2BAWS%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%3DAmazon%2BAWS" 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="rinkerid1465" class="yyi-rinker-contents  yyi-rinker-postid-1465 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%2FAWS%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/7852/9784815607852_1_5.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%2FAWS%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow">AWSの基本・仕組み・重要用語が全部わかる教科書 [ 川畑光平 ]</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,080</span>
															<span class="price_at">(2026/10/30 12:06:57時点&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=AWS&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%2FAWS%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%3DAWS" 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/07/%e3%83%a2%e3%83%80%e3%83%b3%e3%82%af%e3%83%a9%e3%82%a6%e3%83%89%e6%bc%94%e7%bf%92%ef%bc%9aaws%e3%81%a7codedeploy%e3%82%92%e5%88%a9%e7%94%a8%e3%81%97%e3%81%a6wordpress%e3%82%92%e8%a8%ad%e7%bd%ae/">モダンクラウド演習：AWSでCodeDeployを利用してWordPressを設置するまで</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sheltie-garage.xyz/tech/2026/07/%e3%83%a2%e3%83%80%e3%83%b3%e3%82%af%e3%83%a9%e3%82%a6%e3%83%89%e6%bc%94%e7%bf%92%ef%bc%9aaws%e3%81%a7codedeploy%e3%82%92%e5%88%a9%e7%94%a8%e3%81%97%e3%81%a6wordpress%e3%82%92%e8%a8%ad%e7%bd%ae/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Docker Mail ServerにDMARCを設定する</title>
		<link>https://sheltie-garage.xyz/tech/2026/06/docker-main-server%e3%81%abdmarc%e3%82%92%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b/</link>
					<comments>https://sheltie-garage.xyz/tech/2026/06/docker-main-server%e3%81%abdmarc%e3%82%92%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b/#respond</comments>
		
		<dc:creator><![CDATA[monodon]]></dc:creator>
		<pubDate>Thu, 11 Jun 2026 05:59:38 +0000</pubDate>
				<category><![CDATA[インフラ]]></category>
		<guid isPermaLink="false">https://sheltie-garage.xyz/tech/?p=1648</guid>

					<description><![CDATA[<p>個人開発Webアプリで利用しているメールサーバーにDMARCを設定します DMARCとは DMARCとはドメイン名を利用して、送信元の正当性を証明するためのプロトコルです設定することにより、以下のメリットがあります Do [&#8230;]</p>
<p>投稿 <a href="https://sheltie-garage.xyz/tech/2026/06/docker-main-server%e3%81%abdmarc%e3%82%92%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b/">Docker Mail ServerにDMARCを設定する</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">個人開発Webアプリで利用しているメールサーバーにDMARCを設定します</p>



<h2 class="wp-block-heading">DMARCとは</h2>



<p class="wp-block-paragraph">DMARCとはドメイン名を利用して、送信元の正当性を証明するためのプロトコルです<br>設定することにより、以下のメリットがあります</p>



<ul class="wp-block-list">
<li>なりすまし防止：DKIM、SPFだけでは差出人(Fromヘッダ)の偽装は見破れませんが、DMARCを導入することで正当性チェックが行えるようになります</li>



<li>ポリシーの指定：メールに対してどの用に扱うか(監視のみ、破棄させるなど)を決めることができます。このポリシーはメールの受信側に適用されます</li>



<li>レポートの受信：自社ドメインを偽装したメールや、認証を失敗したメールについてのレポートを受け取れるようになります</li>
</ul>



<p class="wp-block-paragraph">Docker Mail ServerにはDMARC導入済みで、DNSレコードに設定を追加するだけで導入できるとのことなので、実際にやってみます<br>(SPF、DKIMが設定済みであることが前提です)</p>



<h2 class="wp-block-heading">DMARCを設定する</h2>



<p class="wp-block-paragraph">自分はGMO ConoHaを利用しているので、ダッシュボードのDNSより設定を追加します</p>



<p class="wp-block-paragraph">設定例は以下になります</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>タイプ:TXT
ホスト:_dmarc.example.com
値:v=DMARC1; p=none; rua=mailto:dmarc-reports@example.com</code></pre></div>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="673" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/06/20260611_001-1024x673.png" alt="" class="wp-image-1649" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/06/20260611_001-1024x673.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/06/20260611_001-300x197.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/06/20260611_001-768x505.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/06/20260611_001.png 1215w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">値には他にも設定できる項目はありますが、今回は最低限のみ設定してます</p>



<p class="wp-block-paragraph">参考：DMARC仕様<br><a href="https://www.naritai.jp/guidance_record.html">https://www.naritai.jp/guidance_record.html</a></p>



<p class="wp-block-paragraph">自分の場合、Cloudflare無料版も利用しているため、Cloudflare側にもレコードを設定しました</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="197" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/06/20260611_001-1-1024x197.png" alt="" class="wp-image-1653" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/06/20260611_001-1-1024x197.png 1024w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/06/20260611_001-1-300x58.png 300w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/06/20260611_001-1-768x148.png 768w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/06/20260611_001-1.png 1038w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">設定後はmxtoolboxなどで設定が有効化されているか確認できます</p>



<p class="wp-block-paragraph"><a href="https://mxtoolbox.com/SuperTool.aspx">https://mxtoolbox.com/SuperTool.aspx</a></p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="579" height="230" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/06/20260611_002.png" alt="" class="wp-image-1654" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/06/20260611_002.png 579w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/06/20260611_002-300x119.png 300w" sizes="auto, (max-width: 579px) 100vw, 579px" /></figure>



<p class="wp-block-paragraph">設定後、個人開発Webアプリからメールを送信してみました<br>きちんとDMARCがPASSになっていました！</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="710" height="179" src="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/06/20260611_003-1.png" alt="" class="wp-image-1656" srcset="https://sheltie-garage.xyz/tech/wp-content/uploads/2026/06/20260611_003-1.png 710w, https://sheltie-garage.xyz/tech/wp-content/uploads/2026/06/20260611_003-1-300x76.png 300w" sizes="auto, (max-width: 710px) 100vw, 710px" /></figure>



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



<p class="wp-block-paragraph">なんとなくDMARCの設定はめんどくさそうだなと思っていたのですが、調べてみると意外と簡単で、正直もっと早くやっておけばよかったなと思っています</p>



<p class="wp-block-paragraph">これでメールの信頼性も向上できたので、メールが受信できないといった問題が減ると良いなと思っています</p>


<div id="rinkerid1650" class="yyi-rinker-contents  yyi-rinker-postid-1650 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%2FPostfix%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/book/cabinet/8731/87311195.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%2FPostfix%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow">Postfix実用ガイド [ カイル・D．デント ]</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,520</span>
															<span class="price_at">(2026/10/30 12:06:57時点&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=Postfix&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%2FPostfix%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%3DPostfix" 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="rinkerid1651" class="yyi-rinker-contents  yyi-rinker-postid-1651 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%2FE%25E3%2583%25A1%25E3%2583%25BC%25E3%2583%25AB%25E3%2580%2580%25E3%2582%25BB%25E3%2582%25AD%25E3%2583%25A5%25E3%2583%25AA%25E3%2583%2586%25E3%2582%25A3%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow"><img decoding="async" src="https://thumbnail.image.rakuten.co.jp/@0_mall/renet3/cabinet/ccc4/0000552374.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%2FE%25E3%2583%25A1%25E3%2583%25BC%25E3%2583%25AB%25E3%2580%2580%25E3%2582%25BB%25E3%2582%25AD%25E3%2583%25A5%25E3%2583%25AA%25E3%2583%2586%25E3%2582%25A3%2F%3Ff%3D1%26grp%3Dproduct" rel="nofollow">【中古】eメール＆インターネットで個人情報やセキュリティを守る法 / 木村昌幸</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">
							</div>
						</div>
						<ul class="yyi-rinker-links">
																                    <li class="amazonlink">
						<a href="https://www.amazon.co.jp/gp/search?ie=UTF8&amp;keywords=E%E3%83%A1%E3%83%BC%E3%83%AB%E3%80%80%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3&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%2FE%25E3%2583%25A1%25E3%2583%25BC%25E3%2583%25AB%25E3%2580%2580%25E3%2582%25BB%25E3%2582%25AD%25E3%2583%25A5%25E3%2583%25AA%25E3%2583%2586%25E3%2582%25A3%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%3DE%25E3%2583%25A1%25E3%2583%25BC%25E3%2583%25AB%25E3%2580%2580%25E3%2582%25BB%25E3%2582%25AD%25E3%2583%25A5%25E3%2583%25AA%25E3%2583%2586%25E3%2582%25A3" 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/06/docker-main-server%e3%81%abdmarc%e3%82%92%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b/">Docker Mail ServerにDMARCを設定する</a> は <a href="https://sheltie-garage.xyz/tech">Sheltie Garage Tech</a> に最初に表示されました。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://sheltie-garage.xyz/tech/2026/06/docker-main-server%e3%81%abdmarc%e3%82%92%e8%a8%ad%e5%ae%9a%e3%81%99%e3%82%8b/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
