<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Cloud_Blog on クラウド日記帳</title><link>https://exa-hack.com/blog/</link><description>Recent content in Cloud_Blog on クラウド日記帳</description><generator>Hugo</generator><language>ja</language><lastBuildDate>Sat, 25 Apr 2026 05:49:07 +0900</lastBuildDate><atom:link href="https://exa-hack.com/blog/index.xml" rel="self" type="application/rss+xml"/><item><title>OCI_ADBのwalletを新しくしろと言われたので再セットアップした</title><link>https://exa-hack.com/blog/oci_adb%E3%81%AEwallet%E3%82%92%E6%96%B0%E3%81%97%E3%81%8F%E3%81%97%E3%82%8D%E3%81%A8%E8%A8%80%E3%82%8F%E3%82%8C%E3%81%9F%E3%81%AE%E3%81%A7%E5%86%8D%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%81%97%E3%81%9F/</link><pubDate>Sat, 25 Apr 2026 03:24:22 +0000</pubDate><guid>https://exa-hack.com/blog/oci_adb%E3%81%AEwallet%E3%82%92%E6%96%B0%E3%81%97%E3%81%8F%E3%81%97%E3%82%8D%E3%81%A8%E8%A8%80%E3%82%8F%E3%82%8C%E3%81%9F%E3%81%AE%E3%81%A7%E5%86%8D%E3%82%BB%E3%83%83%E3%83%88%E3%82%A2%E3%83%83%E3%83%97%E3%81%97%E3%81%9F/</guid><description>&lt;h2 id="walletファイルを再ダウンロードしろというメールが来た">Walletファイルを再ダウンロードしろというメールが来た&lt;a class="td-heading-self-link" href="#wallet%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e5%86%8d%e3%83%80%e3%82%a6%e3%83%b3%e3%83%ad%e3%83%bc%e3%83%89%e3%81%97%e3%82%8d%e3%81%a8%e3%81%84%e3%81%86%e3%83%a1%e3%83%bc%e3%83%ab%e3%81%8c%e6%9d%a5%e3%81%9f" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>こんなメールが来るようになった。&lt;br>
期日までにWallet.zipを新しくしないと接続出来なくなるよというもの。&lt;br>
(G1 ルート証明書が廃止されG2 ルート証明書になるらしい。あまりわかってない。 )&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-618.png" alt="image-618.png">&lt;/p>
&lt;p>なので再ダウンロードする。&lt;/p>
&lt;h2 id="ociコンソール">OCIコンソール&lt;a class="td-heading-self-link" href="#oci%e3%82%b3%e3%83%b3%e3%82%bd%e3%83%bc%e3%83%ab" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Oracle AI Database&amp;gt; Autonomous AI Databases &amp;gt; (DB名)をクリック&lt;/p>
&lt;p>左上にあるDatabase connectionボタンを押す&lt;/p>
&lt;p>↓Wallet typeはRegional walletを選択した(リージョン内の全DBにログインできるWallet)&lt;/p>
&lt;p>&lt;img src="https://exa-hack.com/ob/_Pictures/image-619.png" alt="image-619.png">&lt;/p>
&lt;p>パスワード設定してDownload&lt;/p>
&lt;p>&lt;img src="https://exa-hack.com/ob/_Pictures/image-620.png" alt="image-620.png">&lt;/p>
&lt;h2 id="oracle-clientのwalletファイルを入れ替える">Oracle ClientのWalletファイルを入れ替える&lt;a class="td-heading-self-link" href="#oracle-client%e3%81%aewallet%e3%83%95%e3%82%a1%e3%82%a4%e3%83%ab%e3%82%92%e5%85%a5%e3%82%8c%e6%9b%bf%e3%81%88%e3%82%8b" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>＄ORACLE_HOME/network/admin配下に展開しているので、バックアップフォルダを作って既存ファイルをバックアップ(bk_20260411_wallet)&lt;/p>
&lt;p>※tnsnames.ora、sqlnet.oraは置き換える必要ない。(今回ミスって置き換えちゃったので再作成した)&lt;/p>
&lt;pre tabindex="0">&lt;code>/u01/app/oracle/product/23.5.0/client_1/network/admin

 

[oracle@backup admin]$ ls -ltr

合計 76

-rw-r--r-- 1 oracle oinstall 3021 4月 11 12:46 truststore.jks

-rw-r--r-- 1 oracle oinstall 2620 4月 11 12:46 tnsnames.ora

-rw-r----- 1 oracle oinstall 114 4月 11 12:46 sqlnet.ora

-rw-r--r-- 1 oracle oinstall 691 4月 11 12:46 ojdbc.properties

-rw-r--r-- 1 oracle oinstall 3190 4月 11 12:46 keystore.jks

-rw-r--r-- 1 oracle oinstall 7097 4月 11 12:46 ewallet.pem

-rw-r--r-- 1 oracle oinstall 6312 4月 11 12:46 ewallet.p12

-rw-r--r-- 1 oracle oinstall 6357 4月 11 12:46 cwallet.sso

-rw-r--r-- 1 oracle oinstall 2712 4月 11 12:46 README

-rw-r--r-- 1 oracle oinstall 25288 4月 11 21:46 Wallet_dbfree26ai.zip

drwxr-xr-x 2 oracle oinstall 218 4月 11 21:52 bk_20260411_wallet

-rw------- 1 oracle oinstall 0 4月 11 21:57 ewallet.p12.lck

-rw------- 1 oracle oinstall 0 4月 11 21:57 cwallet.sso.lck

