CINXE.COM
AWS COST CUT FIGHT 回答を作ってみました - 弁護士ドットコム株式会社 Creators’ blog
<!DOCTYPE html> <html lang="ja" data-admin-domain="//blog.hatena.ne.jp" data-admin-origin="https://blog.hatena.ne.jp" data-author="bengo4" data-avail-langs="ja en" data-blog="bengo4.hatenablog.jp" data-blog-host="bengo4.hatenablog.jp" data-blog-is-public="1" data-blog-name="弁護士ドットコム株式会社 Creators’ blog" data-blog-owner="bengo4" data-blog-show-ads="" data-blog-show-sleeping-ads="" data-blog-uri="https://creators.bengo4.com/" data-blog-uuid="13574176438040458148" data-blogs-uri-base="https://creators.bengo4.com" data-brand="devblog" data-data-layer="{"hatenablog":{"admin":{},"analytics":{"brand_property_id":"","measurement_id":"G-KJB0HLBDNN","non_sampling_property_id":"","property_id":"","separated_property_id":"UA-29716941-25"},"blog":{"blog_id":"13574176438040458148","content_seems_japanese":"true","disable_ads":"custom_domain","enable_ads":"false","enable_keyword_link":"false","entry_show_footer_related_entries":"true","force_pc_view":"true","is_public":"true","is_responsive_view":"true","is_sleeping":"false","lang":"ja","name":"\u5f01\u8b77\u58eb\u30c9\u30c3\u30c8\u30b3\u30e0\u682a\u5f0f\u4f1a\u793e Creators\u2019 blog","owner_name":"bengo4","uri":"https://creators.bengo4.com/"},"brand":"devblog","page_id":"entry","permalink_entry":{"author_name":"r_ueda_sanzai","categories":"SRE\t\u30a4\u30d9\u30f3\u30c8\u30fb\u30ab\u30f3\u30d5\u30a1\u30ec\u30f3\u30b9","character_count":8204,"date":"2024-10-09","entry_id":"6802340630912456045","first_category":"SRE","hour":"7","title":"AWS COST CUT FIGHT \u56de\u7b54\u3092\u4f5c\u3063\u3066\u307f\u307e\u3057\u305f","uri":"https://creators.bengo4.com/entry/2024/10/09/073000"},"pro":"pro","router_type":"blogs"}}" data-device="pc" data-dont-recommend-pro="false" data-global-domain="https://hatena.blog" data-globalheader-color="b" data-globalheader-type="pc" data-has-touch-view="1" data-help-url="https://help.hatenablog.com" data-hide-header="1" data-no-suggest-touch-view="1" data-page="entry" data-parts-domain="https://hatenablog-parts.com" data-plus-available="1" data-pro="true" data-router-type="blogs" data-sentry-dsn="https://03a33e4781a24cf2885099fed222b56d@sentry.io/1195218" data-sentry-environment="production" data-sentry-sample-rate="0.1" data-static-domain="https://cdn.blog.st-hatena.com" data-version="add51ddc2d3c0599e98ea1239ac012" data-initial-state="{}" > <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# article: http://ogp.me/ns/article#"> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="robots" content="max-image-preview:large" /> <meta charset="utf-8"/> <meta http-equiv="X-UA-Compatible" content="IE=7; IE=9; IE=10; IE=11" /> <title>AWS COST CUT FIGHT 回答を作ってみました - 弁護士ドットコム株式会社 Creators’ blog</title> <link rel="canonical" href="https://creators.bengo4.com/entry/2024/10/09/073000"/> <meta itemprop="name" content="AWS COST CUT FIGHT 回答を作ってみました - 弁護士ドットコム株式会社 Creators’ blog"/> <meta itemprop="image" content="https://cdn.image.st-hatena.com/image/scale/c69c918b62a5039fa9aa7e0e7917a290dde70aab/backend=imagemagick;height=1300;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fb%2Fbengo4%2F20241008%2F20241008230505.png"/> <meta property="og:title" content="AWS COST CUT FIGHT 回答を作ってみました - 弁護士ドットコム株式会社 Creators’ blog"/> <meta property="og:type" content="article"/> <meta property="og:url" content="https://creators.bengo4.com/entry/2024/10/09/073000"/> <meta property="og:image" content="https://cdn.image.st-hatena.com/image/scale/c69c918b62a5039fa9aa7e0e7917a290dde70aab/backend=imagemagick;height=1300;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fb%2Fbengo4%2F20241008%2F20241008230505.png"/> <meta property="og:image:alt" content="AWS COST CUT FIGHT 回答を作ってみました - 弁護士ドットコム株式会社 Creators’ blog"/> <meta property="og:description" content="概要 10月5日(土)に開催されたYAPC::Hakodate 2024 で「AWS COST CUT FIGHT」という株式会社DELTA様のイベントがありました*1。 その中で弊社SREが2000$越えのコスト削減を達成しました。 むずかった😇月間$ 2,150のAWSコスト削減に成功しました!あなたはいくら削減できる!?コスト削減クイズにチャレンジ!presented by 株式会社DELTA https://t.co/CQyjt4khLM #yapcjapan— nakamura (@__namakura) 2024年10月5日 と思ったらついに2000ドルの壁を超えた猛者が!#yap…" /> <meta property="og:site_name" content="弁護士ドットコム株式会社 Creators’ blog"/> <meta property="article:published_time" content="1728426600" /> <meta property="article:tag" content="SRE" /> <meta property="article:tag" content="イベント・カンファレンス" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:image" content="https://cdn.image.st-hatena.com/image/scale/c69c918b62a5039fa9aa7e0e7917a290dde70aab/backend=imagemagick;height=1300;version=1;width=1300/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fb%2Fbengo4%2F20241008%2F20241008230505.png" /> <meta name="twitter:title" content="AWS COST CUT FIGHT 回答を作ってみました - 弁護士ドットコム株式会社 Creators’ blog" /> <meta name="twitter:description" content="概要 10月5日(土)に開催されたYAPC::Hakodate 2024 で「AWS COST CUT FIGHT」という株式会社DELTA様のイベントがありました*1。 その中で弊社SREが2000$越えのコスト削減を達成しました。 むずかった😇月間$ 2,150のAWSコスト削減に成功しました!あなたはいくら削減で…" /> <meta name="twitter:app:name:iphone" content="はてなブログアプリ" /> <meta name="twitter:app:id:iphone" content="583299321" /> <meta name="twitter:app:url:iphone" content="hatenablog:///open?uri=https%3A%2F%2Fcreators.bengo4.com%2Fentry%2F2024%2F10%2F09%2F073000" /> <meta name="twitter:site" content="@bengo4_creators" /> <meta name="description" content="概要 10月5日(土)に開催されたYAPC::Hakodate 2024 で「AWS COST CUT FIGHT」という株式会社DELTA様のイベントがありました*1。 その中で弊社SREが2000$越えのコスト削減を達成しました。 むずかった😇月間$ 2,150のAWSコスト削減に成功しました!あなたはいくら削減できる!?コスト削減クイズにチャレンジ!presented by 株式会社DELTA https://t.co/CQyjt4khLM #yapcjapan— nakamura (@__namakura) 2024年10月5日 と思ったらついに2000ドルの壁を超えた猛者が!#yap…" /> <script id="embed-gtm-data-layer-loader" data-data-layer-page-specific="{"hatenablog":{"blogs_permalink":{"has_related_entries_with_elasticsearch":"true","entry_afc_issued":"false","blog_afc_issued":"false","is_blog_sleeping":"false","is_author_pro":"true"}}}" > (function() { function loadDataLayer(elem, attrName) { if (!elem) { return {}; } var json = elem.getAttribute(attrName); if (!json) { return {}; } return JSON.parse(json); } var globalVariables = loadDataLayer( document.documentElement, 'data-data-layer' ); var pageSpecificVariables = loadDataLayer( document.getElementById('embed-gtm-data-layer-loader'), 'data-data-layer-page-specific' ); var variables = [globalVariables, pageSpecificVariables]; if (!window.dataLayer) { window.dataLayer = []; } for (var i = 0; i < variables.length; i++) { window.dataLayer.push(variables[i]); } })(); </script> <!-- Google Tag Manager --> <script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0], j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src= 'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f); })(window,document,'script','dataLayer','GTM-P4CXTW');</script> <!-- End Google Tag Manager --> <link rel="shortcut icon" href="https://creators.bengo4.com/icon/favicon"> <link rel="apple-touch-icon" href="https://creators.bengo4.com/icon/touch"> <link rel="icon" sizes="192x192" href="https://creators.bengo4.com/icon/link"> <link rel="alternate" type="application/atom+xml" title="Atom" href="https://creators.bengo4.com/feed"/> <link rel="alternate" type="application/rss+xml" title="RSS2.0" href="https://creators.bengo4.com/rss"/> <link rel="alternate" type="application/json+oembed" href="https://hatena.blog/oembed?url=https%3A%2F%2Fcreators.bengo4.com%2Fentry%2F2024%2F10%2F09%2F073000&format=json" title="oEmbed Profile of AWS COST CUT FIGHT 回答を作ってみました"/> <link rel="alternate" type="text/xml+oembed" href="https://hatena.blog/oembed?url=https%3A%2F%2Fcreators.bengo4.com%2Fentry%2F2024%2F10%2F09%2F073000&format=xml" title="oEmbed Profile of AWS COST CUT FIGHT 回答を作ってみました"/> <link rel="author" href="http://www.hatena.ne.jp/r_ueda_sanzai/"> <link rel="preload" href="https://cdn-ak.f.st-hatena.com/images/fotolife/b/bengo4/20241011/20241011212321.png" as="image"/> <link rel="stylesheet" type="text/css" href="https://cdn.blog.st-hatena.com/css/blog.css?version=add51ddc2d3c0599e98ea1239ac012"/> <link rel="stylesheet" type="text/css" href="https://usercss.blog.st-hatena.com/blog_style/13574176438040458148/d55616d8a82dc73f1254718e666a1d73d39c566d"/> <script> </script> <style> div#google_afc_user, div.google-afc-user-container, div.google_afc_image, div.google_afc_blocklink { display: block !important; } </style> <script type="application/ld+json">{"@context":"http://schema.org","@type":"Article","dateModified":"2024-10-09T11:00:16+09:00","datePublished":"2024-10-09T07:30:00+09:00","headline":"AWS COST CUT FIGHT 回答を作ってみました","image":["https://cdn-ak.f.st-hatena.com/images/fotolife/b/bengo4/20241008/20241008230505.png"]}</script> <!-- Global site tag (gtag.js) - Google Analytics --> <script async src="https://www.googletagmanager.com/gtag/js?id=G-KJB0HLBDNN"></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'G-KJB0HLBDNN'); </script> </head> <body class="page-entry header-image-only enable-bottom-editarea category-SRE category-イベント・カンファレンス globalheader-off globalheader-ng-enabled"> <div id="globalheader-container" data-brand="hatenablog" style="display: none" > <iframe id="globalheader" height="37" frameborder="0" allowTransparency="true"></iframe> </div> <div id="container"> <div id="container-inner"> <header id="blog-title" data-brand="hatenablog"> <div id="blog-title-inner" style="background-image: url('https://cdn-ak.f.st-hatena.com/images/fotolife/b/bengo4/20241011/20241011212321.png'); background-position: center 0px;"> <div id="blog-title-content"> <h1 id="title"><a href="https://creators.bengo4.com/">弁護士ドットコム株式会社 Creators’ blog</a></h1> <h2 id="blog-description">弁護士ドットコムがエンジニア・デザイナーのサービス開発事例やデザイン活動を発信する公式ブログです。</h2> </div> </div> </header> <div id="content" class="hfeed" > <div id="content-inner"> <div id="wrapper"> <div id="main"> <div id="main-inner"> <!-- google_ad_section_start --> <!-- rakuten_ad_target_begin --> <article class="entry hentry test-hentry js-entry-article date-first autopagerize_page_element chars-8400 words-600 mode-markdown entry-odd" id="entry-6802340630912456045" data-keyword-campaign="" data-uuid="6802340630912456045" data-publication-type="entry"> <div class="entry-inner"> <header class="entry-header"> <div class="date entry-date first"> <a href="https://creators.bengo4.com/archive/2024/10/09" rel="nofollow"> <time datetime="2024-10-08T22:30:00Z" title="2024-10-08T22:30:00Z"> <span class="date-year">2024</span><span class="hyphen">-</span><span class="date-month">10</span><span class="hyphen">-</span><span class="date-day">09</span> </time> </a> </div> <h1 class="entry-title"> <a href="https://creators.bengo4.com/entry/2024/10/09/073000" class="entry-title-link bookmark">AWS COST CUT FIGHT 回答を作ってみました</a> </h1> <div class="entry-categories categories"> <a href="https://creators.bengo4.com/archive/category/SRE" class="entry-category-link category-SRE">SRE</a> <a href="https://creators.bengo4.com/archive/category/%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E3%83%BB%E3%82%AB%E3%83%B3%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9" class="entry-category-link category-イベント・カンファレンス">イベント・カンファレンス</a> </div> </header> <div class="entry-content hatenablog-entry"> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/b/bengo4/20241008/20241008230505.png" width="1200" height="630" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h2 id="概要">概要</h2> <p>10月5日(土)に開催されたYAPC::Hakodate 2024 で「<a href="https://quiz.costcut.cloud/?source=sns">AWS COST CUT FIGHT</a>」という株式会社DELTA様のイベントがありました<a href="#f-8a4f4eca" id="fn-8a4f4eca" name="fn-8a4f4eca" title="本問題の挑戦は2024年10月8日でサービスが終了したみたいです。">*1</a>。</p> <p>その中で弊社SREが2000$越えのコスト削減を達成しました。</p> <p><blockquote data-conversation="none" class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">むずかった😇<br>月間$ 2,150のAWSコスト削減に成功しました!<br>あなたはいくら削減できる!?<br>コスト削減クイズにチャレンジ!<br>presented by 株式会社DELTA<br> <a href="https://t.co/CQyjt4khLM">https://t.co/CQyjt4khLM</a> <a href="https://twitter.com/hashtag/yapcjapan?src=hash&ref_src=twsrc%5Etfw">#yapcjapan</a></p>— nakamura (@__namakura) <a href="https://twitter.com/__namakura/status/1842433316068495790?ref_src=twsrc%5Etfw">2024年10月5日</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> </p> <p><blockquote data-conversation="none" class="twitter-tweet" data-lang="ja"><p lang="ja" dir="ltr">と思ったらついに2000ドルの壁を超えた猛者が!<a href="https://twitter.com/hashtag/yapcjapan?src=hash&ref_src=twsrc%5Etfw">#yapcjapan</a> <a href="https://t.co/urqqE3jekh">https://t.co/urqqE3jekh</a> <a href="https://t.co/VZStS3paEj">pic.twitter.com/VZStS3paEj</a></p>— Keisuke Nishitani (@Keisuke69) <a href="https://twitter.com/Keisuke69/status/1842433150330532243?ref_src=twsrc%5Etfw">2024年10月5日</a></blockquote> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> </p> <p>とても良い問題ということが弊社で話題になりSREチーム内で議論をし<em>さらにコスト削減ができた</em>ので解答速報として公開します。</p> <h2 id="注意書き">注意書き</h2> <p>DELTA様のAWS COST CUT FIGHTの問題を引用させていただきます。</p> <p><strong>解答はDELTA様の正式なものではありません。</strong> また、提供する情報の正確性や完全性に関しては、責任を負いかねます。ご注意ください。</p> <h2 id="問題">問題</h2> <p>アーキテクチャ図を参考にコスト削減を達成してください</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/b/bengo4/20241009/20241009073008.png" width="800" height="667" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h3 id="Q1"><strong>Q1 </strong></h3> <p><strong> ec2インスタンスはm5.2xlarge(vCPU:8,memory:32GiB)を利用しており、CPU負荷状況が平均20%で安定しています。 インスタンスのサイズチューニングを実施する際に、変更先として確実かつ一番効果がある選択肢はどれですか?</strong></p> <p><details><summary><strong>選択</strong></summary></p> <ul> <li>A: m5.xlarge(vCPU:4,memory:16GiB)</li> <li>B: m7g.xlarge(vCPU:4,memory:16GiB)</li> <li>C: r5.xlarge(vCPU:4,memory:32GiB)</li> <li>D: r7g.xlarge(vCPU:4,memory:32GiB)</li> </ul> <p></details></p> <h4 id="答え">答え</h4> <p><strong>D: r7g.xlarge(vCPU:4,memory:32GiB)</strong></p> <h4 id="ポイント">ポイント</h4> <ul> <li>グラビトンが安いことを知っているか</li> <li>要件に確実ということはどういうことか</li> </ul> <h4 id="解説">解説</h4> <p>ポイントの通りグラビトンを使った方が安い。 また要件に確実ということなのでメモリの変更はしない。<br/> よってD。</p> <h3 id="Q2"><strong>Q2 </strong></h3> <p><strong> アーキテクチャ図には記載されていませんが、開発者が過去検証で利用していたEC2が起動状態で放置されています。 将来的に必要になった際の運用負荷も踏まえた上で一番コストを意識した対応の選択肢はどれですか?</strong></p> <p><details><summary><strong>選択</strong></summary></p> <ul> <li>A: 業務時間以外はインスタンスを停止する起動停止設定を組む。</li> <li>B: インスタンスを基本停止して利用時に起動する運用にする。</li> <li>C: AMIを取ってインスタンスを削除する。</li> <li>D: インスタンスを削除して利用時に再構築する。 </details></li> </ul> <h4 id="答え-1">答え</h4> <p><strong>C: AMIを取ってインスタンスを削除する。</strong></p> <h4 id="ポイント-1">ポイント</h4> <ul> <li>一番コストが安いのは何か</li> <li>運用の負荷が低いのはどれか</li> </ul> <h4 id="解説-1">解説</h4> <p>インスタンスを停止するだとEBSボリュームのお金がかかる<br/> インスタンスを削除して再構築するだと構築の手間がかかってしまう(Cloudformationですぐに建てるとかだとまた別だが)<br/> AMIを使うことによってEBSのコストを抑えつつ素早くインスタンスを再作成できる。<br/> よってC。</p> <p></details></p> <h3 id="Q3"><strong>Q3 </strong></h3> <p><strong> サービスがリリース直後であり、SPOF(単一障害点)を許容できる状況下で”regional data transfer - in/out/between EC2 AZs or using elastic IPs or ELB”の料金がかなり高いことが発見できました。 この通信料削減のために、一番コスト削減効果の高い選択肢はどれですか?</strong></p> <p><details><summary><strong>選択</strong></summary></p> <ul> <li>A: Route 53から直接EC2に接続する。</li> <li>B: オブジェクトをS3ではなく、EBSに保存する。</li> <li>C: CloudFrontのキャッシュ設定を見直す。</li> <li>D: RDSのRead replicaを削除する。 </details></li> </ul> <h4 id="答え-2">答え</h4> <p><strong>D: RDSのRead replicaを削除する。</strong></p> <h4 id="ポイント-2">ポイント</h4> <ul> <li>SPOFを許容できる状況下であること</li> <li>通信料削減のためにはどうすればいいか</li> </ul> <h4 id="解説-2">解説</h4> <p>regional data transfer - in/out/between EC2 AZs or using elastic IPs or ELBということはリージョン間の通信料金が高いということである。<br/> アーキテクチャの図を見るとEC2からRDSのリードレプリカにアクセスしている。<br/> SPOFを許容できるのでリードレプリカを削除することで通信料を削減できる。<br/> よってD。<br/> </details></p> <h3 id="Q4"><strong>Q4 </strong></h3> <p><strong> RDSはdb.r5.4xlargeのインスタンスタイプを利用しており、3ヶ月前に1年分のdb.r5.4xlargeのRIを2台分購入しています。 サービスが成長してきたため、日中にリーダーインスタンスのリソースが枯渇するケースが発生したため、対応しようとしています。 一番コストを意識したアーキテクチャ改善の選択肢はどれですか?</strong></p> <p><details><summary><strong>選択</strong></summary></p> <ul> <li>A: db.r5.4xlarge(USD 2.28/h)のインスタンスタイプを最小台数=1でauto scalingを設定する。</li> <li>B: db.r5.2xlarge(USD 1.14/h)のインスタンスタイプを最小台数=2でauto scalingを設定する。</li> <li>C: db.r6g.4xlarge(USD 2.041/h)のインスタンスタイプを最小台数=1でauto scalingを設定する。</li> <li>D: db.r6g.2xlarge(USD 1.02/h)のインスタンスタイプを最小台数=2でauto scalingを設定する。</li> </ul> <p></details></p> <h4 id="答え-3">答え</h4> <p><strong>B</strong>(Aの方が性能が変わらないので良い気もするが db.r5.2xlarge を1台づつ増やせる方が安くすむのかもしれない)</p> <h4 id="ポイント-3">ポイント</h4> <ul> <li>RIの適用条件</li> <li>性能について</li> </ul> <h4 id="解説-3">解説</h4> <p>db.r5.4xlargeのRIを2台分購入しているので、r5系のファミリーを使うことでRIを使用できる。<br/> 性能が不足している2台にしつつ、最小台数を2にしておくことでRIを使いつつコストを抑えることができる。</p> <h3 id="Q5"><strong>Q5 </strong></h3> <p><strong> RDSの監査ログをCloudWatch Logsに出力しているが、PutLogEvents料金が高額になってしまったため何か対策を打ちたいと考えています。<br/> 年に1回の監査時に利用できれば良くその後破棄できる場合、一番コスト削減効果の高い選択肢はどれですか?</strong></p> <p><details><summary><strong>選択</strong></summary></p> <ul> <li>A: ライフサイクルルールを設定し、1年経過したらログを削除する。</li> <li>B: ログクラスをInfrequent Accessに変更する。</li> <li>C: Infrequent Accessのロググループを新たに作成し、そこに出力するようにする。</li> <li>D: CloudWatchのログを日次でS3に転送し、その後削除する。</li> </ul> <p></details></p> <h4 id="答え-4">答え</h4> <p><strong> C: Infrequent Accessのロググループを新たに作成し、そこに出力するようにする。 </strong></p> <h4 id="ポイント-4">ポイント</h4> <ul> <li>年に1回の監査時に利用できれば良い</li> <li>PutLogEventsを減らしたい</li> </ul> <h4 id="解説-4">解説</h4> <p>A,DだとCloudwatchlogsへ出力しているのでPutLogEventは変わらない。<br/> 年に1回の監査時に利用できれば良いのでInfrequent Accessを使えば良いがロググループは途中から変更できない。<br/> よってC。 </details></p> <h3 id="Q6"><strong>Q6 </strong></h3> <p><strong> 検証環境でIaC化の検証を行っており、頻繁に変更等が発生しています。 セキュリティを懸念してAWS Configを設定し最終的にメール通知をする仕組みを構築したが、料金が高くなってきたため設定等を見直そうとしています。 要件として、終業時間のタイミングで意図しない設定になっていないことが確認できれば問題ない場合に、一番コスト削減効果の高い選択肢はどれですか?</strong></p> <p><details><summary><strong>選択</strong></summary></p> <ul> <li>A: 記録頻度を変更が発生したタイミングでのみ記録を行う継続的な記録にする。</li> <li>B: 記録頻度を1日に1回記録を行う日次記録にする。</li> <li>C: 記録戦略を利用するリソースに絞った特定のリソースタイプにし、特定の記録頻度を変更が発生したタイミングでのみ記録を行う継続的な記録にする。</li> <li>D: 記録戦略を利用するリソースに絞った特定のリソースタイプにし、記録頻度を1日に1回記録を行う日次記録にする。</li> </ul> <p></details></p> <h4 id="答え-5">答え</h4> <p><strong> B: 記録頻度を1日に1回記録を行う日次記録にする。 </strong></p> <h4 id="ポイント-5">ポイント</h4> <ul> <li>終業時間のタイミングだけの通知で良い</li> <li>セキュリティを懸念する</li> </ul> <h4 id="解説-5">解説</h4> <p>要件的に1日に一回の記録だけで良いのでB,Dが残る。<br/> Dだと意図しないリソース(例えばかなり大きなRDSを立てた場合など)を作った時の検知ができない。<br/> よってBとなる。 </details></p> <h3 id="Q7"><strong>Q7 </strong></h3> <p><strong> 現在標準のS3ストレージクラスを利用していますが、ストレージクラスを見直すことでストレージ保存料の削減を実現しようとしています。 要件としてオブジェクトに対しては年に数回アクセスする必要があり、ミリ秒単位のアクセス速度が求められます。 ストレージレンズが以下の通りの場合、一番コスト削減効果の高い選択肢はどれですか?</strong></p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/b/bengo4/20241009/20241009073005.png" width="800" height="157" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <p><details><summary><strong>選択</strong></summary></p> <ul> <li>A: S3 標準 - 低頻度アクセス (USD 0.0138/GB)</li> <li>B: S3 Glacier Instant Retrieval (USD 0.005/GB)</li> <li>C: S3 Glacier Flexible Retrieval (USD 0.0045/GB)</li> <li>D: S3 Intelligent - Tiering (USD USD 0.005/GB~USD 0.025/GB)</li> </ul> <p></details></p> <h4 id="答え-6">答え</h4> <p><strong> A: S3 標準 - 低頻度アクセス (USD 0.0138/GB) </strong></p> <h4 id="ポイント-6">ポイント</h4> <ul> <li>ミリ秒単位のアクセス速度が求められる</li> <li>年に数回アクセスする</li> </ul> <h4 id="解説-6">解説</h4> <p>msで所得したいのでS3 Glacier Flexible Retrievalは不適。<br/> Bだとmsで取れるがオブジェクト数が187.7B もありGracierに置き直すときにPut 料金が発生する。<br/> CのIntelligent-Tieringはオブジェクトサイズが128KB未満は s3 標準のストレージ金額になる。<br/> 今回は平均が107.1KBなのでs3標準料金になる可能性が高い。<br/> よってA。 </details></p> <hr /> <p>次のアーキテクチャです。</p> <p><span itemscope itemtype="http://schema.org/Photograph"><img src="https://cdn-ak.f.st-hatena.com/images/fotolife/b/bengo4/20241009/20241009073012.png" width="800" height="620" loading="lazy" title="" class="hatena-fotolife" itemprop="image"></span></p> <h3 id="Q8"><strong>Q8 </strong></h3> <p><strong> 自社基幹システムは社員が業務時間(09時~20時)にのみ利用するが、利用中は常に処理が行われています。 強力なインスタンスタイプを利用しているため、できるだけコスト削減をしたいと考えています。 一番コスト削減効果の高い選択肢はどれですか?</strong></p> <p><details><summary><strong>選択</strong></summary></p> <ul> <li>A: 起動停止運用を導入する。</li> <li>B: RIを購入する。</li> <li>C: Compute Savings Plansを契約する。</li> <li>D: スポットインスタンスを利用する。</li> </ul> <p></details></p> <h4 id="答え-7">答え</h4> <p><strong> A: 起動停止運用を導入する。 </strong></p> <h4 id="ポイント-7">ポイント</h4> <ul> <li>常に処理をしたい</li> <li>業務時間(09-20)のみ利用</li> </ul> <h4 id="解説-7">解説</h4> <p>常に処理をしている基幹システムなのでスポットインスタンスは不適。<br/> またRIとSavingsPlansだと3-4割ぐらいしか安くならない。<br/> 今回要件的に12時間しか使わないので起動停止運用を導入すればコストを半分(5割以上)抑えることができる。<br/> よってA。<br/> </details></p> <h3 id="Q9"><strong>Q9 </strong></h3> <p><strong> リーダーインスタンスは基本的に30%程度のリソース負荷で安定していたが、バッチ処理機能を追加したことによって定期的に負荷が高騰するようになり スケールアウトによるコスト増が無視できなくなってきました。 既存インスタンスの負荷軽減も視野に入れつつ、一番コスト削減効果の高い選択肢はどれですか?</strong></p> <p><details><summary><strong>選択</strong></summary></p> <ul> <li>A: auto scalingの最低台数を1つ増やし、3年前払いのRIを購入する。</li> <li>B: バッチ起動時間にリーダーインスタンスを追加する。</li> <li>C:リーダーインスタンスをAurora Serverless v2にする。</li> <li>D:リーダーインスタンスをAurora Serverless v2にし、既存のインスタンス相当のACU用のRIを購入する。</li> </ul> <p></details></p> <h4 id="答え-8">答え</h4> <p><strong> B: バッチ起動時間にリーダーインスタンスを追加する。 </strong></p> <h4 id="ポイント-8">ポイント</h4> <ul> <li>バッチの処理</li> <li>AuroraServerlessのコストについて</li> </ul> <h4 id="解説-8">解説</h4> <p>AuroraServerlessは ACUが高い。<br/> 今回のケースだとリーダーを置き換えることでコストが増加する可能性があるためC,Dは不適。<br/> A の最低台数を増やすと常時コストが発生する。<br/> 要件的にはバッチでの利用なのでインスタンスを適宜追加した方がコストを抑えることができる。<br/> よってB。</p> <h3 id="Q10"><strong>Q10 </strong></h3> <p><strong> NATゲートウェイの通信量が気になっています。 ここを通るのはECSからの通信だけであり、外部API連携やライブラリの取得等は存在しません。 NATゲートウェイ周辺に対して、一番コスト削減効果の高い選択肢はどれですか?</strong></p> <p><details><summary><strong>選択</strong></summary></p> <ul> <li>A: Gateway型のS3,ECR用VPCエンドポイントとInterface型のCloudWatch用のエンドポイントを作成する。ECRにはプルスルーキャッシュの設定を追加する。</li> <li>B: Gateway型のS3,ECR用VPCエンドポイントとInterface型のCloudWatch用のエンドポイントを作成する。ECRにはライフサイクルの設定を追加する。</li> <li>C: Gateway型のS3VPCエンドポイントとInterface型のECR用,CloudWatch用のエンドポイントを作成する。ECRにはプルスルーキャッシュの設定を追加する。</li> <li>D: Gateway型のS3VPCエンドポイントとInterface型のECR用,CloudWatch用のエンドポイントを作成する。ECRにはライフサイクルの設定を追加する。</li> </ul> <p></details></p> <h4 id="答え-9">答え</h4> <p><strong> C: Gateway型のS3VPCエンドポイントとInterface型のECR用,CloudWatch用のエンドポイントを作成する。ECRにはプルスルーキャッシュの設定を追加する。 </strong></p> <h4 id="ポイント-9">ポイント</h4> <ul> <li>エンドポイントについて</li> <li>ECSからの通信だけ</li> </ul> <h4 id="解説-9">解説</h4> <p>gateway型のVPCエンドポイントはS3か DynamoDB しかない、よってA,Bは不適。<br/> またECSの通信なのでイメージのpullをしている。ECRに保管されているdocker imageのライフサイクルは今回関係ない。<br/> よってCとなる。</p> <h3 id="Q11"><strong>Q11 </strong></h3> <p><strong> CloudFrontに割引があることを発見したので、キャッシュによる速度改善とコスト削減効果を期待して利用を検討しています。 各ALBの総通信量は等しく、api.xxx.comへのHTTPリクエストがweb.xxx.comの3,000倍あるとき、一番コスト削減効果の高い選択肢はどれですか?</strong></p> <p><details><summary><strong>選択</strong></summary></p> <ul> <li>A: api.xxx.comのALBの前にCloudFrontを配置し、Savings Plansを適用する。</li> <li>B: api.xxx.comのALBの前にCloudFrontを配置し、Security Savings Bundleを適用する。</li> <li>C: web.xxx.comのALBの前にCloudFrontを配置し、Savings Plansを適用する。</li> <li>D: web.xxx.comのALBの前にCloudFrontを配置し、Security Savings Bundleを適用する。</li> </ul> <p></details></p> <h4 id="答え-10">答え</h4> <p><strong> D: web.xxx.comのALBの前にCloudFrontを配置し、Security Savings Bundleを適用する。 </strong></p> <h4 id="ポイント-10">ポイント</h4> <ul> <li>Cloudfrontのコスト削減方法について</li> <li>1リクエストあたりの通信量が多いのはどちらか</li> </ul> <h4 id="解説-10">解説</h4> <p>Cloudfrontのコスト削減はSecurity Savings Bundleという名前である、よってA,Cは不適。<br/> また総通信量が一緒なので1リクエスト的にはwebの方が通信量が多い、つまりwebをキャッシュさせることでコストを削減できる (またapiはget requestをキャッシュさせたくないケースが多い) よってD。 <br/> </details></p> <h3 id="Q12"><strong>Q12 </strong></h3> <p><strong> 本番環境と検証環境で同じ構成でサービスを構築しています。 CloudWatchの料金が増えてきたため、コスト削減の施策を打とうとしています。 一番コストを意識した選択肢はどれですか?</strong></p> <p><details><summary><strong>選択</strong></summary></p> <ul> <li>A: 検証環境のECSのContainer Insightを無効化する。</li> <li>B: 検証環境のRDSのPerformance Insightsを無効化する。</li> <li>C: 本番環境と検証環境のCloudWatchに出力しているログをKinesis Data FirehoseでS3に転送し、標準機能でgz形式に圧縮する。</li> <li>D: DataDog等外部サービスからCloudWatchのメトリクスを監視するようにする。</li> </ul> <p></details></p> <h4 id="答え-11">答え</h4> <p><strong> C: 本番環境と検証環境のCloudWatchに出力しているログをKinesis Data FirehoseでS3に転送し、標準機能でgz形式に圧縮する。 </strong></p> <h4 id="ポイント-11">ポイント</h4> <ul> <li>CloudWatchの料金が増えてきた=>PutLogEvent や PutMetrics 等の料金が高い</li> </ul> <h4 id="解説-11">解説</h4> <p>A、B は PutLogEvent や PutMetrics 等を減らせる可能性はあるが検証環境のみなので効果が薄そう。<br/> D は Datadog からの GetMetrics リクエストが増え CloudWatch の料金が増える。<br/> C は kinesis への料金は発生するがPutLogEvent が発生しなくなるので安くなる。<br/> よってC。</p> <p></details></p> <h3 id="Q13"><strong>Q13 </strong></h3> <p><strong> ECSのタスク定義jsonは画像の通りでコンテナは1つのみ定義されています。 無駄なリソースがあることが分かったので、チューニングを行う必要があります。 一番最適なコストを意識した選択肢はどれですか?</strong></p> <p><details><summary><strong>選択</strong></summary></p> <ul> <li>A: cpu:1024 , memory:4096 , containerDefinitions内のcpu:1024 , containerDefinitions内のmemory:4096</li> <li>B: cpu:512 , memory:3072 , containerDefinitions内のcpu:1024 , containerDefinitions内のmemory:4096</li> <li>C: cpu:512 , memory:3072 , containerDefinitions内のcpu:512 , containerDefinitions内のmemory:3072</li> <li>D: cpu:512 , memory:3072 , containerDefinitions内のcpu: 0 , containerDefinitions内のmemory:-</li> </ul> <p></details></p> <h4 id="答え-12">答え</h4> <p><strong> D: cpu:512 , memory:3072 , containerDefinitions内のcpu: 0 , containerDefinitions内のmemory:- </strong></p> <h4 id="ポイント-12">ポイント</h4> <ul> <li>cpuとmemoryの設定について</li> <li>無駄なリソース</li> </ul> <h4 id="解説-12">解説</h4> <p>Aは無駄なリソースのチューニングができていない。<br/> Bは CPU、メモリともにタスク定義より containerDefinitions内の設定が大きいので登録できない。<br/> Cもタスク定義と containerDefinitions内の設定が同じ。予約される容量があるはずなので登録できない。<br/> よってD。</p> <h2 id="あとがき">あとがき</h2> <p>皆さんはいくら削減できましたか? このような問題を作成いただき改めてコスト削減についての理解を深める機会をいただきました株式会社DELTA様に改めて感謝申し上げます。</p> <p><em>株式会社DELTA様のご紹介</em></p> <blockquote><ul> <li><p><a href="https://t.co/yFj0Ch7sww">株式会社DELTA</a></p></li> <li><p><a href="https://costcut.cloud">CTO Booster | クラウドコスト削減サービス</a></p></li> <li><p><a href="https://finops.costcut.cloud">FinOps Booster | クラウドコスト削減シミュレーションツール</a></p></li> </ul> </blockquote> <div class="footnote"> <p class="footnote"><a href="#fn-8a4f4eca" id="f-8a4f4eca" name="f-8a4f4eca" class="footnote-number">*1</a><span class="footnote-delimiter">:</span><span class="footnote-text">本問題の挑戦は2024年10月8日でサービスが終了したみたいです。</span></p> </div> </div> <footer class="entry-footer"> <div class="entry-tags-wrapper"> <div class="entry-tags"> <span class="entry-tag"> <a href="https://d.hatena.ne.jp/keyword/AWS" class="entry-tag-link"> <span class="entry-tag-icon">#</span><span class="entry-tag-label">AWS</span> </a> </span> <span class="entry-tag"> <a href="https://d.hatena.ne.jp/keyword/%E3%82%B3%E3%82%B9%E3%83%88%E5%89%8A%E6%B8%9B" class="entry-tag-link"> <span class="entry-tag-icon">#</span><span class="entry-tag-label">コスト削減</span> </a> </span> <span class="entry-tag"> <a href="https://d.hatena.ne.jp/keyword/YAPC" class="entry-tag-link"> <span class="entry-tag-icon">#</span><span class="entry-tag-label">YAPC</span> </a> </span> <span class="entry-tag"> <a href="https://d.hatena.ne.jp/keyword/%E5%8B%89%E5%BC%B7%E4%BC%9A" class="entry-tag-link"> <span class="entry-tag-icon">#</span><span class="entry-tag-label">勉強会</span> </a> </span> <span class="entry-tag"> <a href="https://d.hatena.ne.jp/keyword/%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89" class="entry-tag-link"> <span class="entry-tag-icon">#</span><span class="entry-tag-label">クラウド</span> </a> </span> <span class="entry-tag"> <a href="https://d.hatena.ne.jp/keyword/%E5%89%8A%E6%B8%9B%E7%8E%8B" class="entry-tag-link"> <span class="entry-tag-icon">#</span><span class="entry-tag-label">削減王</span> </a> </span> </div> </div> <p class="entry-footer-section track-inview-by-gtm" data-gtm-track-json="{"area": "finish_reading"}"> <span class="author vcard"><span class="fn" data-load-nickname="1" data-user-name="r_ueda_sanzai" >r_ueda_sanzai</span></span> <span class="entry-footer-time"><a href="https://creators.bengo4.com/entry/2024/10/09/073000"><time data-relative datetime="2024-10-08T22:30:00Z" title="2024-10-08T22:30:00Z" class="updated">2024-10-09 07:30</time></a></span> </p> <div class="hatena-star-container" data-hatena-star-container data-hatena-star-url="https://creators.bengo4.com/entry/2024/10/09/073000" data-hatena-star-title="AWS COST CUT FIGHT 回答を作ってみました" data-hatena-star-variant="profile-icon" data-hatena-star-profile-url-template="https://blog.hatena.ne.jp/{username}/" ></div> <div class="social-buttons"> <div class="social-button-item"> <a href="https://b.hatena.ne.jp/entry/s/creators.bengo4.com/entry/2024/10/09/073000" class="hatena-bookmark-button" data-hatena-bookmark-url="https://creators.bengo4.com/entry/2024/10/09/073000" data-hatena-bookmark-layout="vertical-balloon" data-hatena-bookmark-lang="ja" title="この記事をはてなブックマークに追加"><img src="https://b.st-hatena.com/images/entry-button/button-only.gif" alt="この記事をはてなブックマークに追加" width="20" height="20" style="border: none;" /></a> </div> <div class="social-button-item"> <div class="fb-share-button" data-layout="box_count" data-href="https://creators.bengo4.com/entry/2024/10/09/073000"></div> </div> <div class="social-button-item"> <a class="entry-share-button entry-share-button-twitter test-share-button-twitter" href="https://x.com/intent/tweet?hashtags=AWS&hashtags=%E3%82%B3%E3%82%B9%E3%83%88%E5%89%8A%E6%B8%9B&hashtags=YAPC&hashtags=%E5%8B%89%E5%BC%B7%E4%BC%9A&hashtags=%E3%82%AF%E3%83%A9%E3%82%A6%E3%83%89&hashtags=%E5%89%8A%E6%B8%9B%E7%8E%8B&text=AWS+COST+CUT+FIGHT+%E5%9B%9E%E7%AD%94%E3%82%92%E4%BD%9C%E3%81%A3%E3%81%A6%E3%81%BF%E3%81%BE%E3%81%97%E3%81%9F+-+%E5%BC%81%E8%AD%B7%E5%A3%AB%E3%83%89%E3%83%83%E3%83%88%E3%82%B3%E3%83%A0%E6%A0%AA%E5%BC%8F%E4%BC%9A%E7%A4%BE+Creators%E2%80%99+blog&url=https%3A%2F%2Fcreators.bengo4.com%2Fentry%2F2024%2F10%2F09%2F073000" title="X(Twitter)で投稿する" ></a> </div> </div> <div class="customized-footer"> <div class="entry-footer-modules" id="entry-footer-secondary-modules"> <div class="hatena-module hatena-module-related-entries" > <!-- Hatena-Epic-has-related-entries-with-elasticsearch:true --> <div class="hatena-module-title"> 関連記事 </div> <div class="hatena-module-body"> <ul class="related-entries hatena-urllist urllist-with-thumbnails"> <li class="urllist-item related-entries-item"> <div class="urllist-item-inner related-entries-item-inner"> <a class="urllist-image-link related-entries-image-link" href="https://creators.bengo4.com/entry/2023/12/22/000000"> <img alt="型パズルを理解しTypeScript中級者になる8のポイント" src="https://cdn.image.st-hatena.com/image/square/785a752033928c6b87a024eadc391c1f11411f8a/backend=imagemagick;height=100;version=1;width=100/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fb%2Fbengo4%2F20231222%2F20231222000033.png" class="urllist-image related-entries-image" title="型パズルを理解しTypeScript中級者になる8のポイント" width="100" height="100" loading="lazy"> </a> <div class="urllist-date-link related-entries-date-link"> <a href="https://creators.bengo4.com/archive/2023/12/22" rel="nofollow"> <time datetime="2023-12-21T15:00:00Z" title="2023年12月22日"> 2023-12-22 </time> </a> </div> <a href="https://creators.bengo4.com/entry/2023/12/22/000000" class="urllist-title-link related-entries-title-link urllist-title related-entries-title">型パズルを理解しTypeScript中級者になる8のポイント</a> <div class="urllist-entry-body related-entries-entry-body">この記事は、弁護士ドットコム株式会社の Advent Calendar 2023…</div> </div> </li> <li class="urllist-item related-entries-item"> <div class="urllist-item-inner related-entries-item-inner"> <a class="urllist-image-link related-entries-image-link" href="https://creators.bengo4.com/entry/2023/12/18/000000"> <img alt="Azure App Configuration を使って機能の利用可否を自動で切り替える" src="https://cdn.image.st-hatena.com/image/square/dcd8fb9e4727f0e5adde798b3908b1a08bdf6737/backend=imagemagick;height=100;version=1;width=100/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fb%2Fbengo4%2F20231218%2F20231218000049.png" class="urllist-image related-entries-image" title="Azure App Configuration を使って機能の利用可否を自動で切り替える" width="100" height="100" loading="lazy"> </a> <div class="urllist-date-link related-entries-date-link"> <a href="https://creators.bengo4.com/archive/2023/12/18" rel="nofollow"> <time datetime="2023-12-17T15:00:00Z" title="2023年12月18日"> 2023-12-18 </time> </a> </div> <a href="https://creators.bengo4.com/entry/2023/12/18/000000" class="urllist-title-link related-entries-title-link urllist-title related-entries-title">Azure App Configuration を使って機能の利用可否を自動で切り替える</a> <div class="urllist-entry-body related-entries-entry-body">こんにちは。 弁護士ドットコム株式会社 Professional Tech Lab…</div> </div> </li> <li class="urllist-item related-entries-item"> <div class="urllist-item-inner related-entries-item-inner"> <a class="urllist-image-link related-entries-image-link" href="https://creators.bengo4.com/entry/2023/12/15/000000"> <img alt="情勢の変化とリモート勤務、福岡を選んだ私の働き方" src="https://cdn.image.st-hatena.com/image/square/c8e5263225438d3a40b081b99d86dd4b22e92fdf/backend=imagemagick;height=100;version=1;width=100/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fb%2Fbengo4%2F20231215%2F20231215000235.png" class="urllist-image related-entries-image" title="情勢の変化とリモート勤務、福岡を選んだ私の働き方" width="100" height="100" loading="lazy"> </a> <div class="urllist-date-link related-entries-date-link"> <a href="https://creators.bengo4.com/archive/2023/12/15" rel="nofollow"> <time datetime="2023-12-14T15:00:00Z" title="2023年12月15日"> 2023-12-15 </time> </a> </div> <a href="https://creators.bengo4.com/entry/2023/12/15/000000" class="urllist-title-link related-entries-title-link urllist-title related-entries-title">情勢の変化とリモート勤務、福岡を選んだ私の働き方</a> <div class="urllist-entry-body related-entries-entry-body">はじめに これは 弁護士ドットコム Advent Calendar 2023 の15…</div> </div> </li> <li class="urllist-item related-entries-item"> <div class="urllist-item-inner related-entries-item-inner"> <a class="urllist-image-link related-entries-image-link" href="https://creators.bengo4.com/entry/2023/12/10/000000"> <img alt="モブテスト設計を試してみた話" src="https://cdn.image.st-hatena.com/image/square/9185a088a06461c3a9a7157b5aaba1b8fb75551d/backend=imagemagick;height=100;version=1;width=100/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fb%2Fbengo4%2F20231210%2F20231210000014.png" class="urllist-image related-entries-image" title="モブテスト設計を試してみた話" width="100" height="100" loading="lazy"> </a> <div class="urllist-date-link related-entries-date-link"> <a href="https://creators.bengo4.com/archive/2023/12/10" rel="nofollow"> <time datetime="2023-12-09T15:00:00Z" title="2023年12月10日"> 2023-12-10 </time> </a> </div> <a href="https://creators.bengo4.com/entry/2023/12/10/000000" class="urllist-title-link related-entries-title-link urllist-title related-entries-title">モブテスト設計を試してみた話</a> <div class="urllist-entry-body related-entries-entry-body">この記事は「弁護士ドットコム Advent Calendar 2023」の 10日…</div> </div> </li> <li class="urllist-item related-entries-item"> <div class="urllist-item-inner related-entries-item-inner"> <a class="urllist-image-link related-entries-image-link" href="https://creators.bengo4.com/entry/2023/11/01/083000"> <img alt="税理士ドットコム流のCI/CDを設計する考え方と実践" src="https://cdn.image.st-hatena.com/image/square/d7e4960a5b7df935ef264d9267a8561b95e189ca/backend=imagemagick;height=100;version=1;width=100/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fb%2Fbengo4%2F20231030%2F20231030120247.png" class="urllist-image related-entries-image" title="税理士ドットコム流のCI/CDを設計する考え方と実践" width="100" height="100" loading="lazy"> </a> <div class="urllist-date-link related-entries-date-link"> <a href="https://creators.bengo4.com/archive/2023/11/01" rel="nofollow"> <time datetime="2023-10-31T23:30:00Z" title="2023年11月1日"> 2023-11-01 </time> </a> </div> <a href="https://creators.bengo4.com/entry/2023/11/01/083000" class="urllist-title-link related-entries-title-link urllist-title related-entries-title">税理士ドットコム流のCI/CDを設計する考え方と実践</a> <div class="urllist-entry-body related-entries-entry-body">今年の頭から税理士ドットコム事業部に異動した @komtaki です…</div> </div> </li> </ul> </div> </div> </div> </div> </footer> </div> </article> <!-- rakuten_ad_target_end --> <!-- google_ad_section_end --> <div class="pager pager-permalink permalink"> <span class="pager-prev"> <a href="https://creators.bengo4.com/entry/2024/10/10/083000" rel="prev"> <span class="pager-arrow">« </span> MockServiceWorker(MSW) を使った高速開… </a> </span> <span class="pager-next"> <a href="https://creators.bengo4.com/entry/2024/10/02/100000" rel="next"> ボタンをaタグで作るな高校校歌 <span class="pager-arrow"> »</span> </a> </span> </div> </div> </div> <aside id="box1"> <div id="box1-inner"> </div> </aside> </div><!-- #wrapper --> <aside id="box2"> <div id="box2-inner"> <div class="hatena-module hatena-module-profile"> <div class="hatena-module-title"> プロフィール </div> <div class="hatena-module-body"> <a href="https://creators.bengo4.com/about" class="profile-icon-link"> <img src="https://cdn.profile-image.st-hatena.com/users/bengo4/profile.png?1695814907" alt="id:bengo4" class="profile-icon" /> </a> <span class="id"> <a href="https://creators.bengo4.com/about" class="hatena-id-link"><span data-load-nickname="1" data-user-name="bengo4">id:bengo4</span></a> <a href="https://blog.hatena.ne.jp/guide/corporation" title="はてなブログ for DevBlog"><i class="badge-type-devblog">はてなブログ for DevBlog</i></a> </span> <div class="hatena-follow-button-box btn-subscribe js-hatena-follow-button-box" > <a href="#" class="hatena-follow-button js-hatena-follow-button"> <span class="subscribing"> <span class="foreground">読者です</span> <span class="background">読者をやめる</span> </span> <span class="unsubscribing" data-track-name="profile-widget-subscribe-button" data-track-once> <span class="foreground">読者になる</span> <span class="background">読者になる</span> </span> </a> <div class="subscription-count-box js-subscription-count-box"> <i></i> <u></u> <span class="subscription-count js-subscription-count"> </span> </div> </div> <div class="profile-about"> <a href="https://creators.bengo4.com/about">このブログについて</a> </div> </div> </div> <div class="hatena-module hatena-module-search-box"> <div class="hatena-module-title"> 検索 </div> <div class="hatena-module-body"> <form class="search-form" role="search" action="https://creators.bengo4.com/search" method="get"> <input type="text" name="q" class="search-module-input" value="" placeholder="記事を検索" required> <input type="submit" value="検索" class="search-module-button" /> </form> </div> </div> <div class="hatena-module hatena-module-html"> <div class="hatena-module-title">採用情報</div> <div class="hatena-module-body"> <div class="b4-module-banner"> <a class="b4-module-banner-link" href="https://hrmos.co/pages/bengo4/jobs/0009602?utm_source=referral&utm_medium=creatersBlog&utm_campaign=sideBanner" target="_blank"> <img class="b4-module-banner-image--outline" src="https://cdn-ak.f.st-hatena.com/images/fotolife/b/bengo4/20220131/20220131211957.jpg" alt="採用情報"> </a> </div> </div> </div> <div class="hatena-module hatena-module-recent-entries "> <div class="hatena-module-title"> <a href="https://creators.bengo4.com/archive"> 最新記事 </a> </div> <div class="hatena-module-body"> <ul class="recent-entries hatena-urllist "> <li class="urllist-item recent-entries-item"> <div class="urllist-item-inner recent-entries-item-inner"> <div class="b4-module-post"> <a class="b4-module-post-link" href="https://creators.bengo4.com/entry/2024/11/05/080000"> <div class="b4-module-post-head"> <img class="b4-module-post-image" src="https://cdn.image.st-hatena.com/image/square/337345157192e1ddef992a9df627c402ccb389d5/backend=imagemagick;height=100;version=1;width=100/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fb%2Fbengo4%2F20241105%2F20241105080022.png"> </div> <div class="b4-module-post-body"> <span class="b4-module-post-date">2024-11-05</span> <span class="b4-module-post-title">イベント開催レポート:「出張!俺の電子契約」〜クラウドサインをアクセシビリティチェック〜</span> </div> </a> </div> </div> </li> <li class="urllist-item recent-entries-item"> <div class="urllist-item-inner recent-entries-item-inner"> <div class="b4-module-post"> <a class="b4-module-post-link" href="https://creators.bengo4.com/entry/2024/10/22/073000"> <div class="b4-module-post-head"> <img class="b4-module-post-image" src="https://cdn.image.st-hatena.com/image/square/c1dfc03847a3f2cce3cb951118c7127ebc14768f/backend=imagemagick;height=100;version=1;width=100/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fb%2Fbengo4%2F20241021%2F20241021192009.png"> </div> <div class="b4-module-post-body"> <span class="b4-module-post-date">2024-10-22</span> <span class="b4-module-post-title">ゼロダウンタイムで Amazon EC2 で稼働している nginx を AWS Fargate に移行した</span> </div> </a> </div> </div> </li> <li class="urllist-item recent-entries-item"> <div class="urllist-item-inner recent-entries-item-inner"> <div class="b4-module-post"> <a class="b4-module-post-link" href="https://creators.bengo4.com/entry/2024/10/19/060000"> <div class="b4-module-post-head"> <img class="b4-module-post-image" src="https://cdn.image.st-hatena.com/image/square/78550c9140689b604ecd1443b7fbafed9a699798/backend=imagemagick;height=100;version=1;width=100/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fb%2Fbengo4%2F20241019%2F20241019060008.png"> </div> <div class="b4-module-post-body"> <span class="b4-module-post-date">2024-10-19</span> <span class="b4-module-post-title">弁護士ドットコムはVue Fes Japan 2024にスポンサー&登壇します!</span> </div> </a> </div> </div> </li> <li class="urllist-item recent-entries-item"> <div class="urllist-item-inner recent-entries-item-inner"> <div class="b4-module-post"> <a class="b4-module-post-link" href="https://creators.bengo4.com/entry/2024/10/10/083000"> <div class="b4-module-post-head"> <img class="b4-module-post-image" src="https://cdn.image.st-hatena.com/image/square/45c91a5a2433d1e863405ce9eeb9a5c0803289c0/backend=imagemagick;height=100;version=1;width=100/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fb%2Fbengo4%2F20241010%2F20241010084002.png"> </div> <div class="b4-module-post-body"> <span class="b4-module-post-date">2024-10-10</span> <span class="b4-module-post-title">MockServiceWorker(MSW) を使った高速開発のための運用事例</span> </div> </a> </div> </div> </li> <li class="urllist-item recent-entries-item"> <div class="urllist-item-inner recent-entries-item-inner"> <div class="b4-module-post"> <a class="b4-module-post-link" href="https://creators.bengo4.com/entry/2024/10/09/073000"> <div class="b4-module-post-head"> <img class="b4-module-post-image" src="https://cdn.image.st-hatena.com/image/square/511df004a6ecc99e66c03522a77e4b7cfb05073d/backend=imagemagick;height=100;version=1;width=100/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fb%2Fbengo4%2F20241008%2F20241008230505.png"> </div> <div class="b4-module-post-body"> <span class="b4-module-post-date">2024-10-09</span> <span class="b4-module-post-title">AWS COST CUT FIGHT 回答を作ってみました</span> </div> </a> </div> </div> </li> </ul> </div> </div> <div class="hatena-module hatena-module-archive" data-archive-type="default" data-archive-url="https://creators.bengo4.com/archive"> <div class="hatena-module-title"> <a href="https://creators.bengo4.com/archive">月別アーカイブ</a> </div> <div class="hatena-module-body"> <ul class="hatena-urllist"> <li class="archive-module-year archive-module-year-hidden" data-year="2024"> <div class="archive-module-button"> <span class="archive-module-hide-button">▼</span> <span class="archive-module-show-button">▶</span> </div> <a href="https://creators.bengo4.com/archive/2024" class="archive-module-year-title archive-module-year-2024"> 2024 </a> <ul class="archive-module-months"> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2024/11" class="archive-module-month-title archive-module-month-2024-11"> 2024 / 11 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2024/10" class="archive-module-month-title archive-module-month-2024-10"> 2024 / 10 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2024/09" class="archive-module-month-title archive-module-month-2024-9"> 2024 / 9 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2024/08" class="archive-module-month-title archive-module-month-2024-8"> 2024 / 8 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2024/07" class="archive-module-month-title archive-module-month-2024-7"> 2024 / 7 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2024/05" class="archive-module-month-title archive-module-month-2024-5"> 2024 / 5 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2024/04" class="archive-module-month-title archive-module-month-2024-4"> 2024 / 4 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2024/03" class="archive-module-month-title archive-module-month-2024-3"> 2024 / 3 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2024/02" class="archive-module-month-title archive-module-month-2024-2"> 2024 / 2 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2024/01" class="archive-module-month-title archive-module-month-2024-1"> 2024 / 1 </a> </li> </ul> </li> <li class="archive-module-year archive-module-year-hidden" data-year="2023"> <div class="archive-module-button"> <span class="archive-module-hide-button">▼</span> <span class="archive-module-show-button">▶</span> </div> <a href="https://creators.bengo4.com/archive/2023" class="archive-module-year-title archive-module-year-2023"> 2023 </a> <ul class="archive-module-months"> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2023/12" class="archive-module-month-title archive-module-month-2023-12"> 2023 / 12 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2023/11" class="archive-module-month-title archive-module-month-2023-11"> 2023 / 11 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2023/10" class="archive-module-month-title archive-module-month-2023-10"> 2023 / 10 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2023/09" class="archive-module-month-title archive-module-month-2023-9"> 2023 / 9 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2023/08" class="archive-module-month-title archive-module-month-2023-8"> 2023 / 8 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2023/07" class="archive-module-month-title archive-module-month-2023-7"> 2023 / 7 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2023/06" class="archive-module-month-title archive-module-month-2023-6"> 2023 / 6 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2023/04" class="archive-module-month-title archive-module-month-2023-4"> 2023 / 4 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2023/03" class="archive-module-month-title archive-module-month-2023-3"> 2023 / 3 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2023/02" class="archive-module-month-title archive-module-month-2023-2"> 2023 / 2 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2023/01" class="archive-module-month-title archive-module-month-2023-1"> 2023 / 1 </a> </li> </ul> </li> <li class="archive-module-year archive-module-year-hidden" data-year="2022"> <div class="archive-module-button"> <span class="archive-module-hide-button">▼</span> <span class="archive-module-show-button">▶</span> </div> <a href="https://creators.bengo4.com/archive/2022" class="archive-module-year-title archive-module-year-2022"> 2022 </a> <ul class="archive-module-months"> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2022/12" class="archive-module-month-title archive-module-month-2022-12"> 2022 / 12 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2022/11" class="archive-module-month-title archive-module-month-2022-11"> 2022 / 11 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2022/10" class="archive-module-month-title archive-module-month-2022-10"> 2022 / 10 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2022/09" class="archive-module-month-title archive-module-month-2022-9"> 2022 / 9 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2022/08" class="archive-module-month-title archive-module-month-2022-8"> 2022 / 8 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2022/07" class="archive-module-month-title archive-module-month-2022-7"> 2022 / 7 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2022/06" class="archive-module-month-title archive-module-month-2022-6"> 2022 / 6 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2022/05" class="archive-module-month-title archive-module-month-2022-5"> 2022 / 5 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2022/04" class="archive-module-month-title archive-module-month-2022-4"> 2022 / 4 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2022/03" class="archive-module-month-title archive-module-month-2022-3"> 2022 / 3 </a> </li> <li class="archive-module-month"> <a href="https://creators.bengo4.com/archive/2022/02" class="archive-module-month-title archive-module-month-2022-2"> 2022 / 2 </a> </li> </ul> </li> </ul> </div> </div> <div class="hatena-module hatena-module-category"> <div class="hatena-module-title"> カテゴリー </div> <div class="hatena-module-body"> <ul class="hatena-urllist"> <li> <a href="https://creators.bengo4.com/archive/category/CLOUDSIGN" class="category-CLOUDSIGN"> CLOUDSIGN (38) </a> </li> <li> <a href="https://creators.bengo4.com/archive/category/%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B7%E3%83%93%E3%83%AA%E3%83%86%E3%82%A3" class="category-アクセシビリティ"> アクセシビリティ (1) </a> </li> <li> <a href="https://creators.bengo4.com/archive/category/%E3%82%A4%E3%83%99%E3%83%B3%E3%83%88%E3%83%BB%E3%82%AB%E3%83%B3%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9" class="category-イベント・カンファレンス"> イベント・カンファレンス (19) </a> </li> <li> <a href="https://creators.bengo4.com/archive/category/SRE" class="category-SRE"> SRE (5) </a> </li> <li> <a href="https://creators.bengo4.com/archive/category/%E3%83%95%E3%83%AD%E3%83%B3%E3%83%88%E3%82%A8%E3%83%B3%E3%83%89" class="category-フロントエンド"> フロントエンド (9) </a> </li> <li> <a href="https://creators.bengo4.com/archive/category/%E3%83%AA%E3%83%BC%E3%82%AC%E3%83%AB%E3%83%96%E3%83%AC%E3%82%A4%E3%83%B3%E9%96%8B%E7%99%BA" class="category-リーガルブレイン開発"> リーガルブレイン開発 (1) </a> </li> <li> <a href="https://creators.bengo4.com/archive/category/%E7%A8%8E%E7%90%86%E5%A3%AB%E3%83%89%E3%83%83%E3%83%88%E3%82%B3%E3%83%A0" class="category-税理士ドットコム"> 税理士ドットコム (3) </a> </li> <li> <a href="https://creators.bengo4.com/archive/category/%E5%BC%81%E8%AD%B7%E5%A3%AB%E3%83%89%E3%83%83%E3%83%88%E3%82%B3%E3%83%A0" class="category-弁護士ドットコム"> 弁護士ドットコム (23) </a> </li> <li> <a href="https://creators.bengo4.com/archive/category/%E5%BC%81%E3%82%B3%E3%83%A0%E3%81%AA%E4%BA%BA%E3%80%85" class="category-弁コムな人々"> 弁コムな人々 (15) </a> </li> <li> <a href="https://creators.bengo4.com/archive/category/QA" class="category-QA"> QA (2) </a> </li> <li> <a href="https://creators.bengo4.com/archive/category/CRE" class="category-CRE"> CRE (2) </a> </li> <li> <a href="https://creators.bengo4.com/archive/category/%E3%83%87%E3%83%BC%E3%82%BF%E3%82%A8%E3%83%B3%E3%82%B8%E3%83%8B%E3%82%A2%E3%83%AA%E3%83%B3%E3%82%B0" class="category-データエンジニアリング"> データエンジニアリング (2) </a> </li> <li> <a href="https://creators.bengo4.com/archive/category/%E9%83%A8%E6%B4%BB%E5%8B%95" class="category-部活動"> 部活動 (2) </a> </li> <li> <a href="https://creators.bengo4.com/archive/category/%E6%83%85%E5%A0%B1%E3%82%AC%E3%83%90%E3%83%8A%E3%83%B3%E3%82%B9%E6%9C%AC%E9%83%A8" class="category-情報ガバナンス本部"> 情報ガバナンス本部 (1) </a> </li> <li> <a href="https://creators.bengo4.com/archive/category/%E4%BA%BA%E4%BA%8B%E6%9C%AC%E9%83%A8" class="category-人事本部"> 人事本部 (1) </a> </li> <li> <a href="https://creators.bengo4.com/archive/category/%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3" class="category-セキュリティ"> セキュリティ (1) </a> </li> <li> <a href="https://creators.bengo4.com/archive/category/%E3%82%A2%E3%83%89%E3%83%99%E3%83%B3%E3%83%88%E3%82%AB%E3%83%AC%E3%83%B3%E3%83%80%E3%83%BC" class="category-アドベントカレンダー"> アドベントカレンダー (25) </a> </li> <li> <a href="https://creators.bengo4.com/archive/category/BUSINESS%20LAWYERS" class="category-BUSINESS-LAWYERS"> BUSINESS LAWYERS (1) </a> </li> <li> <a href="https://creators.bengo4.com/archive/category/Professional%20Tech%20Lab" class="category-Professional-Tech-Lab"> Professional Tech Lab (1) </a> </li> <li> <a href="https://creators.bengo4.com/archive/category/%E6%96%B0%E5%8D%92%E6%8E%A1%E7%94%A8" class="category-新卒採用"> 新卒採用 (1) </a> </li> </ul> </div> </div> <div class="hatena-module hatena-module-html"> <div class="hatena-module-title">リンク</div> <div class="hatena-module-body"> <div class="b4-module-banner"> <p class="b4-module-banner-title">クラウドサイン note ~Inside~</p> <a href="https://note.com/cloudsign/m/md653f118eed4" class="b4-module-banner-link"> <img class="b4-module-banner-image" src="https://cdn-ak.f.st-hatena.com/images/fotolife/b/bengo4/20220407/20220407152735.jpg" alt="20220407152735"> </a> </div> </div> </div> </div> </aside> </div> </div> <div id="bottom-editarea"> <div class="b4-module-footer"> <p class="b4-module-footer-copyright">© Bengo4.com, Inc. 2005</p> </div> </div> </div> </div> <script async src="https://s.hatena.ne.jp/js/widget/star.js"></script> <script> if (typeof window.Hatena === 'undefined') { window.Hatena = {}; } if (!Hatena.hasOwnProperty('Star')) { Hatena.Star = { VERSION: 2, }; } </script> <div id="fb-root"></div> <script>(function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/ja_JP/sdk.js#xfbml=1&appId=719729204785177&version=v17.0"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk'));</script> <div class="quote-box"> <div class="tooltip-quote tooltip-quote-stock"> <i class="blogicon-quote" title="引用をストック"></i> </div> <div class="tooltip-quote tooltip-quote-tweet js-tooltip-quote-tweet"> <a class="js-tweet-quote" target="_blank" data-track-name="quote-tweet" data-track-once> <img src="https://cdn.blog.st-hatena.com/images/admin/quote/quote-x-icon.svg?version=add51ddc2d3c0599e98ea1239ac012" title="引用して投稿する" > </a> </div> </div> <div class="quote-stock-panel" id="quote-stock-message-box" style="position: absolute; z-index: 3000"> <div class="message-box" id="quote-stock-succeeded-message" style="display: none"> <p>引用をストックしました</p> <button class="btn btn-primary" id="quote-stock-show-editor-button" data-track-name="curation-quote-edit-button">ストック一覧を見る</button> <button class="btn quote-stock-close-message-button">閉じる</button> </div> <div class="message-box" id="quote-login-required-message" style="display: none"> <p>引用するにはまずログインしてください</p> <button class="btn btn-primary" id="quote-login-button">ログイン</button> <button class="btn quote-stock-close-message-button">閉じる</button> </div> <div class="error-box" id="quote-stock-failed-message" style="display: none"> <p>引用をストックできませんでした。再度お試しください</p> <button class="btn quote-stock-close-message-button">閉じる</button> </div> <div class="error-box" id="unstockable-quote-message-box" style="display: none; position: absolute; z-index: 3000;"> <p>限定公開記事のため引用できません。</p> </div> </div> <script type="x-underscore-template" id="js-requote-button-template"> <div class="requote-button js-requote-button"> <button class="requote-button-btn tipsy-top" title="引用する"><i class="blogicon-quote"></i></button> </div> </script> <div id="hidden-subscribe-button" style="display: none;"> <div class="hatena-follow-button-box btn-subscribe js-hatena-follow-button-box" > <a href="#" class="hatena-follow-button js-hatena-follow-button"> <span class="subscribing"> <span class="foreground">読者です</span> <span class="background">読者をやめる</span> </span> <span class="unsubscribing" data-track-name="profile-widget-subscribe-button" data-track-once> <span class="foreground">読者になる</span> <span class="background">読者になる</span> </span> </a> <div class="subscription-count-box js-subscription-count-box"> <i></i> <u></u> <span class="subscription-count js-subscription-count"> </span> </div> </div> </div> <script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script> <script src="https://b.st-hatena.com/js/bookmark_button.js" charset="utf-8" async="async"></script> <script type="text/javascript" src="https://cdn.blog.st-hatena.com/js/external/jquery.min.js?v=1.12.4&version=add51ddc2d3c0599e98ea1239ac012"></script> <script src="https://cdn.blog.st-hatena.com/js/texts-ja.js?version=add51ddc2d3c0599e98ea1239ac012"></script> <script id="vendors-js" data-env="production" src="https://cdn.blog.st-hatena.com/js/vendors.js?version=add51ddc2d3c0599e98ea1239ac012" crossorigin="anonymous"></script> <script id="hatenablog-js" data-env="production" src="https://cdn.blog.st-hatena.com/js/hatenablog.js?version=add51ddc2d3c0599e98ea1239ac012" crossorigin="anonymous" data-page-id="entry"></script> <script>Hatena.Diary.GlobalHeader.init()</script> </body> </html>