<?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>仕事の独り言 &#8211; エンジニア見習い</title>
	<atom:link href="https://otonan-syusyoku.work/archives/category/thinks-of-work/feed" rel="self" type="application/rss+xml" />
	<link>https://otonan-syusyoku.work</link>
	<description>三流プログラマー</description>
	<lastBuildDate>Wed, 07 Jan 2026 06:47:19 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://otonan-syusyoku.work/wp-content/uploads/2023/10/cropped-名称未設定のデザイン-16-32x32.png</url>
	<title>仕事の独り言 &#8211; エンジニア見習い</title>
	<link>https://otonan-syusyoku.work</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>2025年、AIを使った開発で役立ったTipsたち</title>
		<link>https://otonan-syusyoku.work/archives/2187</link>
					<comments>https://otonan-syusyoku.work/archives/2187#respond</comments>
		
		<dc:creator><![CDATA[hrokig2]]></dc:creator>
		<pubDate>Sat, 27 Dec 2025 10:10:09 +0000</pubDate>
				<category><![CDATA[仕事の独り言]]></category>
		<category><![CDATA[生涯独学]]></category>
		<category><![CDATA[DevOps]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Typescript]]></category>
		<category><![CDATA[ポエム]]></category>
		<guid isPermaLink="false">https://otonan-syusyoku.work/?p=2187</guid>

					<description><![CDATA[AIによるコーディング支援は、もう「当たり前」の景色になりました。 AIに頼めば、ものの数秒で大量のコードが生成されます。まるで魔法のようですが、同時にこうも思うのです。「これ、本当に動くの？」「仕様、合ってる？」と。  [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>AIによるコーディング支援は、もう「当たり前」の景色になりました。</p>



<p>AIに頼めば、ものの数秒で大量のコードが生成されます。<br>まるで魔法のようですが、同時にこうも思うのです。「これ、本当に動くの？」「仕様、合ってる？」と。</p>



<p>大量に出力されるコードの波に飲まれず、<strong>「人間が手綱を握り続ける」</strong>ために僕が実践してきた開発のTipsを書き残しておきます。</p>



<p>これは、2026年の自分への手紙でもあります。<br>「あの頃はそんな苦労をしてたんだな」と笑って読み返せますように。</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame4 preset3 animation-fade rtoc_open noto-sans" data-id="2187" data-theme="BlogArise">
			<div id="rtoc-mokuji-title" class=" rtoc_center">
			<button class="rtoc_open_close rtoc_open"></button>
			<span>Contents</span>
			</div><ol class="rtoc-mokuji decimal_ol level-1"><li class="rtoc-item"><a href="#rtoc-1">機会にできることは機械に任せる（Lint / Pre-commit / Auto Format）</a></li><li class="rtoc-item"><a href="#rtoc-2">実装指示は細かくStepByStep形式</a></li><li class="rtoc-item"><a href="#rtoc-3">テスト戦略：AIに任せる部分、僕が譲らない部分</a><ul class="rtoc-mokuji mokuji_ul level-2"><li class="rtoc-item"><a href="#rtoc-4">単体テスト（ViteTest / PHPUnit）</a></li><li class="rtoc-item"><a href="#rtoc-5">Featureテスト（結合・機能テスト）は「僕」が書く</a></li></ul></li><li class="rtoc-item"><a href="#rtoc-6">2026年の僕へ</a></li></ol></div><h2 id="rtoc-1"  class="wp-block-heading">機会にできることは機械に任せる（Lint / Pre-commit / Auto Format）</h2>



<p>AIは優秀ですが、たまにインデントを崩したり、変な書き癖を出してきたりします。<br>生成された大量のコードを目視でレビューして「ここ、スペース空いてないよ」なんて指摘するのは、人間のやる仕事じゃありませんよね。</p>



<p>だからこそ、<strong>Lint</strong> と <strong>Pre-commit</strong>、そして <strong>自動フォーマット</strong> は必須でした。</p>



<ul class="wp-block-list">
<li><strong>保存＝整形（Auto Format）</strong><br>エディタで保存した瞬間に、コードが綺麗になる設定はマスト。AIが吐き出したコードを貼り付けた瞬間、プロジェクトの規約に合わせて「シュッ」と整う快感。これがないと精神衛生が保てません。</li>



<li><strong>コミット前の門番（Pre-commit）</strong><br> Gitにコミットする前に、Linterが自動で走るように設定しました。型エラーや未使用変数は、人間が気づく前に機械に弾いてもらう。</li>
</ul>



<p><strong>「コードの見た目」や「単純なミス」に脳のメモリを使わない。</strong>これがAI時代を生き抜く第一歩でした。（AI開発がどうっていう話ではないがより一層重要になっている</p>



<p></p>



<h2 id="rtoc-2"  class="wp-block-heading">実装指示は細かくStepByStep形式</h2>



<p>最終的なゴールを明示したうえで、StepByStepで実装させました。</p>



<p>ゴールは <code>.documents</code> にMarkdownを配置し、その仕様書通りになるように指示をします。</p>



<pre class="wp-block-code"><code>## As Is

## To Be 

## Task

## Remarks</code></pre>



<ol class="wp-block-list">
<li>〇〇を最終ゴールとします。実装方針を出して。</li>



<li>ツッコミを入れる
<ul class="wp-block-list">
<li>Step1の実装のセキュリティホールは？</li>



<li>タイムアウトの条件は〇〇に</li>
</ul>
</li>



<li>テスト書いてもらう</li>



<li>もちろんRed</li>



<li>テストのレビュー
<ul class="wp-block-list">
<li>テスト問題なければ実装</li>



<li>問題あれば2を見直す</li>
</ul>
</li>



<li>テストがGreenになるような実装</li>
</ol>



<p>この辺はガイドラインやコーディング規約などを整備すればよかったのかなぁと考えている反省点です。</p>



<h2 id="rtoc-3"  class="wp-block-heading">テスト戦略：AIに任せる部分、僕が譲らない部分</h2>



<p>ここが一番のキモです。<br> AIはコードを書くのは早いですが、<strong>「僕たちが本当に作りたいもの」</strong>を100%理解しているわけではありません。<br>だからテストの役割分担をこう決めました。</p>



<h3 id="rtoc-4"  class="wp-block-heading">単体テスト（ViteTest / PHPUnit）</h3>



<p>関数単体や小さなロジックの検証には、ViteTestやPHPUnitを使いました。<br>ここはAIにも手伝ってもらいやすい領域です。「この関数のテスト書いて」と言えば、エッジケースまで網羅したテストを提案してくれます。<br><br>※ 単体テストをAIに書いてもらうために、関数は限りなく小さくするような単一責任の原則でAIに実装してもらっています。ぜーんぶAIです。</p>



<h3 id="rtoc-5"  class="wp-block-heading">Featureテスト（結合・機能テスト）は「僕」が書く</h3>



<p>けれど、機能全体が正しく動くかを確認する<strong>Featureテストだけは、僕自身の手で書く</strong>ようにしました。<br>これには明確な理由が2つあります。</p>



<ol start="1" class="wp-block-list">
<li><strong>コードの理解</strong>：<br>AIが書いたブラックボックスなコードも、テストを書く過程で読み解く必要があります。「どう動くべきか」を定義するのは人間です。</li>



<li><strong>要求仕様の達成</strong>：<br>求められている「要件」を満たしているか判定できるのは、今のところまだ人間だけです。</li>
</ol>



<p><strong>「AIにコードを書かせるなら、人間はテスト（仕様）を書け」</strong> これが2025年の僕の合言葉でした。<br>テストが通る＝仕様を満たしているという安心感があって初めて、AIのスピードを享受できるんです。</p>



<h2 id="rtoc-6"  class="wp-block-heading">2026年の僕へ</h2>



<p>どうですか？ 2026年の開発現場は。</p>



<p>AIが仕様の矛盾すら指摘して、テストまで完ぺきに書いてくれるようになっているのでしょうか。</p>



<p>もしそうなっていたとしても、2025年の僕は「正しく動くものを届けたい」という一心で、Linterを設定し、Featureテストを書いていたことを覚えていてください。</p>



<p>エンジニアとしての仕事に楽しさは残っていますか？2025年末では、だんだんと辛くなってきています。</p>



<p>それじゃ、また。良い開発ライフを！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://otonan-syusyoku.work/archives/2187/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>スタートアップの社長は頭がオカシイ</title>
		<link>https://otonan-syusyoku.work/archives/2125</link>
					<comments>https://otonan-syusyoku.work/archives/2125#respond</comments>
		
		<dc:creator><![CDATA[hrokig2]]></dc:creator>
		<pubDate>Tue, 10 Jun 2025 13:38:52 +0000</pubDate>
				<category><![CDATA[仕事の独り言]]></category>
		<guid isPermaLink="false">https://otonan-syusyoku.work/?p=2125</guid>

					<description><![CDATA[どうも、新たなビジネスを生み出したく怪しいサービスのプロダクト開発に携わっている比嘉です。 Contents とにかくエネルギーが凄い やるべきこと とにかくエネルギーが凄い もう最初に伝えたい。スタートアップの社長はと [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>どうも、新たなビジネスを生み出したく怪しいサービスのプロダクト開発に携わっている比嘉です。</p>
<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame4 preset3 animation-fade rtoc_open noto-sans" data-id="2125" data-theme="BlogArise">
<div id="rtoc-mokuji-title" class=" rtoc_center">
			<button class="rtoc_open_close rtoc_open"></button><br />
			<span>Contents</span>
			</div>
<ol class="rtoc-mokuji decimal_ol level-1">
<li class="rtoc-item"><a href="#rtoc-1">とにかくエネルギーが凄い</a></li>
<li class="rtoc-item"><a href="#rtoc-2">やるべきこと</a></li>
</ol>
</div>
<h2 id="rtoc-1" >とにかくエネルギーが凄い</h2>
<p>もう最初に伝えたい。スタートアップの社長はとにかくエネルギーが凄い。凄すぎる。</p>
<p>どうにか売上を立てるために毎日毎日走り回っている。</p>
<p>それが起因しているのかとにかく毎日変わった情報を持ってきて違うことを実践しようとする。ついこの前のミーティングで決まった事とは違う内容の指示が飛んできたりする。</p>
<p>もう、怖いのですよ。物凄く。</p>
<p>サラリーマン的な考えがまだ強く残っているのか、一度決まったことに対してはあまり疑問に思わない事が多々ある自分にとって、状況が常に変わるのはかなり体力がいる。</p>
<p>&nbsp;</p>
<p>これは社長に対しての悪口というわけではなく、変化に強くならなければ生きていけないということへの自分への戒めである。社長に対してもそうだし、事業への売上に対してもそう。<br />
とにかく変化に強くなり、対応力を上げていかなければ生き残れないんだなぁと。</p>
<h2 id="rtoc-2" >やるべきこと</h2>
<p>スタートアップの社長というものはとにかくエネルギーが凄い。これは間違いない事実だ。</p>
<p>社長のエネルギーに圧倒されないためにも、基礎的なことを徹底していかなければいけない。</p>
<p>議事録の作成一つとっても「前回はこれが決定されていましたよ」の一言が言える状況を常に作って置かなければいけない。</p>
<p>正直な話、議事録がどうのこうの言っている時点で自分のレベルが如何に低いかが思い知らされる。（まぁ言い訳としては議事録なんて取っている暇ねぇーよ</p>
<p>とにかく先回りして準備して、とにかく事業を前に進める。その気概を常に持ち続ける必要があるんだろうな。</p>
<p>自分は小心者なので、数字を持てていない状況で誰かに意見を出すのは気が引ける。とにかく数字を出そう。そうすれば何か変わるはずだ。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://otonan-syusyoku.work/archives/2125/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【後輩に聞かれて困った】EBS, EFS, S3 の違いについて</title>
		<link>https://otonan-syusyoku.work/archives/1873</link>
					<comments>https://otonan-syusyoku.work/archives/1873#respond</comments>
		
		<dc:creator><![CDATA[hrokig2]]></dc:creator>
		<pubDate>Thu, 12 Sep 2024 00:23:43 +0000</pubDate>
				<category><![CDATA[インフラ]]></category>
		<category><![CDATA[仕事の独り言]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[DevOps]]></category>
		<guid isPermaLink="false">https://otonan-syusyoku.work/?p=1873</guid>

					<description><![CDATA[とある日の出来事です。 後輩ちゃんから AWS におけるデータ保持の方法ってどうなってるんですか？ というざっくりとした質問を受けました。 後輩の疑問点としては、データを保持するサービスが複数出てきて、それがなんのために [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>とある日の出来事です。</p>
<p>後輩ちゃんから <strong>AWS におけるデータ保持の方法ってどうなってるんですか？</strong> というざっくりとした質問を受けました。</p>
<p>後輩の疑問点としては、データを保持するサービスが複数出てきて、それがなんのためにあるのか？どのようなユースケースがあるのか？がわからなくなったとのことです。</p>
<ul>
<li>EBS</li>
<li>EFS</li>
<li>S3</li>
</ul>
<p>確かに質問されてみるとぱっとは回答ができなかったので、改めて学習し直してみました。</p>
<p><a href="https://otonan-syusyoku.work/archives/1661/dmarc%e3%82%92%e8%a8%ad%e5%ae%9a%e3%81%97%e3%81%aa%e3%81%8f%e3%81%a1%e3%82%83-1" rel="attachment wp-att-1665"><img fetchpriority="high" decoding="async" src="https://otonan-syusyoku.work/wp-content/uploads/2024/02/DMARCを設定しなくちゃ-1.png" alt="What&#96;s up" width="1000" height="500" class="aligncenter size-full wp-image-1665" srcset="https://otonan-syusyoku.work/wp-content/uploads/2024/02/DMARCを設定しなくちゃ-1.png 1000w, https://otonan-syusyoku.work/wp-content/uploads/2024/02/DMARCを設定しなくちゃ-1-300x150.png 300w, https://otonan-syusyoku.work/wp-content/uploads/2024/02/DMARCを設定しなくちゃ-1-768x384.png 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></a></p>
<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame4 preset3 animation-fade rtoc_open noto-sans" data-id="1873" data-theme="BlogArise">
<div id="rtoc-mokuji-title" class=" rtoc_center">
			<button class="rtoc_open_close rtoc_open"></button><br />
			<span>Contents</span>
			</div>
<ol class="rtoc-mokuji decimal_ol level-1">
<li class="rtoc-item"><a href="#rtoc-1">EBS</a>
<ul class="rtoc-mokuji mokuji_ul level-2">
<li class="rtoc-item"><a href="#rtoc-2">特徴</a></li>
<li class="rtoc-item"><a href="#rtoc-3">ユースケース</a></li>
</ul>
</li>
<li class="rtoc-item"><a href="#rtoc-4">EFS</a>
<ul class="rtoc-mokuji mokuji_ul level-2">
<li class="rtoc-item"><a href="#rtoc-5">特徴</a></li>
<li class="rtoc-item"><a href="#rtoc-6">ユースケース</a></li>
</ul>
</li>
<li class="rtoc-item"><a href="#rtoc-7">S3</a>
<ul class="rtoc-mokuji mokuji_ul level-2">
<li class="rtoc-item"><a href="#rtoc-8">特徴</a></li>
<li class="rtoc-item"><a href="#rtoc-9">ユースケース</a></li>
</ul>
</li>
<li class="rtoc-item"><a href="#rtoc-10">まとめ</a></li>
</ol>
</div>
<h2 id="rtoc-1" >EBS</h2>
<h3 id="rtoc-2" >特徴</h3>
<ul>
<li>EC2インスタンスに直接アタッチして使用する仮想ハードディスクのようなもの。</li>
<li>EBSとEC2は 1：1 の関係
<ul>
<li><strong>インスタンス間で共有は出来ない</strong></li>
</ul>
</li>
<li>容量を動的に変更できる</li>
<li><strong>EC2 の一部ではない。ネットワーク接続を通してEC2インスタンスにアタッチされる。</strong></li>
<li>RDSのストレージにも使われているよ</li>
<li><strong>DockerのVolumeをAWSに管理させているイメージ</strong></li>
</ul>
<h3 id="rtoc-3" >ユースケース</h3>
<ul>
<li>データの書き換えが頻繁に行われるアプリケーション</li>
</ul>
<p>まー、一般的なウェブシステムとかで使われていると思ってもらえればええんちゃいますの。</p>
<h2 id="rtoc-4" >EFS</h2>
<h3 id="rtoc-5" >特徴</h3>
<ul>
<li>複数のEC2インスタンスから同時にアクセスできるファイルストレージ</li>
<li>自動スケーリング</li>
<li>複数のデータセンターでレプリケートされるので高可用</li>
<li>POSIX互換なので、Linux で標準的なファイルシステムのように使える</li>
<li><strong>直接アクセスることが出来ない<br />
サブネット内にマウントターゲットを設置する必要がある</strong></li>
</ul>
<h3 id="rtoc-6" >ユースケース</h3>
<ul>
<li>複数のインスタンスで共有する必要のあるファイルストレージ</li>
<li>コンテンツ管理</li>
<li>ログファイルの共有</li>
<li>ホームディレクトリの管理</li>
</ul>
<p>僕が経験したのは、バッチ関連のファイルをEFSを用いて複数EC2で使用する運用を経験しました。</p>
<p>cronの設定は各インスタンスで行う必要があるのですが、cronで叩かれる実行ファイルはEFSに保管しているファイルを叩くというような構成です。</p>
<p>（個人的にはLambdaでええんちゃいますのと思った案件でした</p>
<h2 id="rtoc-7" >S3</h2>
<h3 id="rtoc-8" >特徴</h3>
<ul>
<li>大量のデータを保存するのに適したストレージ</li>
<li>ファイルをオブジェクトとして保存し、キーを付与する
<ul>
<li>KVS</li>
</ul>
</li>
<li>世界中からHTTP/HTTPS アクセスできる</li>
<li>バージョニング ← これメチャクチャ便利！使ってみてほしい、。</li>
<li>ライフサイクル ← これも便利</li>
</ul>
<h3 id="rtoc-9" >ユースケース</h3>
<ul>
<li>静的なWebサイトのホスティング</li>
<li>画像、ビデオなどのメディアファイルの保存</li>
<li>バックアップやログの長期保存</li>
</ul>
<p>&nbsp;</p>
<p>汎用性が高いため、なんだかんだでS3は使いがちです。</p>
<p>保険明細の管理や本人識別書の管理といった個人情報をS3で保管するといったことも運用も経験しました。</p>
<p>便利が故にアクセスポリシーなどの設定を間違えてしまうと重大なセキュリティインシデントになりかねないサービスでもあるなぁというのが所存です。</p>
<h2 id="rtoc-10" >まとめ</h2>
<p>ユースケースごとに使用されるサービスが異なってくるのはなんとなく理解してもらえたでしょうか。</p>
<p>かゆいところまで手が届くようにしているAWSさんは凄いっススス</p>
]]></content:encoded>
					
					<wfw:commentRss>https://otonan-syusyoku.work/archives/1873/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>AmazonLinux2023でImagickが使えなかった</title>
		<link>https://otonan-syusyoku.work/archives/1855</link>
					<comments>https://otonan-syusyoku.work/archives/1855#respond</comments>
		
		<dc:creator><![CDATA[hrokig2]]></dc:creator>
		<pubDate>Sun, 25 Aug 2024 13:30:30 +0000</pubDate>
				<category><![CDATA[仕事の独り言]]></category>
		<guid isPermaLink="false">https://otonan-syusyoku.work/?p=1855</guid>

					<description><![CDATA[Imagickが使いたい。ただそれだけでした。 make: *** [Makefile:196: /var/tmp/imagick/Imagick_arginfo.h] Error 1 ERROR: `make INST [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>Imagickが使いたい。ただそれだけでした。</p>
<pre class="line-numbers"><code class="language-php">make: *** [Makefile:196: /var/tmp/imagick/Imagick_arginfo.h] Error 1
ERROR: `make INSTALL_ROOT="/var/tmp/pear-build-rootEHkAY7/install-imagick-3.7.0" install' failed</code></pre>
<p>悔しい。</p>
<p>Imagick のインストールに必要な以下がインストールされていることを確認したのだけど、うまくいかなかった。</p>
<pre class="line-numbers"><code class="language-php">php-devel php-pear gcc make
ImageMagick ImageMagick-devel</code></pre>
<p>&nbsp;</p>
<p>makeできていないことが問題だと考えたので、ソースのビルドもやってみたが上手くいかなかった。苦しいぜ。</p>
<p>何よりも悔しいのが、何が原因で落ちているのかが分からないこと。</p>
<p>&nbsp;</p>
<p>これ以上時間かけても解決できそうにないので、優秀な人達の解決策が出てくるの待ちます（他力本願ですみませぬ。。。</p>
<h2 id="rtoc-1" >追記：2024-08-26</h2>
<p>PHPのバージョンを8.3→8.2にダウングレード後にimagickのインストールを行うと正常終了した。</p>
<p>バージョン互換性に難があったぽい。</p>
<p>インストール時に使用されている Parser 等にも変化があったので、恐らく互換性の問題だろうと考える。</p>
<p>AmazonLinux2023は何も悪くなかった。</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://otonan-syusyoku.work/archives/1855/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>EC2インスタンスでストレージ領域が足りない</title>
		<link>https://otonan-syusyoku.work/archives/1853</link>
					<comments>https://otonan-syusyoku.work/archives/1853#respond</comments>
		
		<dc:creator><![CDATA[hrokig2]]></dc:creator>
		<pubDate>Sun, 25 Aug 2024 02:57:13 +0000</pubDate>
				<category><![CDATA[インフラ]]></category>
		<category><![CDATA[仕事の独り言]]></category>
		<guid isPermaLink="false">https://otonan-syusyoku.work/?p=1853</guid>

					<description><![CDATA[Contents 概要 やりたいこと エラー 確認 概要 やりたいこと モジュールのインストール エラー Error Summary &#8212;&#8212;&#8212;&#8212;- Disk Requirem [&#8230;]]]></description>
										<content:encoded><![CDATA[<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame4 preset3 animation-fade rtoc_open noto-sans" data-id="1853" data-theme="BlogArise">
<div id="rtoc-mokuji-title" class=" rtoc_center">
			<button class="rtoc_open_close rtoc_open"></button><br />
			<span>Contents</span>
			</div>
<ol class="rtoc-mokuji decimal_ol level-1">
<li class="rtoc-item"><a href="#rtoc-1">概要</a>
<ul class="rtoc-mokuji mokuji_ul level-2">
<li class="rtoc-item"><a href="#rtoc-2">やりたいこと</a></li>
<li class="rtoc-item"><a href="#rtoc-3">エラー</a></li>
</ul>
</li>
<li class="rtoc-item"><a href="#rtoc-4">確認</a></li>
</ol>
</div>
<h2 id="rtoc-1" >概要</h2>
<h3 id="rtoc-2" >やりたいこと</h3>
<p>モジュールのインストール</p>
<h3 id="rtoc-3" >エラー</h3>
<p>Error Summary<br />
&#8212;&#8212;&#8212;&#8212;-<br />
Disk Requirements:<br />
At least 39MB more space needed on the / filesystem.</p>
<p>&nbsp;</p>
<h2 id="rtoc-4" >確認</h2>
<p>du -sh /* 2&gt;/dev/null | sort -rh | head -n 10<br />
4.0G /swapfile<br />
1.6G /usr<br />
1.4G /var<br />
361M /home<br />
43M /opt<br />
39M /boot<br />
35M /root<br />
22M /etc<br />
460K /run<br />
364K /tmp</p>
<p>&nbsp;</p>
<p>スワップを多めに取っていたことを忘れていたぜ。</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://otonan-syusyoku.work/archives/1853/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>AmazonLinux2023はPHP7系が使えません</title>
		<link>https://otonan-syusyoku.work/archives/1845</link>
					<comments>https://otonan-syusyoku.work/archives/1845#respond</comments>
		
		<dc:creator><![CDATA[hrokig2]]></dc:creator>
		<pubDate>Mon, 19 Aug 2024 22:29:45 +0000</pubDate>
				<category><![CDATA[インフラ]]></category>
		<category><![CDATA[仕事の独り言]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[EC2]]></category>
		<category><![CDATA[LAMP]]></category>
		<category><![CDATA[PHP]]></category>
		<guid isPermaLink="false">https://otonan-syusyoku.work/?p=1845</guid>

					<description><![CDATA[とある日、サーバー移行のタスクが一端のプログラマーである私に降ってきました。 セキュリティサポートが2022年末に終了して久しいPHP7系で動いているシステムが乗っかているサーバーの移行タスクです。 &#160; Con [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>とある日、サーバー移行のタスクが一端のプログラマーである私に降ってきました。</p>
<p>セキュリティサポートが2022年末に終了して久しいPHP7系で動いているシステムが乗っかているサーバーの移行タスクです。</p>
<p>&nbsp;</p>
<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame4 preset3 animation-fade rtoc_open noto-sans" data-id="1845" data-theme="BlogArise">
<div id="rtoc-mokuji-title" class=" rtoc_center">
			<button class="rtoc_open_close rtoc_open"></button><br />
			<span>Contents</span>
			</div>
<ol class="rtoc-mokuji decimal_ol level-1">
<li class="rtoc-item"><a href="#rtoc-1">事の発端</a></li>
<li class="rtoc-item"><a href="#rtoc-2">困ったことに</a>
<ul class="rtoc-mokuji mokuji_ul level-2">
<li class="rtoc-item"><a href="#rtoc-3">Remiリポジトリ, EPELが使えない</a></li>
</ul>
</li>
<li class="rtoc-item"><a href="#rtoc-4">OS選定</a></li>
<li class="rtoc-item"><a href="#rtoc-5">感謝を捧げる</a></li>
</ol>
</div>
<h2 id="rtoc-1" >事の発端</h2>
<p><span>CentOS 7のサポート終了がきっかけです。</span></p>
<p>DevOps系のお仕事に携わっている人なら理解してくれると思うのですが、サポートが切れた技術を継続して使用していくことの恐ろしさったら中々のものです。</p>
<p>まぁそんな事情があったので、CentOSを別のOSに移行していこうー！というノリで始まりました。</p>
<h2 id="rtoc-2" >困ったことに</h2>
<p>クラウドサービスはAWSを選択しているので、AWSが提供しているOSであるAmazonLinux2023を移行先のOSとして決定しました。</p>
<p>単純なLAMP環境を構築することが今回のタスクだったので、作業をガシガシ進めていくと一つの問題にぶち当たりました。</p>
<p><strong>PHP7系がインストールできない…</strong></p>
<h3 id="rtoc-3" >Remiリポジトリ, EPELが使えない</h3>
<p>そもそもの問題としてPHP7系は2022年末にサポートが切れているので、AmazonLinuxがサポートしている訳がありません。<br />
普通に考えてみれば至極真っ当です。</p>
<p>今回のタスクでは、PHP7系を使うことは外せない要件として上がっていたので、どうしてもPHP7系が必要です。</p>
<p>こうなったらRemiリポジトリから持ってくるしかないなーと思っていた矢先、Remiリポジトリも使えないとのこと。（EPELがそもそも使えないため</p>
<p><a href="https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/relationship-to-fedora.html">AWS ドキュメント</a><br />
<a href="https://docs.aws.amazon.com/ja_jp/linux/al2023/ug/compare-with-al2.html#epel">EPEL</a><br />
<a href="https://qiita.com/charon/items/6d34ae798e9b05e8bd0a">CentOSなどで使う、RemiRepositoryってなんだ？</a></p>
<p>&nbsp;</p>
<p>今回の要件（PHP7系 install）を達成する事は、Amazonlinux2023 では不可能だと知った瞬間でした…</p>
<h2 id="rtoc-4" >OS選定</h2>
<p>CentOS の移行先で検索すると以下のOSたちがよくヒットしました。</p>
<ul>
<li>RedHatEnterpriseLinux</li>
<li>AlmaLinux</li>
<li>RockyLinux</li>
</ul>
<p><strong>PHP7系 が使えること</strong> 及び <strong>互換性があること , </strong><strong>ある程度の認知度 </strong>があるOSを選択したかったので、 RockyLinux で行くことに決定しました。</p>
<p>最終的にはRockyLinux上でRemiリポジトリを使用して目的の環境を作成することができたよーん。</p>
<p>&nbsp;</p>
<h2 id="rtoc-5" >感謝を捧げる</h2>
<p>振り回された感が拭えないタスクだったのですが、誰が悪いとかはないなーという所感です。</p>
<p>CentOSのサポートが切れるのも、Amazonlinux2023 がPHP7 をサポートしていないのも、PHP7を使って未だに運用しているシステムも誰も悪くないです。<br />
（PHP7に゙関しては早くバージョンアップしてほしい…</p>
<p>最終的には何とかなったので、 RockeyLinux のコントリビューターに感謝を捧げます</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://otonan-syusyoku.work/archives/1845/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【Laravel】MinIO にputできない問題が情けなさ過ぎた</title>
		<link>https://otonan-syusyoku.work/archives/1839</link>
					<comments>https://otonan-syusyoku.work/archives/1839#respond</comments>
		
		<dc:creator><![CDATA[hrokig2]]></dc:creator>
		<pubDate>Sat, 17 Aug 2024 08:06:12 +0000</pubDate>
				<category><![CDATA[仕事の独り言]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[Laravel]]></category>
		<guid isPermaLink="false">https://otonan-syusyoku.work/?p=1839</guid>

					<description><![CDATA[Contents 概要 調査 Intervention IMage minio への通信 原因 概要 個人開発で使用している以下スタックで画像を保存できない問題がおきた。 Laravel10 MinIO(S3の代わり)  [&#8230;]]]></description>
										<content:encoded><![CDATA[<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame4 preset3 animation-fade rtoc_open noto-sans" data-id="1839" data-theme="BlogArise">
<div id="rtoc-mokuji-title" class=" rtoc_center">
			<button class="rtoc_open_close rtoc_open"></button><br />
			<span>Contents</span>
			</div>
<ol class="rtoc-mokuji decimal_ol level-1">
<li class="rtoc-item"><a href="#rtoc-1">概要</a></li>
<li class="rtoc-item"><a href="#rtoc-2">調査</a>
<ul class="rtoc-mokuji mokuji_ul level-2">
<li class="rtoc-item"><a href="#rtoc-3">Intervention IMage</a></li>
<li class="rtoc-item"><a href="#rtoc-4">minio への通信</a></li>
</ul>
</li>
<li class="rtoc-item"><a href="#rtoc-5">原因</a></li>
</ol>
</div>
<h2 id="rtoc-1" >概要</h2>
<p>個人開発で使用している以下スタックで画像を保存できない問題がおきた。</p>
<ul>
<li>Laravel10</li>
<li>MinIO(S3の代わり)</li>
<li>Intervention IMage 3</li>
</ul>
<h2 id="rtoc-2" >調査</h2>
<h3 id="rtoc-3" >Intervention IMage</h3>
<p>Intervention IMage がVersion2 → Version3 で大きく変わったこともあり、使用法を疑ったが、何ら問題はなかった。</p>
<p>debug等の値を見て見たが、問題なし。。。</p>
<pre class="line-numbers"><code class="language-php">    /**
     * 画像をリサイズする.
     *
     * @param \Illuminate\Http\UploadedFile $file
     * @return \Intervention\Image\Interfaces\ImageInterface
     */
    public function resize(UploadedFile $file): ImageInterface
    {
        return $this-&gt;ImageManager
            -&gt;read($file)
            -&gt;resize(Media::BLOG_IMAGE_WIDTH, Media::BLOG_IMAGE_HEIGHT);
    }


    /**
     * 画像をS3にPutする.
     *
     * @param string $path
     * @param \Illuminate\Http\UploadedFile $file
     * @return bool
     */
    public function putForS3(string $path, UploadedFile $file): bool
    {
        $convertFile = $this-&gt;ImageManger-&gt;resize($file)-&gt;toPng();
        return $this-&gt;diskS3-&gt;put($path, $convertFile);
    }</code></pre>
<h3 id="rtoc-4" >minio への通信</h3>
<p>ローカル環境をDockerを用いて開発していることもあり、ローカルネットワークが怪しいと何故か閃いた。</p>
<p>以下のコマンドを用いてネットワークを見たところ、同じネットワーク内に存在していたのでコンテナ間の通信は担保されている様子でした。</p>
<pre class="line-numbers"><code class="language-other">docker network ls
docker network inspect</code></pre>
<p>ただし、 minio に向けた <code>curl</code> コマンドが返ってこないことが分かった。</p>
<h2 id="rtoc-5" >原因</h2>
<p>調査を進めていくと、サービス名に対してエンドポイントを指定しないといけないことが分かった。</p>
<pre class="line-numbers"><code class="language-other">minio:
    image: quay.io/minio/minio:RELEASE.2023-01-18T04-36-38Z
    container_name: 'discovery-gem_minio'</code></pre>
<p>今回はminioとして登録していたので、 <code>.env</code> のエンドぽいとの指定が以下の様に設定する必要がありました。</p>
<pre class="line-numbers"><code class="language-other">AWS_ENDPOINT=http:{docker-compose.ymlで指定したport}//minio</code></pre>
<p>たったこれだけのために頭を悩ましたのは悔しすぎる。</p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://otonan-syusyoku.work/archives/1839/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Route53 で登録したドメインにアクセスするとDNS_PROBE_FINISHED_NXDOMAINが発生</title>
		<link>https://otonan-syusyoku.work/archives/1834</link>
					<comments>https://otonan-syusyoku.work/archives/1834#respond</comments>
		
		<dc:creator><![CDATA[hrokig2]]></dc:creator>
		<pubDate>Fri, 16 Aug 2024 15:27:47 +0000</pubDate>
				<category><![CDATA[仕事の独り言]]></category>
		<category><![CDATA[AWS]]></category>
		<guid isPermaLink="false">https://otonan-syusyoku.work/?p=1834</guid>

					<description><![CDATA[Contents 症状 結論 症状 取得したドメインでブラウザからのアクセスができない パブリック IPv4 DNSではアクセスできる 3日前くらいまではアクセスできていた curl からも帰ってこない 結論 メールアド [&#8230;]]]></description>
										<content:encoded><![CDATA[<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame4 preset3 animation-fade rtoc_open noto-sans" data-id="1834" data-theme="BlogArise">
<div id="rtoc-mokuji-title" class=" rtoc_center">
			<button class="rtoc_open_close rtoc_open"></button><br />
			<span>Contents</span>
			</div>
<ol class="rtoc-mokuji decimal_ol level-1">
<li class="rtoc-item"><a href="#rtoc-1">症状</a></li>
<li class="rtoc-item"><a href="#rtoc-2">結論</a></li>
</ol>
</div>
<h2 id="rtoc-1" >症状</h2>
<ul>
<li>取得したドメインでブラウザからのアクセスができない
<ul>
<li><span>パブリック IPv4 DNSではアクセスできる</span></li>
<li>3日前くらいまではアクセスできていた</li>
<li>curl からも帰ってこない</li>
</ul>
</li>
</ul>
<h2 id="rtoc-2" >結論</h2>
<p>メールアドレスの検証をしていなかった。<br />
Route53 &gt; 登録済みドメイン</p>
<p><a href="https://otonan-syusyoku.work/archives/1834/%e3%82%b9%e3%82%af%e3%83%aa%e3%83%bc%e3%83%b3%e3%82%b7%e3%83%a7%e3%83%83%e3%83%88-2024-08-17-0-15-54" rel="attachment wp-att-1835"><img decoding="async" src="https://otonan-syusyoku.work/wp-content/uploads/2024/08/スクリーンショット-2024-08-17-0.15.54.png" alt="" width="1000" height="46" class="aligncenter size-full wp-image-1835" srcset="https://otonan-syusyoku.work/wp-content/uploads/2024/08/スクリーンショット-2024-08-17-0.15.54.png 1000w, https://otonan-syusyoku.work/wp-content/uploads/2024/08/スクリーンショット-2024-08-17-0.15.54-300x14.png 300w, https://otonan-syusyoku.work/wp-content/uploads/2024/08/スクリーンショット-2024-08-17-0.15.54-768x35.png 768w" sizes="(max-width: 1000px) 100vw, 1000px" /></a></p>
<p>再送信後、検証を実施したら意図した挙動になった。</p>
<p>&nbsp;</p>
<p><code>curl</code> やら <code>dig</code> , <code>whois</code> なんかを見て回ったので3時間位とかした。<br />
単純なミスでした。（心の底から泣いた。</p>
<p>個人開発で良かった。忙しいとしょうもないところもできなくなるね…</p>
]]></content:encoded>
					
					<wfw:commentRss>https://otonan-syusyoku.work/archives/1834/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【プログラマーに捧ぐ】インフラに興味を持ちましょう</title>
		<link>https://otonan-syusyoku.work/archives/1794</link>
					<comments>https://otonan-syusyoku.work/archives/1794#respond</comments>
		
		<dc:creator><![CDATA[hrokig2]]></dc:creator>
		<pubDate>Sat, 27 Jul 2024 01:44:26 +0000</pubDate>
				<category><![CDATA[仕事の独り言]]></category>
		<category><![CDATA[業務]]></category>
		<category><![CDATA[AWS]]></category>
		<category><![CDATA[インフラ]]></category>
		<category><![CDATA[脱3流プログラマー]]></category>
		<guid isPermaLink="false">https://otonan-syusyoku.work/?p=1794</guid>

					<description><![CDATA[こんにちは、プログラマーの皆さん。 今回は、ソフトウェア開発の一環として非常に重要なインフラストラクチャ（以下、インフラ）についてお話ししたいと思います。 多くのプログラマーがコードを書くことに夢中になる一方で、インフラ [&#8230;]]]></description>
										<content:encoded><![CDATA[<p>こんにちは、プログラマーの皆さん。</p>
<p>今回は、ソフトウェア開発の一環として非常に重要なインフラストラクチャ（以下、インフラ）についてお話ししたいと思います。</p>
<p>多くのプログラマーがコードを書くことに夢中になる一方で、インフラについてはあまり関心を持たないことがあります。<br />
しかし、インフラに興味を持つことは、より強力でスケーラブルなアプリケーションを作成するために不可欠です。</p>
<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame4 preset3 animation-fade rtoc_open noto-sans" data-id="1794" data-theme="BlogArise">
<div id="rtoc-mokuji-title" class=" rtoc_center">
			<button class="rtoc_open_close rtoc_open"></button><br />
			<span>Contents</span>
			</div>
<ol class="rtoc-mokuji decimal_ol level-1">
<li class="rtoc-item"><a href="#rtoc-1">インフラとは？</a></li>
<li class="rtoc-item"><a href="#rtoc-2">なぜインフラに興味を持つべきか？</a></li>
<li class="rtoc-item"><a href="#rtoc-3">具体的に考えてみよう</a>
<ul class="rtoc-mokuji mokuji_ul level-2">
<li class="rtoc-item"><a href="#rtoc-4">サーバーのスケールアップ</a></li>
<li class="rtoc-item"><a href="#rtoc-5">ロードバランシングの導入</a></li>
<li class="rtoc-item"><a href="#rtoc-6">サーバーレスの選択</a></li>
<li class="rtoc-item"><a href="#rtoc-7">キャッシュ戦略</a></li>
<li class="rtoc-item"><a href="#rtoc-8">ネットワーク設定の最適化</a></li>
</ul>
</li>
<li class="rtoc-item"><a href="#rtoc-9">具体的に何を学ぶべきか？</a></li>
<li class="rtoc-item"><a href="#rtoc-10">最後に</a></li>
</ol>
</div>
<h2 id="rtoc-1" >インフラとは？</h2>
<p>インフラとは、ソフトウェアが動作するための基盤となるハードウェア、ネットワーク、ストレージ、クラウドサービスなどを指します。これには、サーバーの設定、ネットワークの構築、データベースの管理、スケーリングのためのクラウドサービスの利用などが含まれます。</p>
<h2 id="rtoc-2" >なぜインフラに興味を持つべきか？</h2>
<ol>
<li><strong>パフォーマンスの最適化</strong>: インフラの知識があると、アプリケーションのパフォーマンスを最適化するための適切なリソースを選択し、設定することができます。</li>
<li><strong>信頼性の向上</strong>: 適切なインフラの設計は、アプリケーションのダウンタイムを最小限に抑え、信頼性を向上させるのに役立ちます。</li>
<li><strong>スケーラビリティ</strong>: インフラを理解していると、トラフィックの増加に対応できるスケーラブルなアーキテクチャを設計することが可能です。</li>
<li><strong>セキュリティの強化</strong>: インフラのセキュリティを強化することで、アプリケーションを攻撃から守ることができます。</li>
<li><strong>多角的な課題解決</strong>: プログラム以外の手段として、インフラの変更や最適化を考慮することで、課題解決の選択肢が増えます。例えば、コードの最適化だけでなく、サーバーのスケールアップやネットワーク設定の見直しも有効な解決策となります。</li>
</ol>
<h2 id="rtoc-3" >具体的に考えてみよう</h2>
<p>例えば、あるウェブアプリケーションのパフォーマンスが悪く、ユーザーからのクレームが増えている状況を考えてみましょう。</p>
<p>この場合、<strong>最初に考えるのはコードの最適化</strong>かもしれません。<br />
効率的なアルゴリズムを使用したり、データベースクエリを最適化することが効果的です。</p>
<p>しかし、これだけが解決策ではありません。</p>
<p>インフラ観点で考えてみましょう。</p>
<h3 id="rtoc-4" >サーバーのスケールアップ</h3>
<p>現在のサーバーがトラフィックに対応しきれていない場合、サーバーのスケールアップ（より強力なサーバーにアップグレード）を検討できます。</p>
<p>これにより、リソース不足によるパフォーマンス低下を防ぐことができます。</p>
<p>例えば、EC2インスタンスのサイズをt3.smallからt3.largeに変更することで、CPUとメモリリソースが増加し、パフォーマンスが向上する可能性があります。</p>
<h3 id="rtoc-5" >ロードバランシングの導入</h3>
<p>トラフィックが特定のサーバーに集中している場合、ロードバランサーを導入することで、トラフィックを複数のサーバーに分散させることができます。これにより、各サーバーの負荷が軽減され、全体のパフォーマンスが向上します。</p>
<p>AWS Application Load Balancer（ALB）を使用して、複数のEC2インスタンス間でトラフィックを分散することで、スケーラビリティと信頼性を向上させることができます。</p>
<p>&nbsp;</p>
<p>また、ALBではパスルーティングを設定することが可能なため、重たい処理専用のサーバーで処理をするといったことも考えることができます。</p>
<p>その際にはログイン情報を引き継ぐといったことも考える必要が出てくるため、Redisなどのミドルウェアも視野に入れる必要があります。</p>
<p><a href="https://otonan-syusyoku.work/archives/1794/alb" rel="attachment wp-att-1806"><img decoding="async" src="https://otonan-syusyoku.work/wp-content/uploads/2024/07/alb.png" alt="alb" width="1091" height="681" class="aligncenter size-full wp-image-1806" srcset="https://otonan-syusyoku.work/wp-content/uploads/2024/07/alb.png 1091w, https://otonan-syusyoku.work/wp-content/uploads/2024/07/alb-300x187.png 300w, https://otonan-syusyoku.work/wp-content/uploads/2024/07/alb-1024x639.png 1024w, https://otonan-syusyoku.work/wp-content/uploads/2024/07/alb-768x479.png 768w" sizes="(max-width: 1091px) 100vw, 1091px" /></a></p>
<h3 id="rtoc-6" >サーバーレスの選択</h3>
<p>AWS Lambda といったサーバーレスアーキテクチャを選択することも視野に入れると良いです。</p>
<p>サーバーレスを利用することで、サーバーの管理が不要になり、スケーリングも自動で行われます。</p>
<p>（Lambdaには制約があるので注意。この<a href="https://qiita.com/shibadai/items/fd483ccd2ad8c8d89c1a">記事</a>わかりやすいよ</p>
<p><a href="https://otonan-syusyoku.work/archives/1794/lambfa" rel="attachment wp-att-1808"><img decoding="async" src="https://otonan-syusyoku.work/wp-content/uploads/2024/07/lambfa.png" alt="lambda" width="1091" height="641" class="aligncenter size-full wp-image-1808" srcset="https://otonan-syusyoku.work/wp-content/uploads/2024/07/lambfa.png 1091w, https://otonan-syusyoku.work/wp-content/uploads/2024/07/lambfa-300x176.png 300w, https://otonan-syusyoku.work/wp-content/uploads/2024/07/lambfa-1024x602.png 1024w, https://otonan-syusyoku.work/wp-content/uploads/2024/07/lambfa-768x451.png 768w" sizes="(max-width: 1091px) 100vw, 1091px" /></a></p>
<h3 id="rtoc-7" >キャッシュ戦略</h3>
<p>結果をキャッシュサーバーに格納していこうぜぇぇぇ</p>
<p><a href="https://otonan-syusyoku.work/archives/1794/elastic-2" rel="attachment wp-att-1809"><img decoding="async" src="https://otonan-syusyoku.work/wp-content/uploads/2024/07/elastic-1.png" alt="elastic" width="1091" height="641" class="aligncenter size-full wp-image-1809" srcset="https://otonan-syusyoku.work/wp-content/uploads/2024/07/elastic-1.png 1091w, https://otonan-syusyoku.work/wp-content/uploads/2024/07/elastic-1-300x176.png 300w, https://otonan-syusyoku.work/wp-content/uploads/2024/07/elastic-1-1024x602.png 1024w, https://otonan-syusyoku.work/wp-content/uploads/2024/07/elastic-1-768x451.png 768w" sizes="(max-width: 1091px) 100vw, 1091px" /></a></p>
<p>&nbsp;</p>
<h3 id="rtoc-8" >ネットワーク設定の最適化</h3>
<p>ネットワークの設定を見直し、遅延を最小限に抑えるための最適化を行うことも重要です。</p>
<p>例えば、コンテンツデリバリネットワーク（CDN）を使用して、静的コンテンツをユーザーに近い場所から提供することで、応答時間を短縮できます。</p>
<p>CloudFrontを利用して、画像やJavaScriptファイルなどの静的リソースをキャッシュし、グローバルに分散されたエッジロケーションから提供することで、ユーザー体験を向上させることができます。</p>
<h2 id="rtoc-9" >具体的に何を学ぶべきか？</h2>
<ol>
<li><strong>サーバー管理</strong>: Linuxの基本的なコマンド、サーバーのセットアップ、SSHの使用方法を学びましょう。</li>
<li><strong>クラウドサービス</strong>: AWS、Azure、Google Cloudなどの主要なクラウドプロバイダーのサービスについて理解し、使いこなせるようにしましょう。</li>
<li><strong>コンテナ技術</strong>: DockerやKubernetesなどのコンテナ技術を学ぶことで、アプリケーションのデプロイメントが効率的になります。</li>
<li><strong>ネットワークの基礎</strong>: IPアドレス、サブネット、DNS、ロードバランシングなどの基本的なネットワーク概念を理解しましょう。</li>
<li><strong>インフラストラクチャー・アズ・コード（IaC）</strong>: TerraformやCloudFormationを使用して、コードでインフラを管理する方法を学びましょう。</li>
</ol>
<h2 id="rtoc-10" >最後に</h2>
<p>インフラの知識は、プログラマーにとって非常に有益です。</p>
<p>コードを書くことだけでなく、そのコードが動作する環境について理解することで、より優れたソフトウェアを作成することができます。<br />
さらに、プログラム以外の手段としてインフラを活用することで、課題解決の幅が広がります。ぜひ、インフラに興味を持ち、自身のスキルセットを拡充していきましょう。</p>
<p>このブログが皆さんのインフラへの関心を高めるきっかけとなれば幸いです。次回もお楽しみに！</p>
]]></content:encoded>
					
					<wfw:commentRss>https://otonan-syusyoku.work/archives/1794/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>tmux メモ</title>
		<link>https://otonan-syusyoku.work/archives/1787</link>
					<comments>https://otonan-syusyoku.work/archives/1787#respond</comments>
		
		<dc:creator><![CDATA[hrokig2]]></dc:creator>
		<pubDate>Mon, 24 Jun 2024 01:12:37 +0000</pubDate>
				<category><![CDATA[仕事の独り言]]></category>
		<guid isPermaLink="false">https://otonan-syusyoku.work/?p=1787</guid>

					<description><![CDATA[Contents 前提 既存のセッションから他のセッションに切り替える方法 ペインの削除方法 ペインの強制削除 セッション開始 セッション名変更 前提  - は同時押し  + は単独の実行 既存のセッションから他のセッシ [&#8230;]]]></description>
										<content:encoded><![CDATA[<div id="rtoc-mokuji-wrapper" class="rtoc-mokuji-content frame4 preset3 animation-fade rtoc_open noto-sans" data-id="1787" data-theme="BlogArise">
<div id="rtoc-mokuji-title" class=" rtoc_center">
			<button class="rtoc_open_close rtoc_open"></button><br />
			<span>Contents</span>
			</div>
<ol class="rtoc-mokuji decimal_ol level-1">
<li class="rtoc-item"><a href="#rtoc-1">前提</a></li>
<li class="rtoc-item"><a href="#rtoc-2">既存のセッションから他のセッションに切り替える方法</a></li>
<li class="rtoc-item"><a href="#rtoc-3">ペインの削除方法</a></li>
<li class="rtoc-item"><a href="#rtoc-4">ペインの強制削除</a></li>
<li class="rtoc-item"><a href="#rtoc-5">セッション開始</a></li>
<li class="rtoc-item"><a href="#rtoc-6">セッション名変更</a></li>
</ol>
</div>
<h2 id="rtoc-1" >前提</h2>
<ul>
<li> <code>-</code> は同時押し</li>
<li> <code>+</code> は単独の実行</li>
</ul>
<h2 id="rtoc-2" >既存のセッションから他のセッションに切り替える方法</h2>
<p>すでに tmux セッション内にいる場合、以下の手順で他のセッションに切り替えます：</p>
<ol>
<li><strong>Prefixキー (デフォルトでは <code>Ctrl-b</code>) を押す</strong>。</li>
<li><code>s</code> キーを押してセッション一覧を表示する。</li>
<li>矢印キーで目的のセッションを選び、Enter キーを押してそのセッションに切り替える。</li>
</ol>
<p>&nbsp;</p>
<h2 id="rtoc-3" >ペインの削除方法</h2>
<ol>
<li><strong>削除したいペインにフォーカスを合わせる</strong>: <code>Ctrl-b</code> を押して、矢印キーを使って削除したいペインにフォーカスを移動します。</li>
<li><strong>ペインを削除</strong>: Ctrl-b + x</li>
</ol>
<h2 id="rtoc-4" >ペインの強制削除</h2>
<ol>
<li><code>exit</code></li>
</ol>
<h2 id="rtoc-5" >セッション開始</h2>
<p><code>tmux new -s 'session-name'</code></p>
<p>&nbsp;</p>
<h2 id="rtoc-6" >セッション名変更</h2>
<p><span><code>tmux rename -t 変更前セッション名 変更後セッション名</code></span></p>
<p>&nbsp;</p>
]]></content:encoded>
					
					<wfw:commentRss>https://otonan-syusyoku.work/archives/1787/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