[oracle@backup admin]$
&lt;/code>&lt;/pre>&lt;p>外部パスワードストアとしても使ってるので新しいwalletファイルにクレデンシャル情報を再登録　※パスワードはマスクしてます。&lt;/p></description></item><item><title>OCI Race 2025戦績</title><link>https://exa-hack.com/blog/oci-race-2025%E6%88%A6%E7%B8%BE/</link><pubDate>Sat, 08 Nov 2025 08:03:32 +0000</pubDate><guid>https://exa-hack.com/blog/oci-race-2025%E6%88%A6%E7%B8%BE/</guid><description>&lt;h2 id="毎年やってるoci資格を無料で受けられるイベント久しぶりにやってみた">毎年やってる？OCI資格を無料で受けられるイベント久しぶりにやってみた。&lt;a class="td-heading-self-link" href="#%e6%af%8e%e5%b9%b4%e3%82%84%e3%81%a3%e3%81%a6%e3%82%8boci%e8%b3%87%e6%a0%bc%e3%82%92%e7%84%a1%e6%96%99%e3%81%a7%e5%8f%97%e3%81%91%e3%82%89%e3%82%8c%e3%82%8b%e3%82%a4%e3%83%99%e3%83%b3%e3%83%88%e4%b9%85%e3%81%97%e3%81%b6%e3%82%8a%e3%81%ab%e3%82%84%e3%81%a3%e3%81%a6%e3%81%bf%e3%81%9f" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>順当に進めれば期間内(～2025/10/31)に対象試験の中から4つ無料で受けられる。(もともと無料であるFoundationsの試験は除く)&lt;br>
無料分は使いきろうと思ってたので期限ギリギリになったが4つとも受けた。&lt;br>
勉強は動画見ながらマニュアル見たり動かしてみたりで2か月ぐらいはやった気がする。&lt;/p>
&lt;p>&lt;img src="https://exa-hack.com/ob/_Pictures/image-476.png" alt="image-476.png">&lt;/p>
&lt;h2 id="試験結果">試験結果&lt;a class="td-heading-self-link" href="#%e8%a9%a6%e9%a8%93%e7%b5%90%e6%9e%9c" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;h3 id="oracle-cloud-infrastructure-2025-multicloud-architect-professional">Oracle Cloud Infrastructure 2025 Multicloud Architect Professional&lt;a class="td-heading-self-link" href="#oracle-cloud-infrastructure-2025-multicloud-architect-professional" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;p>1試験目→合格&lt;br>
この試験はActivity Guide(研修コースの演習)がないので細かい操作内容は問われないだろうと思い机上でサービス仕様のみ勉強。@Google、@Azure、@AWS(これは対象に含まれてない)での差異は生成AIにまとめ表作ってもらって覚えた(最近便利ね)。&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-480.png" alt="image-480.png">&lt;/p>
&lt;h3 id="oracle-cloud-infrastructure-2025-observability-professional">Oracle Cloud Infrastructure 2025 Observability Professional&lt;a class="td-heading-self-link" href="#oracle-cloud-infrastructure-2025-observability-professional" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;p>2試験目→合格&lt;br>
APMとStack Monitoringを覚えたくてこのイベントやろうと思ったのでワイ的このイベントのメイン試験。&lt;br>
実機演習多めで勉強。高得点取れてよかった。&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-479.png" alt="image-479.png">&lt;/p>
&lt;h3 id="oracle-databaseaws-architect-professional">Oracle Database@AWS Architect Professional&lt;a class="td-heading-self-link" href="#oracle-databaseaws-architect-professional" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;p>3試験目→合格&lt;br>
Data Science試験を受けようと勉強してきたが理解度的に試験突破無理だと思い急遽こっちに振り替え。ほぼ勉強してないがOracle Databaseは得意であるってのとMulticloud Architectと同じくこちらも細かい内容は問われないだろうと思って受けた。逃げの試験。&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-478.png" alt="image-478.png">&lt;/p>
&lt;h3 id="oracle-cloud-infrastructure-2025-networking-professional">Oracle Cloud Infrastructure 2025 Networking Professional&lt;a class="td-heading-self-link" href="#oracle-cloud-infrastructure-2025-networking-professional" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;p>4試験目→落ちた(•᷄ὤ•᷅)&lt;br>
研修動画見てた感じ、他の試験と比べて問題が長文傾向にあり、英語能力的に不安だったのだがやっぱり駄目だった。もう途中からペース的に間に合わないと焦っちゃって全然問題文が頭に入ってこなかった。ネットワークの理解度的には問題ないはずなので問題は英語力とメンタル。一長一短じゃどうにもならなそうなのでじっくり腰を据えてリベンジしようと思う。&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-477.png" alt="image-477.png">&lt;/p>
&lt;h2 id="結果4戦3勝1敗">結果：4戦3勝1敗&lt;a class="td-heading-self-link" href="#%e7%b5%90%e6%9e%9c4%e6%88%a63%e5%8b%9d1%e6%95%97" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>せっかく勉強したので４つとも合格したかったが1つ取りこぼした。&lt;br>
ただ、「英語力とメンタルを鍛えてNetworking Professionalをリベンジ」っていう次の目標ができたので逆に落ちてよかったかもしれない。とりあえず腰を据えて英語の勉強に取り組もうと思う。リベンジはそれから(来年の無料イベントあたり？)。&lt;br>
Race特典でもらえる追加の１チケットは、もともと受けようと思っていたData Science試験で使おうと思う。&lt;/p></description></item><item><title>OCI_Oracle Base Database Service for Developersの値段</title><link>https://exa-hack.com/blog/oci_oracle-base-database-service-for-developers%E3%81%AE%E5%80%A4%E6%AE%B5/</link><pubDate>Wed, 24 Sep 2025 12:48:22 +0000</pubDate><guid>https://exa-hack.com/blog/oci_oracle-base-database-service-for-developers%E3%81%AE%E5%80%A4%E6%AE%B5/</guid><description>&lt;h2 id="やること">やること&lt;a class="td-heading-self-link" href="#%e3%82%84%e3%82%8b%e3%81%93%e3%81%a8" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Oracle Databaseのライセンス料がかからないOracle Base Database Service for Developersというのが出たらしいのでとりあえず１日あたりどのくらいで使えるのか試してみた。機能制限や用途制限(本番では使えない)があるけど安かったら個人的な検証用として使っていこうかなと。価格表の見方に自信がなかったというのもあり試しに使って料金確認してみた。&lt;/p>
&lt;p>制限事項&lt;br>
Oracle Base Database Service for Developersについて&lt;br>
&lt;a href="https://docs.oracle.com/ja/cloud/paas/base-database/about/index.html#GUID-497F69D3-632B-418C-9C54-10A15D4C6D5C">https://docs.oracle.com/ja/cloud/paas/base-database/about/index.html#GUID-497F69D3-632B-418C-9C54-10A15D4C6D5C&lt;/a>&lt;/p>
&lt;p>Enterprise Edition相当らしいので価格表ではOCPU料金が1/20くらい&lt;br>
&lt;a href="https://www.oracle.com/jp/database/base-database-service/pricing/">https://www.oracle.com/jp/database/base-database-service/pricing/&lt;/a>&lt;/p>
&lt;p>&lt;img src="https://exa-hack.com/ob/_Pictures/image-404.png" alt="image-404.png">&lt;/p>
&lt;p>ストレージは通常通り&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-405.png" alt="image-405.png">&lt;/p>
&lt;h2 id="base-db作成">Base DB作成&lt;a class="td-heading-self-link" href="#base-db%e4%bd%9c%e6%88%90" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>CPUは最小の1OCPU、ストレージはバランス型で最小の50GBで作成した(もろもろ含めてTotal strage sizeは300GBになる)&lt;br>
作成画面でeditionを選択する箇所があるのでEnterprise Edition Developerを選んで作る&lt;/p>
&lt;p>&lt;img src="https://exa-hack.com/ob/_Pictures/image-406.png" alt="image-406.png">&lt;/p>
&lt;h2 id="何日か稼働させてたので料金を見てみる">何日か稼働させてたので料金を見てみる&lt;a class="td-heading-self-link" href="#%e4%bd%95%e6%97%a5%e3%81%8b%e7%a8%bc%e5%83%8d%e3%81%95%e3%81%9b%e3%81%a6%e3%81%9f%e3%81%ae%e3%81%a7%e6%96%99%e9%87%91%e3%82%92%e8%a6%8b%e3%81%a6%e3%81%bf%e3%82%8b" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>机上計算では124円くらいのはずだが、&lt;/p>
&lt;ul>
&lt;li>CPU=3.41*24=81.84円&lt;/li>
&lt;li>ストレージ=3.9525*300/30=39.525円&lt;/li>
&lt;li>パフォーマンスユニット=0.2635*300/30=2.635円&lt;br>
Cost Analyticsで見ると１日145円かかってた。&lt;br>
→20円ほどずれてる。バックアップかな。&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="https://exa-hack.com/ob/_Pictures/image-403.png" alt="image-403.png">&lt;/p>
&lt;p>Cost AnalyticsのGrouping dimentionsをService and Product Descriptionにしたら内訳がわかった。&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-408.png" alt="image-408.png">&lt;/p>
&lt;ul>
&lt;li>Database / Oracle Base Database Service on Ampere A1 - Developer　→ 81.840円 計算通り&lt;/li>
&lt;li>Database / Block Volume - Storage　→　38.25円　だいたい計算通り&lt;/li>
&lt;li>Database / DBaaS - Attached Block Storage Volume - Standard Performance　→　25.500円　これがずれてるっぽい。&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="https://exa-hack.com/ob/_Pictures/image-407.png" alt="image-407.png">&lt;/p></description></item><item><title>OCI_File Storage（NFS）サービスを使ってみた。とNFSの勉強をちょっと</title><link>https://exa-hack.com/blog/oci_file-storagenfs%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F%E3%81%A8nfs%E3%81%AE%E5%8B%89%E5%BC%B7%E3%82%92%E3%81%A1%E3%82%87%E3%81%A3%E3%81%A8/</link><pubDate>Sat, 13 Sep 2025 13:04:20 +0000</pubDate><guid>https://exa-hack.com/blog/oci_file-storagenfs%E3%82%B5%E3%83%BC%E3%83%93%E3%82%B9%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%9F%E3%81%A8nfs%E3%81%AE%E5%8B%89%E5%BC%B7%E3%82%92%E3%81%A1%E3%82%87%E3%81%A3%E3%81%A8/</guid><description>&lt;h2 id="準備">準備&lt;a class="td-heading-self-link" href="#%e6%ba%96%e5%82%99" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>NFSマウント用のCompute Instance（リソース名はVM_NFS）を 作成&lt;br>
OSはOracle Linux 9&lt;/p>
&lt;pre tabindex="0">&lt;code>[opc@vm-nfs ~]$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 2.8G 0 2.8G 0% /dev/shm
tmpfs 1.2G 9.1M 1.1G 1% /run
efivarfs 256K 14K 243K 6% /sys/firmware/efi/efivars
/dev/mapper/ocivolume-root 30G 8.5G 21G 29% /
/dev/sda2 2.0G 392M 1.6G 20% /boot
/dev/mapper/ocivolume-oled 15G 144M 15G 1% /var/oled
/dev/sda1 100M 7.5M 93M 8% /boot/efi
tmpfs 565M 0 565M 0% /run/user/989
tmpfs 565M 0 565M 0% /run/user/1000
[opc@vm-nfs ~]$
&lt;/code>&lt;/pre>&lt;h2 id="file-storage作成">File Storage作成&lt;a class="td-heading-self-link" href="#file-storage%e4%bd%9c%e6%88%90" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Storage &amp;gt; File Storage &amp;gt; File Systems&lt;br>
Create File System&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-365.png" alt="image-365.png">&lt;/p></description></item><item><title>資格_4大クラウドの入門資格を受けてみた</title><link>https://exa-hack.com/blog/%E8%B3%87%E6%A0%BC_4%E5%A4%A7%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E3%81%AE%E5%85%A5%E9%96%80%E8%B3%87%E6%A0%BC%E3%82%92%E5%8F%97%E3%81%91%E3%81%A6%E3%81%BF%E3%81%9F/</link><pubDate>Sat, 13 Sep 2025 13:05:46 +0000</pubDate><guid>https://exa-hack.com/blog/%E8%B3%87%E6%A0%BC_4%E5%A4%A7%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E3%81%AE%E5%85%A5%E9%96%80%E8%B3%87%E6%A0%BC%E3%82%92%E5%8F%97%E3%81%91%E3%81%A6%E3%81%BF%E3%81%9F/</guid><description>&lt;p>OCIはそこそこ使ったことがある、他のクラウドは最近チョコっと触った程度でほぼ知識なしの状態。&lt;br>
他のクラウドサービスの基本的な使い方やサービス概要を把握したかったので一番優しい資格を全部取ってみることにした。&lt;/p>
&lt;h2 id="aws">AWS&lt;a class="td-heading-self-link" href="#aws" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>試験名：AWS Certified Cloud Practitioner&lt;br>
会場：ピアソンビュー&lt;br>
値段：16500円。受かったら次の試験で利用できる半額バウチャーが送られてきた。値段も試験によってまちまちらしいが以降は半額で受けられるみたい。&lt;br>
使った教材：AWS認定資格試験テキスト　AWS認定 クラウドプラクティショナー　改訂第3版&lt;br>
感想：AWSはサービスが沢山あるので使ったことないとサービス名とサービス内容がまっちせず。そこは暗記するしかないかなって思ったくらい。参考書が試験用だったので、ざくっと読んで、最後、まとめ欄を読めば余裕で受かる感じ。&lt;/p>
&lt;h2 id="google-cloud">Google Cloud&lt;a class="td-heading-self-link" href="#google-cloud" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>試験名：Google Cloud Cloud Digital Leader&lt;br>
会場：謎の試験センター&lt;br>
値段：108.98USD(16000円くらい)。AWSと同じく受かったら次の試験で利用できる半額バウチャーが送られてきた。&lt;br>
使った教材：図解即戦力　Google Cloudのしくみと技術がこれ1冊でしっかりわかる教科書［改訂2版］&lt;br>
感想：Google Cloudについてというよりはパブクラとはみたいな内容だった。Googleの公式模擬問題を解いてみれば受かるレベル。AI系サービスについては多少Google Cloudサービスの問題が出たのでそこだけは重点的に覚えればいい。&lt;/p>
&lt;h2 id="azure">Azure&lt;a class="td-heading-self-link" href="#azure" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>試験名：Azure Fundamentals (AZ-900)&lt;br>
会場：ピアソンビュー&lt;br>
値段：6699円(定価12180円)。無料のオンラインセミナーを受けると半額チケット貰える。毎日のように開催されてるのでとりあえず受けておくがよろしい。&lt;br>
使った教材：Azureの知識地図 〜クラウドの基礎から実装・運用管理まで&lt;br>
感想：公式の模擬問題終だと完全パブクラとは？な内容だったけど本試験はもうちょっとAzureより。ただ、ざっくりしたサービス内容を把握しておけば全然クリアできるレベル。クラウド経験あればNo勉強で受かる。&lt;/p>
&lt;h2 id="oci">OCI&lt;a class="td-heading-self-link" href="#oci" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>試験名：Oracle Cloud Infrastructure 2025 Foundations Associate&lt;br>
会場：家&lt;br>
値段：無料&lt;br>
使った教材：Oracle University&lt;br>
感想：基本的にOCIのサービスの知識を問う問題がほぼほぼ。難易度的には高くないけど他のクラウドの資格と比べてるとOCIを知らないと受からないような内容。無料で15回くらいチャレンジできるっポイので。まーって感じ。過去年度のやつたびたび受けてるので、そういった点で自分的には難易度高くはなかったけど、他のクラウドベンダーの同じグレードの資格と比べると難易度高い気がする。&lt;/p>
&lt;h2 id="総評">総評&lt;a class="td-heading-self-link" href="#%e7%b7%8f%e8%a9%95" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>どれもメジャーなサービス名とサービス内容を把握してれば受かっちゃうくらいの優しめの内容だった。&lt;br>
さすがに優しすぎて手応えなかったので、もうワンランク上の資格を一通り取ってみようかなと思ってる。&lt;br>
ただ、クラウドの座学って家電のカタログ暗記してるようでぶっちゃけ面白くないので、そこまで難易度高い奴は今は受けないつもり。&lt;br>
まー一応それぞれ本1冊は読んで目的としてたサービスの概要はつかめたので、ぶっちゃけ今後はどんどん使っていくの方が良いかなと迷い中。&lt;/p>
&lt;p>あとは、ピアソンビューの試験も自宅で受けられるのだが、環境チェックが厳しくてPC回り整理しないといけないので試験センターで受験することにした。ただ、メガネの淵とかマスクの内側とかポケットの中身とか全部チェックされた。汗だくの中勘弁してくれよと思ったが仕方ない。その点OCIはカメラはオンは必須だが、PC回りの写真をよこせとか言われないので試験に関してはだいぶ楽。&lt;/p></description></item><item><title>OCI_opcユーザのsudo設定</title><link>https://exa-hack.com/blog/oci_opc%E3%83%A6%E3%83%BC%E3%82%B6%E3%81%AEsudo%E8%A8%AD%E5%AE%9A/</link><pubDate>Mon, 21 Jul 2025 08:17:06 +0000</pubDate><guid>https://exa-hack.com/blog/oci_opc%E3%83%A6%E3%83%BC%E3%82%B6%E3%81%AEsudo%E8%A8%AD%E5%AE%9A/</guid><description>&lt;h2 id="oracle-linux-8">Oracle Linux 8&lt;a class="td-heading-self-link" href="#oracle-linux-8" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>/etc/sudoersのデフォルト設定&lt;/p>
&lt;ul>
&lt;li>rootユーザへのsudo許可(全コマンド、要パスワード)&lt;/li>
&lt;li>wheelグループへのsudo許可(全コマンド、要パスワード)&lt;/li>
&lt;li>opcユーザへのsudo許可(全コマンド、&lt;strong>パスワード不要&lt;/strong>)&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">&lt;span class="o">[&lt;/span>root@instance-20250718-2217 sudoers.d&lt;span class="o">]&lt;/span>&lt;span class="c1"># cat /etc/sudoers&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Sudoers allows particular users to run various commands as&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## the root user, without needing the root password.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">##&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Examples are provided at the bottom of the file for collections&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## of related commands, which can then be delegated out to particular&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## users or groups.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">##&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## This file must be edited with the &amp;#39;visudo&amp;#39; command.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Host Aliases&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Groups of machines. You may prefer to use hostnames (perhaps using&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## wildcards for entire domains) or IP addresses instead.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Host_Alias FILESERVERS = fs1, fs2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Host_Alias MAILSERVERS = smtp, smtp2&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## User Aliases&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## These aren&amp;#39;t often necessary, as you can use regular groups&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## (ie, from files, LDAP, NIS, etc) in this file - just use %groupname&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## rather than USERALIAS&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># User_Alias ADMINS = jsmith, mikem&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Command Aliases&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## These are groups of related commands...&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Networking&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Cmnd_Alias NETWORKING = /sbin/route, /sbin/ifconfig, /bin/ping, /sbin/dhclient, /usr/bin/net, /sbin/iptables, /usr/bin/rfcomm, /usr/bin/wvdial, /sbin/iwconfig, /sbin/mii-tool&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Installation and management of software&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Cmnd_Alias SOFTWARE = /bin/rpm, /usr/bin/up2date, /usr/bin/yum&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Services&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig, /usr/bin/systemctl start, /usr/bin/systemctl stop, /usr/bin/systemctl reload, /usr/bin/systemctl restart, /usr/bin/systemctl status, /usr/bin/systemctl enable, /usr/bin/systemctl disable&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Updating the locate database&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Cmnd_Alias LOCATE = /usr/bin/updatedb&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Storage&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Cmnd_Alias STORAGE = /sbin/fdisk, /sbin/sfdisk, /sbin/parted, /sbin/partprobe, /bin/mount, /bin/umount&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Delegating permissions&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Cmnd_Alias DELEGATING = /usr/sbin/visudo, /bin/chown, /bin/chmod, /bin/chgrp&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Processes&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Cmnd_Alias PROCESSES = /bin/nice, /bin/kill, /usr/bin/kill, /usr/bin/killall&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Drivers&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Cmnd_Alias DRIVERS = /sbin/modprobe&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Defaults specification&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Refuse to run if unable to disable echo on the tty.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Defaults !visiblepw
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Preserving HOME has security implications since many programs&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># use it when searching for configuration files. Note that HOME&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># is already set when the the env_reset option is enabled, so&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># this option is only effective for configurations where either&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># env_reset is disabled or HOME is present in the env_keep list.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Defaults always_set_home
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Defaults match_group_by_gid
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Prior to version 1.8.15, groups listed in sudoers that were not&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># found in the system group database were passed to the group&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># plugin, if any. Starting with 1.8.15, only groups of the form&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># %:group are resolved via the group plugin by default.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># We enable always_query_group_plugin to restore old behavior.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Disable this option for new behavior.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Defaults always_query_group_plugin
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Defaults env_reset
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Defaults &lt;span class="nv">env_keep&lt;/span> &lt;span class="o">=&lt;/span> &lt;span class="s2">&amp;#34;COLORS DISPLAY HOSTNAME HISTSIZE KDEDIR LS_COLORS&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Defaults &lt;span class="nv">env_keep&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="s2">&amp;#34;MAIL PS1 PS2 QTDIR USERNAME LANG LC_ADDRESS LC_CTYPE&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Defaults &lt;span class="nv">env_keep&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="s2">&amp;#34;LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Defaults &lt;span class="nv">env_keep&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="s2">&amp;#34;LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Defaults &lt;span class="nv">env_keep&lt;/span> &lt;span class="o">+=&lt;/span> &lt;span class="s2">&amp;#34;LC_TIME LC_ALL LANGUAGE LINGUAS _XKB_CHARSET XAUTHORITY&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Adding HOME to env_keep may enable a user to run unrestricted&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># commands via sudo.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Defaults env_keep += &amp;#34;HOME&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Defaults &lt;span class="nv">secure_path&lt;/span> &lt;span class="o">=&lt;/span> /sbin:/bin:/usr/sbin:/usr/bin
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Next comes the main part: which users can run what software on&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## which machines (the sudoers file can be shared between multiple&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## systems).&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Syntax:&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">##&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## user MACHINE=COMMANDS&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">##&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## The COMMANDS section may have other options added to it.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">##&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Allow root to run any commands anywhere&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">root &lt;span class="nv">ALL&lt;/span>&lt;span class="o">=(&lt;/span>ALL&lt;span class="o">)&lt;/span> ALL
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Allows members of the &amp;#39;sys&amp;#39; group to run networking, software,&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## service management apps and more.&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># %sys ALL = NETWORKING, SOFTWARE, SERVICES, STORAGE, DELEGATING, PROCESSES, LOCATE, DRIVERS&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Allows people in group wheel to run all commands&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">%wheel &lt;span class="nv">ALL&lt;/span>&lt;span class="o">=(&lt;/span>ALL&lt;span class="o">)&lt;/span> ALL
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Same thing without a password&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># %wheel ALL=(ALL) NOPASSWD: ALL&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Allows members of the users group to mount and unmount the&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## cdrom as root&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># %users ALL=/sbin/mount /mnt/cdrom, /sbin/umount /mnt/cdrom&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Allows members of the users group to shutdown this system&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># %users localhost=/sbin/shutdown -h now&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">## Read drop-in files from /etc/sudoers.d (the # here does not mean a comment)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#includedir /etc/sudoers.d&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">[&lt;/span>root@instance-20250718-2217 sudoers.d&lt;span class="o">]&lt;/span>&lt;span class="c1">#&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>/etc/sudoers.d/から読み込まれるファイルの一つ「90-cloud-init-users」にopcユーザのsudo許可が書かれる&lt;br>
※ファイルの一つと書いたのは厳密には/etc/sudoers.d/内に他のファイルもありシステムユーザ用の設定が入っているから。ファイル内容は記事末尾に記載&lt;/p></description></item><item><title>OCI_Compartment名を変えた</title><link>https://exa-hack.com/blog/oci_compartment%E5%90%8D%E3%82%92%E5%A4%89%E3%81%88%E3%81%9F/</link><pubDate>Fri, 20 Jun 2025 04:22:20 +0000</pubDate><guid>https://exa-hack.com/blog/oci_compartment%E5%90%8D%E3%82%92%E5%A4%89%E3%81%88%E3%81%9F/</guid><description>&lt;p>Blogs → BlogArea&lt;br>
普通にRename Compartmentってある&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-180.png" alt="image-180.png">&lt;/p>
&lt;p>気になってたのがPolicyがcompartmentのocidじゃなくcompartment nameで設定されてたこと(というか変えた後に気になった)&lt;/p>
&lt;p>連動して変わるらしい。ただ小文字になっちゃうっぽい(一番上のやつ)。大文字小文字含んでるのは手動で設定したやつ。&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-181.png" alt="image-181.png">&lt;br>
このCompartmentのせいでリソース迷子になるね。勉強のためにあえてCompartmentわけてみたんだけど想像以上にめんどくさい。&lt;/p></description></item><item><title>OCI_oci-cliのインストールパスを移動する。のはやめて再インストールする。</title><link>https://exa-hack.com/blog/oci_oci-cli%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%83%91%E3%82%B9%E3%82%92%E7%A7%BB%E5%8B%95%E3%81%99%E3%82%8B%E3%81%AE%E3%81%AF%E3%82%84%E3%82%81%E3%81%A6%E5%86%8D%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B/</link><pubDate>Fri, 20 Jun 2025 02:45:33 +0000</pubDate><guid>https://exa-hack.com/blog/oci_oci-cli%E3%81%AE%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%83%91%E3%82%B9%E3%82%92%E7%A7%BB%E5%8B%95%E3%81%99%E3%82%8B%E3%81%AE%E3%81%AF%E3%82%84%E3%82%81%E3%81%A6%E5%86%8D%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB%E3%81%99%E3%82%8B/</guid><description>&lt;h2 id="oci-cliのインストールパスを移動するのをやめる">oci-cliのインストールパスを移動する。のをやめる。&lt;a class="td-heading-self-link" href="#oci-cli%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%83%91%e3%82%b9%e3%82%92%e7%a7%bb%e5%8b%95%e3%81%99%e3%82%8b%e3%81%ae%e3%82%92%e3%82%84%e3%82%81%e3%82%8b" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>oci-cliを適当にインストールしたらホームディレクトリ直下(/home/ubuntu)にlib/ bin/ディレクトリが作成されてしまい邪魔だった。&lt;br>
というかそれに気づいたのも暫くたってからで今更入れ直すのも面倒だしと思って我慢して使っていた。&lt;br>
けど、こんなのmvしてPATHを変えればいいだけですやんと思って /usr/local あたりに移動しようとしたけど、&lt;br>
結構インストールパスが組み込まれてて面倒なので素直に再インストールしたほうがいいと思った。ので削除して再インストールすることにした。&lt;br>
&lt;mark>というかOracle Linuxだとdnfで入れられるっぽくてこうはならないっぽい。&lt;/mark>&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">ubuntu@instance-blogs:/usr/local/lib/oracle-cli$ sudo grep -R &lt;span class="s2">&amp;#34;/home/ubuntu&amp;#34;&lt;/span> ./* 2&amp;gt;&lt;span class="p">&amp;amp;&lt;/span>&lt;span class="m">1&lt;/span> &lt;span class="p">|&lt;/span> grep -v &lt;span class="s2">&amp;#34;binary file matches&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">./bin/jp.py:#!/home/ubuntu/lib/oracle-cli/bin/python3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">./bin/activate.csh:setenv VIRTUAL_ENV /home/ubuntu/lib/oracle-cli
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">./bin/activate: &lt;span class="nb">export&lt;/span> &lt;span class="nv">VIRTUAL_ENV&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="k">$(&lt;/span>cygpath /home/ubuntu/lib/oracle-cli&lt;span class="k">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">./bin/activate: &lt;span class="nb">export&lt;/span> &lt;span class="nv">VIRTUAL_ENV&lt;/span>&lt;span class="o">=&lt;/span>/home/ubuntu/lib/oracle-cli
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">./bin/pip3.12:#!/home/ubuntu/lib/oracle-cli/bin/python3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">./bin/activate.fish:set -gx VIRTUAL_ENV /home/ubuntu/lib/oracle-cli
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">./bin/create_backup_from_onprem:#!/home/ubuntu/lib/oracle-cli/bin/python3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">./bin/pip3:#!/home/ubuntu/lib/oracle-cli/bin/python3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">./bin/wheel:#!/home/ubuntu/lib/oracle-cli/bin/python3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">./bin/oci:#!/home/ubuntu/lib/oracle-cli/bin/python3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">./bin/pip:#!/home/ubuntu/lib/oracle-cli/bin/python3
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">./pyvenv.cfg:command &lt;span class="o">=&lt;/span> /usr/bin/python3 -m venv /home/ubuntu/lib/oracle-cli
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ubuntu@instance-blogs:/usr/local/lib/oracle-cli$
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>.bashrcも汚される&lt;br>
→これも後で確認したらインストール時に書き込むけど良いか？みたいなこと聞かれてた。我覚えてない。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">ubuntu@instance-blogs:~$ cat .bashrc
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">～略～
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">elif&lt;/span> &lt;span class="o">[&lt;/span> -f /etc/bash_completion &lt;span class="o">]&lt;/span>&lt;span class="p">;&lt;/span> &lt;span class="k">then&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> . /etc/bash_completion
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="k">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="k">fi&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">export&lt;/span> &lt;span class="nv">PATH&lt;/span>&lt;span class="o">=&lt;/span>/home/ubuntu/bin:&lt;span class="nv">$PATH&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">[[&lt;/span> -e &lt;span class="s2">&amp;#34;/home/ubuntu/lib/oracle-cli/lib/python3.12/site-packages/oci_cli/bin/oci_autocomplete.sh&amp;#34;&lt;/span> &lt;span class="o">]]&lt;/span> &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> &lt;span class="nb">source&lt;/span> &lt;span class="s2">&amp;#34;/home/ubuntu/lib/oracle-cli/lib/python3.12/site-packages/oci_cli/bin/oci_autocomplete.sh&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">ubuntu@instance-blogs:~$
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="インストールする">インストールする&lt;a class="td-heading-self-link" href="#%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab%e3%81%99%e3%82%8b" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Ubuntu向け&lt;br>
手順：&lt;br>
&lt;a href="https://docs.oracle.com/ja-jp/iaas/Content/API/SDKDocs/cliinstall.htm#InstallingCLI__linux_and_unix">https://docs.oracle.com/ja-jp/iaas/Content/API/SDKDocs/cliinstall.htm#InstallingCLI__linux_and_unix&lt;/a>&lt;/p></description></item><item><title>Dockerの認証情報を暗号化する</title><link>https://exa-hack.com/blog/docker%E3%81%AE%E8%AA%8D%E8%A8%BC%E6%83%85%E5%A0%B1%E3%82%92%E6%9A%97%E5%8F%B7%E5%8C%96%E3%81%99%E3%82%8B/</link><pubDate>Sat, 25 Apr 2026 03:24:29 +0000</pubDate><guid>https://exa-hack.com/blog/docker%E3%81%AE%E8%AA%8D%E8%A8%BC%E6%83%85%E5%A0%B1%E3%82%92%E6%9A%97%E5%8F%B7%E5%8C%96%E3%81%99%E3%82%8B/</guid><description>&lt;h2 id="更新履歴">更新履歴&lt;a class="td-heading-self-link" href="#%e6%9b%b4%e6%96%b0%e5%b1%a5%e6%ad%b4" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>2026/04/13 : OCIRにpushできなくなった。知識の整理のため&lt;a href="#docker-%e8%aa%8d%e8%a8%bc%e6%83%85%e5%a0%b1%e3%81%ae%e4%bf%9d%e5%ad%98%e5%a0%b4%e6%89%80%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e3%81%ae%e3%81%be%e3%81%a8%e3%82%81">#Docker 認証情報の保存場所についてのまとめ&lt;/a>を追記&lt;/p>
&lt;h2 id="警告がでる">警告がでる&lt;a class="td-heading-self-link" href="#%e8%ad%a6%e5%91%8a%e3%81%8c%e3%81%a7%e3%82%8b" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>クラウドのコンテナレジストリにPushする時にdocker loginコマンドでログインするのだが、&lt;br>
login時にこんな警告が出る&lt;/p>
&lt;blockquote>
&lt;p>[!note]&lt;br>
WARNING! Your password will be stored unencrypted in /home/docker/.docker/config.json.WARNING! Your password will be stored unencrypted in /home/docker/.docker/config.json.&lt;/p>&lt;/blockquote>
&lt;p>~/.docker/config.jsonにパスワードが平文で保存されているよという内容。&lt;br>
明示的にlogoutするとconfig.jsonからも消えるみたいだけど、逆に明示的にlogoutしないと平文パスワードがそのまま残ってしまいマズいよということらしい。&lt;/p>
&lt;p>こんな感じ&lt;br>
初回ログイン時は認証情報が求められるけど、このおかげで2回目以降は認証情報なしでログインできる。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">docker@ubuntu24:~/fn_projects/oci_logging_usage_notification$ docker login nrt.ocir.io
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Authenticating with existing credentials...
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">WARNING! Your password will be stored unencrypted in /home/docker/.docker/config.json.
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Configure a credential helper to remove this warning. See
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">https://docs.docker.com/engine/reference/commandline/login/#credential-stores
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Login Succeeded
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">docker@ubuntu24:~/fn_projects/oci_logging_usage_notification$
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>ホントに平文で入ってる。明示的にlogoutコマンド打つと消える。&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">docker@ubuntu24:~/fn_projects/oci_logging_usage_notification$ cat ~/.docker/config.json
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;auths&amp;#34;&lt;/span>: &lt;span class="o">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;xxxxxxxxxx.xxx.ecr.us-east-1.amazonaws.com&amp;#34;&lt;/span>: &lt;span class="o">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;auth&amp;#34;&lt;/span>: &lt;span class="s2">&amp;#34;～略～&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="o">}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">}&lt;/span>docker@ubuntu24:~/fn_projects/oci_logging_usage_notification$ docker &lt;span class="nb">logout&lt;/span> xxxxxxxxxx.xxx.ecr.us-east-1.amazonaws.com
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">Removing login credentials &lt;span class="k">for&lt;/span> xxxxxxxxxx.xxx.ecr.us-east-1.amazonaws.com
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">docker@ubuntu24:~/fn_projects/oci_logging_usage_notification$ cat ~/.docker/config.json
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">{&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="s2">&amp;#34;auths&amp;#34;&lt;/span>: &lt;span class="o">{}&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="o">}&lt;/span>docker@ubuntu24:~/fn_projects/oci_logging_usage_notification$
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="暗号化する">暗号化する：&lt;a class="td-heading-self-link" href="#%e6%9a%97%e5%8f%b7%e5%8c%96%e3%81%99%e3%82%8b" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;blockquote>
&lt;p>[!note]&lt;br>
実施したのはpass方式を使う設定※&lt;a href="#docker-%e8%aa%8d%e8%a8%bc%e6%83%85%e5%a0%b1%e3%81%ae%e4%bf%9d%e5%ad%98%e5%a0%b4%e6%89%80%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e3%81%ae%e3%81%be%e3%81%a8%e3%82%81">#Docker 認証情報の保存場所についてのまとめ&lt;/a>&lt;/p></description></item><item><title>AWS_Lambdaを使って日次ジョブを仕込んでみる</title><link>https://exa-hack.com/blog/aws_lambda%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E6%97%A5%E6%AC%A1%E3%82%B8%E3%83%A7%E3%83%96%E3%82%92%E4%BB%95%E8%BE%BC%E3%82%93%E3%81%A7%E3%81%BF%E3%82%8B/</link><pubDate>Mon, 23 Jun 2025 05:15:37 +0000</pubDate><guid>https://exa-hack.com/blog/aws_lambda%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E6%97%A5%E6%AC%A1%E3%82%B8%E3%83%A7%E3%83%96%E3%82%92%E4%BB%95%E8%BE%BC%E3%82%93%E3%81%A7%E3%81%BF%E3%82%8B/</guid><description>&lt;h2 id="やること">やること&lt;a class="td-heading-self-link" href="#%e3%82%84%e3%82%8b%e3%81%93%e3%81%a8" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>OCIの課金情報をメールに送付するスクリプトを作成したのでAWSのサーバレス環境でジョブ化してみる&lt;br>
主に2つのサービスを使う&lt;/p>
&lt;ul>
&lt;li>AWS Lambda: サーバーレス実行環境&lt;/li>
&lt;li>AWS EventBride Schedule: ジョブスケジューラ&lt;/li>
&lt;/ul>
&lt;h2 id="aws-lambda">AWS Lambda&lt;a class="td-heading-self-link" href="#aws-lambda" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>この辺にあったLambda&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-120.png" alt="image-120.png">&lt;br>
Create a funcation&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-121.png" alt="image-121.png">&lt;/p>
&lt;p>3パターンある。Use a blueprintってのはテンプレから作成するやつ。見てみたけど他のAWSサービスと連携する用みたいなのがいろいろ。&lt;br>
今回はAuthor from scratchで作ってPython用のコードをアップロードすることにする。&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-122.png" alt="image-122.png">&lt;/p>
&lt;p>この辺にアップロード用のzip作成手順が載ってる&lt;br>
&lt;a href="https://docs.aws.amazon.com/lambda/latest/dg/python-package.html">https://docs.aws.amazon.com/lambda/latest/dg/python-package.html&lt;/a>&lt;/p>
&lt;p>&lt;a href="https://docs.aws.amazon.com/lambda/latest/dg/python-handler.html">https://docs.aws.amazon.com/lambda/latest/dg/python-handler.html&lt;/a>&lt;/p>
&lt;p>とりあえず側だけ(サンプルコード付き)作って、あとからコードアップロードするっぽい&lt;/p>
&lt;h3 id="資材の準備">資材の準備&lt;a class="td-heading-self-link" href="#%e8%b3%87%e6%9d%90%e3%81%ae%e6%ba%96%e5%82%99" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;p>スクリプトはPyCharmで書いてるので、&lt;br>
PyCharm&lt;br>
Tools &amp;gt; Sync Pythons requirements で requirements.txtを生成&lt;/p>
&lt;p>依存ライブラリもろもろカレントに詰め込んでzipに固めてアップロードすればいいらしい&lt;br>
依存ライブラリの取得はスクリプトに包んだ&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">docker@ubuntu24:~/lambda_build/multicloud_billing_report$ cat ../build_lambda_fun.sh
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#!/usr/bin/env bash&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">set&lt;/span> -euo pipefail
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">PROJECT_ROOT&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="k">$(&lt;/span>&lt;span class="nb">pwd&lt;/span>&lt;span class="k">)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">BUILD_DIR&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">PROJECT_ROOT&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">/build&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">rm -rf &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$BUILD_DIR&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="o">&amp;amp;&amp;amp;&lt;/span> mkdir -p &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$BUILD_DIR&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 依存を確定&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#uv lock&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1">#uv export --frozen --no-dev -o requirements.txt&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">docker run --rm &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> --entrypoint /bin/bash &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> -e &lt;span class="nv">PIP_DEFAULT_TIMEOUT&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1200&lt;/span> &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> -v &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="si">${&lt;/span>&lt;span class="nv">PROJECT_ROOT&lt;/span>&lt;span class="si">}&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>:/var/task &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> -w /var/task &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> public.ecr.aws/lambda/python:3.13 &lt;span class="se">\
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="se">&lt;/span> -eu -c &lt;span class="s1">&amp;#39;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> PM=dnf; command -v yum &amp;gt;/dev/null &amp;amp;&amp;amp; PM=yum
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> $PM -y install gcc python3-devel || echo &amp;#34;skip gcc&amp;#34;
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> python -m pip install --upgrade pip
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> python -m pip install --only-binary=:all: \
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> -r requirements.txt \
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> --target build/python \
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> --progress-bar off
&lt;/span>&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="s1"> &amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># entrypointがない 開発・ビルド専用イメージ public.ecr.aws/sam/build-python3.13 もあるらしい&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">sudo chown -R &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="k">$(&lt;/span>id -u&lt;span class="k">)&lt;/span>&lt;span class="s2">:&lt;/span>&lt;span class="k">$(&lt;/span>id -g&lt;span class="k">)&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span> &lt;span class="s2">&amp;#34;&lt;/span>&lt;span class="nv">$BUILD_DIR&lt;/span>&lt;span class="s2">&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nb">echo&lt;/span> &lt;span class="s2">&amp;#34;依存ライブラリを build/python に展開しました&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">docker@ubuntu24:~/lambda_build/multicloud_billing_report$
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>実行する&lt;/p></description></item><item><title>クラウドを極力無料で試して遊んでいるブログです</title><link>https://exa-hack.com/blog/%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E3%82%92%E6%A5%B5%E5%8A%9B%E7%84%A1%E6%96%99%E3%81%A7%E8%A9%A6%E3%81%97%E3%81%A6%E9%81%8A%E3%82%93%E3%81%A7%E3%81%84%E3%82%8B%E3%83%96%E3%83%AD%E3%82%B0%E3%81%A7%E3%81%99/</link><pubDate>Fri, 20 Jun 2025 02:53:29 +0000</pubDate><guid>https://exa-hack.com/blog/%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89%E3%82%92%E6%A5%B5%E5%8A%9B%E7%84%A1%E6%96%99%E3%81%A7%E8%A9%A6%E3%81%97%E3%81%A6%E9%81%8A%E3%82%93%E3%81%A7%E3%81%84%E3%82%8B%E3%83%96%E3%83%AD%E3%82%B0%E3%81%A7%E3%81%99/</guid><description>&lt;h1 id="クラウドを極力無料で試して遊んでいるブログです">クラウドを極力無料で試して遊んでいるブログです&lt;a class="td-heading-self-link" href="#%e3%82%af%e3%83%a9%e3%82%a6%e3%83%89%e3%82%92%e6%a5%b5%e5%8a%9b%e7%84%a1%e6%96%99%e3%81%a7%e8%a9%a6%e3%81%97%e3%81%a6%e9%81%8a%e3%82%93%e3%81%a7%e3%81%84%e3%82%8b%e3%83%96%e3%83%ad%e3%82%b0%e3%81%a7%e3%81%99" aria-label="Heading self-link">&lt;/a>&lt;/h1>
&lt;h2 id="ブログの紹介文">ブログの紹介文&lt;a class="td-heading-self-link" href="#%e3%83%96%e3%83%ad%e3%82%b0%e3%81%ae%e7%b4%b9%e4%bb%8b%e6%96%87" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>クラウドは「習うより慣れろ」ということでAWS・Azure・Google Cloud・Oracle Cloud (OCI) を“ほぼ無料”な枠や期間限定クレジットで実験＆日記ブログです。&lt;br>
お金をかけずに気軽に試しています。このブログもその一環でObsidianに書き溜めてるノートをとりあえずはAzure SWAにデプロイしています。&lt;br>
掲載している手順・設定は、筆者が試した時点のメモです。手順の正確性や網羅性は保証しておりません。ミス等は気付き次第直します。アカウント固有の情報はxxxxxxとかで雑にマスクしてます。&lt;/p>
&lt;hr>
&lt;h2 id="資格失効済み含む">資格(失効済み含む)&lt;a class="td-heading-self-link" href="#%e8%b3%87%e6%a0%bc%e5%a4%b1%e5%8a%b9%e6%b8%88%e3%81%bf%e5%90%ab%e3%82%80" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;h3 id="oci">OCI&lt;a class="td-heading-self-link" href="#oci" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;ul>
&lt;li>Oracle Database@AWS Architect Professional (⭐New : 2025/10/30 🎉)&lt;/li>
&lt;li>Oracle Cloud Infrastructure 2025 Multicloud Architect Professional (⭐New : 2025/10/29 🎉)&lt;/li>
&lt;li>Oracle Cloud Infrastructure 2025 Observability Professional (⭐New : 2025/10/29 🎉)&lt;/li>
&lt;li>Oracle Cloud Infrastructure 2025 AI Foundations Associate (⭐New : 2025/09/15 🎉)&lt;/li>
&lt;li>Oracle Cloud Data Management 2025 Certified Foundations Associate (⭐New : 2025/09/11 🎉)&lt;/li>
&lt;li>Oracle Cloud Infrastructure 2025 Foundations Associate (⭐New : 2025/08/31 🎉)&lt;/li>
&lt;li>Oracle AI Vector Search Certified Professional (2025/04/14)&lt;/li>
&lt;li>MySQL HeatWave Implementation Certified Associate Rel 1 (2024/07/30)&lt;/li>
&lt;li>Oracle Cloud Infrastructure 2024 Generative AI Certified Professional (2024/07/22)&lt;/li>
&lt;li>Oracle Database Cloud Administrator 2023 Certified Professional (2024/05/08)&lt;/li>
&lt;li>Oracle Base Database Services 2023 Certified Professional (2024/05/08)&lt;/li>
&lt;li>Oracle Autonomous Database Cloud 2023 Certified Professional (2024/01/15)&lt;/li>
&lt;li>Oracle Cloud Database 2023 Migration and Integration Certified Professionl (2024/01/15)&lt;/li>
&lt;li>&lt;del>Oracle Cloud Infrastructure 2023 AI Certified Foundations Associate (2024/01/05)&lt;/del> (🌠2025更新)&lt;/li>
&lt;li>&lt;del>Oracle Cloud Data Management 2023 Certified Foundations Associate (2023/08/17)&lt;/del> (🌠2025更新)&lt;/li>
&lt;li>&lt;del>Oracle Cloud Infrastructure 2023 Certified Foundations Associate (2023/08/11)&lt;/del> (🌠2025更新)&lt;/li>
&lt;li>Oracle Cloud Infrastructure 2023 Certified Architect Professional (2023/08/03)&lt;/li>
&lt;li>Oracle Cloud Infrastructure 2022 Certified Security Professional (2022/12/22)&lt;/li>
&lt;li>Oracle Cloud Infrastructure 2022 Certified Architect Associate (2022/10/25)&lt;/li>
&lt;/ul>
&lt;h3 id="aws">AWS&lt;a class="td-heading-self-link" href="#aws" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;ul>
&lt;li>AWS Certified Cloud Practitioner (⭐New : 2025/08/23 🎉)&lt;/li>
&lt;/ul>
&lt;h3 id="azure">Azure&lt;a class="td-heading-self-link" href="#azure" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;ul>
&lt;li>Azure Fundamentals (AZ-900) (⭐New : 2025/09/13 🎉)&lt;/li>
&lt;/ul>
&lt;h3 id="google-cloud">Google Cloud&lt;a class="td-heading-self-link" href="#google-cloud" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;ul>
&lt;li>Google Cloud Cloud Digital Leader (⭐New : 2025/08/30 🎉)&lt;/li>
&lt;/ul>
&lt;h3 id="その他オラクル資格">その他オラクル資格&lt;a class="td-heading-self-link" href="#%e3%81%9d%e3%81%ae%e4%bb%96%e3%82%aa%e3%83%a9%e3%82%af%e3%83%ab%e8%b3%87%e6%a0%bc" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;ul>
&lt;li>ORACLE MASTER Platinum DBA 2019 (2023/08/29)&lt;/li>
&lt;li>Oracle Certified Java Programmer, Gold SE 11 (2023/07/15)&lt;/li>
&lt;li>Oracle Database 19c: Data Guard Administrator (2023/01/09)&lt;/li>
&lt;li>Oracle Database 19c: RAC, ASM, and Grid Infrastructure Administrator (2022/11/04)&lt;/li>
&lt;/ul></description></item><item><title>OCI_無料のLBを2つのリージョンで使いまわしたいのでVCNつなぐ</title><link>https://exa-hack.com/blog/oci_%E7%84%A1%E6%96%99%E3%81%AElb%E3%82%922%E3%81%A4%E3%81%AE%E3%83%AA%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%A7%E4%BD%BF%E3%81%84%E3%81%BE%E3%82%8F%E3%81%97%E3%81%9F%E3%81%84%E3%81%AE%E3%81%A7vcn%E3%81%A4%E3%81%AA%E3%81%90/</link><pubDate>Sat, 05 Jul 2025 16:28:47 +0000</pubDate><guid>https://exa-hack.com/blog/oci_%E7%84%A1%E6%96%99%E3%81%AElb%E3%82%922%E3%81%A4%E3%81%AE%E3%83%AA%E3%83%BC%E3%82%B8%E3%83%A7%E3%83%B3%E3%81%A7%E4%BD%BF%E3%81%84%E3%81%BE%E3%82%8F%E3%81%97%E3%81%9F%E3%81%84%E3%81%AE%E3%81%A7vcn%E3%81%A4%E3%81%AA%E3%81%90/</guid><description>&lt;h2 id="何をやりたいかというと">何をやりたいかというと&lt;a class="td-heading-self-link" href="#%e4%bd%95%e3%82%92%e3%82%84%e3%82%8a%e3%81%9f%e3%81%84%e3%81%8b%e3%81%a8%e3%81%84%e3%81%86%e3%81%a8" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>OCIはLB(L7ロードバランサー)が1インスタンス無料らしい。さらに、そこにアタッチするWAFポリシーも1インスタンス無料らしい。この無料WAFを使って2つのリージョンにあるComputeに処理を流したい。ただ、LBはリージョナルオブジェクトなので各リージョン内に存在していて通常は自リージョン内にしか処理をさばけない。そこでリージョン間をネットワーク接続して処理を無理やり流す。&lt;br>
処理効率的にこれをやる意味はないのだけど、WAFのIPブロック機能を使いたいのでやってみる。&lt;/p>
&lt;p>&lt;a href="https://www.oracle.com/cloud/price-list/">https://www.oracle.com/cloud/price-list/&lt;/a>&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-197.png" alt="image-197.png">&lt;/p>
&lt;h2 id="dynamic-routing-gatwaydrgを各region毎に作成しそれぞれのvcnをアタッチ">Dynamic Routing Gatway(DRG)を各Region毎に作成し、それぞれのVCNをアタッチ&lt;a class="td-heading-self-link" href="#dynamic-routing-gatwaydrg%e3%82%92%e5%90%84region%e6%af%8e%e3%81%ab%e4%bd%9c%e6%88%90%e3%81%97%e3%81%9d%e3%82%8c%e3%81%9e%e3%82%8c%e3%81%aevcn%e3%82%92%e3%82%a2%e3%82%bf%e3%83%83%e3%83%81" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>Tokyo側&lt;br>
Networking &amp;gt; Customer connectivity &amp;gt; Dynamic routing gateways &amp;gt; Create dynamic routing gateway&lt;/p>
&lt;ul>
&lt;li>NAME: DRG_NW_Blogs&lt;/li>
&lt;li>Compartment: Blogs&lt;/li>
&lt;/ul>
&lt;p>(NAME: DRG_NW_Blogs) &amp;gt; Attachments タブ &amp;gt; Create VCN attachment&lt;/p>
&lt;ul>
&lt;li>NAME: VCN_attachment_NW_Blogs&lt;/li>
&lt;li>VCN: NW_Blogs&lt;/li>
&lt;li>DRG route table(VCN→DRG) : Autogenerated Drg Route Table for VCN attachments&lt;br>
※トランジットルーティングのハブ構成を作りたいとかじゃなければ↑のデフォルトで良いっぽい。&lt;/li>
&lt;li>VCN route table(DRG→VCN): None&lt;br>
※トランジットルーティング（ハブ&amp;amp;スポーク）構成で、DRG から VCN 内のどのサブネットへ転送させるか細かく制御する用途。通常モードならNoneでVCNのDefaultのRute表が使われる。&lt;/li>
&lt;li>VCN route type: Subnet CIDR blocks&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>今回はCIDRもかぶってない2つのリージョンをつなぐだけなのでルーティングとか気にしないシンプルな構成で。&lt;/p>
&lt;p>参考：トランジットルーティング（ハブ＆スポーク）&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-96.png" alt="image-96.png">&lt;/p></description></item><item><title>OCI_Geminiに作ってもらったしょうもないアプリをコンテナインスタンスで公開した</title><link>https://exa-hack.com/blog/oci_gemini%E3%81%AB%E4%BD%9C%E3%81%A3%E3%81%A6%E3%82%82%E3%82%89%E3%81%A3%E3%81%9F%E3%81%97%E3%82%87%E3%81%86%E3%82%82%E3%81%AA%E3%81%84%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%81%A7%E5%85%AC%E9%96%8B%E3%81%97%E3%81%9F/</link><pubDate>Fri, 20 Jun 2025 04:22:15 +0000</pubDate><guid>https://exa-hack.com/blog/oci_gemini%E3%81%AB%E4%BD%9C%E3%81%A3%E3%81%A6%E3%82%82%E3%82%89%E3%81%A3%E3%81%9F%E3%81%97%E3%82%87%E3%81%86%E3%82%82%E3%81%AA%E3%81%84%E3%82%A2%E3%83%97%E3%83%AA%E3%82%92%E3%82%B3%E3%83%B3%E3%83%86%E3%83%8A%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9%E3%81%A7%E5%85%AC%E9%96%8B%E3%81%97%E3%81%9F/</guid><description>&lt;h2 id="まずコンテナイメージ作る">まずコンテナイメージ作る&lt;a class="td-heading-self-link" href="#%e3%81%be%e3%81%9a%e3%82%b3%e3%83%b3%e3%83%86%e3%83%8a%e3%82%a4%e3%83%a1%e3%83%bc%e3%82%b8%e4%bd%9c%e3%82%8b" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>ローカルPCのUbuntu環境にて&lt;br>
コンテナイメージの作成(Dockerfile含めて全部Gemini作)&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-bash" data-lang="bash">&lt;span class="line">&lt;span class="cl">docker@ubuntu24:~/DC/ai_fortune_teller$ cat docker-compose.yml
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">services:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> web:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> build:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> context: . &lt;span class="c1"># Dockerfileがあるディレクトリを指定 (カレントディレクトリ)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> dockerfile: Dockerfile &lt;span class="c1"># 使用するDockerfileの名前&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> image: ai_fortune_site_web:latest
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> container_name: ai_fortune_site_web
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> ports:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> - &lt;span class="s2">&amp;#34;8084:80&amp;#34;&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> volumes:
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># index.htmlの変更をリアルタイムに反映させたい場合 (開発時向け)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># Dockerfile内のCOPY命令と競合するため、どちらか一方を有効にします。&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># 開発時はこちらを有効にし、DockerfileのCOPY ./index.html ... をコメントアウトすると便利です。&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> &lt;span class="c1"># 本番環境ではDockerfileのCOPYを使い、このvolumesはコメントアウトまたは削除します。&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> - ./index.html:/usr/share/nginx/html/index.html:ro &lt;span class="c1"># :ro は読み取り専用&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl"> restart: unless-stopped &lt;span class="c1"># コンテナが停止した場合、手動で停止しない限り再起動&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">docker@ubuntu24:~/DC/ai_fortune_teller$ cat Dockerfile
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># ベースイメージとしてNginxの公式イメージを使用&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">FROM nginx:alpine
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Nginxのデフォルト設定ファイルを削除 (カスタム設定を使用するため)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">RUN rm /etc/nginx/conf.d/default.conf
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># カスタムのNginx設定ファイルをコンテナにコピー&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">COPY nginx.conf /etc/nginx/conf.d/default.conf
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 静的コンテンツ (HTML, CSS, JS) をNginxのドキュメントルートにコピー&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># index.html があるディレクトリを app という名前にしてコピーします。&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># この Dockerfile と同じ階層に app/index.html がある想定です。&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># もし index.html が Dockerfile と同じ階層にある場合は、&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># COPY ./index.html /usr/share/nginx/html/index.html のように変更してください。&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># 今回は index.html が Dockerfile と同じ階層にある前提で進めます。&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">COPY ./index.html /usr/share/nginx/html/index.html
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Nginxがリッスンするポートを指定 (デフォルトは80)&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">EXPOSE &lt;span class="m">80&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="c1"># Nginxをフォアグラウンドで実行&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">CMD &lt;span class="o">[&lt;/span>&lt;span class="s2">&amp;#34;nginx&amp;#34;&lt;/span>, &lt;span class="s2">&amp;#34;-g&amp;#34;&lt;/span>, &lt;span class="s2">&amp;#34;daemon off;&amp;#34;&lt;/span>&lt;span class="o">]&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">docker@ubuntu24:~/DC/ai_fortune_teller$
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>イメージ作るだけなら：&lt;code>docker compose build&lt;/code> → &lt;code>docker image ls &amp;lt;image名&amp;gt;&lt;/code>&lt;br>
起動して動確もするなら：&lt;code>docker compose up --build -d&lt;/code> → &lt;code>docker compose images&lt;/code> `&lt;/p></description></item><item><title>Google Cloud_Webサイトの生存監視</title><link>https://exa-hack.com/blog/google-cloud_web%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AE%E7%94%9F%E5%AD%98%E7%9B%A3%E8%A6%96/</link><pubDate>Sat, 21 Jun 2025 12:21:22 +0000</pubDate><guid>https://exa-hack.com/blog/google-cloud_web%E3%82%B5%E3%82%A4%E3%83%88%E3%81%AE%E7%94%9F%E5%AD%98%E7%9B%A3%E8%A6%96/</guid><description>&lt;h2 id="ブログのサイト生存監視を実施してみる">ブログのサイト生存監視を実施してみる&lt;a class="td-heading-self-link" href="#%e3%83%96%e3%83%ad%e3%82%b0%e3%81%ae%e3%82%b5%e3%82%a4%e3%83%88%e7%94%9f%e5%ad%98%e7%9b%a3%e8%a6%96%e3%82%92%e5%ae%9f%e6%96%bd%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>どこのクラウドも似たようなサービスあるけど、とりあえずGoogle Cloud使ってみたかったので。&lt;br>
くっくっくっ…ちなみに実行回数にしたら月100万回は無料か…&lt;/p>
&lt;p>&lt;a href="https://cloud.google.com/monitoring">https://cloud.google.com/monitoring&lt;/a>&lt;/p>
&lt;p>&lt;img src="https://exa-hack.com/ob/_Pictures/image-192.png" alt="image-192.png">&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-191.png" alt="image-191.png">&lt;/p>
&lt;p>合成モニタリングの概要&lt;br>
&lt;a href="https://cloud.google.com/monitoring/uptime-checks/introduction?hl=ja">https://cloud.google.com/monitoring/uptime-checks/introduction?hl=ja&lt;/a>&lt;/p>
&lt;h2 id="作ったもの">作ったもの&lt;a class="td-heading-self-link" href="#%e4%bd%9c%e3%81%a3%e3%81%9f%e3%82%82%e3%81%ae" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>Project: Website Uptime Monitoring&lt;/li>
&lt;li>Uptime checks
&lt;ul>
&lt;li>Uptime check &lt;a href="https://www.fuku.tokyo">www.fuku.tokyo&lt;/a>
&lt;ul>
&lt;li>Alert Policy: &lt;a href="https://www.fuku.tokyo">www.fuku.tokyo&lt;/a> uptime failure
&lt;ul>
&lt;li>Notification Channels: チャネル名適当&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="作成手順">作成手順&lt;a class="td-heading-self-link" href="#%e4%bd%9c%e6%88%90%e6%89%8b%e9%a0%86" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>Cloud Monitoring API を有効にする&lt;br>
APIs &amp;amp; Services &amp;gt; Library&lt;/p>
&lt;p>Cloud Monitoring API を検索&lt;br>
→	デフォルトでAPI Enabledになってた。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>モニタリング設定&lt;br>
Monitoring ＞ Uptime checks&lt;br>
Create uptime check&lt;/p>
&lt;p>※名前とか後で変更できるので気楽に&lt;br>
チェック間隔は最大で15分だった。&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-51.png" alt="image-51.png">&lt;/p>
&lt;p>ここはデフォルト&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-52.png" alt="image-52.png">&lt;br>
アラート間隔だけ6時間にした(→これ後でAlert Policyの設定で1時間にした)&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-53.png" alt="image-53.png">&lt;br>
名前だけ付けて「Test」その後「Create」&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-55.png" alt="image-55.png">&lt;/p>
&lt;p>出来た&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-56.png" alt="image-56.png">&lt;br>
右下にAlert Policyが1件できてるのでそれをクリック&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-57.png" alt="image-57.png">&lt;/p>
&lt;p>後々要調整だけど、15分間隔のチェックなので1時間に2回エラーで発報という設定にしてみる。&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-58.png" alt="image-58.png">&lt;br>
通知先はEmail&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-59.png" alt="image-59.png">&lt;br>
送信先アドレスを設定&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-60.png" alt="image-60.png">&lt;/p>
&lt;p>メールタイトルを適当につけて保存&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image.png" alt="image.png">&lt;/p>
&lt;/li>
&lt;/ol>
&lt;p>サイト落としたらメール来た。一度メール来たら連投はしないらしい。復旧メールは出る。&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-62.png" alt="image-62.png">&lt;/p></description></item><item><title>OCI_Cloud_Guard構成</title><link>https://exa-hack.com/blog/oci_cloud_guard%E6%A7%8B%E6%88%90/</link><pubDate>Wed, 25 Jun 2025 16:15:47 +0000</pubDate><guid>https://exa-hack.com/blog/oci_cloud_guard%E6%A7%8B%E6%88%90/</guid><description>&lt;h2 id="管理用のグループユーザーを作成">管理用のグループ/ユーザーを作成&lt;a class="td-heading-self-link" href="#%e7%ae%a1%e7%90%86%e7%94%a8%e3%81%ae%e3%82%b0%e3%83%ab%e3%83%bc%e3%83%97%e3%83%a6%e3%83%bc%e3%82%b6%e3%83%bc%e3%82%92%e4%bd%9c%e6%88%90" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>とりあえずフル権限はこちら&lt;br>
&lt;a href="https://docs.oracle.com/en-us/iaas/Content/cloud-guard/using/policies.htm">https://docs.oracle.com/en-us/iaas/Content/cloud-guard/using/policies.htm&lt;/a>&lt;/p>
&lt;ol>
&lt;li>
&lt;p>グループ作成&lt;br>
Identity &amp;amp; Security &amp;gt; Domains &amp;gt; (OracleIdentityCloudService) &amp;gt; User management タブ &amp;gt; Groups &amp;gt; Create group&lt;/p>
&lt;ul>
&lt;li>Name: cloudguard-admins&lt;/li>
&lt;li>Users: xxxxxxxxxxxxxxxxxxxxxx (既存の適当なユーザー)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>ポリシー作成&lt;br>
Identity &amp;amp; Security &amp;gt; Policies &amp;gt; Create Policies&lt;/p>
&lt;ul>
&lt;li>Name: Policy_cloudguard-admins&lt;/li>
&lt;li>Compartment: zzzzzz(root)&lt;/li>
&lt;li>Statements:&lt;/li>
&lt;/ul>
&lt;pre tabindex="0">&lt;code>allow group OracleIdentityCloudService/cloudguard-admins to manage cloud-guard-family in tenancy
&lt;/code>&lt;/pre>&lt;/li>
&lt;/ol>
&lt;p>&lt;mark>→上記のフル権限与えたユーザーでCloud Guard有効化しようとしたけど権限エラーではじかれたのでテナンシーオーナーでやることにした&lt;/mark>&lt;/p>
&lt;p>権限細かく分けたい場合も一応載っている。知りません。&lt;br>
&lt;a href="https://docs.oracle.com/en-us/iaas/Content/cloud-guard/using/prerequisites.htm">https://docs.oracle.com/en-us/iaas/Content/cloud-guard/using/prerequisites.htm&lt;/a>&lt;/p>
&lt;blockquote>
&lt;p>You can find all the policies required to enable Cloud Guard in the Oracle Cloud Infrastructure Identity and Access Management (IAM) &lt;a href="https://docs.oracle.com/en-us/iaas/Content/Identity/Concepts/commonpolicies.htm">Common Policies&lt;/a> topic. On that page, search for &amp;ldquo;Cloud Guard&amp;rdquo; and expand the four lists that you find.&lt;br>
For detailed information on individual Cloud Guard policies, see Cloud Guard Policies.&lt;/p></description></item><item><title>OCI_マネコンにログインした時にメール通知するようにしてみる</title><link>https://exa-hack.com/blog/oci_%E3%83%9E%E3%83%8D%E3%82%B3%E3%83%B3%E3%81%AB%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%97%E3%81%9F%E6%99%82%E3%81%AB%E3%83%A1%E3%83%BC%E3%83%AB%E9%80%9A%E7%9F%A5%E3%81%99%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/</link><pubDate>Fri, 20 Jun 2025 04:22:10 +0000</pubDate><guid>https://exa-hack.com/blog/oci_%E3%83%9E%E3%83%8D%E3%82%B3%E3%83%B3%E3%81%AB%E3%83%AD%E3%82%B0%E3%82%A4%E3%83%B3%E3%81%97%E3%81%9F%E6%99%82%E3%81%AB%E3%83%A1%E3%83%BC%E3%83%AB%E9%80%9A%E7%9F%A5%E3%81%99%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/</guid><description>&lt;h2 id="ociコンソールにログインした時にメール通知するようにしてみる">OCIコンソールにログインした時にメール通知するようにしてみる&lt;a class="td-heading-self-link" href="#oci%e3%82%b3%e3%83%b3%e3%82%bd%e3%83%bc%e3%83%ab%e3%81%ab%e3%83%ad%e3%82%b0%e3%82%a4%e3%83%b3%e3%81%97%e3%81%9f%e6%99%82%e3%81%ab%e3%83%a1%e3%83%bc%e3%83%ab%e9%80%9a%e7%9f%a5%e3%81%99%e3%82%8b%e3%82%88%e3%81%86%e3%81%ab%e3%81%97%e3%81%a6%e3%81%bf%e3%82%8b" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>勉強&lt;/p>
&lt;ul>
&lt;li>監査ログはデフォルトで作成される下記のロググループに&lt;strong>吐かれている&lt;/strong>&lt;br>
Observability &amp;amp; Management &amp;gt; Log Groups &amp;gt; _Audit&lt;/li>
&lt;li>監査ログはRegion毎に吐かれる(イベントが起きたRegionでloggingされるらしい)　&lt;mark>ただし、OCIコンソール上では一元管理できるようになっている。検索リージョンをallにする。&lt;/mark>&lt;/li>
&lt;li>Compartmentはrootに配置され全Compartのログが含まれる単一のLog Groupになる。&lt;/li>
&lt;li>左のCompartment指定は特に影響ない気がする。select regions to searchで指定するCompartmentはフィルターとして機能。&lt;/li>
&lt;li>権限のあるcompartmentのログは見えるっていう形だと思う。&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="https://exa-hack.com/ob/_Pictures/image-36.png" alt="image-36.png">&lt;/p>
&lt;p>ログインイベントは&lt;code>data.eventName='InteractiveLogin’&lt;/code>っぽい&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-37.png" alt="image-37.png">&lt;/p>
&lt;p>ログイン監査がAuditログに載るようになったのは最近らしい。やったね。&lt;br>
&lt;a href="https://docs.oracle.com/en-us/iaas/Content/Identity/api-getstarted/usingauditeventapis.htm">https://docs.oracle.com/en-us/iaas/Content/Identity/api-getstarted/usingauditeventapis.htm&lt;/a>&lt;/p>
&lt;blockquote>
&lt;p>[!note]&lt;br>
Identity domains AuditEvents and certain reports templates in the Reports APIs will stop returning new data after December 15, 2024. Instead, you can use the OCI Audit service to get this data. To view service change announcements for IAM, see Service Change Announcements for IAM.&lt;/p></description></item><item><title>OCI_Functions＆OCI Schedulerでジョブ実行</title><link>https://exa-hack.com/blog/oci_functionsoci-scheduler%E3%81%A7%E3%82%B8%E3%83%A7%E3%83%96%E5%AE%9F%E8%A1%8C/</link><pubDate>Sat, 25 Apr 2026 03:22:30 +0000</pubDate><guid>https://exa-hack.com/blog/oci_functionsoci-scheduler%E3%81%A7%E3%82%B8%E3%83%A7%E3%83%96%E5%AE%9F%E8%A1%8C/</guid><description>&lt;h2 id="更新履歴">更新履歴&lt;a class="td-heading-self-link" href="#%e6%9b%b4%e6%96%b0%e5%b1%a5%e6%ad%b4" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>2026/04/13 : &lt;a href="../docker%E3%81%AE%E8%AA%8D%E8%A8%BC%E6%83%85%E5%A0%B1%E3%82%92%E6%9A%97%E5%8F%B7%E5%8C%96%E3%81%99%E3%82%8B">Dockerの認証情報を暗号化する&lt;/a>をやった結果、fn deployが失敗するようになった。対応内容を追記→&lt;a href="#docker%e8%aa%8d%e8%a8%bc%e6%83%85%e5%a0%b1%e4%bf%9d%e5%ad%98%e3%81%a7%e3%83%8f%e3%83%9e%e3%81%a3%e3%81%9f%e3%81%93%e3%81%a8%e3%81%ab%e3%81%a4%e3%81%84%e3%81%a6%e3%81%ae%e5%af%be%e5%bf%9c">#Docker認証情報保存でハマったことについての対応&lt;/a>&lt;/p>
&lt;p>TanitaのAPIから取得した情報をADBに格納するスクリプトを作ったので日次のジョブにした&lt;/p>
&lt;h2 id="vaultに認証情報を格納">Vaultに認証情報を格納&lt;a class="td-heading-self-link" href="#vault%e3%81%ab%e8%aa%8d%e8%a8%bc%e6%83%85%e5%a0%b1%e3%82%92%e6%a0%bc%e7%b4%8d" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>Vaultを作成&lt;br>
Identity &amp;amp; Security &amp;gt; Vault &amp;gt; Create Vault&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Region: Tokyo&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Compartment: Blogs&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Name: TANITA&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Region: Tokyo&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Compartment: Blogs&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Name: ADB&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>
&lt;p>Encryption Keyを作成&lt;br>
Identity &amp;amp; Security &amp;gt; Vault &amp;gt; Vault &amp;gt; (TANITA) &amp;gt; Master Encryption Keys タブ &amp;gt; Create Key&lt;/p>
&lt;ul>
&lt;li>Compartment: Blogs&lt;/li>
&lt;li>Name: TANITA_KEY&lt;/li>
&lt;li>Protection Mode: HSM (20ver./ monthまで無料らしい)&lt;/li>
&lt;li>Key Shape Algorithm: AES 256bits&lt;/li>
&lt;/ul>
&lt;p>Identity &amp;amp; Security &amp;gt; Vault &amp;gt; Vault &amp;gt; (ADB) &amp;gt; Master Encryption Keys タブ &amp;gt; Create Key&lt;/p></description></item><item><title>OCI_WAFのフィルター_お家からの接続に絞る</title><link>https://exa-hack.com/blog/oci_waf%E3%81%AE%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%BC_%E3%81%8A%E5%AE%B6%E3%81%8B%E3%82%89%E3%81%AE%E6%8E%A5%E7%B6%9A%E3%81%AB%E7%B5%9E%E3%82%8B/</link><pubDate>Sat, 05 Jul 2025 16:14:10 +0000</pubDate><guid>https://exa-hack.com/blog/oci_waf%E3%81%AE%E3%83%95%E3%82%A3%E3%83%AB%E3%82%BF%E3%83%BC_%E3%81%8A%E5%AE%B6%E3%81%8B%E3%82%89%E3%81%AE%E6%8E%A5%E7%B6%9A%E3%81%AB%E7%B5%9E%E3%82%8B/</guid><description>&lt;h2 id="wafedge-plicyのフィルター">WAF(Edge plicy)のフィルター&lt;a class="td-heading-self-link" href="#wafedge-plicy%e3%81%ae%e3%83%95%e3%82%a3%e3%83%ab%e3%82%bf%e3%83%bc" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>VPNのセキュリティーリストでお家のIPからのみ接続許可してたのだがWAFを挟んでしまったため出来なくなった。&lt;br>
代わりにWAFでフィルターすればいいやん。ということに気づいたので設定したという話。&lt;br>
(フィルターしたかったのはセキュリティ的な理由じゃなくテスト用のサイトでGoogleにインデックス登録されたくなかったから)&lt;/p>
&lt;ul>
&lt;li>Web application firewall &amp;gt; OCI Edge policy resources &amp;gt; IP address lists&lt;br>
→お家のIPを登録する&lt;br>
※Network address listsって言う登録箇所もあるが、そっちはv2WAF用だと思われる。Edge Policyで使う場合は、こっちの Edge policy resources 内のIP address listsに登録する&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/image-26.png" alt="image-26.png">&lt;/li>
&lt;/ul>
&lt;p>Web application firewall &amp;gt; Policies &amp;gt; [WaF_for_Blogs_Ash] を選択&lt;br>
Access control &amp;gt; Add access ruleでルールを作成　※最後Publishを忘れずに&lt;br>
お家アドレス以外はブロックというルール&lt;/p>
&lt;p>&lt;img src="https://exa-hack.com/ob/_Pictures/image-27.png" alt="image-27.png">&lt;/p>
&lt;p>※Access control &amp;gt; IP whitelistsタブ　→こっちのリストは無条件OKのIPを指定するところなので用途が違う。&lt;/p>
&lt;h2 id="nginxのアクセスログ">Nginxのアクセスログ&lt;a class="td-heading-self-link" href="#nginx%e3%81%ae%e3%82%a2%e3%82%af%e3%82%bb%e3%82%b9%e3%83%ad%e3%82%b0" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>もう一点、WAFを挟んだことによりNginxのアクセスログに出力されるIPがWAFのIPになってしまった。&lt;br>
HTTPヘッダーにオリジナルのIPを格納していてNginxはそれをログに出す仕組みがあるが、設定には、どのIPから送られてきたヘッダーだったら信頼してオリジンIPを採用するっていうIPのレンジ指定をする必要がある。もともと クライアントPC → Traefik → Nginx という経路で、素のままだとTraefikの出口IPになってしまってたところ、TraefikのIPは信頼できますっている設定をしてHTTPヘッダーのクライアントPCのIPを取りだてログに出してた。ただ、ここにWAFが挟まってしまったため、WAFの出口IPも信頼できるっていう指定(set_real_ip_fromを追加していく)をしないとそこで信頼の連鎖が止まってしまってWAFの出口IPがログに出てしまう。ただ、WAFの出口IPのレンジいっぱいあって追加するの面倒だったので諦めた。&lt;/p>
&lt;p>例&lt;/p>
&lt;pre tabindex="0">&lt;code># Traefik コンテナ（bridge ネットワーク）を信頼
set_real_ip_from 172.18.0.0/16;

real_ip_header X-Forwarded-For;
real_ip_recursive on;
&lt;/code>&lt;/pre></description></item><item><title>OCI_WAF(CDN)を構成してみる</title><link>https://exa-hack.com/blog/oci_wafcdn%E3%82%92%E6%A7%8B%E6%88%90%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/</link><pubDate>Sat, 05 Jul 2025 16:24:16 +0000</pubDate><guid>https://exa-hack.com/blog/oci_wafcdn%E3%82%92%E6%A7%8B%E6%88%90%E3%81%97%E3%81%A6%E3%81%BF%E3%82%8B/</guid><description>&lt;p>WAFのEdge PolicyはCDNとしての機能もあるらしいのでそれ目的で構成してみた&lt;/p>
&lt;h2 id="ociリソース">OCIリソース&lt;a class="td-heading-self-link" href="#oci%e3%83%aa%e3%82%bd%e3%83%bc%e3%82%b9" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>Oracle Cloud Infrastructure Certificates：&lt;del>Cert_Blogs_Ash&lt;/del> →結局Edge Policyでは使えないことがわかって削除
&lt;ul>
&lt;li>Reasion：US East(Ashburn)&lt;/li>
&lt;li>Compartment: Blogs&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Oracle Web Application Firewall（WAF）※Edge Policy: WaF_for_Blogs_Ash
&lt;ul>
&lt;li>
&lt;p>Reasion：&lt;del>US East(Ashburn)&lt;/del>　→Edge Policyはグローバルっぽい&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Compartment: Blogs&lt;/p>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="san証明書">SAN証明書&lt;a class="td-heading-self-link" href="#san%e8%a8%bc%e6%98%8e%e6%9b%b8" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>ドメイン毎に証明書を分けようと思ったが、WAFが1つにつき1つの証明書しか含められない、かつWAFが初回インスタンスのみ無料っぽいので、ドメインすべて同じ証明書にくくる&lt;br>
→というかその方法 SAN証明書というやつ取得する必要があるらしく、Traefikの構成を変える必要があるとのこと。&lt;/p>
&lt;p>↓下は証明書を分けて抜き出すためのコマンド。WAFのインスタンスポコポコ量産できないので使わない。&lt;/p>
&lt;pre tabindex="0">&lt;code># jqインストール
sudo apt -y install jq

# Traefik v2ではA型とBg型の格納方法があるらしい。↓はB型(型によって以下のコマンドが変わってくる)
ubuntu@instance-blogs-ash:~/traefik/letsencrypt$ jq &amp;#39;keys&amp;#39; ~/traefik/letsencrypt/acme.json
[
 &amp;#34;le&amp;#34;
]
ubuntu@instance-blogs-ash:~/traefik/letsencrypt$

# どのドメインの証明書が含まれてるか確認
ubuntu@instance-blogs-ash:~/traefik/letsencrypt$ jq -r &amp;#39;.[].Certificates[].domain.main&amp;#39; ~/traefik/letsencrypt/acme.json
staging.fuku.tokyo
stagingsub.fuku.tokyo
ubuntu@instance-blogs-ash:~/traefik/letsencrypt$

# ドメイン毎に証明書ファイルを分けて出力する方法
jq -c &amp;#39;
 .[].Certificates[] |
 {dom: .domain.main, cert: .certificate, key: .key}
&amp;#39; acme.json |
while IFS= read -r obj; do
 dom=$(jq -r &amp;#39;.dom&amp;#39; &amp;lt;&amp;lt;&amp;lt;&amp;#34;$obj&amp;#34;)
 jq -r &amp;#39;.cert&amp;#39; &amp;lt;&amp;lt;&amp;lt;&amp;#34;$obj&amp;#34; | base64 -d &amp;gt; &amp;#34;${dom}.crt&amp;#34;
 jq -r &amp;#39;.key&amp;#39; &amp;lt;&amp;lt;&amp;lt;&amp;#34;$obj&amp;#34; | base64 -d &amp;gt; &amp;#34;${dom}.key&amp;#34;
done
&lt;/code>&lt;/pre>&lt;h3 id="san証明書の構成">SAN証明書の構成&lt;a class="td-heading-self-link" href="#san%e8%a8%bc%e6%98%8e%e6%9b%b8%e3%81%ae%e6%a7%8b%e6%88%90" aria-label="Heading self-link">&lt;/a>&lt;/h3>
&lt;ol>
&lt;li>
&lt;p>traefik.ymlにdomains: セクションを追加&lt;/p></description></item><item><title>OCI_Email Delivery設定</title><link>https://exa-hack.com/blog/oci_email-delivery%E8%A8%AD%E5%AE%9A/</link><pubDate>Sun, 06 Jul 2025 06:09:10 +0000</pubDate><guid>https://exa-hack.com/blog/oci_email-delivery%E8%A8%AD%E5%AE%9A/</guid><description>&lt;p>Ghost(CMS)の管理画面の２段階認証で使用するメール送信設定&lt;/p>
&lt;h2 id="ociリソース">OCIリソース&lt;a class="td-heading-self-link" href="#oci%e3%83%aa%e3%82%bd%e3%83%bc%e3%82%b9" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>OCI Email Delivery
&lt;ul>
&lt;li>exa-hack.com
&lt;ul>
&lt;li>Region: Japan East(Tokyo)　※DNS Domainと同じにした&lt;/li>
&lt;li>Compartment: Blogs&lt;/li>
&lt;li>SMTP credentials: 取りあえずテナンシユーザーで取得する&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="本編">本編&lt;a class="td-heading-self-link" href="#%e6%9c%ac%e7%b7%a8" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Ghost管理画面の2段回認証のため、SMTP送信サービスを有効化する。いろいろあるが基本何でも使えるらしいのでOCI のEmail Deliveryを使って構成した。&lt;/p>
&lt;p>独自ドメインである必要があるらしい。&lt;br>
サイトのドメイン登録もOCIを使用しているのでサイトのドメイン毎に設定しよ&lt;/p>
&lt;h2 id="oci-email-delivery構成手順">OCI Email Delivery構成手順&lt;a class="td-heading-self-link" href="#oci-email-delivery%e6%a7%8b%e6%88%90%e6%89%8b%e9%a0%86" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>「Developer Services」＞「Application Integration」＞「Email Delivery」＞「Approved Senders」&lt;br>
→Create Approved Sender から送信者アドレスを登録(これが送信者になる)&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/cb02fec044877ac6ad3d4f5a0037098d.png" alt="cb02fec044877ac6ad3d4f5a0037098d.png">&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Email Domains&lt;br>
→Create Email Domainからドメインを登録&lt;br>
必須ではないらしい(ドメイン丸っと承認みたいな意味らしい。DKIM設定には必要っぽい)&lt;br>
DKIMの設定（任意だが推奨）: ドメインにDKIM（DomainKeys Identified Mail）署名を導入すると、送信メールに電子署名が付与され、改ざん検知やなりすまし防止に有効&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/40bd70caa204e4a63ce0d838f85b625f.png" alt="40bd70caa204e4a63ce0d838f85b625f.png">&lt;/p>
&lt;/li>
&lt;li>
&lt;p>SMTP認証資格情報（SMTP Credentials）の生成&lt;br>
右上の人物アイコンから「User Settiing」&amp;gt;「SMTP Credentials」&lt;br>
メール送信に使用するユーザーアカウントが別の場合は「Identity &amp;amp; Security」＞「Domains」＞「（デフォルトのIDドメイン）」＞「Users」から&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>「Generate SMTP Credentials」（SMTP資格情報の生成）ボタンをクリックし、説明欄を適宜入力して資格情報を作成&lt;br>
これがOCIのサービスを外部から呼び出すための認証情報になる。&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/edf0a60f49545f4db212fc77f279917b.png" alt="edf0a60f49545f4db212fc77f279917b.png">&lt;/p>
&lt;ul>
&lt;li>独自ドメインのDNSレコード設定（SPFとDKIM）
&lt;ul>
&lt;li>
&lt;p>SPFレコードの設定&lt;/p>
&lt;/li>
&lt;li>
&lt;p>「Networking」＞「DNS management」＞「Zones」＞「（対象ドメイン）」&amp;gt;「Records」&lt;br>
TXTレコードを登録する（後ろの指定文字はリージョンごとに違うらしい）&lt;br>
&lt;a href="https://docs.oracle.com/en/cloud/paas/integration-cloud/oracle-integration-oci/configure-email-authentication-settings-spf-and-dkim.html">https://docs.oracle.com/en/cloud/paas/integration-cloud/oracle-integration-oci/configure-email-authentication-settings-spf-and-dkim.html&lt;/a>&lt;br>
&lt;code>&amp;quot;exa-hack.com IN TXT \&amp;quot;v=spf1 include:ap.rp.oracleemaildelivery.com ~all\&amp;quot;&amp;quot;&lt;/code>&lt;br>
※これは「OCIのメールサーバ（Asia/Pacificリージョン）から送信することを許可する」ことを示すSPFレコード&lt;br>
&lt;img src="https://exa-hack.com/ob/_Pictures/23f7b76b055b2da9752283287246131a.png" alt="23f7b76b055b2da9752283287246131a.png">&lt;/p></description></item><item><title>OCI_Logging&amp;Logging Analyticsにnginxのログを渡す</title><link>https://exa-hack.com/blog/oci_logginglogging-analytics%E3%81%ABnginx%E3%81%AE%E3%83%AD%E3%82%B0%E3%82%92%E6%B8%A1%E3%81%99/</link><pubDate>Sat, 05 Jul 2025 16:03:14 +0000</pubDate><guid>https://exa-hack.com/blog/oci_logginglogging-analytics%E3%81%ABnginx%E3%81%AE%E3%83%AD%E3%82%B0%E3%82%92%E6%B8%A1%E3%81%99/</guid><description>&lt;h2 id="nginxのログをoci-logginglogging-analyticsに渡す">nginxのログをOCI logging/Logging Analyticsに渡す&lt;a class="td-heading-self-link" href="#nginx%e3%81%ae%e3%83%ad%e3%82%b0%e3%82%92oci-logginglogging-analytics%e3%81%ab%e6%b8%a1%e3%81%99" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>ocidとってfluent bitに設定する必要があったり、パーサーの定義にLoggingでのログが必要だったり、いろいろ設定入り組んでて最初は上から順番に綺麗にできないので平行に進めていく感じで。&lt;/p>
&lt;h2 id="fluent-bitの構成">Fluent Bitの構成&lt;a class="td-heading-self-link" href="#fluent-bit%e3%81%ae%e6%a7%8b%e6%88%90" aria-label="Heading self-link">&lt;/a>&lt;/h2>
&lt;p>Ubuntu on ARM構成が管理エージェントに対応してないためFluent Bitを入れて送信する&lt;/p>
&lt;p>インストール&lt;/p>
&lt;ol>
&lt;li>
&lt;p>リポジトリGPGキーの追加&lt;br>
&lt;code>curl https://packages.fluentbit.io/fluentbit.key | gpg --dearmor | sudo tee /usr/share/keyrings/fluentbit-keyring.gpg &amp;gt; /dev/null&lt;/code>&lt;/p>
&lt;/li>
&lt;li>
&lt;p>APTソースリストへの登録&lt;/p>
&lt;pre tabindex="0">&lt;code>sudo touch /etc/apt/sources.list.d/fluent-bit.list
echo &amp;#34;deb [signed-by=/usr/share/keyrings/fluentbit-keyring.gpg] https://packages.fluentbit.io/ubuntu/noble noble main&amp;#34; | sudo tee /etc/apt/sources.list.d/fluent-bit.list
&lt;/code>&lt;/pre>&lt;p>※nobleはUbuntu 24のコードネームらしい。Ubuntuのバージョンに合わせて変える。&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Fluent Bitインストール&lt;/p>
&lt;pre tabindex="0">&lt;code>sudo apt-get update
sudo apt-get install fluent-bit
sudo systemctl start fluent-bit
sudo systemctl enable fluent-bit
systemctl status fluent-bit
#これやらないとエラーになった。ポディションDBがこの下に作成される。
sudo mkdir -p /var/lib/fluent-bit
&lt;/code>&lt;/pre>&lt;/li>
&lt;li>
&lt;p>Fulent Bit for OCI Ligging Services Pluginの構成(Logging Analitics Pluginは標準搭載されているがLogging へのPluginは標準で搭載されていので有志の作成物をつかう)&lt;/p></description></item></channel></rss>