<?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>システム開発  |  いまさら聞けないシステム開発</title>
	<atom:link href="https://sys-univ.com/category/dev/feed/" rel="self" type="application/rss+xml" />
	<link>https://sys-univ.com</link>
	<description>意外と知らない、だけど知っておくべきシステム開発の基本と裏話を伝えていきます</description>
	<lastBuildDate>Tue, 28 May 2024 10:25:14 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.7.2</generator>
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/><atom:link rel="hub" href="https://websubhub.com/hub"/>	<item>
		<title>【システム開発】システム監視とは　～基本的なシステム構成と監視方法～</title>
		<link>https://sys-univ.com/dev/monitor/</link>
					<comments>https://sys-univ.com/dev/monitor/#respond</comments>
		
		<dc:creator><![CDATA[ろな]]></dc:creator>
		<pubDate>Tue, 18 Oct 2022 09:56:28 +0000</pubDate>
				<category><![CDATA[システム開発]]></category>
		<guid isPermaLink="false">https://sys-univ.com/?p=1252</guid>

					<description><![CDATA[企業のDX化は加速の一途を辿り、コンピューターシステムの重要性が一層増す中、ひとたびシステム障害を起こせば、システムを提供する企業は社会的信頼およびブランド失墜のリスクを抱えることになります。みずほ銀行やKDDIのシステ [&#8230;]]]></description>
										<content:encoded><![CDATA[


<p>企業のDX化は加速の一途を辿り、コンピューターシステムの重要性が一層増す中、ひとたびシステム障害を起こせば、システムを提供する企業は社会的信頼およびブランド失墜のリスクを抱えることになります。みずほ銀行やKDDIのシステム障害は記憶に新しいことでしょう。</p>



<p>各システムでは、いかにシステム障害の発生を予防し、発生時の影響を最小限に抑えるかが重要な課題の一つとなっています。その解決手段として登場するのが「システム監視」です。「システム監視」を行わなければ、システムに障害が発生しても気づくことができず、利用者から「システムが使えない」と問い合わせやクレームが来てから障害に気づくことになります。</p>



<p>つまり、システム監視とは<span class="red">「次の2点を事前に確認し、必要に応じて関係者へ通知を行う仕組み」</span>と言えます。</p>



<p><ul>
	<li>システムが正常に稼働しているか</li>
	<li>システムに障害予兆となる兆候はないか</li>
</ul></p>



<p>一方、運用／保守性の要件にあわせたシステム監視を行うには複数種類の監視方法があり、複雑に組み合わせながら構築することになります。今回は、システム開発で必ず必要となる<span class="red">システム監視の基本的なシステム構成と様々な監視方法</span>について解説したいと思います。</p>



<p><p>システム監視が定義される<a href="https://sys-univ.com/dev/operation/">非機能要件「運用／保守性」をやさしく解説！</a>もあわせて参照ください。</p>
<div class="ad-area no-icon ad-shortcode ad-rectangle ad-label-visible cf" itemscope itemtype="https://schema.org/WPAdBlock">
  <div class="ad-label" itemprop="name" data-nosnippet>スポンサーリンク（Cocoon）</div>
  <div class="ad-wrap">
    <div class="ad-responsive ad-usual"><!-- レスポンシブコード -->
<ins class="adsbygoogle"
  style="display:block"
  data-ad-client="ca-pub-2533181200339566"
  data-ad-slot="9057331707"
  data-ad-format="rectangle"
  data-full-width-responsive="true"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
          </div>

</div>
</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2" checked><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">システム監視の基本的なシステム構成</a></li><li><a href="#toc2" tabindex="0">システム監視の監視方法</a></li><li><a href="#toc3" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">システム監視の基本的なシステム構成</span></h2>



<p>一般的なシステム監視のシステム構成イメージを以下に示します。</p>



<p>システム監視では、監視する側、監視される側といった役割が発生します。<br>
監視する側が「監視サーバー」、監視される側の機器を「監視対象機器（Web/APサーバなど）」とよびます。</p>



<p>多くの場合、「監視サーバー」は下記のような<strong><span style="color: #ff0000;">監視</span><span style="color: #ff0000;">情報を収集※</span></strong>し、<strong><span style="color: #800080;">運用者／管理者がパソコン画面で</span><span style="color: #800080;">確認し、</span></strong><strong><span style="color: #800080;">メールでも監視情報を受信する</span></strong>といったシステム監視を行っています。</p>
<p>※システム監視で収集する情報の例</p>
<p>



</p>
<ul>
	<li><span style="color: #ff0000;">Web/APサーバーと通信状況</span></li>
	<li><span style="color: #ff0000;">DBサーバーのCPU負荷状況</span></li>
	<li><span style="color: #ff0000;">



共有ストレージのディスク容量</span></li>
	<li><span style="color: #ff0000;">機器それぞれのログに怪しいメッセージ出力がないか</span></li>
</ul>
<p>



</p>
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="800" height="515" class="wp-image-1644" src="https://sys-univ.com/wp-content/uploads/2022/10/dfa345ee758283e839333899dcfa0565-1-800x515.png" alt="" srcset="https://sys-univ.com/wp-content/uploads/2022/10/dfa345ee758283e839333899dcfa0565-1-800x515.png 800w, https://sys-univ.com/wp-content/uploads/2022/10/dfa345ee758283e839333899dcfa0565-1-500x322.png 500w, https://sys-univ.com/wp-content/uploads/2022/10/dfa345ee758283e839333899dcfa0565-1-300x193.png 300w, https://sys-univ.com/wp-content/uploads/2022/10/dfa345ee758283e839333899dcfa0565-1-768x494.png 768w, https://sys-univ.com/wp-content/uploads/2022/10/dfa345ee758283e839333899dcfa0565-1.png 1106w" sizes="(max-width: 800px) 100vw, 800px" /></figure>
<p>



</p>
<p>念のため補足すると、クラウドサービスではシステム監視に対する考え方が若干違うので注意が必要です。</p>
<p>例えば、AWSには各種リソースを監視してくれるフルマネージドの運用監視サービス「CloudWatch」があり、監視サーバーといった考えはありません。当然ですが、機器といった概念のないマネージドサービスの監視も対応しています。従来のシステム構成で行うシステム監視とは概念的に異なります。</p>
<p>一方、システム監視に対する基本的な考え方が、クラウドやAWSだからといって変わることはありません。基本的には同様の考え方で通用します。マニュアル車が運転できる人はオートマチック車も運転できるのと同じようなものです。</p>
<p>余談ですが、その逆は難しいようです。<br />
徐々にクラウドしか知らないクラウドネイティブのエンジニアも増えてきました。しかし、オンプレとクラウドが混在する過渡期の今、まだまだオンプレミスにおける知見がないと業務をスムーズに進められないケースがあります。具体的には、オンプレでの設計思想を理解できず、クラウド上にリファクタリングできないケースです。クラウドネイティブが悪いわけではありませんが、<span class="red">システム開発の目的は「お客様とコミットしたQCDを守ること」であり、「クラウド機能による開発」ではないことを忘れてはいけません</span>。クラウド利用は、目的達成の手段でしかありません。</p>
<h2><span id="toc2">システム監視の監視方法</span></h2>
<p>監視サーバーが、監視対象機器の「何」に対して「どのように」監視するかの処理方式が監視方法です。</p>
<p>監視方法の考え方は複数種類に渡ります。そして、その複数種類を組み合わせてシステム監視を実現します。さまざまな監視方法が用意されているのは、<span class="red">あらゆるシステム障害、状況に対して検知、通知しなければならない</span>ことの裏返しでもあります。<span class="red">システムの安定運用、障害発生の未然防止はシステム監視の品質にかかっている</span>からです。</p>
<p>以下に示すのは、代表的な監視方法の例です。最低限、押さえておきましょう。<br />
それぞれの監視方法の詳細は表中のリンクを参考にしてください。</p>
<p>


<table style="border-collapse: collapse; width: 100%; height: 125px;">
<tbody>
<tr style="height: 10px; border-color: #0; background-color: #0c9ef2;">
<td style="width: 33.1047%; height: 10px; text-align: center;"><span style="color: #ffffff;">監視方法</span></td>
<td style="width: 66.8953%; height: 10px; text-align: center;"><span style="color: #ffffff;">内容</span></td>
</tr>
<tr style="height: 23px;">
<td style="width: 33.1047%; height: 23px; text-align: center;"><a href="https://sys-univ.com/tec/ping_snmp/" target="_blank">死活監視</a></td>
<td style="width: 66.8953%; height: 23px;">
<p>監視サーバーより、pingなどでサーバ、ストレージ、ネットワーク機器が起動しているかを監視する。</p>
</td>
</tr>
<tr style="height: 23px;">
<td style="width: 33.1047%; height: 23px; text-align: center;"><a href="//sys-univ.com/tec/agentjp1/" target="_blank">エージェント監視</a></td>
<td style="width: 66.8953%; height: 23px;" width="405">
<p>監視対象機器に監視用ソフトウェア（以下、エージェントとよぶ）を導入し、エージェントが監視対象サーバー自身を監視する。怪しいメッセージ出力がログにあれば監視サーバーに通知する。</p>
</td>
</tr>
<tr style="height: 23px;">
<td style="width: 33.1047%; height: 23px; text-align: center;"><a href="https://sys-univ.com/tec/agentless/" target="_blank">エージェントレス監視</a></td>
<td style="width: 66.8953%; height: 23px;" width="405">
<p>監視対象機器にエージェント導入をせず、監視サーバーにてリモートで監視対象機器を監視する。エージェント監視に比べて監視できることが限定される場合が多い</p>
</td>
</tr>
<tr style="height: 23px;">
<td style="width: 33.1047%; height: 23px; text-align: center;">
<p>リソース稼働情報監視<br />（エージェント監視の一部）</p>
</td>
<td style="width: 66.8953%; height: 23px;" width="405">
<p>リソース（CPU、メモリ、ディスクI/Oなど）稼働情報を収集するエージェントによって、パフォーマンス低下の予兆を監視し、パフォーマンスチューニング向けレポート出力など行う。</p>
</td>
</tr>
<tr style="height: 23px;">
<td style="width: 33.1047%; height: 23px; text-align: center;">個別ソフトウェアに特化した監視(エージェント監視の一部）</td>
<td style="width: 66.8953%; height: 23px;">
<p>Oracle、SQL Serverといった個別ソフトウェアのリソース稼働情報のチェックに特化した専用製品で監視する。OS標準コマンドでは検知できない詳細が監視可能</p>
<p>製品例：JP1/Performance Management &#8211; Agent Option for Oracle、JP1/Performance Management &#8211; Agent Option for Microsoft® SQL Server</p>
</td>
</tr>
</tbody>
</table>
<p>例えば、監視対象であるDBサーバーが起動しているのかどうかを監視したい場合は「死活監視」を行います。</p>
<p>なぜ「死活監視」が選択されるのかを補足しておきます。<br />誤解を恐れずに言えば、IT業界では「死活監視」＝「ping（ICMP Echo Reply）実行結果で判断」とする事が多いからです。もちろん他の方法、例えばsnmpを利用しても死活監視は可能です。このあたりを理解するには、ネットワークプロトコル、アクセス制御の知識が必要になるので詳細説明は割愛しますが、基本の理解としては、表の内容を抑えておけば十分です。</p>
<h2><span id="toc3">まとめ</span></h2>
<p>システム監視は、<span class="red">システムの正常性確認と予防保守の観点で導入され、必要に応じて監視情報を関係者へ通知する仕組み</span>です。</p>
<p>システム毎に検知、通知しないければならな情報は異なるため、システム要件に応じた適切な監視方法の選択が必要です。検知、通知精度が低いと、重大なシステム障害や予兆を見落とす可能性につながります。まずは、システム監視の必要性と基本を理解しましょう。</p>]]></content:encoded>
					
					<wfw:commentRss>https://sys-univ.com/dev/monitor/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>【クラウドリフト】オンプレミスからクラウド移行　よくある失敗２選　</title>
		<link>https://sys-univ.com/dev/cloudlift/</link>
					<comments>https://sys-univ.com/dev/cloudlift/#respond</comments>
		
		<dc:creator><![CDATA[ろな]]></dc:creator>
		<pubDate>Thu, 29 Sep 2022 01:53:54 +0000</pubDate>
				<category><![CDATA[AWS]]></category>
		<category><![CDATA[システム開発]]></category>
		<guid isPermaLink="false">https://sys-univ.com/?p=1329</guid>

					<description><![CDATA[DX化の流れにも後を押され、オンプレミス環境からクラウド環境へのクラウドリフトが加速しています。日本国内では「クラウド・バイ・デフォルト原則」に従い「新規システム導入を行う際は、クラウドサービスを第一に考えること」（以降 [&#8230;]]]></description>
										<content:encoded><![CDATA[
<p>DX化の流れにも後を押され、オンプレミス環境からクラウド環境へのクラウドリフトが加速しています。日本国内では「<a rel="noopener" href="https://cio.go.jp/sites/default/files/uploads/documents/cloud_policy_20210330.pdf" target="_blank">クラウド・バイ・デフォルト原則</a>」に従い「<span class="marker-under-blue">新規システム導入を行う際は、クラウドサービスを第一に考えること</span>」（以降クラウド）といった政府方針にも支えられ、この流れが今後も止まることはないでしょう。一方、多くのプロジェクトでは、オンプレミス環境からクラウド環境へのリフト経験、移行経験がないことにより、下記2点の課題を抱えるプロジェクトが後を絶ちません。</p>
<ul>
	<li>
<div class="bb-blue"><span class="bold red">開発コスト増加</span></div>
</li>
	<li>
<div class="bb-blue"><span class="bold red">スケジュール遅延</span></div>
</li>
</ul>

<p>今回のブログでは、クラウドリフトで発生する予想外の開発コストと、スケジュール遅延について具体的な例を示しながら解説したいと思います。これからクラウドリフトを検討しているプロジェクトではぜひ参考にして頂き、事前に対策を検討しましょう。</p>
<div class="ad-area no-icon ad-shortcode ad-rectangle ad-label-visible cf" itemscope itemtype="https://schema.org/WPAdBlock">
  <div class="ad-label" itemprop="name" data-nosnippet>スポンサーリンク（Cocoon）</div>
  <div class="ad-wrap">
    <div class="ad-responsive ad-usual"><!-- レスポンシブコード -->
<ins class="adsbygoogle"
  style="display:block"
  data-ad-client="ca-pub-2533181200339566"
  data-ad-slot="9057331707"
  data-ad-format="rectangle"
  data-full-width-responsive="true"></ins>
<script>
(adsbygoogle = window.adsbygoogle || []).push({});
</script></div>
          </div>

</div>


  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-4" checked><label class="toc-title" for="toc-checkbox-4">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">まさかの開発コスト増加</a><ol><li><a href="#toc2" tabindex="0">クラウド利用料の過小評価</a><ol><li><a href="#toc3" tabindex="0">クラウド利用料の超過あるある</a></li></ol></li></ol></li><li><a href="#toc4" tabindex="0">事前検証の甘さが招くスケジュール遅延</a><ol><li><a href="#toc5" tabindex="0">従来の機能・非機能は実現できるのか</a><ol><li><a href="#toc6" tabindex="0">Pocでは何をすれば良いのか</a></li></ol></li><li><a href="#toc7" tabindex="0">Poc不足のプロジェクトが9割</a></li></ol></li><li><a href="#toc8" tabindex="0">まとめ</a></li></ol>
    </div>
  </div>

<h2><span id="toc1">まさかの開発コスト増加</span></h2>
<p>クラウドを利用した多くの人が直面する開発コスト増加とは、クラウド利用料です。想像以上に高額なことに驚きます。詳細を確認します。</p>
<p>&nbsp;</p>

<figure class="wp-block-image size-large"><img decoding="async" width="800" height="533" class="wp-image-1396" src="https://sys-univ.com/wp-content/uploads/2022/09/c3a2e28db9a71de254e6610bf376470f-800x533.jpg" alt="" srcset="https://sys-univ.com/wp-content/uploads/2022/09/c3a2e28db9a71de254e6610bf376470f-800x533.jpg 800w, https://sys-univ.com/wp-content/uploads/2022/09/c3a2e28db9a71de254e6610bf376470f-500x333.jpg 500w, https://sys-univ.com/wp-content/uploads/2022/09/c3a2e28db9a71de254e6610bf376470f-300x200.jpg 300w, https://sys-univ.com/wp-content/uploads/2022/09/c3a2e28db9a71de254e6610bf376470f-768x512.jpg 768w, https://sys-univ.com/wp-content/uploads/2022/09/c3a2e28db9a71de254e6610bf376470f-1536x1024.jpg 1536w" sizes="(max-width: 800px) 100vw, 800px" /></figure>


<h3><span id="toc2">クラウド利用料の過小評価</span></h3>
<p>基本的に共通しているところは「ハードウェアやソフトウェアの購入が発生しなくなるため、その分費用が浮くであろう」という前提ありきでプロジェクトを進めた結果、開発コストが増加、超過しているプロジェクトが圧倒的に多いという事実です。まず、クラウド利用料金の体系ですが、次の２パターンで提供されることが一般的です。クラウド毎に名称はそれぞれですが、AWSでは前者をオンデマンド、後者をリザーブドインスタンス料金などと呼びます。</p>
<ol>
	<li><span class="bold red">利用した分だけ課金される従量課金体系</span></li>
	<li><span class="bold red">１年や３年といった固定された期間に対する利用料を割引価格で前払いする課金体系</span></li>
</ol>
<p>この課金体系を前提として最大限コストメリットを出そうとすると、<span class="marker-under-blue">システム側がクラウドが提供する課金体系でお得になるようにあわせていくことが大前提</span>となるのですが、多くのプロジェクトではそれが出来ていません。具体例で見てみます。</p>
<p>システム開発で必ず利用する開発環境の運用を例に確認します。<br />
多くのプロジェクトでは、特定期間、業務時間であるに日中帯に利用することが多いと思います。１．のオンデマンド利用を前提として開発環境の利用計画を立てることが多いでしょう。時間にして一か月１６０時間程度（算出ロジックは下記の通り）として算出しているケースもあります。</p>
<p>　平日５日を４週間で２０日、１０時－１８時の８時間　→　１６０時間</p>
<p>しかし、システム開発が進んでくると程度の差はあれトラブルが発生し、開発スケジュールの遅延が発生することはままあります。総合試験といったフェーズでは日回し、耐久テストといったことで１週間連続で２４時間運転するといったこともざらです。トラブルが多ければ、何度も実施しなければなりません。このようなことが考慮されてなければ、どうなるかはご想像の通りです。</p>
<p>初めてクラウドリフトしたケースで、開発環境の利用料金が計画値に収まったという話を聞いたことがありません。オンデマンド利用料は想像以上に高額であり、起動しているインスタンスタイプ、開発期間で変わってきますが、<span class="marker-under-blue">オンデマンド利用時間が計画値の２倍になるような状況であればリザーブドインスタンスで計画したほうが良かった</span>、そんなこともざらにあります。参考として、AWSのEC２オンデマンド利用料が確認できるページを載せておきます。</p>
<p>運用のユースケースに対して、何通りもシミュレーションしたうえで適切なインスタンスタイプや課金体系を導く必要があるのです。</p>
<a rel="noopener" href="https://aws.amazon.com/jp/ec2/pricing/on-demand/" title="オンデマンドインスタンスの料金 - Amazon EC2 (仮想サーバー) | AWS" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img src="https://sys-univ.com/wp-content/uploads/cocoon-resources/blog-card-cache/c94cb44bac0b155cad9e923137017c79.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" loading="lazy" decoding="async" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">オンデマンドインスタンスの料金 - Amazon EC2 (仮想サーバー) | AWS</div><div class="blogcard-snippet external-blogcard-snippet">オンデマンドインスタンスについては、お客様が使用された EC2 インスタンスの料金のみのお支払いとなります。オンデマンドインスタンスを使用することにより、ハードウェアのプランニング、購入、維持に伴うコストや手間が省け、高額な固定費となりがちな運用コストを、より低額な変動費に抑えられます。 </div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://aws.amazon.com/jp/ec2/pricing/on-demand/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" loading="lazy" decoding="async" /></div><div class="blogcard-domain external-blogcard-domain">aws.amazon.com</div></div></div></div></a>
<p></p>
<p>クラウド利用のコストメリットを最大限生かそうとすると、システム側がクラウドが提供する課金体系にあわせないとならない理由がお分かり頂けたのではないでしょうか。</p>
<h4><span id="toc3">クラウド利用料の超過あるある</span></h4>
<p>多くのプロジェクトで１度はやっている、想定外のクラウド利用料が発生するケース２点をあげておきます。<br />
知っていれば防げる内容なので、同じようなトラブルを引き起こさないようにしましょう。</p>
<ul>
	<li><span class="bold red">インスタンスの停止忘れ</span></li>
</ul>
<p style="padding-left: 40px;">手動でインスタンスを停止する運用にしている場合、停止忘れが発生し夜間、土日の利用していない時間帯で利用料が発生します。これは、結構な頻度で発生します。バッチで特定時間に停止させるといった運用で問題ない場合は、仕組みでカバーしたほうが良いでしょう。</p>
<ul>
	<li><span class="bold red">AmazonRDSインスタンスは、7日後に自動起動する</span></li>
</ul>
<p style="padding-left: 40px;">製品仕様となっているため、プロジェクト側で停止する仕組みを用意しないと、知らない間に利用料が発生します。RDSはEC2に比べて高額となるため、大きなインスタンスタイプを利用していると被害額は大きくなるため、十分な注意が必要です。</p>
<a rel="noopener" href="https://aws.amazon.com/jp/premiumsupport/knowledge-center/rds-stop-seven-days/" title="RDS インスタンスを 7 日以上停止する" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img src="https://sys-univ.com/wp-content/uploads/cocoon-resources/blog-card-cache/c94cb44bac0b155cad9e923137017c79.png" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" loading="lazy" decoding="async" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">RDS インスタンスを 7 日以上停止する</div><div class="blogcard-snippet external-blogcard-snippet">AWS Lambda を使用して、Amazon リレーショナルデータベースサービス (Amazon RDS) を 7 日間以上停止したいと考えています。</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://repost.aws/ja/knowledge-center/rds-stop-seven-days" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" loading="lazy" decoding="async" /></div><div class="blogcard-domain external-blogcard-domain">repost.aws</div></div></div></div></a>
<h2><span id="toc4">事前検証の甘さが招くスケジュール遅延</span></h2>
<p>クラウドリフトを一から経験しているエンジニアや有識者はまだまだ少ないのが現実です。そういったメンバーを集めて体制を組もうとしても、まず集まりません。集まったとしてもクラウドの有識者は短期、スポット参画となる人が多いでしょう、それだけ希少な人材であり、需要も単金も高いということです。一方、<span class="marker-under-blue">プロジェクトとしては経験のないクラウドリフトに対して事前の検証やリスクに関する洗い出しが必須であるにも関わらず、そういった事情により事前検証やリスク洗い出しが甘くなる傾向にあります</span>。当然、見切り発車となり、いざトラブルが発生したとしても適切な対策が立てられず、スケジュールが延伸するといった「典型的な炎上プロジェクト」へ発展します。</p>
<p>クラウドリフトプロジェクトにおけるスケジュール延伸は、オンプレミス環境でのそれに比べて格段にリカバリが難しくなります。なぜそのようなことになるのか、その背景を探ってみましょう。</p>
<p><img decoding="async" class="alignnone  wp-image-1409" src="https://sys-univ.com/wp-content/uploads/2022/09/8d913877040b406d450c6ce771edcbca-2-500x333.jpg" alt="" width="1164" height="775" srcset="https://sys-univ.com/wp-content/uploads/2022/09/8d913877040b406d450c6ce771edcbca-2-500x333.jpg 500w, https://sys-univ.com/wp-content/uploads/2022/09/8d913877040b406d450c6ce771edcbca-2-800x533.jpg 800w, https://sys-univ.com/wp-content/uploads/2022/09/8d913877040b406d450c6ce771edcbca-2-300x200.jpg 300w, https://sys-univ.com/wp-content/uploads/2022/09/8d913877040b406d450c6ce771edcbca-2-768x512.jpg 768w, https://sys-univ.com/wp-content/uploads/2022/09/8d913877040b406d450c6ce771edcbca-2-1536x1024.jpg 1536w, https://sys-univ.com/wp-content/uploads/2022/09/8d913877040b406d450c6ce771edcbca-2.jpg 1920w" sizes="(max-width: 1164px) 100vw, 1164px" /></p>
<h3><span id="toc5">従来の機能・非機能は実現できるのか</span></h3>
<p>クラウドリフトの大前提を確認しておきます。<span class="marker-under-blue">目的は、クラウドへの移行を低リスク、低コストに抑えること</span>にあります。プロセスとしては必然的にオンプレミス環境での基本的な設計思想はそのままとし、追加の発生となる設計や構築稼働は抑えなければなりません。クラウドで提供されるマネージドサービスを最大限活用し最適化する（クラウドネイティブ）といったことが目的ではありません。その上で、<span class="marker-under-blue">従来の機能・非機能をクラウド環境上でどのように実現するのか事前の検証が非常に重要</span>になってきます。なぜなら、AWSやAzureといったクラウドは、オンプレミス環境と違って開発者が好き勝手自由に構築、利用できるわけではなく、クラウドの利用規約や仕様に従ってシステムを構築しなければならないからです。それら事前の検証をPocと呼び、プロジェクトの推進に大きな影響を与えかねない不確実性を取り除く作業が必要なのです。</p>
<h4><span id="toc6">Pocでは何をすれば良いのか</span></h4>
<p>プロジェクトでの不確実性を取り除くとは、具体的に何をすれば良いのでしょうか。現実的にはPocの教科書的な説明を聞いただけでは抽出できません。結論としては「プロジェクトによる」となります。それでは元も子もないので、検討例の一例を示します。</p>
<p>既存システムがOracleをアクティブスタンバイのHA構成を採用しているとしましょう。考えられるクラウドリフトのパターンは、AWSの場合下記２通りです。</p>
<ol>
	<li><span class="marker-under-blue">Amazon RDS for OracleをマルチAZ構成とし、マネージドサービスのアクティブスタンバイをフル活用</span>　→　<span class="bold red">多くのPJではこちらの構成を採用しているイメージ</span></li>
	<li><span class="marker-under-blue">Amazon EC2にクラスタソフトを導入しオンプレミス環境と同様にHA構成を構築する</span>　→　構成により制約があり使いずらい印象</li>
</ol>
<p>当該プロジェクトの場合、これらをPoc対象に抽出したポイントは以下の通りです。RDSを利用しても非機能要件で定義した可用性と性能を担保可能であることが検証できたため、１．の採用を決定しました。</p>
<ul>
	<li>クラウド上における高可用性の構成に関してはAWSとして様々技術情報が展開されている　→　複数の処理方式が検討可能</li>
	<li>RDSというマネージドサービスの利用が初　→　RDSの制約を見極める必要がある（Pocで確認できたRDSの制約の一部を下記記事で紹介しています）</li>
</ul>
<a href="https://sys-univ.com/tec/dbbc/" title="404 NOT FOUND  | いまさら聞けないシステム開発" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img src="https://sys-univ.com/wp-content/uploads/cocoon-resources/blog-card-cache/9eb8e6bf8e2c91224942064ed9d12dd2.jpg" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" loading="lazy" decoding="async" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">404 NOT FOUND  | いまさら聞けないシステム開発</div><div class="blogcard-snippet external-blogcard-snippet">意外と知らない、だけど知っておくべきシステム開発の基本と裏話を伝えていきます</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://sys-univ.com/404/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" loading="lazy" decoding="async" /></div><div class="blogcard-domain external-blogcard-domain">sys-univ.com</div></div></div></div></a>
<ul>
	<li>AWS上のHA構成はオンプレイ以上のレイテンシーとなるため性能評価が必須　→　マルチAZ構成の場合、性能劣化する事象が報告されている</li>
</ul>
<p>実際には<span class="marker-under-blue">AWSの有識者に参画して頂き、既存の設計から検証したほうが良いポイントについてアドバイスをもらいました</span>が、<span class="bold red">AWS Well-Architected フレームワーク</span>を参照し、AWS上で検討すべき項目についての理解も深めて取り組みました。</p>
<a rel="noopener" href="https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/framework/perf-monitoring.html" title="AWS Well-Architected &#12501;&#12524;&#12540;&#12512;&#12527;&#12540;&#12463;" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img src="https://s.wordpress.com/mshots/v1/https%3A%2F%2Fdocs.aws.amazon.com%2Fja_jp%2Fwellarchitected%2Flatest%2Fframework%2Fperf-monitoring.html?w=160&#038;h=90" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" loading="lazy" decoding="async" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">AWS Well-Architected &#12501;&#12524;&#12540;&#12512;&#12527;&#12540;&#12463;</div><div class="blogcard-snippet external-blogcard-snippet"></div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img src="https://www.google.com/s2/favicons?domain=https://docs.aws.amazon.com/ja_jp/wellarchitected/latest/framework/perf-monitoring.html" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" loading="lazy" decoding="async" /></div><div class="blogcard-domain external-blogcard-domain">docs.aws.amazon.com</div></div></div></div></a>
<h3><span id="toc7">Poc不足のプロジェクトが9割</span></h3>
<p>AWS有識者からアドバイスをもらったと記載しましたが、クラウドリフト経験のないプロジェクトとしては良い選択だったと思います。具体的には、アマゾンウェブサービスジャパン社から技術コンサルティングという形でスポット参画してもらいましたが、冒頭で述べた通り多くのプロジェクトでは、AWS有識者を確保するための単価が高いという理由により、本来実施すべき検討が出来ていない現実があります。結果として、<span class="marker-under-blue">大切なポイントを事前検証できず、いざ設計、構築しようとしたら想定する機能が実装できなかった、実現できなかった</span>という事例は枚挙にいとまがありません。</p>
<p>機能が実現出来ないだけなら、大幅なコスト超過を覚悟で当該機能を作りこむことも可能な場合もあるでしょう。一方、目標とする性能に届かない場合は、さらなる悲劇が待ち受けています。</p>
<p>EBSやEFSのIOPS、スループットの変更にも限界があります。設定可能な最大値に変更しても性能目標を達成出来ない場合は、処理方式の変更も視野に入れなければなりません。しかし、<span class="marker-under-blue">処理方式の変更となると、設計からやり直しとなります。これまで実施してきた試験が全て無駄となり、超過するコストもリスク予備費では対応できないレベルで高額となる</span>ことが予想されます。そもそも、EFSのスループット引き上げで対応できたとしても、EFSのスループット引き上げによるコストインパクトも大きく、通常時にそのスループットでシステムを運用していくことは現実的ではないでしょう。</p>
<p>ちなみに、クラウドを利用するということは、目先のハードウェア、ソフトウェア費用を下げるためではありません。初期の導入費用を抑えつつ、将来のビジネス拡張にむけて柔軟に対応するためといった要素のほうが大きいことを理解しておくべきでしょう。</p>
<p>Pocに関しては、クラウドリフト経験のある有識者を含めて行うことを強く奨めます。</p>
<h2><span id="toc8">まとめ</span></h2>
<p>クラウドリフトはオンプレミス環境同士の移行とは全く異なります。従来の開発プロセスでは対応できないことも多いので、今まで以上に徹底的にリスクを洗い出し、万が一リスクが顕在化した場合でも想定の範囲内に収めておく必要があります。そのためには、次の２点を必ず考慮してください。</p>
<ul>
	<li><span class="bold red">クラウド利用料を最適化したいならば、システム側がクラウドが提供する課金体系に運用をあわせる</span></li>
	<li><span class="bold red">設計を踏襲可能なのか、マネージドサービスによる新設計とするのか、性能は目標を達成することが可能かPocを行う</span></li>
</ul>]]></content:encoded>
					
					<wfw:commentRss>https://sys-univ.com/dev/cloudlift/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
