{"id":3297,"date":"2025-03-24T08:46:30","date_gmt":"2025-03-23T23:46:30","guid":{"rendered":"https:\/\/dexall.co.jp\/articles\/?p=3297"},"modified":"2025-03-24T08:47:00","modified_gmt":"2025-03-23T23:47:00","slug":"aws%e3%81%a7redis%e3%82%92%e6%9c%80%e9%81%a9%e5%8c%96%e3%81%99%e3%82%8b%e5%ae%8c%e5%85%a8%e3%82%ac%e3%82%a4%e3%83%89-%e3%83%91%e3%83%95%e3%82%a9%e3%83%bc%e3%83%9e%e3%83%b3%e3%82%b9%e5%90%91%e4%b8%8a","status":"publish","type":"post","link":"https:\/\/dexall.co.jp\/articles\/?p=3297","title":{"rendered":"AWS\u3067Redis\u3092\u6700\u9069\u5316\u3059\u308b\u5b8c\u5168\u30ac\u30a4\u30c9 &#8211; \u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u5411\u4e0a\u3068\u904b\u7528\u30b3\u30b9\u30c840%\u524a\u6e1b\u306e\u5b9f\u8df5\u624b\u6cd5"},"content":{"rendered":"\n<div class=\"toc\"><br \/>\n<b>Warning<\/b>:  Undefined array key \"is_admin\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>116<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_category_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>121<\/b><br \/>\n<br \/>\n<b>Warning<\/b>:  Undefined array key \"is_top\" in <b>\/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/sango-theme\/library\/gutenberg\/dist\/classes\/Toc.php<\/b> on line <b>128<\/b><br \/>\n    <div id=\"toc_container\" class=\"sgb-toc--bullets js-smooth-scroll\" data-dialog-title=\"\u76ee\u6b21\">\n      <p class=\"toc_title\">\u76ee\u6b21 <\/p>\n      <ul class=\"toc_list\">  <li class=\"first\">    <a href=\"#i-0\">AWS \u3067\u306e Redis \u6d3b\u7528\u306e\u91cd\u8981\u6027\u3068\u8ab2\u984c<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-1\">\u73fe\u4ee3\u306e\u30af\u30e9\u30a6\u30c9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306b\u304a\u3051\u308b Redis \u306e\u5f79\u5272<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-5\">AWS \u74b0\u5883\u3067\u306e\u4e00\u822c\u7684\u306a Redis \u5c0e\u5165\u306e\u8ab2\u984c\u3068\u89e3\u6c7a\u306e\u65b9\u5411\u6027<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-9\">AWS \u306b\u304a\u3051\u308b Redis \u5c0e\u5165\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u8a73\u7d30\u6bd4\u8f03<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-10\">Amazon ElastiCache \u3068\u30bb\u30eb\u30d5\u30de\u30cd\u30fc\u30b8\u30c9 Redis \u306e\u7279\u5fb4\u3068\u9078\u629e\u57fa\u6e96<\/a>      <\/li>      <li>        <a href=\"#i-14\">\u30de\u30eb\u30c1AZ\u30c7\u30d7\u30ed\u30a4\u3068\u30d5\u30a7\u30a4\u30eb\u30aa\u30fc\u30d0\u30fc\u6226\u7565<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-17\">\u30b3\u30b9\u30c8\u6700\u9069\u5316\u306e\u305f\u3081\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u30bf\u30a4\u30d7\u6ce8\u76ee\u30dd\u30a4\u30f3\u30c8<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-20\">AWS\u74b0\u5883\u3067\u306eRedis\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u624b\u6cd5<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-21\">\u30e1\u30e2\u30ea\u7ba1\u7406\u3068\u30ad\u30e3\u30c3\u30b7\u30e5\u6226\u7565\u306e\u5b9f\u8df5\u4f8b<\/a>      <\/li>      <li>        <a href=\"#i-24\">\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30ec\u30a4\u30c6\u30f3\u30b7\u30fc\u6539\u5584\u306e\u305f\u3081\u306e\u5177\u4f53\u7684\u306a\u30a2\u30d7\u30ed\u30fc\u30c1<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-27\">\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3068\u30a2\u30e9\u30fc\u30c8\u8a2d\u5b9a\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-30\">\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3068\u30b3\u30f3\u30d7\u30e9\u30a4\u30a2\u30f3\u30b9\u306e\u78ba\u4fdd<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-31\">AWS \u74b0\u5883\u3067\u306e Redis \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u306e\u5177\u4f53\u7684\u306a\u624b\u9806<\/a>      <\/li>      <li>        <a href=\"#i-34\">\u6697\u53f7\u5316\u3068\u30a2\u30af\u30bb\u30b9\u5236\u5fa1\u306e\u5b9f\u88c5\u65b9\u6cd5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-37\">\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u76e3\u67fb\u3068\u30b3\u30f3\u30d7\u30e9\u30a4\u30a2\u30f3\u30b9\u5bfe\u5fdc\u306e\u5b9f\u8df5\u4f8b<\/a>      <\/li>    <\/ul>  <\/li>  <li>    <a href=\"#i-40\">\u5927\u898f\u6a21\u30b7\u30b9\u30c6\u30e0\u306b\u304a\u3051\u308bRedis-AWS\u69cb\u6210\u4f8b<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-41\">\u9ad8\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30b5\u30fc\u30d3\u30b9\u3067\u306e\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\u6226\u7565<\/a>      <\/li>      <li>        <a href=\"#i-44\">\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3067\u306e\u6d3b\u7528\u4e8b\u4f8b<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-46\">\u969c\u5bb3\u5bfe\u5fdc\u3068\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u30ea\u30ab\u30d0\u30ea\u306e\u5b9f\u8df5\u77e5\u8b58<\/a>      <\/li>    <\/ul>  <\/li>  <li class=\"last\">    <a href=\"#i-49\">\u904b\u7528\u30b3\u30b9\u30c8\u6700\u9069\u5316\u3068\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9<\/a>    <ul class=\"menu_level_1\">      <li class=\"first\">        <a href=\"#i-50\">\u30b3\u30b9\u30c8\u524a\u6e1b\u3092\u5b9f\u73fe\u3059\u308b\u5177\u4f53\u7684\u306a\u8a2d\u5b9a\u3068\u904b\u7528\u65b9\u6cd5<\/a>      <\/li>      <li>        <a href=\"#i-53\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3068\u30dc\u30c8\u30eb\u30cd\u30c3\u30af\u7279\u5b9a\u306e\u624b\u6cd5<\/a>      <\/li>      <li class=\"last\">        <a href=\"#i-55\">\u81ea\u52d5\u5316\u306b\u3088\u308b\u904b\u7528\u52b9\u7387\u5316\u306e\u5b9f\u88c5\u4f8b<\/a>      <\/li>    <\/ul>  <\/li><\/ul>\n      <a href=\"#\" class=\"sgb-toc-button js-toc-button\" rel=\"nofollow\" data-open-dialog=\"true\"><i class=\"fa fa-list\"><\/i><span class=\"sgb-toc-button__text\">\u76ee\u6b21\u3078<\/span><\/a>\n    <\/div><\/div><h2 class=\"wp-block-heading\" id=\"i-0\">AWS \u3067\u306e Redis \u6d3b\u7528\u306e\u91cd\u8981\u6027\u3068\u8ab2\u984c<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-1\">\u73fe\u4ee3\u306e\u30af\u30e9\u30a6\u30c9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306b\u304a\u3051\u308b Redis \u306e\u5f79\u5272<\/h3>\n\n\n\n<p>\u73fe\u4ee3\u306e\u30af\u30e9\u30a6\u30c9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306b\u304a\u3044\u3066\u3001Redis\u306f\u4e0d\u53ef\u6b20\u306a\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u3068\u3057\u3066\u306e\u5730\u4f4d\u3092\u78ba\u7acb\u3057\u3066\u3044\u307e\u3059\u3002\u7279\u306bAWS\u74b0\u5883\u3067\u306f\u3001\u9ad8\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\u3092\u6271\u3046Web\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3084\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306b\u304a\u3044\u3066\u3001\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3068\u30b9\u30b1\u30fc\u30e9\u30d3\u30ea\u30c6\u30a3\u3092\u78ba\u4fdd\u3059\u308b\u305f\u3081\u306e\u91cd\u8981\u306a\u5f79\u5272\u3092\u679c\u305f\u3057\u3066\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-2\">\u30ad\u30fc\u30d0\u30ea\u30e5\u30fc\u30b9\u30c8\u30a2\u3068\u3057\u3066\u306e\u57fa\u672c\u6a5f\u80fd<\/h4>\n\n\n\n<p>Redis\u306e\u57fa\u672c\u7684\u306a\u6a5f\u80fd\u3068\u3057\u3066\u3001\u9ad8\u901f\u306a\u30ad\u30fc\u30d0\u30ea\u30e5\u30fc\u30b9\u30c8\u30a2\u3068\u3057\u3066\u306e\u5229\u7528\u304c\u6319\u3052\u3089\u308c\u307e\u3059\u3002AWS\u306e\u69d8\u3005\u306a\u30b5\u30fc\u30d3\u30b9\u3068\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u7528\u9014\u3067\u6d3b\u7528\u3055\u308c\u3066\u3044\u307e\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30bb\u30c3\u30b7\u30e7\u30f3\u7ba1\u7406\uff1aECS\u3084EKS\u4e0a\u306e\u30b9\u30c6\u30fc\u30c8\u30ec\u30b9\u306a\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u3067\u306e\u30bb\u30c3\u30b7\u30e7\u30f3\u5171\u6709<\/li>\n\n\n\n<li>API\u30ad\u30e3\u30c3\u30b7\u30e5\uff1aAPI Gateway\u3084Application Load Balancer\u524d\u6bb5\u3067\u306e\u30ec\u30b9\u30dd\u30f3\u30b9\u30ad\u30e3\u30c3\u30b7\u30e5<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u30d9\u30fc\u30b9\u30ad\u30e3\u30c3\u30b7\u30e5\uff1aRDS\u3084Aurora\u3078\u306e\u30a2\u30af\u30bb\u30b9\u8ca0\u8377\u8efd\u6e1b<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-3\">\u9ad8\u5ea6\u306a\u30c7\u30fc\u30bf\u69cb\u9020\u306e\u30b5\u30dd\u30fc\u30c8<\/h4>\n\n\n\n<p>\u5358\u7d14\u306a\u30ad\u30e3\u30c3\u30b7\u30e5\u4ee5\u4e0a\u306e\u6a5f\u80fd\u3068\u3057\u3066\u3001Redis\u306f\u8907\u96d1\u306a\u30c7\u30fc\u30bf\u69cb\u9020\u3092\u30b5\u30dd\u30fc\u30c8\u3057\u3066\u3044\u307e\u3059\uff1a<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u30c7\u30fc\u30bf\u69cb\u9020          \u4e3b\u306a\u7528\u9014\u4f8b\nLists      \u2192      \u30b8\u30e7\u30d6\u30ad\u30e5\u30fc\u3001\u6700\u65b0\u60c5\u5831\u306e\u30d5\u30a3\u30fc\u30c9\u7ba1\u7406\nSets       \u2192      \u30e6\u30fc\u30b6\u30fc\u30bb\u30c3\u30b7\u30e7\u30f3\u3001\u4e00\u610f\u306a\u5024\u306e\u7ba1\u7406\nSorted Sets \u2192      \u30e9\u30f3\u30ad\u30f3\u30b0\u3001\u512a\u5148\u5ea6\u4ed8\u304d\u30bf\u30b9\u30af\u7ba1\u7406\nHashes     \u2192      \u30e6\u30fc\u30b6\u30fc\u30d7\u30ed\u30d5\u30a1\u30a4\u30eb\u3001\u8a2d\u5b9a\u60c5\u5831\u306e\u4fdd\u5b58<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-4\">\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u30c7\u30fc\u30bf\u51e6\u7406\u3067\u306e\u6d3b\u7528<\/h4>\n\n\n\n<p>AWS\u74b0\u5883\u3067\u306e\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u30c7\u30fc\u30bf\u51e6\u7406\u306b\u304a\u3044\u3066\u3001Redis\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306a\u91cd\u8981\u306a\u5f79\u5272\u3092\u679c\u305f\u3057\u3066\u3044\u307e\u3059\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30a4\u30d9\u30f3\u30c8\u51e6\u7406\uff1aKinesis\u3084seb\u30b5\u30fc\u30d3\u30b9\u3068\u9023\u643a\u3057\u305f\u30a4\u30d9\u30f3\u30c8\u30b9\u30c8\u30ea\u30fc\u30e0\u51e6\u7406<\/li>\n\n\n\n<li>\u30ea\u30a2\u30eb\u30bf\u30a4\u30e0\u5206\u6790\uff1aCloudWatch\u30e1\u30c8\u30ea\u30af\u30b9\u306e\u4e00\u6642\u4fdd\u5b58\u3068\u96c6\u8a08<\/li>\n\n\n\n<li>\u30d1\u30d6\u30ea\u30c3\u30b7\u30e5\/\u30b5\u30d6\u30b9\u30af\u30e9\u30a4\u30d6\uff1a\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u9593\u306e\u30e1\u30c3\u30bb\u30fc\u30b8\u30f3\u30b0<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-5\">AWS \u74b0\u5883\u3067\u306e\u4e00\u822c\u7684\u306a Redis \u5c0e\u5165\u306e\u8ab2\u984c\u3068\u89e3\u6c7a\u306e\u65b9\u5411\u6027<\/h3>\n\n\n\n<p>AWS\u74b0\u5883\u3067Redis\u3092\u5c0e\u5165\u3059\u308b\u969b\u306b\u306f\u3001\u3044\u304f\u3064\u304b\u306e\u91cd\u8981\u306a\u8ab2\u984c\u306b\u76f4\u9762\u3057\u307e\u3059\u3002\u3053\u308c\u3089\u306e\u8ab2\u984c\u3092\u7406\u89e3\u3057\u3001\u9069\u5207\u306b\u5bfe\u5fdc\u3059\u308b\u3053\u3068\u304c\u3001\u5b89\u5b9a\u7684\u306a\u904b\u7528\u306e\u30ab\u30ae\u3068\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-6\">\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\u306b\u95a2\u3059\u308b\u8ab2\u984c<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u5782\u76f4\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\uff08\u30b9\u30b1\u30fc\u30eb\u30a2\u30c3\u30d7\uff09\u306e\u9650\u754c<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u6025\u5897\u3078\u306e\u5bfe\u5fdc<\/li>\n\n\n\n<li>\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u30bf\u30a4\u30d7\u5909\u66f4\u6642\u306e\u30c0\u30a6\u30f3\u30bf\u30a4\u30e0 \u2192 <strong>\u89e3\u6c7a\u306e\u65b9\u5411\u6027<\/strong>\uff1a<\/li>\n\n\n\n<li>Auto Scaling\u30dd\u30ea\u30b7\u30fc\u306e\u9069\u5207\u306a\u8a2d\u5b9a<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u4f7f\u7528\u91cf\u306e\u76e3\u8996\u3068\u81ea\u52d5\u30a2\u30e9\u30fc\u30c8\u8a2d\u5b9a<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u6c34\u5e73\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\uff08\u30b9\u30b1\u30fc\u30eb\u30a2\u30a6\u30c8\uff09\u306e\u8907\u96d1\u3055<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b7\u30e3\u30fc\u30c7\u30a3\u30f3\u30b0\u6226\u7565\u306e\u8a2d\u8a08<\/li>\n\n\n\n<li>\u30c7\u30fc\u30bf\u5206\u6563\u306e\u6700\u9069\u5316 \u2192 <strong>\u89e3\u6c7a\u306e\u65b9\u5411\u6027<\/strong>\uff1a<\/li>\n\n\n\n<li>ElastiCache\u306e\u30ec\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b0\u30eb\u30fc\u30d7\u6d3b\u7528<\/li>\n\n\n\n<li>\u30b7\u30e3\u30fc\u30c9\u30ad\u30fc\u306e\u614e\u91cd\u306a\u9078\u5b9a\u3068\u5b9a\u671f\u7684\u306a\u898b\u76f4\u3057<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-7\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u306b\u95a2\u3059\u308b\u8ab2\u984c<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30ec\u30a4\u30c6\u30f3\u30b7\u30fc\u306e\u6700\u9069\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30ea\u30fc\u30b8\u30e7\u30f3\u9593\u306e\u30a2\u30af\u30bb\u30b9\u9045\u5ef6<\/li>\n\n\n\n<li>\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30dc\u30c8\u30eb\u30cd\u30c3\u30af \u2192 <strong>\u89e3\u6c7a\u306e\u65b9\u5411\u6027<\/strong>\uff1a<\/li>\n\n\n\n<li>\u30de\u30eb\u30c1AZ\u914d\u7f6e\u306e\u9069\u5207\u306a\u8a2d\u8a08<\/li>\n\n\n\n<li>Enhanced Networking\u6709\u52b9\u5316<\/li>\n\n\n\n<li>\u9069\u5207\u306a\u30b5\u30d6\u30cd\u30c3\u30c8\u914d\u7f6e<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30e1\u30e2\u30ea\u7ba1\u7406<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30e1\u30e2\u30ea\u65ad\u7247\u5316<\/li>\n\n\n\n<li>\u30ad\u30e3\u30c3\u30b7\u30e5\u306e\u6709\u52b9\u671f\u9650\u8a2d\u5b9a \u2192 <strong>\u89e3\u6c7a\u306e\u65b9\u5411\u6027<\/strong>\uff1a<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u89e3\u653e\u30dd\u30ea\u30b7\u30fc\u306e\u6700\u9069\u5316<\/li>\n\n\n\n<li>\u5b9a\u671f\u7684\u306a\u30e1\u30e2\u30ea\u4f7f\u7528\u72b6\u6cc1\u306e\u5206\u6790<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-8\">\u30b3\u30b9\u30c8\u306b\u95a2\u3059\u308b\u8ab2\u984c<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u30b3\u30b9\u30c8\u306e\u6700\u9069\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30aa\u30fc\u30d0\u30fc\u30d7\u30ed\u30d3\u30b8\u30e7\u30cb\u30f3\u30b0<\/li>\n\n\n\n<li>\u672a\u4f7f\u7528\u30ea\u30bd\u30fc\u30b9\u306e\u653e\u7f6e \u2192 <strong>\u89e3\u6c7a\u306e\u65b9\u5411\u6027<\/strong>\uff1a<\/li>\n\n\n\n<li>Reserved Instance\u306e\u6226\u7565\u7684\u6d3b\u7528<\/li>\n\n\n\n<li>\u30ea\u30bd\u30fc\u30b9\u4f7f\u7528\u72b6\u6cc1\u306e\u5b9a\u671f\u76e3\u8996\u3068\u6700\u9069\u5316<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30c7\u30fc\u30bf\u8ee2\u9001\u30b3\u30b9\u30c8\u306e\u7ba1\u7406<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30ea\u30fc\u30b8\u30e7\u30f3\u9593\u30c7\u30fc\u30bf\u8ee2\u9001<\/li>\n\n\n\n<li>\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u904b\u7528 \u2192 <strong>\u89e3\u6c7a\u306e\u65b9\u5411\u6027<\/strong>\uff1a<\/li>\n\n\n\n<li>Transfer\u5236\u5fa1\u306e\u9069\u5207\u306a\u8a2d\u5b9a<\/li>\n\n\n\n<li>\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u6226\u7565\u306e\u6700\u9069\u5316<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u8ab2\u984c\u306b\u5bfe\u3059\u308b\u5177\u4f53\u7684\u306a\u89e3\u6c7a\u7b56\u306b\u3064\u3044\u3066\u306f\u3001\u5f8c\u7d9a\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u8a73\u7d30\u306b\u89e3\u8aac\u3057\u3066\u3044\u304d\u307e\u3059\u3002\u91cd\u8981\u306a\u306e\u306f\u3001\u3053\u308c\u3089\u306e\u8ab2\u984c\u3092\u500b\u5225\u306b\u5bfe\u5fdc\u3059\u308b\u306e\u3067\u306f\u306a\u304f\u3001AWS\u74b0\u5883\u5168\u4f53\u306e\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u306e\u4e2d\u3067\u7dcf\u5408\u7684\u306b\u691c\u8a0e\u3057\u3001\u6700\u9069\u306a\u30bd\u30ea\u30e5\u30fc\u30b7\u30e7\u30f3\u3092\u9078\u629e\u3059\u308b\u3053\u3068\u3067\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-9\">AWS \u306b\u304a\u3051\u308b Redis \u5c0e\u5165\u30aa\u30d7\u30b7\u30e7\u30f3\u306e\u8a73\u7d30\u6bd4\u8f03<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-10\">Amazon ElastiCache \u3068\u30bb\u30eb\u30d5\u30de\u30cd\u30fc\u30b8\u30c9 Redis \u306e\u7279\u5fb4\u3068\u9078\u629e\u57fa\u6e96<\/h3>\n\n\n\n<p>AWS\u74b0\u5883\u3067Redis\u3092\u5c0e\u5165\u3059\u308b\u969b\u306e\u4e3b\u8981\u306a\u9078\u629e\u80a2\u3068\u3057\u3066\u3001Amazon ElastiCache\u3068EC2\u4e0a\u3067\u306e\u30bb\u30eb\u30d5\u30de\u30cd\u30fc\u30b8\u30c9Redis\u304c\u3042\u308a\u307e\u3059\u3002\u305d\u308c\u305e\u308c\u306e\u7279\u5fb4\u3092\u8a73\u3057\u304f\u6bd4\u8f03\u3057\u3001\u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306b\u9069\u3057\u305f\u9078\u629e\u3092\u691c\u8a0e\u3057\u3066\u3044\u304d\u307e\u3057\u3087\u3046\u3002<\/p>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-11\">Amazon ElastiCache for Redis \u306e\u7279\u5fb4<\/h4>\n\n\n\n<p><strong>\u30e1\u30ea\u30c3\u30c8\uff1a<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u904b\u7528\u7ba1\u7406\u306e\u7c21\u7d20\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30d1\u30c3\u30c1\u9069\u7528\u3084\u66f4\u65b0\u306e\u81ea\u52d5\u5316<\/li>\n\n\n\n<li>\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\/\u30ea\u30b9\u30c8\u30a2\u306e\u81ea\u52d5\u5316<\/li>\n\n\n\n<li>\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3068\u30e1\u30c8\u30ea\u30af\u30b9\u306e\u7d71\u5408<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u9ad8\u53ef\u7528\u6027\u6a5f\u80fd<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30de\u30eb\u30c1AZ\u30ec\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3<\/li>\n\n\n\n<li>\u81ea\u52d5\u30d5\u30a7\u30a4\u30eb\u30aa\u30fc\u30d0\u30fc<\/li>\n\n\n\n<li>\u30ce\u30fc\u30c9\u969c\u5bb3\u306e\u81ea\u52d5\u691c\u77e5\u3068\u7f6e\u63db<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u6a5f\u80fd<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8ee2\u9001\u4e2d\u306e\u6697\u53f7\u5316\uff08in-transit\uff09<\/li>\n\n\n\n<li>\u4fdd\u5b58\u6642\u306e\u6697\u53f7\u5316\uff08at-rest\uff09<\/li>\n\n\n\n<li>IAM\u306b\u3088\u308b\u304d\u3081\u7d30\u304b\u306a\u30a2\u30af\u30bb\u30b9\u5236\u5fa1<\/li>\n<\/ul>\n\n\n\n<p><strong>\u30c7\u30e1\u30ea\u30c3\u30c8\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u6027\u306e\u5236\u9650<\/li>\n\n\n\n<li>\u30b3\u30b9\u30c8\uff08\u5c0f\u898f\u6a21\u5229\u7528\u6642\uff09<\/li>\n\n\n\n<li>\u30d0\u30fc\u30b8\u30e7\u30f3\u9078\u629e\u306e\u5236\u9650<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-12\">\u30bb\u30eb\u30d5\u30de\u30cd\u30fc\u30b8\u30c9 Redis \u306e\u7279\u5fb4<\/h4>\n\n\n\n<p><strong>\u30e1\u30ea\u30c3\u30c8\uff1a<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u5b8c\u5168\u306a\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u6027<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Redis\u8a2d\u5b9a\u306e\u5b8c\u5168\u5236\u5fa1<\/li>\n\n\n\n<li>\u30d0\u30fc\u30b8\u30e7\u30f3\u9078\u629e\u306e\u81ea\u7531\u5ea6<\/li>\n\n\n\n<li>\u30ab\u30b9\u30bf\u30e0\u30e2\u30b8\u30e5\u30fc\u30eb\u306e\u5229\u7528<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30b3\u30b9\u30c8\u6700\u9069\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b9\u30dd\u30c3\u30c8\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u6d3b\u7528<\/li>\n\n\n\n<li>\u30ea\u30bd\u30fc\u30b9\u306e\u7d30\u304b\u306a\u8abf\u6574<\/li>\n\n\n\n<li>\u5fc5\u8981\u6700\u5c0f\u9650\u306e\u69cb\u6210\u9078\u629e<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u7279\u6b8a\u8981\u4ef6\u3078\u306e\u5bfe\u5fdc<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u7279\u5b9a\u306eRedis\u30e2\u30b8\u30e5\u30fc\u30eb\u5229\u7528<\/li>\n\n\n\n<li>\u30ab\u30b9\u30bf\u30e0\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u6226\u7565<\/li>\n\n\n\n<li>\u72ec\u81ea\u306e\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u5b9f\u88c5<\/li>\n<\/ul>\n\n\n\n<p><strong>\u30c7\u30e1\u30ea\u30c3\u30c8\uff1a<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u904b\u7528\u7ba1\u7406\u306e\u8ca0\u62c5\u5927<\/li>\n\n\n\n<li>\u9ad8\u53ef\u7528\u6027\u69cb\u6210\u306e\u5b9f\u88c5\u8907\u96d1<\/li>\n\n\n\n<li>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u306e\u8ca0\u62c5<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-13\">\u9078\u629e\u57fa\u6e96\u306e\u30d5\u30ec\u30fc\u30e0\u30ef\u30fc\u30af<\/h4>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\u8981\u4ef6                     ElastiCache\u63a8\u5968    \u30bb\u30eb\u30d5\u30de\u30cd\u30fc\u30b8\u30c9\u63a8\u5968\n-----------------------------------------------------------\n\u958b\u767a\/\u691c\u8a3c\u74b0\u5883            \u25b3                 \u25cb\n\u672c\u756a\u30fb\u5927\u898f\u6a21\u74b0\u5883         \u25cb                 \u25b3\n\u53b3\u683c\u306a\u30b3\u30f3\u30d7\u30e9\u30a4\u30a2\u30f3\u30b9   \u25cb                 \u25b3\n\u7279\u6b8a\u306a\u30ab\u30b9\u30bf\u30de\u30a4\u30ba\u8981\u4ef6   \u00d7                 \u25cb\n\u904b\u7528\u30ea\u30bd\u30fc\u30b9\u306e\u5236\u9650       \u25cb                 \u00d7\n\u30b3\u30b9\u30c8\u91cd\u8996              \u25b3                 \u25cb<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-14\">\u30de\u30eb\u30c1AZ\u30c7\u30d7\u30ed\u30a4\u3068\u30d5\u30a7\u30a4\u30eb\u30aa\u30fc\u30d0\u30fc\u6226\u7565<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-15\">ElastiCache\u3067\u306e\u30de\u30eb\u30c1AZ\u69cb\u6210<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30ec\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u30b0\u30eb\u30fc\u30d7\u306e\u8a2d\u8a08<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   \u30d7\u30e9\u30a4\u30de\u30ea\u30ce\u30fc\u30c9 (ap-northeast-1a)\n   \u2514\u2500\u2500 \u30ea\u30fc\u30c9\u30ec\u30d7\u30ea\u30ab (ap-northeast-1c)\n   \u2514\u2500\u2500 \u30ea\u30fc\u30c9\u30ec\u30d7\u30ea\u30ab (ap-northeast-1d)<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u81ea\u52d5\u30d5\u30a7\u30a4\u30eb\u30aa\u30fc\u30d0\u30fc\u306e\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>DNS\u30d5\u30a7\u30a4\u30eb\u30aa\u30fc\u30d0\u30fc<\/li>\n\n\n\n<li>\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u5207\u308a\u66ff\u3048<\/li>\n\n\n\n<li>\u30ec\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u540c\u671f\u78ba\u8a8d<\/li>\n<\/ul>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u53ef\u7528\u6027\u5411\u4e0a\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30b5\u30d6\u30cd\u30c3\u30c8\u30b0\u30eb\u30fc\u30d7\u306e\u9069\u5207\u306a\u8a2d\u5b9a<\/li>\n\n\n\n<li>Route 53\u30d8\u30eb\u30b9\u30c1\u30a7\u30c3\u30af\u306e\u6d3b\u7528<\/li>\n\n\n\n<li>Application Auto Scaling\u8a2d\u5b9a<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-16\">\u30bb\u30eb\u30d5\u30de\u30cd\u30fc\u30b8\u30c9\u3067\u306e\u30de\u30eb\u30c1AZ\u5b9f\u88c5<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u8a2d\u8a08<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   Master Node (AZ-a)\n   \u251c\u2500\u2500 Sentinel-1 (AZ-a)\n   \u251c\u2500\u2500 Replica-1 + Sentinel-2 (AZ-b)\n   \u2514\u2500\u2500 Replica-2 + Sentinel-3 (AZ-c)<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>Redis Sentinel\u306e\u69cb\u6210<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30af\u30a9\u30fc\u30e9\u30e0\u8a2d\u5b9a<\/li>\n\n\n\n<li>\u30d5\u30a7\u30a4\u30eb\u30aa\u30fc\u30d0\u30fc\u95be\u5024<\/li>\n\n\n\n<li>\u76e3\u8996\u9593\u9694\u306e\u6700\u9069\u5316<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-17\">\u30b3\u30b9\u30c8\u6700\u9069\u5316\u306e\u305f\u3081\u306e\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u30bf\u30a4\u30d7\u6ce8\u76ee\u30dd\u30a4\u30f3\u30c8<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-18\">\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u30d5\u30a1\u30df\u30ea\u30fc\u306e\u9078\u629e\u57fa\u6e96<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30ef\u30fc\u30af\u30ed\u30fc\u30c9\u30bf\u30a4\u30d7\u5225\u63a8\u5968\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   \u7528\u9014                \u63a8\u5968\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u30d5\u30a1\u30df\u30ea\u30fc\n   -------------------------------------------\n   \u6c4e\u7528\u30ad\u30e3\u30c3\u30b7\u30e5       cache.t4g, cache.m6g\n   \u9ad8\u30e1\u30e2\u30ea\u8981\u4ef6         cache.r6g\n   \u30b3\u30b9\u30c8\u91cd\u8996           cache.t4g\n   \u9ad8\u6027\u80fd\u8981\u4ef6          cache.r6g, cache.m6g<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30b5\u30a4\u30b8\u30f3\u30b0\u306e\u8003\u616e\u70b9<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30e1\u30e2\u30ea\u4f7f\u7528\u7387\uff08\u63a8\u5968: \u6700\u592770%\uff09<\/li>\n\n\n\n<li>CPU\u4f7f\u7528\u7387\uff08\u63a8\u5968: \u5e73\u574765%\u4ee5\u4e0b\uff09<\/li>\n\n\n\n<li>\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30b9\u30eb\u30fc\u30d7\u30c3\u30c8\u8981\u4ef6<\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-19\">\u30b3\u30b9\u30c8\u6700\u9069\u5316\u30c6\u30af\u30cb\u30c3\u30af<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u4e88\u7d04\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u6d3b\u7528<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>1\u5e74\u4e88\u7d04\uff1a\u6700\u592740%\u524a\u6e1b<\/li>\n\n\n\n<li>3\u5e74\u4e88\u7d04\uff1a\u6700\u592760%\u524a\u6e1b<\/li>\n\n\n\n<li>\u30cf\u30a4\u30d6\u30ea\u30c3\u30c9\u4e88\u7d04\u6226\u7565<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\u30dd\u30ea\u30b7\u30fc\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>CloudWatch\u30e1\u30c8\u30ea\u30af\u30b9\u30d9\u30fc\u30b9\u306e\u81ea\u52d5\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0<\/li>\n\n\n\n<li>\u6642\u9593\u5e2f\u5225\u306e\u9700\u8981\u4e88\u6e2c\u306b\u57fa\u3065\u304f\u4e8b\u524d\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0<\/li>\n\n\n\n<li>\u30d0\u30c3\u30d5\u30a1\u5bb9\u91cf\u306e\u9069\u5207\u306a\u8a2d\u5b9a<\/li>\n<\/ul>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30c7\u30fc\u30bf\u4fdd\u6301\u6226\u7565<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>TTL\uff08Time To Live\uff09\u306e\u9069\u5207\u306a\u8a2d\u5b9a<\/li>\n\n\n\n<li>\u4e0d\u8981\u30c7\u30fc\u30bf\u306e\u5b9a\u671f\u7684\u306a\u30af\u30ea\u30fc\u30f3\u30a2\u30c3\u30d7<\/li>\n\n\n\n<li>\u30e1\u30e2\u30ea\u65ad\u7247\u5316\u306e\u76e3\u8996\u3068\u5bfe\u7b56<\/li>\n<\/ul>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u9078\u629e\u80a2\u3068\u8a2d\u5b9a\u306f\u3001\u30b7\u30b9\u30c6\u30e0\u306e\u8981\u4ef6\u3084\u904b\u7528\u4f53\u5236\u306b\u5fdc\u3058\u3066\u9069\u5207\u306b\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u9078\u629e\u3057\u305fRedis\u74b0\u5883\u3067\u306e\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u624b\u6cd5\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u89e3\u8aac\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-20\">AWS\u74b0\u5883\u3067\u306eRedis\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u6700\u9069\u5316\u624b\u6cd5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-21\">\u30e1\u30e2\u30ea\u7ba1\u7406\u3068\u30ad\u30e3\u30c3\u30b7\u30e5\u6226\u7565\u306e\u5b9f\u8df5\u4f8b<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-22\">\u30e1\u30e2\u30ea\u4f7f\u7528\u52b9\u7387\u306e\u6700\u9069\u5316<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30e1\u30e2\u30ea\u30dd\u30ea\u30b7\u30fc\u306e\u9069\u5207\u306a\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   # redis.conf \u3067\u306e\u63a8\u5968\u8a2d\u5b9a\n   maxmemory 12gb                     # \u5229\u7528\u53ef\u80fd\u30e1\u30e2\u30ea\u306e75%\u7a0b\u5ea6\n   maxmemory-policy volatile-lru      # \u6709\u52b9\u671f\u9650\u4ed8\u304d\u30ad\u30fc\u306eLRU\n   maxmemory-samples 10               # LRU\u306e\u7cbe\u5ea6\u5411\u4e0a<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30c7\u30fc\u30bf\u69cb\u9020\u306e\u6700\u9069\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u30cf\u30c3\u30b7\u30e5\u6700\u9069\u5316<br><code>redis HSET user:1000 name \"John\" age \"30\" city \"Tokyo\" # \u63a8\u5968 # \u975e\u63a8\u5968: SET user:1000:name \"John\"; SET user:1000:age \"30\"<\/code><\/li>\n\n\n\n<li>\u6587\u5b57\u5217\u5727\u7e2e<br><code>redis CONFIG SET list-max-ziplist-entries 512 CONFIG SET list-max-ziplist-value 64<\/code><\/li>\n<\/ul>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-23\">\u30ad\u30e3\u30c3\u30b7\u30f3\u30b0\u6226\u7565\u306e\u5b9f\u88c5<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Write-Through\u30ad\u30e3\u30c3\u30b7\u30f3\u30b0<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   # Python\u3067\u306e\u5b9f\u88c5\u4f8b\n   def write_through_cache(key, value):\n       try:\n           # RDS\u3078\u306e\u66f8\u304d\u8fbc\u307f\n           db.execute(\"INSERT INTO data (key, value) VALUES (%s, %s)\", \n                     (key, value))\n           # Redis\u3078\u306e\u30ad\u30e3\u30c3\u30b7\u30e5\n           redis_client.set(key, value, ex=3600)  # 1\u6642\u9593\u306eTTL\n           return True\n       except Exception as e:\n           logger.error(f\"Write-through failed: {e}\")\n           return False<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>Write-Back\u30ad\u30e3\u30c3\u30b7\u30f3\u30b0<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   # \u975e\u540c\u671f\u3067\u306e\u66f8\u304d\u8fbc\u307f\u51e6\u7406\n   async def write_back_cache(key, value):\n       # Redis\u3078\u306e\u5373\u6642\u66f8\u304d\u8fbc\u307f\n       await redis_client.set(key, value)\n       # \u30ad\u30e5\u30fc\u3078\u306e\u66f8\u304d\u8fbc\u307f\u30bf\u30b9\u30af\u8ffd\u52a0\n       await write_queue.put({\n           'key': key,\n           'value': value,\n           'timestamp': time.time()\n       })<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-24\">\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30ec\u30a4\u30c6\u30f3\u30b7\u30fc\u6539\u5584\u306e\u305f\u3081\u306e\u5177\u4f53\u7684\u306a\u30a2\u30d7\u30ed\u30fc\u30c1<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-25\">\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u8a2d\u5b9a\u306e\u6700\u9069\u5316<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Enhanced Networking\u6709\u52b9\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   # EC2\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u3067\u306eENA\u6709\u52b9\u5316\u78ba\u8a8d\n   aws ec2 describe-instances --instance-ids i-1234567890abcdef0 \\\n       --query \"Reservations[].Instances[].EnaSupport\"<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>Placement Group\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   # \u30af\u30e9\u30b9\u30bf\u30fc\u30d7\u30ec\u30a4\u30b9\u30e1\u30f3\u30c8\u30b0\u30eb\u30fc\u30d7\u306e\u4f5c\u6210\n   aws ec2 create-placement-group \\\n       --group-name redis-cluster-group \\\n       --strategy cluster<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-26\">\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u51e6\u7406\u306e\u6d3b\u7528<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30d0\u30c3\u30c1\u51e6\u7406\u306e\u5b9f\u88c5<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   # \u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u51e6\u7406\u306e\u4f8b\n   def batch_process(keys):\n       with redis_client.pipeline() as pipe:\n           # \u8907\u6570\u306e\u30b3\u30de\u30f3\u30c9\u3092\u30d1\u30a4\u30d7\u30e9\u30a4\u30f3\u5316\n           for key in keys:\n               pipe.get(key)\n           return pipe.execute()<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30de\u30eb\u30c1\u30b9\u30ec\u30c3\u30c9\u51e6\u7406\u3068\u306e\u7d44\u307f\u5408\u308f\u305b<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   from concurrent.futures import ThreadPoolExecutor\n\n   def process_large_dataset(keys, chunk_size=1000):\n       with ThreadPoolExecutor(max_workers=4) as executor:\n           chunks = [keys[i:i+chunk_size] for i in range(0, len(keys), chunk_size)]\n           futures = [executor.submit(batch_process, chunk) for chunk in chunks]\n           return [f.result() for f in futures]<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-27\">\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3068\u30a2\u30e9\u30fc\u30c8\u8a2d\u5b9a\u306e\u30d9\u30b9\u30c8\u30d7\u30e9\u30af\u30c6\u30a3\u30b9<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-28\">CloudWatch \u30e1\u30c8\u30ea\u30af\u30b9\u306e\u6d3b\u7528<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u91cd\u8981\u30e1\u30c8\u30ea\u30af\u30b9\u3068\u95be\u5024\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   \u30e1\u30c8\u30ea\u30af\u30b9\u540d                \u63a8\u5968\u95be\u5024        \u30a2\u30e9\u30fc\u30c8\u512a\u5148\u5ea6\n   --------------------------------------------------\n   CPUUtilization           70%             \u9ad8\n   FreeableMemory          20% \u4ee5\u4e0b         \u6700\u9ad8\n   CurrConnections         \u63a5\u7d9a\u9650\u754c\u306e80%     \u4e2d\n   SwapUsage               50MB \u4ee5\u4e0a        \u9ad8\n   ReplicationLag          10\u79d2\u4ee5\u4e0a         \u9ad8<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30ab\u30b9\u30bf\u30e0\u30e1\u30c8\u30ea\u30af\u30b9\u306e\u5b9f\u88c5<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   # \u30ab\u30b9\u30bf\u30e0\u30e1\u30c8\u30ea\u30af\u30b9\u9001\u4fe1\n   def send_custom_metrics():\n       cloudwatch = boto3.client('cloudwatch')\n\n       # \u30b3\u30de\u30f3\u30c9\u5b9f\u884c\u6570\u306e\u76e3\u8996\n       command_stats = redis_client.info('commandstats')\n\n       cloudwatch.put_metric_data(\n           Namespace='Redis\/Custom',\n           MetricData=[{\n               'MetricName': 'CommandExecutions',\n               'Value': command_stats['cmdstat_get']['calls'],\n               'Unit': 'Count',\n               'Dimensions': [{\n                   'Name': 'ClusterId',\n                   'Value': 'prod-redis-001'\n               }]\n           }]\n       )<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-29\">\u30a2\u30e9\u30fc\u30c8\u8a2d\u5b9a\u3068\u30a4\u30f3\u30b7\u30c7\u30f3\u30c8\u5bfe\u5fdc<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>CloudWatch \u30a2\u30e9\u30fc\u30e0\u306e\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   # \u30e1\u30e2\u30ea\u4f7f\u7528\u7387\u30a2\u30e9\u30fc\u30e0\u306e\u4f5c\u6210\n   aws cloudwatch put-metric-alarm \\\n       --alarm-name redis-memory-alert \\\n       --alarm-description \"Redis memory usage high\" \\\n       --metric-name FreeableMemory \\\n       --namespace AWS\/ElastiCache \\\n       --statistic Average \\\n       --period 300 \\\n       --threshold 2147483648 \\  # 2GB\n       --comparison-operator LessThanThreshold \\\n       --evaluation-periods 2 \\\n       --alarm-actions arn:aws:sns:region:account-id:topic-name<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u81ea\u52d5\u5fa9\u65e7\u30a2\u30af\u30b7\u30e7\u30f3\u306e\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   # AWS Systems Manager\u30aa\u30fc\u30c8\u30e1\u30fc\u30b7\u30e7\u30f3\n   description: 'Redis Performance Recovery'\n   schemaVersion: '0.3'\n   parameters:\n     ClusterId:\n       type: String\n       description: Redis cluster ID\n   mainSteps:\n     - name: CheckMetrics\n       action: 'aws:executeAwsApi'\n       inputs:\n         Service: cloudwatch\n         Api: GetMetricData\n         # \u30e1\u30c8\u30ea\u30af\u30b9\u53d6\u5f97\u30d1\u30e9\u30e1\u30fc\u30bf\n\n     - name: ExecuteRecovery\n       action: 'aws:executeScript'\n       inputs:\n         Runtime: python3.8\n         Handler: execute_recovery\n         Script: |\n           def execute_recovery():\n               # \u30e1\u30e2\u30ea\u30af\u30ea\u30a2\u51e6\u7406\n               # \u4e0d\u8981\u30ad\u30fc\u524a\u9664\n               # \u8a2d\u5b9a\u6700\u9069\u5316<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u6700\u9069\u5316\u624b\u6cd5\u306f\u3001\u30b7\u30b9\u30c6\u30e0\u306e\u898f\u6a21\u3084\u8981\u4ef6\u306b\u5fdc\u3058\u3066\u9069\u5207\u306b\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002\u7279\u306b\u672c\u756a\u74b0\u5883\u3067\u306e\u5909\u66f4\u306f\u3001\u5341\u5206\u306a\u30c6\u30b9\u30c8\u3068\u6bb5\u968e\u7684\u306a\u9069\u7528\u3092\u63a8\u5968\u3057\u307e\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3068\u30b3\u30f3\u30d7\u30e9\u30a4\u30a2\u30f3\u30b9\u306e\u78ba\u4fdd\u306b\u3064\u3044\u3066\u8a73\u3057\u304f\u89e3\u8aac\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-30\">\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3068\u30b3\u30f3\u30d7\u30e9\u30a4\u30a2\u30f3\u30b9\u306e\u78ba\u4fdd<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-31\">AWS \u74b0\u5883\u3067\u306e Redis \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u306e\u5177\u4f53\u7684\u306a\u624b\u9806<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-32\">\u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u306e\u69cb\u7bc9<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>VPC\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30b0\u30eb\u30fc\u30d7\u306e\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   {\n     \"GroupId\": \"sg-0123456789abcdef0\",\n     \"InboundRules\": [\n       {\n         \"IpProtocol\": \"tcp\",\n         \"FromPort\": 6379,\n         \"ToPort\": 6379,\n         \"UserIdGroupPairs\": [\n           {\n             \"GroupId\": \"sg-application-servers\"\n           }\n         ],\n         \"Description\": \"Redis access from application servers\"\n       }\n     ]\n   }<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30b5\u30d6\u30cd\u30c3\u30c8\u8a2d\u5b9a\u3068NACL<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   # \u30d7\u30e9\u30a4\u30d9\u30fc\u30c8\u30b5\u30d6\u30cd\u30c3\u30c8\u4f5c\u6210\n   aws ec2 create-subnet \\\n       --vpc-id vpc-1234567890abcdef0 \\\n       --cidr-block 10.0.1.0\/24 \\\n       --availability-zone ap-northeast-1a\n\n   # NACL\u30eb\u30fc\u30eb\u8a2d\u5b9a\n   aws ec2 create-network-acl-entry \\\n       --network-acl-id acl-12345678 \\\n       --rule-number 100 \\\n       --protocol tcp \\\n       --port-range From=6379,To=6379 \\\n       --rule-action allow \\\n       --ingress<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-33\">IAM\u30dd\u30ea\u30b7\u30fc\u3068\u30ed\u30fc\u30eb\u306e\u8a2d\u5b9a<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u6700\u5c0f\u6a29\u9650\u306e\u539f\u5247\u306b\u57fa\u3065\u304fIAM\u30dd\u30ea\u30b7\u30fc<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   {\n     \"Version\": \"2012-10-17\",\n     \"Statement\": [\n       {\n         \"Effect\": \"Allow\",\n         \"Action\": [\n           \"elasticache:Connect\",\n           \"elasticache:Describe*\",\n           \"elasticache:List*\",\n           \"elasticache:RebootCache*\"\n         ],\n         \"Resource\": [\n           \"arn:aws:elasticache:region:account-id:cluster:redis-*\"\n         ]\n       }\n     ]\n   }<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30b5\u30fc\u30d3\u30b9\u30ea\u30f3\u30af\u30ed\u30fc\u30eb\u306e\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   # ElastiCache\u30b5\u30fc\u30d3\u30b9\u30ea\u30f3\u30af\u30ed\u30fc\u30eb\u306e\u4f5c\u6210\n   aws iam create-service-linked-role \\\n       --aws-service-name elasticache.amazonaws.com<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-34\">\u6697\u53f7\u5316\u3068\u30a2\u30af\u30bb\u30b9\u5236\u5fa1\u306e\u5b9f\u88c5\u65b9\u6cd5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-35\">\u8ee2\u9001\u6642\u306e\u6697\u53f7\u5316\uff08in-transit encryption\uff09<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>TLS\u8a3c\u660e\u66f8\u306e\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   # \u8a3c\u660e\u66f8\u306e\u30a4\u30f3\u30dd\u30fc\u30c8\n   aws acm import-certificate \\\n       --certificate file:\/\/cert.pem \\\n       --private-key file:\/\/privatekey.pem \\\n       --certificate-chain file:\/\/chain.pem<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>Redis\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   # Python Redis\u30af\u30e9\u30a4\u30a2\u30f3\u30c8\u3067\u306e\u6697\u53f7\u5316\u63a5\u7d9a\n   import redis\n\n   redis_client = redis.Redis(\n       host='your-redis.xxxxx.ng.0001.apne1.cache.amazonaws.com',\n       port=6379,\n       ssl=True,\n       ssl_cert_reqs='required',\n       ssl_ca_certs='\/path\/to\/ca.pem'\n   )<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-36\">\u4fdd\u7ba1\u6642\u306e\u6697\u53f7\u5316\uff08at-rest encryption\uff09<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>KMS\u30ad\u30fc\u306e\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   # \u30ab\u30b9\u30bf\u30de\u30fc\u30de\u30cd\u30fc\u30b8\u30c9\u30ad\u30fc\u306e\u4f5c\u6210\n   aws kms create-key \\\n       --description \"Redis Encryption Key\" \\\n       --tags TagKey=Environment,TagValue=Production\n\n   # \u30ad\u30fc\u30dd\u30ea\u30b7\u30fc\u306e\u8a2d\u5b9a\n   aws kms put-key-policy \\\n       --key-id 1234abcd-12ab-34cd-56ef-1234567890ab \\\n       --policy-name default \\\n       --policy file:\/\/key-policy.json<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>ElastiCache\u3067\u306e\u6697\u53f7\u5316\u6709\u52b9\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   aws elasticache create-replication-group \\\n       --replication-group-id prod-redis \\\n       --replication-group-description \"Production Redis cluster\" \\\n       --engine redis \\\n       --at-rest-encryption-enabled \\\n       --kms-key-id arn:aws:kms:region:account-id:key\/key-id<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-37\">\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u76e3\u67fb\u3068\u30b3\u30f3\u30d7\u30e9\u30a4\u30a2\u30f3\u30b9\u5bfe\u5fdc\u306e\u5b9f\u8df5\u4f8b<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-38\">\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u76e3\u67fb\u306e\u81ea\u52d5\u5316<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>AWS Config \u30eb\u30fc\u30eb\u306e\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   {\n     \"ConfigRules\": [\n       {\n         \"ConfigRuleName\": \"redis-encryption-enabled\",\n         \"Source\": {\n           \"Owner\": \"AWS\",\n           \"SourceIdentifier\": \"ELASTICACHE_REDIS_ENCRYPTION_AT_REST_ENABLED\"\n         },\n         \"Scope\": {\n           \"ComplianceResourceTypes\": [\n             \"AWS::ElastiCache::ReplicationGroup\"\n           ]\n         }\n       }\n     ]\n   }<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>CloudTrail\u76e3\u67fb\u30ed\u30b0\u306e\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   # CloudTrail\u306e\u6709\u52b9\u5316\n   aws cloudtrail create-trail \\\n       --name redis-audit-trail \\\n       --s3-bucket-name your-audit-bucket \\\n       --is-multi-region-trail \\\n       --kms-key-id arn:aws:kms:region:account-id:key\/key-id \\\n       --enable-log-file-validation<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-39\">\u30b3\u30f3\u30d7\u30e9\u30a4\u30a2\u30f3\u30b9\u5bfe\u5fdc\u30c1\u30a7\u30c3\u30af\u30ea\u30b9\u30c8<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u5b9a\u671f\u7684\u306a\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30c1\u30a7\u30c3\u30af<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30c1\u30a7\u30c3\u30af\u9805\u76ee:\n     \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u8a2d\u5b9a:\n       - [ ] VPC\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u306e\u78ba\u8a8d\n       - [ ] \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30b0\u30eb\u30fc\u30d7\u30eb\u30fc\u30eb\u306e\u691c\u8a3c\n       - [ ] NACL\u30eb\u30fc\u30eb\u306e\u898b\u76f4\u3057\n\n     \u8a8d\u8a3c\u30fb\u8a8d\u53ef:\n       - [ ] IAM\u30ed\u30fc\u30eb\u3068\u30dd\u30ea\u30b7\u30fc\u306e\u76e3\u67fb\n       - [ ] \u30d1\u30b9\u30ef\u30fc\u30c9\u30dd\u30ea\u30b7\u30fc\u306e\u78ba\u8a8d\n       - [ ] \u30a2\u30af\u30bb\u30b9\u30ad\u30fc\u306e\u30ed\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3\n\n     \u6697\u53f7\u5316:\n       - [ ] TLS\u8a3c\u660e\u66f8\u306e\u6709\u52b9\u671f\u9650\u78ba\u8a8d\n       - [ ] KMS\u30ad\u30fc\u306e\u30ed\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3\u72b6\u614b\n       - [ ] \u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u306e\u6697\u53f7\u5316\u78ba\u8a8d\n\n     \u76e3\u67fb:\n       - [ ] CloudTrail\u30ed\u30b0\u306e\u78ba\u8a8d\n       - [ ] Config Rule\u306e\u72b6\u614b\u78ba\u8a8d\n       - [ ] \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30b0\u30eb\u30fc\u30d7\u306e\u5909\u66f4\u5c65\u6b74<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30a4\u30f3\u30b7\u30c7\u30f3\u30c8\u5bfe\u5fdc\u30d7\u30e9\u30f3<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   \u30a4\u30f3\u30b7\u30c7\u30f3\u30c8\u767a\u751f\u6642\u306e\u5bfe\u5fdc\u624b\u9806:\n     1. \u691c\u77e5\u3068\u521d\u671f\u8a55\u4fa1:\n        - CloudWatch\u30a2\u30e9\u30fc\u30c8\u306e\u78ba\u8a8d\n        - \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30ed\u30b0\u306e\u5206\u6790\n        - \u5f71\u97ff\u7bc4\u56f2\u306e\u7279\u5b9a\n\n     2. \u5c01\u3058\u8fbc\u3081:\n        - \u5f71\u97ff\u3092\u53d7\u3051\u305f\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u9694\u96e2\n        - \u4e00\u6642\u7684\u306a\u30a2\u30af\u30bb\u30b9\u5236\u9650\n        - \u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u306e\u78ba\u4fdd\n\n     3. \u5fa9\u65e7:\n        - \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30d1\u30c3\u30c1\u306e\u9069\u7528\n        - \u8a2d\u5b9a\u306e\u898b\u76f4\u3057\u3068\u4fee\u6b63\n        - \u30b7\u30b9\u30c6\u30e0\u306e\u6b63\u5e38\u6027\u78ba\u8a8d\n\n     4. \u4e8b\u5f8c\u5bfe\u5fdc:\n        - \u30a4\u30f3\u30b7\u30c7\u30f3\u30c8\u5831\u544a\u66f8\u306e\u4f5c\u6210\n        - \u518d\u767a\u9632\u6b62\u7b56\u306e\u5b9f\u88c5\n        - \u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u8a2d\u5b9a\u306e\u5f37\u5316<\/pre>\n\n\n\n<p>\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u3068\u30b3\u30f3\u30d7\u30e9\u30a4\u30a2\u30f3\u30b9\u306e\u78ba\u4fdd\u306f\u7d99\u7d9a\u7684\u306a\u30d7\u30ed\u30bb\u30b9\u3067\u3042\u308a\u3001\u5b9a\u671f\u7684\u306a\u898b\u76f4\u3057\u3068\u66f4\u65b0\u304c\u5fc5\u8981\u3067\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3053\u308c\u3089\u306e\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u5bfe\u7b56\u3092\u8e0f\u307e\u3048\u305f\u4e0a\u3067\u306e\u3001\u5927\u898f\u6a21\u30b7\u30b9\u30c6\u30e0\u306b\u304a\u3051\u308bRedis-AWS\u69cb\u6210\u4f8b\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-40\">\u5927\u898f\u6a21\u30b7\u30b9\u30c6\u30e0\u306b\u304a\u3051\u308bRedis-AWS\u69cb\u6210\u4f8b<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-41\">\u9ad8\u30bb\u30ad\u30e5\u30ea\u30c6\u30a3\u30b5\u30fc\u30d3\u30b9\u3067\u306e\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\u6226\u7565<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-42\">\u30de\u30eb\u30c1\u30b7\u30e3\u30fc\u30c9\u69cb\u6210\u306e\u8a2d\u8a08\u3068\u5b9f\u88c5<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30b7\u30e3\u30fc\u30c7\u30a3\u30f3\u30b0\u6226\u7565\u306e\u8a2d\u8a08<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   \u30b7\u30e3\u30fc\u30c9\u5206\u5272\u57fa\u6e96:\n   \u251c\u2500\u2500 \u30e6\u30fc\u30b6\u30fcID\u7bc4\u56f2\u306b\u3088\u308b\u5206\u5272\n   \u2502   \u2514\u2500\u2500 shard_key = user_id % number_of_shards\n   \u251c\u2500\u2500 \u5730\u57df\u5225\u5206\u5272\n   \u2502   \u2514\u2500\u2500 shard_key = region_code\n   \u2514\u2500\u2500 \u30b5\u30fc\u30d3\u30b9\u7a2e\u5225\u306b\u3088\u308b\u5206\u5272\n       \u2514\u2500\u2500 shard_key = service_type<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30af\u30e9\u30b9\u30bf\u30fc\u69cb\u6210\u4f8b<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   Redis Cluster\u69cb\u6210:\n     \u30b7\u30e3\u30fc\u30c91\uff08\u30e6\u30fc\u30b6\u30fc\u30c7\u30fc\u30bf\uff09:\n       \u30d7\u30e9\u30a4\u30de\u30ea\u30ce\u30fc\u30c9: cache.r6g.xlarge\n       \u30ec\u30d7\u30ea\u30ab\u30ce\u30fc\u30c9: \n         - cache.r6g.xlarge (AZ-a)\n         - cache.r6g.xlarge (AZ-c)\n\n     \u30b7\u30e3\u30fc\u30c92\uff08\u30bb\u30c3\u30b7\u30e7\u30f3\u7ba1\u7406\uff09:\n       \u30d7\u30e9\u30a4\u30de\u30ea\u30ce\u30fc\u30c9: cache.r6g.large\n       \u30ec\u30d7\u30ea\u30ab\u30ce\u30fc\u30c9:\n         - cache.r6g.large (AZ-b)\n         - cache.r6g.large (AZ-c)\n\n     \u30b7\u30e3\u30fc\u30c93\uff08\u30ad\u30e3\u30c3\u30b7\u30e5\u30c7\u30fc\u30bf\uff09:\n       \u30d7\u30e9\u30a4\u30de\u30ea\u30ce\u30fc\u30c9: cache.r6g.2xlarge\n       \u30ec\u30d7\u30ea\u30ab\u30ce\u30fc\u30c9:\n         - cache.r6g.2xlarge (AZ-a)\n         - cache.r6g.2xlarge (AZ-b)<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-43\">\u30aa\u30fc\u30c8\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\u8a2d\u5b9a<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>CloudWatch\u30a2\u30e9\u30fc\u30e0\u30d9\u30fc\u30b9\u306e\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   {\n     \"AutoScalingGroup\": {\n       \"ScalingPolicies\": [\n         {\n           \"PolicyName\": \"redis-scale-up\",\n           \"AdjustmentType\": \"ChangeInCapacity\",\n           \"ScalingAdjustment\": 1,\n           \"Cooldown\": 300,\n           \"MetricName\": \"DatabaseMemoryUsageCountedForEvictPercentage\",\n           \"Threshold\": 75.0,\n           \"ComparisonOperator\": \"GreaterThanThreshold\",\n           \"Period\": 300\n         }\n       ]\n     }\n   }<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u4e88\u6e2c\u7684\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\u306e\u5b9f\u88c5<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   def predict_scaling_needs():\n       cloudwatch = boto3.client('cloudwatch')\n\n       # \u904e\u53bb\u306e\u30e1\u30c8\u30ea\u30af\u30b9\u53d6\u5f97\n       response = cloudwatch.get_metric_data(\n           MetricDataQueries=[\n               {\n                   'Id': 'usage',\n                   'MetricStat': {\n                       'Metric': {\n                           'Namespace': 'AWS\/ElastiCache',\n                           'MetricName': 'CPUUtilization'\n                       },\n                       'Period': 3600,\n                       'Stat': 'Average'\n                   },\n                   'ReturnData': True\n               }\n           ],\n           StartTime=datetime.now() - timedelta(days=7),\n           EndTime=datetime.now()\n       )\n\n       # \u4e88\u6e2c\u30e2\u30c7\u30eb\u306e\u9069\u7528\n       forecast = analyze_usage_pattern(response['MetricDataResults'])\n\n       return forecast<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-44\">\u30de\u30a4\u30af\u30ed\u30b5\u30fc\u30d3\u30b9\u30a2\u30fc\u30ad\u30c6\u30af\u30c1\u30e3\u3067\u306e\u6d3b\u7528\u4e8b\u4f8b<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-45\">\u30b5\u30fc\u30d3\u30b9\u9593\u901a\u4fe1\u3067\u306eRedis\u6d3b\u7528<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30a4\u30d9\u30f3\u30c8\u30c9\u30ea\u30d6\u30f3\u901a\u4fe1\u306e\u5b9f\u88c5<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   # Redis\u30d1\u30d6\/\u30b5\u30d6\u3092\u4f7f\u7528\u3057\u305f\u30b5\u30fc\u30d3\u30b9\u9593\u901a\u4fe1\n   class EventBus:\n       def __init__(self):\n           self.redis = Redis(\n               host='redis-cluster.xxxxx.ng.0001.apne1.cache.amazonaws.com',\n               port=6379,\n               decode_responses=True\n           )\n           self.pubsub = self.redis.pubsub()\n\n       def publish_event(self, channel, event_data):\n           self.redis.publish(channel, json.dumps(event_data))\n\n       def subscribe_to_events(self, channel, callback):\n           self.pubsub.subscribe(**{channel: callback})\n           self.pubsub.run_in_thread()<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u5206\u6563\u30ed\u30c3\u30af\u306e\u5b9f\u88c5<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   class DistributedLock:\n       def __init__(self, redis_client, lock_name, expire_seconds=10):\n           self.redis = redis_client\n           self.lock_name = lock_name\n           self.expire_seconds = expire_seconds\n\n       def acquire(self):\n           lock_value = str(uuid.uuid4())\n           acquired = self.redis.set(\n               self.lock_name,\n               lock_value,\n               nx=True,\n               ex=self.expire_seconds\n           )\n           return acquired, lock_value\n\n       def release(self, lock_value):\n           script = \"\"\"\n           if redis.call(\"get\", KEYS[1]) == ARGV[1] then\n               return redis.call(\"del\", KEYS[1])\n           else\n               return 0\n           end\n           \"\"\"\n           self.redis.eval(script, 1, self.lock_name, lock_value)<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-46\">\u969c\u5bb3\u5bfe\u5fdc\u3068\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u30ea\u30ab\u30d0\u30ea\u306e\u5b9f\u8df5\u77e5\u8b58<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-47\">\u969c\u5bb3\u691c\u77e5\u3068\u81ea\u52d5\u5fa9\u65e7<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30d8\u30eb\u30b9\u30c1\u30a7\u30c3\u30af\u306e\u5b9f\u88c5<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   class RedisHealthCheck:\n       def __init__(self, redis_client):\n           self.redis = redis_client\n\n       def check_health(self):\n           try:\n               # \u57fa\u672c\u7684\u306a\u63a5\u7d9a\u78ba\u8a8d\n               self.redis.ping()\n\n               # \u30ec\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u72b6\u614b\u78ba\u8a8d\n               replication_info = self.redis.info('replication')\n\n               # \u30e1\u30e2\u30ea\u4f7f\u7528\u72b6\u6cc1\u78ba\u8a8d\n               memory_info = self.redis.info('memory')\n\n               return {\n                   'status': 'healthy',\n                   'replication_lag': replication_info.get('master_last_io_seconds_ago'),\n                   'used_memory_percent': (\n                       memory_info.get('used_memory') \/ \n                       memory_info.get('total_system_memory') * 100\n                   )\n               }\n           except Exception as e:\n               return {\n                   'status': 'unhealthy',\n                   'error': str(e)\n               }<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u81ea\u52d5\u5fa9\u65e7\u624b\u9806<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   \u5fa9\u65e7\u30d5\u30ed\u30fc:\n     1. \u521d\u671f\u8a3a\u65ad:\n        - \u63a5\u7d9a\u6027\u78ba\u8a8d\n        - \u30ec\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u72b6\u614b\u78ba\u8a8d\n        - \u30e1\u30e2\u30ea\u4f7f\u7528\u7387\u78ba\u8a8d\n\n     2. \u81ea\u52d5\u5fa9\u65e7\u30a2\u30af\u30b7\u30e7\u30f3:\n        - \u30e1\u30e2\u30ea\u5727\u8feb\u6642:\n          \u2514\u2500\u2500 \u53e4\u3044\u30ad\u30fc\u306e\u81ea\u52d5\u524a\u9664\n        - \u30ec\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u9045\u5ef6\u6642:\n          \u2514\u2500\u2500 \u30ec\u30d7\u30ea\u30ab\u306e\u518d\u540c\u671f\n        - \u30ce\u30fc\u30c9\u969c\u5bb3\u6642:\n          \u2514\u2500\u2500 \u30d5\u30a7\u30a4\u30eb\u30aa\u30fc\u30d0\u30fc\u30c8\u30ea\u30ac\u30fc\n\n     3. \u901a\u77e5\u3068\u8a18\u9332:\n        - CloudWatch\u30a2\u30e9\u30fc\u30e0\u767a\u5831\n        - SNS\u30c8\u30d4\u30c3\u30af\u901a\u77e5\n        - \u969c\u5bb3\u30ed\u30b0\u306e\u4fdd\u5b58<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-48\">\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u3068\u30ea\u30ab\u30d0\u30ea\u6226\u7565<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u81ea\u52d5\u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u306e\u8a2d\u5b9a<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   {\n     \"BackupConfiguration\": {\n       \"SnapshotRetentionLimit\": 7,\n       \"SnapshotWindow\": \"00:00-03:00\",\n       \"AutomaticFailover\": \"enabled\",\n       \"PreferredMaintenanceWindow\": \"sun:03:00-sun:04:00\"\n     }\n   }<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30ea\u30ab\u30d0\u30ea\u624b\u9806\u306e\u81ea\u52d5\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   def automated_recovery(cluster_id, snapshot_id):\n       elasticache = boto3.client('elasticache')\n\n       try:\n           # \u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u304b\u3089\u306e\u5fa9\u5143\n           response = elasticache.restore_snapshot(\n               SnapshotName=snapshot_id,\n               TargetReplicationGroupId=f\"{cluster_id}-restored\"\n           )\n\n           # \u5fa9\u5143\u5f8c\u306e\u691c\u8a3c\n           verify_restoration(response['ReplicationGroup'])\n\n           # DNS\u30ec\u30b3\u30fc\u30c9\u306e\u66f4\u65b0\n           update_dns_records(\n               old_endpoint=f\"{cluster_id}.xxxxx.cache.amazonaws.com\",\n               new_endpoint=f\"{cluster_id}-restored.xxxxx.cache.amazonaws.com\"\n           )\n\n           return True\n\n       except Exception as e:\n           logger.error(f\"Recovery failed: {e}\")\n           return False<\/pre>\n\n\n\n<p>\u5927\u898f\u6a21\u30b7\u30b9\u30c6\u30e0\u3067\u306eRedis\u904b\u7528\u3067\u306f\u3001\u3053\u308c\u3089\u306e\u69cb\u6210\u8981\u7d20\u3092\u9069\u5207\u306b\u7d44\u307f\u5408\u308f\u305b\u3001\u30b7\u30b9\u30c6\u30e0\u306e\u8981\u4ef6\u306b\u5fdc\u3058\u3066\u6700\u9069\u5316\u3059\u308b\u3053\u3068\u304c\u91cd\u8981\u3067\u3059\u3002\u6b21\u306e\u30bb\u30af\u30b7\u30e7\u30f3\u3067\u306f\u3001\u3053\u308c\u3089\u306e\u69cb\u6210\u3092\u7dad\u6301\u3057\u306a\u304c\u3089\u3001\u904b\u7528\u30b3\u30b9\u30c8\u3092\u6700\u9069\u5316\u3059\u308b\u65b9\u6cd5\u306b\u3064\u3044\u3066\u89e3\u8aac\u3057\u3066\u3044\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"i-49\">\u904b\u7528\u30b3\u30b9\u30c8\u6700\u9069\u5316\u3068\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-50\">\u30b3\u30b9\u30c8\u524a\u6e1b\u3092\u5b9f\u73fe\u3059\u308b\u5177\u4f53\u7684\u306a\u8a2d\u5b9a\u3068\u904b\u7528\u65b9\u6cd5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-51\">\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u30b3\u30b9\u30c8\u306e\u6700\u9069\u5316\u6226\u7565<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u30bf\u30a4\u30d7\u306e\u6700\u9069\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   \u30b3\u30b9\u30c8\u6700\u9069\u5316\u30de\u30c8\u30ea\u30c3\u30af\u30b9:\n     \u5c0f\u898f\u6a21\u74b0\u5883\uff08\u30c7\u30fc\u30bf &lt; 5GB\uff09:\n       \u63a8\u5968: cache.t4g.micro\n       \u30b3\u30b9\u30c8\u524a\u6e1b\u52b9\u679c: \u6700\u592770%\n       \u9069\u7528\u6761\u4ef6:\n         - \u30d0\u30fc\u30b9\u30c8\u53ef\u80fd\u306a\u30ef\u30fc\u30af\u30ed\u30fc\u30c9\n         - \u958b\u767a\/\u30c6\u30b9\u30c8\u74b0\u5883\n\n     \u4e2d\u898f\u6a21\u74b0\u5883\uff085GB - 25GB\uff09:\n       \u63a8\u5968: cache.r6g.large\n       \u30b3\u30b9\u30c8\u524a\u6e1b\u52b9\u679c: 40-50%\n       \u9069\u7528\u6761\u4ef6:\n         - \u5b89\u5b9a\u3057\u305f\u30ef\u30fc\u30af\u30ed\u30fc\u30c9\n         - \u30d7\u30ed\u30c0\u30af\u30b7\u30e7\u30f3\u74b0\u5883\n\n     \u5927\u898f\u6a21\u74b0\u5883\uff0825GB\u4ee5\u4e0a\uff09:\n       \u63a8\u5968: cache.r6g.2xlarge + \u30b7\u30e3\u30fc\u30c7\u30a3\u30f3\u30b0\n       \u30b3\u30b9\u30c8\u524a\u6e1b\u52b9\u679c: 30-40%\n       \u9069\u7528\u6761\u4ef6:\n         - \u9ad8\u30c8\u30e9\u30d5\u30a3\u30c3\u30af\n         - \u5927\u898f\u6a21\u30c7\u30fc\u30bf\u30bb\u30c3\u30c8<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u4e88\u7d04\u30a4\u30f3\u30b9\u30bf\u30f3\u30b9\u306e\u6226\u7565\u7684\u6d3b\u7528<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   def analyze_ri_opportunities():\n       # \u4f7f\u7528\u30d1\u30bf\u30fc\u30f3\u5206\u6790\n       usage_patterns = analyze_usage_history()\n\n       recommendations = []\n       for pattern in usage_patterns:\n           if pattern['stability_score'] &gt; 0.8:  # \u5b89\u5b9a\u7684\u306a\u4f7f\u7528\n               if pattern['duration_months'] &gt;= 12:\n                   recommendations.append({\n                       'instance_type': pattern['instance_type'],\n                       'commitment': '1-year',\n                       'payment_option': 'partial_upfront',\n                       'estimated_savings': calculate_savings(pattern, '1-year')\n                   })\n           elif pattern['stability_score'] &gt; 0.6:  # \u3084\u3084\u5909\u52d5\u306e\u3042\u308b\u4f7f\u7528\n               recommendations.append({\n                   'instance_type': pattern['instance_type'],\n                   'commitment': 'no_upfront',\n                   'payment_option': 'convertible',\n                   'estimated_savings': calculate_savings(pattern, 'convertible')\n               })\n\n       return recommendations<\/pre>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-52\">\u30c7\u30fc\u30bf\u8ee2\u9001\u30b3\u30b9\u30c8\u306e\u6700\u9069\u5316<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30ea\u30fc\u30b8\u30e7\u30f3\u9593\u8ee2\u9001\u306e\u6700\u9069\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   def optimize_transfer_costs():\n       # \u30ea\u30fc\u30b8\u30e7\u30f3\u9593\u306e\u30c7\u30fc\u30bf\u8ee2\u9001\u91cf\u306e\u5206\u6790\n       transfer_stats = analyze_transfer_patterns()\n\n       optimizations = []\n       for stat in transfer_stats:\n           if stat['monthly_transfer_gb'] &gt; 1000:\n               optimizations.append({\n                   'recommendation': '\u30ec\u30d7\u30ea\u30ab\u3092\u30ed\u30fc\u30ab\u30eb\u30ea\u30fc\u30b8\u30e7\u30f3\u306b\u914d\u7f6e',\n                   'estimated_savings': calculate_transfer_savings(stat),\n                   'implementation_steps': [\n                       '\u30ec\u30d7\u30ea\u30ab\u306e\u4f5c\u6210',\n                       '\u30ed\u30fc\u30ab\u30eb\u30a8\u30f3\u30c9\u30dd\u30a4\u30f3\u30c8\u306e\u8a2d\u5b9a',\n                       '\u30a2\u30d7\u30ea\u30b1\u30fc\u30b7\u30e7\u30f3\u306e\u66f4\u65b0'\n                   ]\n               })\n\n       return optimizations<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-53\">\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3068\u30dc\u30c8\u30eb\u30cd\u30c3\u30af\u7279\u5b9a\u306e\u624b\u6cd5<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-54\">\u5305\u62ec\u7684\u306a\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u6226\u7565<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u30ab\u30b9\u30bf\u30e0\u30e1\u30c8\u30ea\u30af\u30b9\u306e\u5b9f\u88c5<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   class RedisPerformanceMonitor:\n       def __init__(self, redis_client):\n           self.redis = redis_client\n           self.cloudwatch = boto3.client('cloudwatch')\n\n       def collect_metrics(self):\n           metrics = {\n               'command_stats': self.redis.info('commandstats'),\n               'memory_stats': self.redis.info('memory'),\n               'keyspace_stats': self.redis.info('keyspace')\n           }\n\n           # \u30e1\u30c8\u30ea\u30af\u30b9\u306e\u96c6\u8a08\u3068\u9001\u4fe1\n           self.send_to_cloudwatch(self.aggregate_metrics(metrics))\n\n       def aggregate_metrics(self, metrics):\n           return {\n               'commands_per_second': self.calculate_command_rate(metrics['command_stats']),\n               'memory_fragmentation_ratio': metrics['memory_stats']['mem_fragmentation_ratio'],\n               'key_hit_rate': self.calculate_hit_rate(metrics['keyspace_stats'])\n           }\n\n       def send_to_cloudwatch(self, aggregated_metrics):\n           for metric_name, value in aggregated_metrics.items():\n               self.cloudwatch.put_metric_data(\n                   Namespace='Redis\/CustomMetrics',\n                   MetricData=[{\n                       'MetricName': metric_name,\n                       'Value': value,\n                       'Unit': 'Count',\n                       'Dimensions': [{\n                           'Name': 'ClusterId',\n                           'Value': 'prod-redis-001'\n                       }]\n                   }]\n               )<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u306e\u4f5c\u6210<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   \u30c0\u30c3\u30b7\u30e5\u30dc\u30fc\u30c9\u69cb\u6210:\n     \u57fa\u672c\u30e1\u30c8\u30ea\u30af\u30b9:\n       - CPU\u4f7f\u7528\u7387\n       - \u30e1\u30e2\u30ea\u4f7f\u7528\u7387\n       - \u30b3\u30cd\u30af\u30b7\u30e7\u30f3\u6570\n       - \u30b3\u30de\u30f3\u30c9\u5b9f\u884c\u7387\n\n     \u8a73\u7d30\u30e1\u30c8\u30ea\u30af\u30b9:\n       - \u30ad\u30e3\u30c3\u30b7\u30e5\u30d2\u30c3\u30c8\u7387\n       - \u30ec\u30a4\u30c6\u30f3\u30b7\u30fc\u5206\u5e03\n       - \u30e1\u30e2\u30ea\u65ad\u7247\u5316\u7387\n       - \u30cd\u30c3\u30c8\u30ef\u30fc\u30af\u30b9\u30eb\u30fc\u30d7\u30c3\u30c8\n\n     \u30a2\u30e9\u30fc\u30c8\u8a2d\u5b9a:\n       CPU\u4f7f\u7528\u7387:\n         \u8b66\u544a: 70%\n         \u91cd\u5927: 85%\n       \u30e1\u30e2\u30ea\u4f7f\u7528\u7387:\n         \u8b66\u544a: 75%\n         \u91cd\u5927: 90%\n       \u30ec\u30a4\u30c6\u30f3\u30b7\u30fc:\n         \u8b66\u544a: 1ms\n         \u91cd\u5927: 5ms<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"i-55\">\u81ea\u52d5\u5316\u306b\u3088\u308b\u904b\u7528\u52b9\u7387\u5316\u306e\u5b9f\u88c5\u4f8b<\/h3>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"i-56\">\u904b\u7528\u81ea\u52d5\u5316\u30b9\u30af\u30ea\u30d7\u30c8<\/h4>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>\u5b9a\u671f\u30e1\u30f3\u30c6\u30ca\u30f3\u30b9\u81ea\u52d5\u5316<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   class RedisMaintenanceAutomation:\n       def __init__(self, redis_client):\n           self.redis = redis_client\n\n       def run_maintenance(self):\n           # \u30e1\u30e2\u30ea\u6700\u9069\u5316\n           self.optimize_memory()\n\n           # \u30ad\u30fc\u6574\u7406\n           self.cleanup_expired_keys()\n\n           # \u30d0\u30c3\u30af\u30a2\u30c3\u30d7\u5b9f\u884c\n           self.trigger_backup()\n\n       def optimize_memory(self):\n           memory_info = self.redis.info('memory')\n           if memory_info['mem_fragmentation_ratio'] &gt; 1.5:\n               # \u30e1\u30e2\u30ea\u65ad\u7247\u5316\u306e\u89e3\u6d88\n               self.redis.config_set('activedefrag', 'yes')\n\n       def cleanup_expired_keys(self):\n           # TTL\u5207\u308c\u306e\u30ad\u30fc\u3092\u524a\u9664\n           cursor = 0\n           while True:\n               cursor, keys = self.redis.scan(\n                   cursor,\n                   match='*',\n                   count=1000\n               )\n               for key in keys:\n                   if self.redis.ttl(key) &lt; 0:\n                       self.redis.delete(key)\n\n               if cursor == 0:\n                   break\n\n       def trigger_backup(self):\n           # ElastiCache\u30b9\u30ca\u30c3\u30d7\u30b7\u30e7\u30c3\u30c8\u306e\u4f5c\u6210\n           elasticache = boto3.client('elasticache')\n           elasticache.create_snapshot(\n               SnapshotName=f\"auto-backup-{datetime.now().strftime('%Y%m%d-%H%M')}\",\n               ReplicationGroupId='prod-redis-001'\n           )<\/pre>\n\n\n\n<ol start=\"2\" class=\"wp-block-list\">\n<li><strong>\u81ea\u52d5\u30b9\u30b1\u30fc\u30ea\u30f3\u30b0\u306e\u5b9f\u88c5<\/strong><\/li>\n<\/ol>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">   def implement_auto_scaling():\n       # Auto Scaling\u30dd\u30ea\u30b7\u30fc\u306e\u8a2d\u5b9a\n       autoscaling = boto3.client('application-autoscaling')\n\n       # \u30b9\u30b1\u30fc\u30eb\u30a2\u30a6\u30c8\u30dd\u30ea\u30b7\u30fc\n       autoscaling.put_scaling_policy(\n           PolicyName='redis-scale-out',\n           ServiceNamespace='elasticache',\n           ResourceId='replication-group\/prod-redis-001',\n           ScalableDimension='elasticache:replication-group:NodeGroups',\n           PolicyType='TargetTrackingScaling',\n           TargetTrackingScalingPolicyConfiguration={\n               'TargetValue': 70.0,\n               'PredefinedMetricSpecification': {\n                   'PredefinedMetricType': 'ElastiCachePrimaryEngineCPUUtilization'\n               },\n               'ScaleOutCooldown': 300,\n               'ScaleInCooldown': 600\n           }\n       )<\/pre>\n\n\n\n<p>\u3053\u308c\u3089\u306e\u6700\u9069\u5316\u3068\u81ea\u52d5\u5316\u306e\u65bd\u7b56\u3092\u7d44\u307f\u5408\u308f\u305b\u308b\u3053\u3068\u3067\u3001\u904b\u7528\u30b3\u30b9\u30c8\u3092\u524a\u6e1b\u3057\u306a\u304c\u3089\u30d1\u30d5\u30a9\u30fc\u30de\u30f3\u30b9\u3092\u7dad\u6301\u30fb\u5411\u4e0a\u3055\u305b\u308b\u3053\u3068\u304c\u53ef\u80fd\u3067\u3059\u3002\u91cd\u8981\u306a\u306e\u306f\u3001\u30b7\u30b9\u30c6\u30e0\u306e\u8981\u4ef6\u3068\u5236\u7d04\u3092\u5341\u5206\u306b\u7406\u89e3\u3057\u305f\u4e0a\u3067\u3001\u9069\u5207\u306a\u6226\u7565\u3092\u9078\u629e\u3057\u3001\u7d99\u7d9a\u7684\u306a\u30e2\u30cb\u30bf\u30ea\u30f3\u30b0\u3068\u6539\u5584\u3092\u884c\u3046\u3053\u3068\u3067\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Warning: Undefined array key &#8220;is_admin&#8221; in \/home\/xs392991\/dexall.co.jp\/public_html\/articles\/wp-content\/themes\/ &#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[12],"tags":[],"class_list":{"0":"post-3297","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-php","7":"nothumb"},"_links":{"self":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/3297","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3297"}],"version-history":[{"count":2,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/3297\/revisions"}],"predecessor-version":[{"id":3299,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=\/wp\/v2\/posts\/3297\/revisions\/3299"}],"wp:attachment":[{"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3297"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3297"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dexall.co.jp\/articles\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3297"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}