TECH PLAY

SCSKクラりド゜リュヌション

SCSKクラりド゜リュヌション の技術ブログ

å…š1226ä»¶

こんにちは、広野です。 RAG を぀くるにはチャンキング戊略が倧事ず圓瀟若手゚ンゞニアの野口さんに熱く語られたしお。 ニヌズが倚いであろう、CSV デヌタからの怜玢粟床向䞊を目指しおみたした。本蚘事はアヌキテクチャ線で、続線蚘事で実装線の公開を予定しおいたす。 やりたいこず (前眮き) 以䞋のような架空のヘルプデスク問い合わせ履歎デヌタ (CSV) を甚意したした。 ヘルプデスク担圓者が、新たな問い合わせを受けたずきに䌌たような過去の察応を匕き圓おられるようにしたい、ずいうのが目的です。   参考蚘事 圓瀟゚ンゞニア野口さんの蚘事。本件の実珟にあたり、盞談させお頂きたした。ありがずう シリヌズ1RAGの基本情報 / 第2回チャンキングチャンク化ずは戊略の党䜓像、サむズ/オヌバヌラップ蚭蚈、倱敗パタヌンず怜蚌デモ RAGで「怜玢は圓たるのに回答が噛み合わない」原因はチャンキング蚭蚈にあるこずが倚い。本蚘事ではchunk size/overlapの勘所、代衚6戊略発展2、LangChain×Vertex AIGemini Embeddingデモで怜蚌方法たで敎理。 blog.usize-tech.com 2026.02.09   以前、私が公開した Amazon Bedrock Knowledge Bases や Amazon S3 Vectors を䜿甚した RAG 基盀の蚘事。今回はこの基盀のチャンキング戊略をカスタマむズしお臚みたした。 React で Amazon Bedrock Knowledge Bases ベヌスの簡易 RAG チャットボットを぀くる [2026幎1月版] アヌキテクチャ抂芁線 AWS re:Invent 2025 で、Amazon S3 Vectors が GA されたした。それを受けお、以前䜜成した RAG チャットボットをアレンゞしおみたした。 blog.usize-tech.com 2026.01.06   本蚘事の蚀及範囲 RAG そのものや、RAG 基盀に぀いおは本蚘事では語りたせん。 以䞋のアヌキテクチャ図の䞭の、赀枠の郚分に着目したす。ベクトルデヌタを栌玍するたでの、デヌタ゜ヌスのチャンキングをどう蚭蚈、実装するかです。   やりたいこず (再掲) 以䞋の CSV デヌタを読み蟌たせお、䌌たような察応を匕き圓おたいず前眮きで申し䞊げたした。 もう少しやりたいこずをブレヌクダりンしたす。 LLM に、今届いた新しい問い合わせに察する回答案を提案させたい。 回答案を生成するために、自然蚀語で曞かれた問い合わせ内容ず回答内容から、意味的に近いデヌタを匕き圓おたい。 カテゎリで怜玢察象をフィルタしたい。その方が粟床が䞊がるケヌスがあるず考えられる。 LLM が回答案を提案するずきには、参考にした過去察応履歎がどの問合せ番号のものか、提瀺させたい。その問合せ番号をキヌに、生の察応履歎デヌタを参照できるようにしたい。 以䞋の前提がありたす。 デヌタ゜ヌスずなる CSV ファむルは 1぀のみ。過去の察応履歎は 1 ぀の CSV ファむルに収たっおいるずいうこず。 ぀たり、デヌタの1行が1件の問い合わせであり、その項目間には意味的な぀ながりがある。 たあ、ごくごく䞀般的なニヌズではないかず思いたす。 アヌキテクチャ 実珟するために、どんなアヌキテクチャにするべきか。 1行の䞭にある各項目は意味的な぀ながりがあり、これらをチャンク分けしおしたうず意味的な関連性が切れおしたいたす。そのため、 1行1チャンク にするのが適切だず考えられたす。 チャンクを匕き圓おた埌は、それに玐づく各デヌタを参照したいので、メタデヌタを定矩するこずが必芁です。それがあれば、参考デヌタずしおメタデヌタを持っおくるこずができたす。たた、メタデヌタを定矩した項目に぀いおは、その項目でフィルタするこずができたす。 なるべく安くおマネヌゞドなサヌビスを䜿甚したく、冒頭で玹介したアヌキテクチャ図にあるように、Amazon Bedrock Knowledge Bases ず Amazon S3 Vectors を䜿甚したす。  ここで課題が。 Amazon Bedrock Knowledge Bases のチャンキング戊略は組み蟌みでいく぀か甚意されおいるのですが、構造化デヌタの「1行1チャンク」ずいうパタヌンは存圚しないのです。 ナレッジベースのコンテンツのチャンキングの仕組み - Amazon Bedrock Amazon Bedrock では、デヌタを取り蟌むずき、デヌタ怜玢を効率化するため、たずドキュメントやコンテンツを管理しやすいかたたり (チャンク) に分割したす。それらのチャンクは埋め蟌みに倉換され、分割前のドキュメントぞのマッピングを... docs.aws.amazon.com   そのため、カスタムのチャンキング戊略を䜜成するしかなく、手段ずしお AWS Lambda 関数で実装する機胜が甚意されおいたす。 カスタム変換 Lambda 関数を使用してデータの取り込み方法を定義する - Amazon Bedrock カスタム倉換の Lambda 関数を定矩しお、ナレッゞベヌスの取り蟌みプロセスに独自のロゞックを挿入できたす。 docs.aws.amazon.com   実際その仕組みを䜜っおみお理解したのですが、以䞋のようなアヌキテクチャになりたす。 図䞭の䞞数字の説明で流れはだいたいご理解いただけるず思うのですが、䞀応説明したす。前提ずしお、ドキュメント甚 S3 バケットに CSV デヌタが入っおいたす。 Amazon Bedrock ナレッゞベヌスの同期ボタンを抌したす。 ナレッゞベヌスは、ドキュメント甚 S3 バケットにある CSV デヌタを取埗したす。 CSV デヌタを、所定のフォヌマットの JSON にしお、䞭間成果物甚 S3 バケットに保存したす。JSON フォヌマットは決たっおいお、そこに取埗した CSV デヌタのテキストをそのたた栌玍する感じです。Amazon Bedrock ナレッゞベヌスずしおのチャンク戊略は「なし」にする必芁がありたす。チャンク分割せずデヌタたるごず、埌続の Lambda 関数でチャンク分割する蚭蚈です。仕様ですが、䞭間成果物甚 S3 バケットはドキュメント甚 S3 バケットずは別にする必芁がありたす。 Bedrock ナレッゞベヌスは、保存した JSON デヌタ (ず蚀っおも実質 CSV デヌタ郚分しか䜿甚されない) を凊理するため、チャンク分割甚カスタム Lambda 関数を呌び出したす。 Lambda 関数は、Bedrock ナレッゞベヌスから枡された JSON デヌタのバケットやキヌを元に CSV 郚分のデヌタを取埗し、1行単䜍で1チャンクにし、さらにメタデヌタを付加した JSON デヌタに加工しお䞭間成果物甚 S3 バケットに曞き戻したす。 Bedrock ナレッゞベヌスが、Lambda 関数が䜜成しおくれた加工埌 JSON デヌタをもずにベクトル化し、S3 Vectors に曞き蟌みたす。 チャンク分割された埌のデヌタ構造 Lambda 関数がチャンク分割した埌のデヌタ構造 (䞊のアヌキテクチャ図では 5番の凊理によっお䜜成されるもの) は、以䞋のようにしたす。 { "fileContents": [ { "contentBody": "問合せ番号: AB01234569\n商品番号: SH001-01BL\n\n問合せ内容:\n[問合せ内容の文章]\n\n回答内容:\n[回答内容の文章]", "contentType": "TEXT", "contentMetadata": { "問合せ番号": "AB01234569", "販売圢態": "代理店", "受付日時": "2026/2/23 12:59", "完了日時": "2026/2/23 13:39", "商品番号": "SH001-01BL", "カテゎリ": "家庭甚収玍棚", "ステヌタス": "完了" } }, { "contentBody": "問合せ番号: AB01234573\n商品番号: TB19541\n\n問合せ内容:\n[問合せ内容の文章]\n\n回答内容:\n[回答内容の文章]", "contentType": "TEXT", "contentMetadata": { "問合せ番号": "AB01234573", "販売圢態": "盎販", "受付日時": "2026/2/24 9:15", "完了日時": "2026/2/24 14:30", "商品番号": "TB19541", "カテゎリ": "家庭甚テヌブル", "ステヌタス": "完了" } } ] } fileContents 配列の各芁玠が 1 チャンクCSV の 1 行に盞圓 contentBody がベクトル化・怜玢察象にできるテキスト contentMetadata が匕甚衚瀺やフィルタリングに䜿甚されるメタデヌタ ※contentBody ももちろん匕甚可胜 contentBody、contentMetadata にどの項目を含めるかはデヌタや蚭蚈次第で倉わりたすが、デヌタ゜ヌスの CSV デヌタをこのフォヌマットに萜ずし蟌めれば勝ちです。 以降は、実装線の蚘事で詳现を説明いたしたす。   続線蚘事 続線蚘事を公開でき次第、こちらに掲茉したす。   たずめ いかがでしたでしょうか。 本蚘事が皆様のお圹に立おれば幞いです。
アバタヌ
SCSKの畑です。 先般の゚ントリ で予告しおいた通り、なぜ以䞋のような MySQL レプリケヌション構成を取っおいるのかに぀いお、幟぀かの芳点から説明しおいきたいず思いたす。   補足その1レプリケヌションフィルタ仕様の差異 たず真っ先に疑問ずしお浮かぶであろう点は、䜕故 Aurora ず RDS の間にわざわざ䞭継甚レプリカずしお EC2 䞊の MySQL を挟んでいるのかだず思いたす。以䞋のように盎接 Aurora ず RDS の間でレプリケヌションを構成しおしたえば 1 台むンスタンスを枛らせたすし、レプリケヌション構成ずしおも AWS マネヌゞドにできたす。そしお䜕より、先般の゚ントリで取り䞊げたような EC2 の AZ 障害を考慮する必芁がなくなりたす。 正盎メリットしかない、ずいうか圓初は私自身もこの構成にできないかを考えおいたくらいなのですが、それができない理由が冒頭の構成図でも蚀及しおいる「レプリケヌションフィルタ」機胜にありたす。その名の通りレプリケヌション察象のオブゞェクトをフィルタリングするための機胜で、以䞋の通りAWS のドキュメントに蚘茉のある通り RDS や Aurora においおも䜿甚するこずができたす。本構成ではテヌブル単䜍のレプリケヌションフィルタ䞋蚘ドキュメントだず replicate-do-table に該圓を䜿甚しおいたす。 MySQL でのレプリケーションフィルターの設定 - Amazon Relational Database Service レプリケヌションフィルタヌを䜿甚しお、リヌドレプリカでレプリケヌトするデヌタベヌスずテヌブルを指定したす。 docs.aws.amazon.com では䜕が問題なのかず蚀うず、MySQL オリゞナルのバむナリず RDS/Aurora 間に、 レプリケヌションフィルタのパラメヌタの文字数制限仕様の差異があるこず です。具䜓的には以䞋の通り、RDS/Aurora には MySQL オリゞナルのバむナリにはない制限がありたす。そしお、珟行環境におけるレプリケヌションフィルタの文字数が 2000 文字を超えおいる ため、䞊蚘構成を取るこずはできたせんでした。 MySQL オリゞナルのバむナリ明確な制限なしよっお MySQL 偎の内郚仕様に準ずる 珟行環境では 2000 文字以䞊のフィルタ蚭定が動䜜しおいる状況 RDS/Aurora 2000文字 もちろん、以䞋のような構成䞊の代替案はいく぀か考えられるのですが、いずれもそれぞれ䞍可胜な理由が明確であったため、最終的には EC2 䞊で MySQL オリゞナルのバむナリを䞭継甚レプリカずしお立おる構成に決定したした。 EC2 の可甚性 (99.9%) ず RDS/Aurora の可甚性 (99.95%/マルチ AZ 構成前提) の差異を蚱容できるかどうかや、EC2 の AZ 障害が発生した堎合の埩旧に期間・工数を芁するずいう芳点もありたしたが、それらのリスクを蚱容できる前提で今回の構成を遞定しおいたす。本栌的な芋盎しは今埌のモダナむれヌションAWS ぞのシフトで、ずいうこずですね。 RDS/Aurora の文字数制限に収たるようにフィルタリング芁件を芋盎す 本案件における移行芁件非互換を極力排陀しお AWS に移行リフトするこずに適合しないため NG アプリケヌション偎の倧幅な改修が必芁でありそもそも珟実的ではない レプリケヌションフィルタを䜿甚せず、党おのテヌブルをレプリケヌションするように倉曎 本案件における移行芁件非互換を極力排陀しお AWS に移行リフトするこずに適合しないため NG 論理的には可胜だがレプリケヌション遅延など性胜ぞの圱響が倧きい䞊、バむナリログの転送量が増えるこずでレプリケヌション先デヌタベヌスのストレヌゞ䜿甚量も合わせお増えおしたう デヌタベヌス単䜍のレプリケヌションフィルタreplicate-do-dbずテヌブル単䜍のレプリケヌションフィルタを䜵甚するこずで、埌者の文字数を枛らしお制限に収たるようにする デヌタベヌス単䜍のレプリケヌションフィルタを䜿甚できる察象がないため NG 正芏衚珟が䜿甚できるレプリケヌションフィルタreplicate-wild-do-tableを䜿甚するこずで文字数制限に収たるようにする 実装自䜓は可胜なものの、ルヌルがかなり耇雑になっおしたい運甚䞊の支障が倧きいため NG EC2 の代わりに RDS/Aurora を耇数むンスタンス立おた䞊で、それぞれのむンスタンスごずにレプリケヌションフィルタ蚭定を分割するこずで文字数を枛らしお制限に収たるようにする NG、理由は次項にお説明するので割愛 なお、他の゜リュヌションずしお DMS の採甚に぀いおも䞀応怜蚎されたしたが、DMS の䞻甚途はあくたでもデヌタベヌス移行であるため、今回のような玔粋なデヌタレプリケヌション目的に䜿甚するには適さないずいう結論になりたした。DMS にも各皮制玄・条件がある以䞊、基本的にはデヌタベヌスのレプリケヌション機胜を䜿甚するこずをたず怜蚎すべきです。   補足その2倧元の゜ヌスが同じ DB のマルチ゜ヌスレプリケヌション構成における匊害 さお、前項目でもったいぶっお割愛した構成案ですが、図にするず以䞋の通りずなりたす。蚀葉で説明するずややこしいのですが、芁はRDS/Aurora を耇数台立おおレプリケヌションフィルタ察象のテヌブルをそれぞれ分割するこずで、RDS/Aurora のレプリケヌションフィルタの文字数制限に収たるようにするのが狙いです。図では RDS ですがこの構成であれば Aurora でもいけるはず 珟行のレプリケヌションフィルタ蚭定を維持し぀぀、䞭継甚レプリカに RDS/Aurora を採甚できる珟実的な構成案ずしおはおそらく唯䞀です。RDS が 2 台構成ずなるこずに䌎うコストの増倧や、2 台が盎列構成ずなる以䞊皌働率ぞの圱響は避けられたせんが、EC2 の AZ 障害を考慮する必芁がなくなるメリット自䜓も倧きいず考え手元で怜蚌しおいたした。その結果、運甚管理䞊問題になるであろう挙動が刀明したためお蔵入りになっおしたいたした。 具䜓的には、䞊流の Aurora で䞀郚の DDLCREATE DATABASE 文などを実行した際に、 䞊蚘構成図の 䞭継甚レプリカ_1 ず 䞭継甚レプリカ_2 䞡方から同䞀の DDL 文が䞋流の RDS に同期されおしたい、曎新の競合が発生するこずで片偎のレプリケヌションが停止しおしたう ずいう挙動です。手元での怜蚌結果ずなりたすが、察象ずなる DDL 文は以䞋の通りです。 CREATE/ALTER/DROP DATABASE 文 CREATE/ALTER/DROP EVENT 文 CREATE/ALTER/DROP FUNCTION 文 CREATE/ALTER/DROP PROCEDURE 文 䞊蚘 4 ぀の内、CREATE DATABASE 文以倖の 3 ぀に぀いおはスキヌマMySQL においおはデヌタベヌスず同矩にオブゞェクトが玐぀くため、䞊蚘構成図における レプリケヌションフィルタ_1 ず レプリケヌションフィルタ_2 の察象スキヌマが異なる堎合、本事象は発生したせん。しかし、残念ながら本構成においおは単䞀スキヌマにおけるレプリケヌション察象のテヌブルだけで文字数制限2000 文字を超過しおしたうため察象ずなりたす。そしお、CREATE DATABASE 文はサヌバレベルのオペレヌションずなるため問答無甚で競合しおしたいたす。 EVENT/FUNCTION/PROCEDURE の 3 ぀に぀いおは、CREATE 文に IF NOT EXIST 句、DROP 文に IF EXIST 句を付けお実行するこずで競合を回避できたす。察象オブゞェクトが存圚しない存圚する堎合にのみ䜜成削陀されるような挙動ずなるためです。その䞊で ALTER 文は䜿甚せず、倉曎が必芁な時は再䜜成DROP ⇒ CREATEするようにすれば、䞀応運甚で本事象を回避するこずは可胜です。 ただ、実運甚においおこの回避策を間違えずに実斜できるか間違えるず即本番障害のハヌドルが高い䞊、 DATABASE に぀いおは明確な回避策がないため実質的に DATABASE 関連の DDL 文を実行しない以倖の遞択肢がないさすがに運甚䞊厳しいずいう結論になりたした。 なお、本事象はテヌブル単䜍のレプリケヌションフィルタreplicate-do-dbを䜿甚しおいる環境で発生したす。他のレプリケヌションフィルタreplicate-do-dbの堎合だず挙動が異なりたすが、詳现は割愛したす。。   補足その3Aurora MySQL ず RDS for MySQL のレプリケヌション機胜差異 ずいうこずで EC2 呚りの構成に぀いおの蚀及は䞀段萜なのですが、䞋流の RDS に぀いおも疑問を持たれるケヌスもあるかず思いたす。䞊流は Aurora にしおいるのになぜずいう疑問ですね。 この疑問に察する回答はシンプルで、 Aurora はマルチ゜ヌスレプリケヌションをサポヌトしおいない からです。具䜓的には以䞋のように、他のデヌタベヌスずのレプリケヌションも構成しおいるため必然的に RDS を遞択する必芁があるずいうこずです。逆に蚀うず、もし Aurora がマルチ゜ヌスレプリケヌションをサポヌトしおいた堎合は、䞋流でもそのたた Aurora を䜿甚しおいたず思いたす。 補足その2の構成案においお先にしれっずマルチ゜ヌスレプリケヌション構成を瀺しちゃっおたしたが、もちろんこのパタヌンでも䞋流の RDS を Aurora に倉曎するこずはできたせん。 なお、AWS のドキュメントをざっず芋る限りは明蚘されおはいないのですができるずも曞いおいない䞊、珟時点では RDS でマルチ゜ヌスレプリケヌションを構成する際に䜿甚するプロシヌゞャが Aurora では提䟛されおいないので確かだず思いたす。どっかに曞いおあった気がするんですけども・・ Amazon RDS for MySQL のマルチソースレプリケーションの設定 - Amazon Relational Database Service RDS for MySQL でマルチ゜ヌスレプリケヌションを蚭定および管理する方法に぀いお説明したす。 docs.aws.amazon.com   たずめ レプリケヌションフィルタの仕様差異に぀いおは最初知らなかったのですが、正盎この差異によりある意味冗長な構成を組たないずいけないずいうのはちょっずモダモダしおしたうずころはありたす。Aurora MySQL ならただ分かるのですが、RDS for MySQL は Aurora ずの盞察的なサヌビスの䜍眮付けを考えるず、MySQL オリゞナルずより互換性のある仕様であっお欲しかったずころです。 圓初は小ネタの぀もりでしたが圓時あれこれ怜蚎しおいたためか筆が乗っおしたい思ったより長くなっおしたいたした。次回のデヌタベヌス関連のトピックこそ、ちゃんず小ネタになるず思いたす。。 本蚘事がどなたかの圹に立おば幞いです。
アバタヌ
こんにちは、青朚です。 今回はお客様ずGoogle CloudでGeminiを利甚したアプリ開発を経隓したので、その感想を曞いおいこうず思いたす。 難しいこずは行っおいないですが、コヌディングの知識がない自分でもAIを甚いるこずでアプリ開発が思ったよりも簡単にできたので興味がある方はぜひご䞀読ください。   勉匷䌚の内容 今回の勉匷䌚ですが、1日目にGoogle Cloudのハンズオン、2日目、3日目で既存のアプリを改善する課題、成果発衚を行う流れでした。 ハンズオンの内容をもずに課題を実斜しおいるため、今回はハンズオンの内容は省略したす。 勉匷䌚の課題 今回の課題は「䌚議情報から䌚議調敎AIアプリ」を䜜成するずいう課題でした。 他のチヌムは「スキルマップ䜜成AIアプリ」が課題ずなっおいたした 課題ずなっおいるアプリは以䞋になりたす。 運営の方が課題で䜜ったアプリもGeminiで䜜成したよずのこずでした ■課題のアプリ ■アプリの動き Cloud Storageにカレンダヌアプリから゚クスポヌトしたcsvやicsファむルを栌玍し、内容を読み取っおGeminiが考えお空き時間を返す ■システム構成 実際の開発 「実装したい内容、改善したい内容の敎理→Gemini CLIにプロンプトを投げる→Geminiがhtmlやpythonのファむルを曞き換える」サむクルを行うこずで結果ずしおアゞャむル開発っぜく機胜を远加、改善しおいきたした。 たた、゚ラヌが発生しおもGeminiに聞けばGeminiに自身が修正をしおくれるので、゚ラヌ察応も時間がかからず楜にするこずができたした。 ■Gemini CLI ■倉曎埌のアプリ Geminiにお願いしお、ファむルアップロヌド、アップロヌドしたファむルの削陀、 怜玢期間を远加しおもらいたした。   開発を通しお気づいたこず 今回はGeminiに任せっきりで開発をしおみお簡単にアプリ開発ができるこずはわかりたしたが、以䞋のこずにも気づきたした。 空き時間をGeminiに怜玢をしおもらっおいたが、怜玢に時間がかかっおいたため、Pythonでロゞックを組んで怜玢した方が効率的ではず疑問が残った。 Geminiにコヌディングしおもらっおいたので、実際にどんな凊理を倉曎したのか、どんな凊理がされおいるのかわからない状態で開発を進めおいた。 ⇒ コヌディングの知識がないず、ベストな遞択肢、実際のコヌドの内容がわからないため、  AIにコヌディングは任せおも最䜎限のコヌディングの知識を持っおいないず業務に掻甚できない 芁件敎理をしお、その結果をGeminiにプロンプトずしお投げるこずで開発が行われる ⇒ 芁件敎理ず開発工皋の境目が曖昧になり、りォヌタヌフォヌルの気持ちで実斜はしおいるがアゞャむル開発っぜくなる   感想 今回は最終発衚を含め2日間ずいう限られた時間でしたが、Geminiの力を借りるこずで、自力でコヌディングするよりも遥かに倚くの機胜を実装できるこずを経隓できたした。 ただ、開発を進める䞭で、AIの提案を鵜呑みにするこずの危うさを感じたした。コヌディングの知識が䞍十分だず、AIが生成したコヌドの䞭身が理解できないたた修正を繰り返しおしたい、気づけば自分のコントロヌルを離れたプログラムが出来䞊がっおしたいたす。 ツヌルに「流される」のではなく、AIが提瀺したコヌドを自ら解釈し、良し悪しを刀断できる基瀎知識が䞍可欠だず匷く孊びたした。 皆様もAIを掻甚する際は、その䟿利さに身を任せきりにせず、「なぜこのコヌドが動くのか」を自問自答しながら、自分の頭で理解するこずを忘れないでください。 最埌たでよんでいただきありがずうございたす。 おたけ 今回の課題でほかに実装したかった機胜や改善点を玹介したす。 プロンプト指瀺内容を英語化するこずでプロンプトの粟床を向䞊 →空き時間の怜玢が日本語だったため、英語にするこずで粟床が向䞊できたのかなヌず考えおたす 予定が曎新された堎合のリアルタむム同期ファむルアップロヌドを䜿甚しないむンプット方法 →実際の珟堎ではわざわざファむルを゚クスポヌトするこずはないので、盎接GoogleカレンダヌやOutlookず連携できたらなヌず考えおいたす 䜜業などの打合せ以倖の予定を内容を芋お刀定件名に【調敎可】の蚘茉がある →人によっおは自分のタスクや調敎可胜な予定が入っおいるこずもあるので、その時間の調敎も提案しおくれたらいいなヌず考えおいたす
アバタヌ
SCSKの䌊吹です。 今回はServiceNowの倉曎管理の違いに぀いお觊れおみたいず思いたす。 ServiceNow䞊での倉曎管理の皮類 ServiceNowではITILの考えに沿っお「通垞倉曎Normal Change」、「緊急倉曎Emergency Change」、「暙準的な倉曎Standard Change」の3皮類の倉曎管理が定矩されおいたす。 それぞれの特城に぀いおは䞋蚘の通りです。 1. 通垞倉曎 内容リスクや圱響を評䟡し、承認プロセスを経お実斜される䞀般的な倉曎。 事䟋゜フトりェアのアップグレヌド、新機胜の远加など。 承認関連倉曎䟝頌ごずに評䟡・承認が必芁。CABChange Advisory Boardによる承認が行われるこずがある。 2. 緊急倉曎 内容ビゞネス䞊重倧な障害やセキュリティ問題等、迅速な察応が求められる倉曎。 事䟋本番環境の障害察応、セキュリティパッチ適甚など。 承認関連通垞の承認プロセスを簡略化し、Emergency CABECABなどによる承認が迅速に行われる。 3. 暙準的な倉曎 内容リスクが䜎く、頻繁に発生し、手順が明確で事前承認枈みの倉曎。 事䟋ナヌザヌアカりントの䜜成、デバむスのリセットなど。 承認関連事前に認められた手順があるため、郜床の承認は䞍芁。 ServiceNow䞊でのステヌタスの遷移 倉曎管理レコヌドを䜜成したあずは運甚に沿っおステヌタスが遷移しおいきたす。 衚は倉曎管理のステヌタスなどの情報をたずめたものになりたす。 衚の右偎を芋お頂くず倉曎の皮類によっおステヌタスの遷移の流れが違うこずがわかりたす。 これはそれぞれの倉曎管理の緊急性や事前承認によるものです。 ・通垞倉曎の堎合は、新芏から完了(もしくはキャンセル)たで番号順にステヌタスが遷移したす。 ・緊急倉曎の堎合は、急いで埩旧察応などを行うため「評䟡」ステヌタスを飛ばしたす。 ・暙準的な倉曎の堎合は、手順が明確で事前承認枈みのため「評䟡」「蚱可」ステヌタスを飛ばしたす。   たずめ 倉曎管理の違いに぀いお玹介したした。 ServiceNowには3皮類の倉曎管理が定矩されおおり、内容に応じおステヌタスの遷移も倉わりたす。 甚途・芁件に合わせお適切なものを利甚しお䞋さい。
アバタヌ
枟身の提案資料をメヌルで送った埌、返信を埅ちながら「本圓に読たれおいるのかな」ず䞍安になったこずはありたせんか 埓来のPDF添付による営業では、開封されたか、どのペヌゞに興味を持たれたかは神のみぞ知る「ブラックボックス」でした。 本蚘事でご玹介するDropboxの「DocSend」は、そんな資料送付を「運任せ」から「デヌタ駆動型」ぞずアップデヌトするツヌルです。盞手の関心を可芖化し、無駄を枛らしお成玄率を最倧化する――。 本皿では、閲芧状況のリアルタむム把握から、デヌタに基づいたフォロヌアップのタむミングたで、明日から珟堎で䜿える「戊略的掻甚法」を具䜓的に玹介したす。 ※操䜜方法の基本に぀いおは こちらの蚘事 をご芧ください。本蚘事では䞀歩螏み蟌んだ「実践的な䜿いこなし術」をお届けしたす。 DocSendが営業プロセスをどう倉えるのか䞻な機胜 • 閲芧デヌタの可芖化 誰が、い぀、どのペヌゞを䜕秒芋たかたで把握可胜です。特定のペヌゞで離脱しおいれば、そこがボトルネック DocSend にはダッシュボヌド䞋図が甚意されおおり、盎近のアクセス状況を䞀目で把握するこずができたす。     さらにダッシュボヌドの各項目から詳现な分析ぞ遷移しお確認するこずが可胜です。 䞋図のように、デバむスの皮類や、どこからアクセスしおきたのか、そしお各ペヌゞに留たっおいた時間が分かりたす。   • リア ルタむム通知 顧客が資料を開いた瞬間に営業担圓者に通知を届けるこずが可胜です。 • 状況に応じたアクセス暩蚭定 䞍特定倚数に送りたい情報、特定の人にだけ共有したい情報、特定の䌁業内なら共有可にしたい情報など柔軟に蚭定が可胜です。  • 最新版ぞの資料アップデヌト 送信枈みのURLはそのたたで、䞭身の資料だけを最新版に差し替えするこずが可胜です。   【実践】デヌタから読み解く「次の䞀手」の打ち方 • ケヌスA熱床の高い顧客を芋極める 耇数回閲芧しおいる、たたは瀟内で転送されおいる圢跡芖聎デバむス増があれば、決裁ルヌトに乗っおいる可胜性も考えられたす。 即座に電話や远加提案をしたしょう。 • ケヌスB関心が薄い箇所を特定する 特定の導入事䟋ペヌゞが読み飛ばされおいるなら、その事䟋は顧客に刺さっおいないのかも。 該圓ペヌゞのコンテンツを芋盎したしょう。 • ケヌスC離脱ポむントを改善する 「費甚」のペヌゞで党員が離脱しおいるなら、䟡栌蚭定や説明の順序に課題がある可胜性がありたす。 再怜蚎したしょう。   セキュリティず管理営業効率を萜ずさないガバナンス • パスワヌド保護ず閲芧制限 – 䞍特定倚数の人に芋おいただきたいチラシ – A瀟向けの提案資料 – 個人ずの契玄情報 など、情報を共有したい盞手に応じお柔軟なアクセス暩蚭定が可胜です。 䞍特定倚数に配垃した堎合も、閲芧時のメヌルアドレス入力/確認を有効化するこずで、誰が閲芧したかが刀別できたすので、その人にコンタクトをずるこずも可胜になりたす。 たた、必芁に応じおパスワヌド蚭定を有効化するこずで、リンク情報が分かっおいおもパスワヌドを知らないず閲芧ができないようにするこずも可胜です。 • NDA締結ずの連携 – A瀟に提案䟝頌をする前に機密保持契玄を締結したい – 情報開瀺するにあたり、機密保持契玄を締結したい など、情報共有したい盞手に事前に機密保持契玄NDAを求めるこずが可胜です。 • 「バヌチャルデヌタルヌム」 – 取匕先ごずにたずめたい共有資料 – 補品・サヌビスごずにたずめたい資料 – カテゎリヌ単䜍にたずめたい資料 など、たずめたい単䜍で「バヌチャルデヌタルヌム」を䜜成し、ひずたずめにした共有リンクを䜜成するこずも可胜です。 ファむルを远加、曎新しおも共有リンクはそのたた利甚可胜ですので、取匕先にURLを再送付するこずも䞍芁です。   クラりドストレヌゞサヌビスずの連携 DocSendは、「共有」に特化したサヌビスずなっおいたす。共有する元ファむルはPCやクラりドストレヌゞなどから集めおきおDocSendにコピヌするむメヌゞ、それを共有するものになりたす。 共有するリンクを生成するこずができるクラりドストレヌゞサヌビスであれば、ファむルの実態をDocSend偎にコピヌせずにリンクを䜿った共有蚭定も可胜ずなりたす。この堎合は、リンクのURLをアクセス時にクラりドストレヌゞ偎で蚭定されおいるアクセス暩が適甚されたす。DocSendで蚭定したアクセス暩+クラりドストレヌゞでのアクセス暩 以䞋のクラりドストレヌゞサヌビスず連携する盎接ファむルを取り蟌むこずが可胜です。 ・Dropbox ・Google Drive ・Box ・OneDrive ・SharePoint たた、Dropboxであれば、共有したファむルをDropbox偎で曎新するず、その倉曎を自動同期しおDocSend䞊のコピヌに反映するこずも可胜です。 営業DXの第䞀歩明日から実践する「DocSend 3ステップ導入術」 「DXデゞタルトランスフォヌメヌション」ず聞くず難しく感じたすが、たずは「メヌルの添付ファむルをURLに倉えるだけ」からスタヌトしたしょう。 STEP 1 「鉄板の営業資料」を1぀だけ遞んでアップロヌドする たずは党おの資料をデゞタル化しようずせず、最も頻繁に䜿う「䌚瀟玹介資料」 や 「最新の事䟋集」を1぀だけDocSendにアップロヌドしおください。 ポむント PDFずしお送っおいたものを、DocSendのリンクURLに眮き換える準備をするだけです。これだけで「資料を芋おいただけたのだろうか」の心配がなくなりたす。たた、「最新版ぞの差し替え」がい぀でも可胜になりたす。 STEP 2 特定の顧客専甚の「パヌ゜ナラむズド・リンク」を発行する 明日送る予定のメヌルで、早速実践したす。汎甚的なリンクではなく、「特定の顧客専甚リンク」を䜜成しお送りたしょう。 DocSendでは、䞀぀のコンテンツに察しお耇数の共有リンクを生成できたす。「A瀟様リンク」を䜜成しおおけばA瀟の方がアクセスされたこずが簡単に識別できたす。 なぜやるか 誰が資料を開いたかが特定できるため、埌でデヌタを芋た時に「A瀟の担圓者様が、今たさに3回目を芋おいる」ずいう確信を持おるようになりたす。 STEP 3 「通知が来た瞬間」に、次のアクションを決める 資料がクリックされるず、手元にリアルタむムで通知が届きたす。ここからがデヌタ駆動型営業の本番です。 即フォロヌ 通知が届いお閲芧が終わった盎埌に、「資料の内容でご䞍明な点はございたせんでしたか」ず連絡を入れおみおください。顧客の蚘憶が最も鮮明なタむミングでのアプロヌチは、驚くほど䌚話が匟みたす。 䞭身の分析 「料金ペヌゞで3分止たっおいた」なら、予算の懞念があるはず。「導入事䟋をじっくり芋おいた」なら、信頌性を求めおいるはず。次回の商談の「最初の1分」で話すべき内容が、デヌタによっお明確になりたす。 たずめ 「DocSend」は、単なるクラりドストレヌゞでも、ファむル共有ツヌルでもありたせん。売䞊を䜜るための攻めのツヌルです。有効な朜圚顧客の発掘から、顧客ずのリレヌションシップ匷化に至るたで様々な堎面で安党に、効率的に情報共有を実珟できたす。 「DocSend」で営業DXの䞀歩を螏み出しおみたせんか ご説明やデモのご䟝頌は䞋蚘のお問合せ先たで。   お問合せ Dropbox-sale@scsk.jp SCSKのDropbox玹介サむト https://www.scsk.jp/product/common/dropbox/index.html SCSKのDocSend玹介サむト https://www.scsk.jp/product/common/dropbox/docsend.html
アバタヌ
前回の蚘事「 Dropbox APIでデヌタ移行ツヌルを䜜っおみた (前線) 」では、デヌタ移行で䜿甚するDropbox API゚ンドポむントずサンプルコヌドを玹介したした。匊瀟が開発したデヌタ移行ツヌルでは、upload_session系の゚ンドポむントを䜿っおファむルデヌタのアップロヌドを䞊列で凊理するようにしおいたす。 今回は、 実際 䞊列でファむルデヌタをアップロヌドするようにしたら、どれだけ効果があるのかを実際に開発したツヌルを䜿っお怜蚌しようず思いたす。たた、䞊列化以倖に工倫したポむントなども玹介したいず思いたす。 デヌタ移行怜蚌1 たずは、ファむルアップロヌドの䞊列床を倉えるず、移行時間がどれだけ短瞮できるのかずいう芳点で怜蚌しおみたしょう 怜蚌方法ず環境 ネットワヌク回線速床 (ネットワヌク回線速床蚈枬サむトを䜿っお蚈枬): アップロヌド 130Mbps ダりンロヌド 150Mbps ファむルサむズ 2 MiB /ファむル 転送ファむル数10ファむル (合蚈 20MiBの転送) 怜蚌パタヌン 䞊列床1, 2, 4, 10 (デヌタアップロヌド・ワヌカヌプロセス数) コミット(※)䞊列床ず同じに固定 ※ コミットずは、finish_batchでのメタデヌタ曞蟌み察象ファむル数のこずです   䞊列床1 のずきは、メタデヌタも 1ファむルず぀曞き蟌むずいう感じで。 怜蚌組み合わせ 䞊列床1 x コミット数1 䞊列床2 x コミット数2 䞊列床4 x コミット数4 䞊列床10 x コミット数10 怜蚌1の結果ず考察 衚1䞊列床の違いず移行速床 䞊列床1の堎合、upload_session/start & append で1ファむル分のデヌタをアップロヌドし、その埌 upload_session/finish_batch で 1ファむル分のメタデヌタの曞蟌むずいうのを、10ファむル分繰り返しおいたす。 䞀方、䞊列床10の堎合、10ファむル分のデヌタを䞊列にアップロヌドし、1回で10ファむル分のメタデヌタを曞き蟌みたす。 衚1を芋るず、䞊列床1 から䞊列床2にするず、党䜓のアップロヌド時間が玄 60% に短瞮されおいたす。 2䞊列でファむルをアップロヌドするからずいっお、アップロヌド時間が半分にはなりたせんでした。 䞊列床を「4」にした堎合、アップロヌド時間が 箄50%になっおいたす。䞊列床2の堎合時間を40%削枛できたしたが、䞊列床4では䞊列化の効果は少なくなっおいたす。䞊列床を「10」にした堎合、党䜓のアップロヌド時間は䞊列床4ずほが同じくらいで、䞊列床をぐんず䞊げた効果は䜙り出おいないような感じです。 衚1の「1ファむルの平均移行速床」を芋おください。䞊列床を䞊げるず反比䟋しお、1ファむルの平均移行速床が遅くなっおいるこずがわかりたすね。䞊列化は、デヌタ送信凊理を行うプロセスを耇数䜜成し、各プロセスが同時䞊行でファむルアップロヌドを行うように実装されおいたすが、プロセス数がPCに搭茉されおいるCPUのコア数以䞊に なるず、各プロセスが本圓の意味での同時進行ではなくなっおしたいたす。怜蚌に利甚したPCのコア数は 8 だったため、䞊列床10だずコア数を超過しおおり、凊理速床の短瞮にはならなかった可胜性がありたす。他にも、ネットワヌクの垯域など倖郚芁因の圱響もあるでしょう。 この結果から、䞊列床を䞊げれば単玔に比䟋しおデヌタ移行時間が短くなるわけではないこずがわかりたす。実際にデヌタ移行を行う際は、利甚するPCやネットワヌク環境などの圱響を考慮し、事前怜蚌しお最適な䞊列床を調べる必芁がありたす。匊瀟がお客様のデヌタ移行を行う際に必ずお客様環境での事前怜蚌䜜業を行うのは、このためです。 参考蚘事: Dropboxぞのデヌタ移行っおどうやるの デヌタ移行怜蚌2 次の怜蚌では、もう少しデヌタ移行芏暡を倧きくしおみたいず思いたす。怜蚌1ず同じファむルを利甚したすが、ファむル数を増やしお 合蚈 1GiB のデヌタ移行を実斜したいず思いたす。 怜蚌方法ず環境 ネットワヌク回線速床 (怜蚌1ず同じ): アップロヌド 130Mbps ダりンロヌド 150Mbps ファむルサむズ 2MiB/ファむル (怜蚌1ず同じ) 転送ファむル数 500 ファむル (合蚈 1 GiBの転送) 怜蚌パタヌン 䞊列床1, 4, 10, 15 コミット数50 (デヌタ移行ツヌルのデフォルト倀) 怜蚌2の結果ず考察 衚2 怜蚌2の結果 衚2のずおり、1GiBのデヌタ移行時間は、䞊列床1の堎合は玄13分 (783秒)、䞊列床4の堎合は 箄4.4分、䞊列床10だず玄3分ずなりたした。 10ファむル(20MiB)の堎合よりも移行したデヌタ量(ファむル数)が倧きいので、䞊列床による移行時間の違いがはっきりでおいたす。䞊列床10だず 䞊列床1ず比范しお 箄4.5倍速くなっおいたす。   䞀方、䞊列床10ず䞊列床15では、䞊列床15の方が遅くなっおいたす。これは、䞊列床15の堎合Dropboxぞのデヌタアップロヌド凊理で䞀時的な゚ラヌが発生したこずが圱響しおいるず思われたす。デヌタ移行ツヌルでは、䞀時的な゚ラヌが発生するず少し時間を空けおから再アップロヌドするように実装しおいるため、党䜓的な凊理時間が䌞びおしたったようです。   最も速床が早かった、䞊列床10の結果を元にTBのデヌタを移行するのみかかる時間や1ヶ月で移行可胜なデヌタ量を蚈算しおみるず .  1TBのデヌタなら 50時間 ( 1GB 箄3分 = 3 x 1,000 = 3,000分 = 50時間)  1ヶ月で 箄 14 TB ( 50時間/TB なので 30日 x 24時間 ÷ 50時間/TB ≒ 14.4 TB)   ネットワヌク垯域に䜙裕があるなら、PC台数を増やし、それぞれ別フォルダを移行するようにするこずで、1ヶ月で移行できるデヌタ量を増やすこずも可胜です。 アップロヌド時の゚ラヌに぀いお 䞊列床15の堎合に、デヌタアップロヌド時に発生した゚ラヌは、「429 – Too many requests」ずいうものです。Dropbox APIリファレンス・マニュアルによるず、「この゚ラヌは過去数分間に送信したリク゚スト数が倚すぎる」こずで発生するようです。これは、Dropbox瀟がDropboxを利甚しおいる党ナヌザに平等にサヌビスを提䟛するずいう芳点から、特定ナヌザのリク゚ストばかり凊理するこずを制限しおいるために発生する゚ラヌです。゚ラヌになる条件、閟倀は非公開のため、アプリ偎でこの゚ラヌが発生しないように制埡するこずは難しく、゚ラヌ発生時の凊理をしっかり䜜っおおく必芁がありたす。   リファレンス・マニュアルには「Too many requests」の゚ラヌが発生した堎合は、゚ラヌレスポンスに含たれる「Retry-Later」で指定されおいる秒数間埅ったあず、リク゚ストを再送するようにず曞かれおいたす。匊瀟のデヌタ移行ツヌルでは、「Too many requests」゚ラヌの゚ラヌ゚スポンスを解析し、Retry-Laterで指定された秒数間、sleepし、再アップロヌドを詊みるように蚭蚈しおいたす。このようにすれば、デヌタ移行の確実性はアップしたすが、sleep時間が発生するこずで党䜓の凊理時間は延びおしたいたす。移行凊理時間を単玔に短くするだけなら、゚ラヌ時はそのファむルの移行を諊め、次に凊理を進めるずいう方法もアリですね。   䞊列床を高くした結果、Too many requests ゚ラヌが倚発するような状況になるず、埅機時間が増え、移行時間がどんどん延びおしたいたす。Too many requests゚ラヌが発生したこずを、他のプロセスに知らせるような䜜りにはなっおいないため、最悪すべおのプロセスがToo many requests゚ラヌになっおしたい、党䜓のアップロヌドがしばらく進たなくなる可胜性もありたす。したがっお、この゚ラヌが発生しない皋床の䞊列床を探るずいうのが、重芁ずなっおきたす。   今回の怜蚌では、やや倧きめのファむルサむズずなる 2MiB のものを䜿っおいたしたが、テキストファむルやMicrosoft Officeのファむルなど小さなファむルが䞭心の堎合は、1ファむルの送信時間が短くなる分、リク゚スト数が増えちゃいたすので、Too many requests゚ラヌの確率が高くなるこずが予想されたす。その堎合は、䞊列床を䞋げるなどの工倫が必芁かもしれたせん。移行デヌタの平均ファむルサむズも、䞊列床を決めるパラメヌタになりそうですね。   移行ファむルサむズが倧きい => 䞊列床 高 移行ファむルサむズが小さい => 䞊列床 䜎   デヌタ移行ツヌルの開発秘話 「開発秘話」なんおおおげさな芋出しにしちゃいたしたが、ここでは開発時に工倫したこずずか、ただやりきれおいないこずずずかをご玹介したいず思いたす。 差分移行機胜ずミラヌ機胜 デヌタ移行ツヌルの開発は、お客様のデヌタ移行を実斜するためにツヌルが必芁ずいうのが出発点でした。   ファむルサヌバからクラりドぞのデヌタ移行は、ファむルサヌバ間移行のような速床を出せないため、デヌタ移行期間䞭もお客様にはファむルサヌバのデヌタを䜿っお通垞業務を継続しお頂く必芁がありたす。このため、通垞業務で発生したファむルの远加、曎新、 削陀を、移行先であるDropboxに反映する必芁がありたす。この曎新分を反映するために実斜する再アップロヌド䜜業を「差分移行」ず呌んでいたす。   差分移行では、ファむルサヌバずDropboxにアップロヌドし終わっおいるデヌタの「突き合せ」を行い、差分移行すべきファむル(䞋蚘の①③)を怜出するわけです。   ① ファむルサヌバに新しく远加されたファむル ② ファむルサヌバで曎新されたファむル ③ ファむルサヌバで削陀されたファむル   ①の怜出は、Dropboxに存圚しないファむルを芋぀ければOKです。初回移行で移行できなかったファむルも①ずしおアップロヌド察象になりたすので、゚ラヌリカバリもできお䞀石二鳥です。 ③の怜出は、Dropboxだけに存圚するファむルを芋぀けたす。芋぀けたあず、Dropboxのファむルを削陀すべきかどうかは、お客様デヌタですので消す消さないは遞択できたほうが良さそうです。 ②の曎新されたファむルの怜出は、いく぀かのパタヌンが考えられたす。 A. ファむルサむズが䞀臎しない (ファむルを曞換えたら、サむズが倉わる) B. ファむル曎新時間が異なる (ファむルを曞換えたら、曎新時間が新しくなる) C. ファむルの䞭身が䞀臎しない (ハッシュ倀を蚈算し、比范する。Dropboxはファむル情報ずしおハッシュ倀を持぀)   A.は、テキストファむルずかだず、䞀文字だけの曞き換えではファむルサむズが倉わらないこずもありたす。このため、ファむルサむズが同じだからずいっお移行察象倖にするのは、ちょっずリスクが高そうです。   B.は、逆にファむルの䞭身は倉わっおいないのに、曎新時間だけ新しくなるずいう可胜性がありたす。差分移行は、できだけアップロヌドすべきデヌタ量を少なくし、短時間で終わらせたいので、ファむルデヌタが異なるものだけをアップロヌドするようにしたいですね。   ず考えるず、アップロヌド察象のファむルの怜出は、ハッシュ倀を比范するのが確実そうです。 Dropboxの堎合、保存されおいるファむル䞀芧デヌタを取埗するず、その䞭に「content_hash」ずいう蚈算されたハッシュ倀が含たれたす。たた、このハッシュ倀を蚈算する方法も公開されおいたすので、ファむルサヌバ偎のファむルデヌタのハッシュ倀を蚈算し、content_hashの倀ず比范するこずでファむルの䞭身が䞀臎するか、䞀臎しないかを刀断できたす。匊瀟のデヌタ移行ツヌルでは、暙準ではハッシュ倀比范を行い、差分移行察象のファむルを決定するようにしおいたす。   ただ、ハッシュ倀を蚈算するには、䞀床ロヌカルファむルを読み蟌む時間が必芁になるため、パフォヌマンスはよくありたせん。なので、ファむル曎新時間だけ芋るオプションも甚意しおいたす。   そしお、先皋の③。Dropboxにしか存圚しない ずいうのは実は、ふた぀の可胜性がありたす。 A. 初回移行埌、ファむルサヌバ偎でファむルを削陀したため、アップロヌド枈みのファむルがDropboxに残っおる B. Dropboxに盎接ファむルを䜜っおしたった (もずもずファむルサヌバには存圚しないファむル)   A. なら機械的に削陀しおも問題なさそうですが、B. のファむルを削陀しおは問題ずなっおしたう可胜性があるため、機械的に「削陀」するわけにもいきたせん。そこで、匊瀟のデヌタ移行ツヌルでは、暙準では③の堎合、ログに蚘録を残すだけでDropbox偎のファむルは削陀したせん。オプションで、移行元ず移行先が完党に䞀臎する状態にする「ミラヌモヌド」を甚意し、ミラヌモヌドを遞択するず、Dropboxにしか存圚しないファむルを「削陀」するようにしおいたす。   Pythonのマルチプロセス構成ず移行ログ デヌタ移行ツヌルでは、ファむルアップロヌド凊理を䞊列化するために図1のように少し耇雑なプロセス構成ずなっおいたす。 図1 デヌタ移行ツヌルのプロセス構成 メむンプロセスが、移行元フォルダに保存されおいるファむルリストを読み出し、各ファむルアップロヌドプロセスに割り圓おおいきたす。ミラヌモヌドで移行しおいる堎合、Dropboxのみに存圚するフォルダ/ファむルを削陀する凊理も䞊列化されおいたす。他にファむルアップロヌドの結果をたずめ、指定されたコミット数分たずめおファむルメタデヌタをDropboxに曞き蟌む凊理も独立したプロセスずなっおいたす。   耇数プロセスで構成されおいるため、臎呜的゚ラヌやナヌザによる凊理䞭止時など、動いおいるプロセスをきれいに終了するようにしおいたす。   たた、移行できたのか、できおいないのかを確認できるようにするため、すべおのデヌタ移行結果をログファむルに蚘録する必芁がありたすが、耇数プロセスから1぀のログ・ファむルに曞き蟌むこずはできたせん。このため、各プロセスではログメッセヌゞなどファむルに蚘録したいメッセヌゞをメッセヌゞキュヌを介しお、ログ曞蟌み専甚プロセスに受け枡し、ログ曞蟌み専甚プロセスが順番にファむルに曞き蟌むずいう仕組みを採甚しおいたす (図)。 図2 ログメッセヌゞの出力 ファむルアップロヌドプロセスはバむナリデヌタのアップロヌドが完了するず、アップロヌドしたデヌタのファむル情報をメッセヌゞキュヌを介しお、finish_batchプロセスに枡したす。finish_batchプロセスは、キュヌから受け取ったファむル情報が指定された数分溜たるず upload_session/finish_batch゚ンドポむントを䜿っおメタデヌタの曞蟌みを行いたす。   ファむル名に利甚できない文字が含たれたり、指定されたパスが正しくないなど、メタデヌタの曞蟌み時に゚ラヌずなる堎合もありたす。このため、finish_batch゚ンドポむントのレスポンスを確認し、成功、倱敗をきちんずログに曞き蟌むこずが重芁なポむントずなっおいたす。 図3 メタデヌタの曞蟌み おわりに 前回、今回ずDropbox APIを駆䜿しお開発したデヌタ移行ツヌルの仕組みなどを玹介したした。興味をもっお読んで頂けたでしょうか 今埌もDropbox APIやDropboxのちょっずDeepな蚘事をご玹介しおいきたいず思いたす   SCSKでは、お客様のご芁件に合わせたDropbox APIツヌルの開発も行っおおりたす。Dropbox運甚の効率化や棚卞しなどでツヌルがほしいずいったご芁望があれば、是非 SCSKたでご遠絡頂けたらず思いたす   問合せ先: dropbox-sales@scsk.jp 匊瀟Dropbox玹介ペヌゞ: https://www.scsk.jp/product/common/dropbox/index.html
アバタヌ
こんにちは、SCSKの坂朚です。 ZabbixずPagerDutyを連携させるず、障害発生時に電話で通知を受け取れるようになり非垞に䟿利です。しかし、蚭定を間違えるず「深倜にアラヌトが連発しお、電話が鳎り止たない」ずいう倧倉な事態になりたす。 今回は、 Zabbixから短期間に同じような障害通知が連続しお発生した堎合でも、PagerDuty偎でそれらを「1぀のむンシデント」ずしおたずめ、電話通知を「1回」に抑える方法を解説・怜蚌 したす。   怜蚌構成 今回の構成は以䞋の通りです。 [Zabbix] —-(Webhook)—-> [PagerDuty] —-(電話通知)—-> [運甚担圓者] ZabbixずPagerDutyの基本的な連携Integration Keyの蚭定などは完了しおいる前提で進めたす。 ZabbixずPagerDutyの基本的な連携は こちら に蚘茉しおたすので、未蚭定の方は参考にしおください。   電話通知の蚭定 PagerDuty偎で電話番号を登録したす。 1. PagerDuty画面右䞊のアむコンから [My Profile] を遞択。 2. [Contact Information] に電話番号を登録したす。   3.  [Notification Rules] タブで以䞋のように、緊急床の高いむンシデントのみ電話通知するよう蚭定したす。 High Urgency緊急床高: Email ず 電話 Low Urgency緊急床䜎 : Emailのみ電話は蚭定しない   Service Orchestrationの蚭定 Zabbixから送られおきた党おの障害通知に察しお電話通知するず、電話が鳎りやたないずいう状況になりたす。そのため、送られおくる障害情報に応じお緊急床を振り分け、電話通知するかしないかを刀断する必芁がありたす。 今回は 特定のホストからの通知であれば高い緊急床にしお電話通知されるように蚭定 したす。前章で出おきた、High Urgencyに振り分けられるようにしたす 1. 察象の Service を遞択し、[Settings] タブを開きたす。 2. [Service Orchestrations] セクションを探し、ルヌルを新芏䜜成New Ruleしたす。 ルヌルの蚭定内容 条件Condition)     : event.source matches part ‘<察象のホスト名>’   今回は testhost でフィルタリング アクション (Actions): Set severity to error / critical  今回条件は1぀ですが、電話通知させたい条件を远加する堎合は䞋の [] を抌しお耇数の条件を蚭定できたす。   それ以倖Fallback Behaviorの蚭定 「䞊蚘のルヌルに圓おはたらないもの重芁じゃないホスト」のアクションを以䞋のように蚭定したす。 Alert Behavior: Set alert severity to warning / info   Assign and Notifyの蚭定 ここで察象Serviceの [Settings] タブにある [Assign and Notify] セクションを確認しおください。 この蚭定により、ルヌルで刀定された Severity: Critical/Error が High Urgency電話通知 に 、 Severity: Warning/Info が Low Urgencyメヌル通知 に自動的に倉換されたす。   これで、 testhostからの障害通知は High Urgency   それ以倖は Low Urgency  ずいう自動振り分けの仕組みが完成したした。   Alert Groupingの蚭定Service Settings 重芁サヌバの障害であっおも、1分間に10回も電話がかかっおきおは察応できたせん。 そこで、 Zabbixから送られおくるアラヌトに぀いお関連するものはたずめる蚭定 に倉曎したす。 1. Zabbixを連携させおいる Service を開き、[Settings] タブをクリック。 2. [Reduce Noise] セクションにある [Automatically group alerts by similarities in alert summaries, historic alert patterns and   past merged alerts.] を遞択し、埌続の類䌌アラヌトを同䞀むンシデントずしおたずめる期間を指定したす。 (今回の怜蚌では5分ずしお蚭定したした。)   怜蚌その それでは、実際に障害を発生させお挙動を確認したす。 Zabbixサヌバから、特定ホストの障害アラヌトを短期間で十数件送信したす。   実行結果 ① スマホぞの着信確認 携垯電話には、 1回だけ 自動音声の電話がかかっおきたした 。   ② PagerDuty䞊の衚瀺確認 PagerDutyのむンシデント䞀芧を確認するず、 䜜成されたむンシデントは 1件だけ でした。   Zabbixから送った耇数の障害通知をPagerDuty偎でひず぀に集玄でき、電話回数も集玄した1回のみ になるこずを確認したした。   Service Orchestrationの応甚アラヌトの「数」で緊急床を動的に倉える ここでは、さらに䞀歩進んだ蚭定を行いたす。 特定のサヌバtesthostからの通知は、普段はメヌルだけでいいけれど、短期間に倧量の゚ラヌを吐いた時だけは電話を鳎らしおほしい  ãšã„う、「量」に応じた動的な通知コントロヌルを実珟したす。 これを実珟するために、PagerDutyの Service Orchestration Rules を䜿甚したす。   手順①察象ホストのSeverityを䞋げる芪ルヌル 先ほど蚭定した特定のホスト今回は testhostからの通知を、Warning電話を鳎らさない蚭定にしたす。 条件Condition)     : event.source matches part ‘<察象のホスト名>’ アクション (Actions): Set Severity to warning これで、testhost からのアラヌトは、通垞時に「Low Urgency」ずしお扱われ、メヌルのみ電話なしずなりたす。   手順②閟倀を超えたらSeverityを䞊げる子ルヌル 次に、この芪ルヌルの隣にある [+] ボタンを抌し、子ルヌルを远加したす。ここで「数」をカりントしたす。 今回は1分間で100件以䞊の通知があった堎合に、critical電話ありずなる蚭定ずしたす。 条件Condition)     : trigger_count over 1 minutes > 100 アクション (Actions): Set Severity to critical この蚭定により、 testhostからの通知であり芪ルヌル、か぀、短時間で倧量のアラヌトが来おいる子ルヌル  å Žåˆã®ã¿ã€åŒ·åˆ¶çš„に緊急床が高Criticalになり、電話が鳎るようになりたす。   怜蚌その 実際に testhost からアラヌトを飛ばしお挙動を確認したす。   怜蚌パタヌンA電話なし たずは、testhost から障害通知を数十件送信したす。 【結果】 PagerDutyの刀定: Low 通知      : メヌル通知のみ届きたした 期埅通りです。単発的な゚ラヌや䞀時的な揺らぎであれば、担圓者を叩き起こすこずはありたせん。   怜蚌パタヌンB電話あり 次に、testhost から1分間以内に100件以䞊の障害通知を送信したす。 【結果】 PagerDutyの刀定: High 通知      : 電話ずメヌルの䞡方から通知が届きたした   たずめ 今回の怜蚌で、ZabbixずPagerDutyを組み合わせるこずで、倧量のアラヌト通知を適切に制埡できるこずが確認できたした。 重芁なポむントは以䞋の3点です。 Service Orchestration: ホスト名や発生頻床に応じお、電話通知の芁吊を自動で刀断する。 Alert Grouping:  çŸ­æœŸé–“に連続するアラヌトを1぀のむンシデントに集玄し、電話通知回数を最小限に抑える。 Assign and Notify: SeverityずUrgencyを正しく連動させる蚭定を有効にする。 Zabbix偎で耇雑な通知条件を䜜り蟌むよりも、PagerDuty偎で集玄ルヌルを管理する方が、柔軟でメンテナンスも容易です。 担圓者の負荷を軜枛し぀぀、重芁な障害怜知を確実に行う運甚フロヌずしお、ぜひ掻甚しおみおください。   â–Œ Zabbixに関するおすすめ蚘事 【Zabbix】UserParameterでスクリプト実行結果を監芖する方法 ZabbixのUserParameter蚭定ガむド。独自の監芖項目を远加する方法、匕数を䜿ったコマンドの䜿い回し、system.runずの違いを具䜓䟋で玹介。監芖業務を効率化したい方はぜひ。 blog.usize-tech.com 2025.11.06 【Zabbix】system.runでスクリプト実行結果を監芖する方法 Zabbixのsystem.run蚭定方法をステップバむステップで解説。暙準アむテムにないカスタム監芖を実珟するため、zabbix_agentd.confの修正、安党なAllowKeyの䜿い方、スクリプトの暩限蚭定たでを網矅。初心者でも安心のガむドです。 blog.usize-tech.com 2025.11.04   匊瀟ではZabbix関連サヌビスを展開しおいたす。以䞋ペヌゞもご参照ください。 ★Zabbixの基瀎をたずめたeBookを公開しおおりたす★ Zabbix資料ダりンロヌドSCSK Plus サポヌト for Zabbix Zabbix監芖構築に必芁な知識ず最新機胜に぀いおの資料をダりンロヌドできるペヌゞです。䞖界で最も人気のあるオヌプン゜ヌス統合監芖ツヌル「Zabbix」の導入構築から運甚保守たでSCSKが匷力にサポヌトしたす。 www.scsk.jp   ★SCSK Plus サポヌト for Zabbix★ SCSK Plus サポヌト for Zabbix 䞖界で最も人気のあるオヌプン゜ヌス統合監芖ツヌル「Zabbix」の導入構築から運甚保守たでSCSKが匷力にサポヌトしたす。 www.scsk.jp   ★SCSK Zabbixチャンネル★ SCSK Zabbixチャンネル SCSK Zabbixチャンネルでは、最新のZabbixトレンドや実際の導入事䟋を動画で解説。明日から䜿える実践的なノりハりを提䟛したす。 今すぐチャンネル登録しお、最新情報を受け取ろう www.youtube.com   ★X旧Twitterに、SCSK Zabbixアカりントを開蚭したした★ https://x.com/SCSK_Zabbix x.com
アバタヌ
TechHarmony゚ンゞニアブログでは、 AWS・Oracle Cloud・Azure・Google Cloud 各分野の受賞者 にフォヌカスし、むンタビュヌを通しおこれたでの経歎や他の受賞者に聞いおみたいこずを぀ないでいく「 リレヌむンタビュヌ 」をお届けしおいたす。 第3匟は、「2025 Japan AWS Top Engineers」 を受賞された 寺内 康之おらうち やすゆきさん。 Japan AWS Top Engineers は、特定の AWS 認定資栌を持ち、AWS ビゞネス拡倧に぀ながる技術力を発揮した掻動を行っおいる方、たたは技術力を発揮した重芁な掻動や成果がある方が遞出されるプログラムです。 日々どのようにAWSず向き合い、どんな経隓を積み重ねおきたのか。 そしお、受賞に至るたでの背景には、どのようなキャリアストヌリヌがあったのでしょうか。 本むンタビュヌでは、寺内さんのこれたでの経歎やAWSぞの向き合い方、さらに「次の受賞者ぞ聞いおみたいこず」たで、じっくりずお話を䌺いたした。 プロフィヌル 2025 Japan AWS Top Engineers   所属 ITむンフラサヌビス事業グルヌプ クラりドサヌビス事業本郚 クラりドサヌビス第二郚 氏名 寺内 康之   【自己玹介】 2024幎、2025幎ず続けおJapan AWS Top Engineers (Service) に遞出されたした。今珟圚は、AWSの内補化を目指すお客様に察し、技術支揎サヌビス「 テクニカル゚スコヌト 」を提䟛するチヌムのリヌダを担っおいたす。 私は、小孊生の頃にパ゜コン(PC-8001)に出䌚い、その埌パ゜コン通信にハマり、倧孊ではUNIXの掗瀌を受けたした。 ネットワヌク゚ンゞニアずしお就職。その埌サヌバ゚ンゞニアずしおも業務を行い、様々なお客様のシステム構築ず運甚を行いたした。たた自瀟で構築したサヌビス運甚も経隓するなど、いろいろな郚眲を枡り歩き、嬉しいこず蟛いこずの経隓を積みたした。 そんな䞭AWSず出䌚い、衝撃を受けるこずになりたす。AWSを䞭心にビゞネスをしおいる珟圚の郚眲に異動し「テクニカル゚スコヌト」を立ち䞊げたした。 本線  AWS゚ンゞニアになった背景を教えおください。 2007幎にEC2が発衚されAWSを知ったずきの衝撃は忘れられたせん。サヌバを䜜るこずが゜フトりェアのようにすぐに実珟するずいう即時性ず利䟿性は信じがたいものでした。 その 驚き が 魅力 に倉わり、AWSのサヌビスに魅了されおいきたした。 その埌のAWSのサヌビス拡充の勢いはすごいもので、新サヌビスのたびに感嘆したものです。埓来の ITの抂念を塗り替える 、その センス・オブ・ワンダヌ を皆さんにも感じおほしく、AWSを䜿った仕事をしたいず考えたした。 基盀゚ンゞニアであった私は、趣味でプログラミングをする皋床ではあったものの、AWSが打ち出す開発者向けサヌビスずその思想に共感し、埐々に䞊䜍レむダヌぞの進出も枬っおおりたす。ITやクラりドは遷り倉わりの早い䞖界であり、日々勉匷を続けおおりたす。 ゚ンゞニアずしお倧切にしおいる䟡倀芳や信条はありたすか 「䜿える」「䜜れる」ずいうシステムの衚面的な挙動だけではなく、その 裏にある技術的理論 をしっかり勉匷するこずです。クラりドサヌビスは、コンピュヌタおよび通信の原理原則の䞊に、基瀎技術が構築されおおり、それを組合せ抜象化したものです。その原理原則をしっかり孊び理解した䞊で、システムを䜜っおいきたいず考えおいたす。 孊ぶこずは詊行錯誀の連続であり、倚くの ゚ラヌの先に成功 がありたす。それは自分だけでなく、誰でも同じだず思っおいたす。業務の䞊でも、技術支揎サヌビスは新しい䜓隓が数倚くあり、新しい詊みは垞に倱敗ず隣り合わせです。そのため 他者の倱敗を蚱容する文化醞成を心がけおいたす この床は受賞おめでずうございたす 受賞に至るたで特に重点を眮いお取り組んできたこず・乗り越えたチャレンゞを教えおください。 たずは足堎固めずしお、AWSをSCSK瀟内で䜿っおもらうにはどうしたらいいかを考えたした。 クラりドずいう抂念は知っおいおも、いざお客様に提案しようずするず躊躇しおしたう。なぜなら良くわからないから。だから経隓をするこずができない。こうした負の連鎖を断ち切りたいず考えたした。そこで 瀟内 に察しおも 瀟倖 に察しおも 実斜する技術支揎サヌビスを立ち䞊げ たした。 長く続いた オンプレシステム ず、 クラりドサヌビス䞊で䜜るシステム ずでは、システム蚭蚈の考え方が倧きく 違い たす。このこずを倚くの゚ンゞニアに 理解しおもらう取り組みを続けおいたす。 受賞がご自身のキャリアやチヌムに䞎えた圱響はありたすか 個人的には倧きな 自信 に぀ながりたした。お客様ず話す際も堂々ず話せるようになったず思いたす。 チヌムずしおは、メンバヌの目暙の䞀぀にもなっおいるず思い、その結果 メンバヌのスキル向䞊の啓蒙 になっおいるず思いたす。 たたビゞネスずしおは お客様から の ä¿¡é Œ される 効果が倧きいです。特に技術支揎ずいう、技術力が重芖され る ビゞネス においおは アピヌル ずしお 箔 が付いた こずが䜕より有り難いです。 今埌、個人ずしお、挑戊しおみたい新しい技術・分野や、目指しおいる目暙に぀いお教えおください。 IT技術進歩の歎史の䞭では、倧きなブレむクポむントが床々ありたした。むンタヌネットの商業利甚開始、スマヌトフォンの発明、クラりドサヌビスの開始、 ディヌプラヌニング の 実甚化 。こうしたブレむクポむントが起こるず、そこには倧きなビゞネスチャンスが産み出されたす。それを逃さず習埗し、 新たなビゞネス/サヌビス を創出 しおいきたいず考えおいたす。LLMの成功から、機械孊習・人工知胜が倧きな朮流ずなっおおりたすので、それは確実にキャッチアップしおいきたす。その 次は 、 量子コンピュヌティング だず思っおいたす。 我々のチヌムは、基盀技術者が倚いためアプリケヌション開発に関する 技術の経 鹓 を積む こずが目暙です。たた DevOpsやAI-DLCなどの新たな開発䜓制・手法に぀いおの支揎力をより拡充しおいきたす。 前回のリレヌむンタビュヌ での䜐藀 優音さんから 寺内さんぞのご質問です。ご回答をお願いいたしたす。 寺内さんは、クラりド 黎明期 から 新しいサヌビスに関する知識 を積極的に 収集 されおきたず思いたすが、垞に最新技術をキャッチアップするための ポむントを教えお ください 䞀番の情報収集元はSNSです。自分の興味ある話題を発信するこずで 、SNSプラットフォヌム が私の興味領域を孊習し、 近しい話題を優先的に衚瀺 しおくれたす。 発信 の増加が 入力 の増加に぀ながる奜埪環を生み出すこずがSNS掻甚のコツだず思いたす。 他にも、AWSやIT技術の アンテナの高い瀟内の人ずの察話 が非垞に有甚ですね。 次のむンタビュヌは AWS Top Engineers の「畑 健治」さんです畑さんにお聞きしたいこずはありたすか 畑さんはDBからアプリケヌションたで 幅広いIT技術 を 習埗 されおいたすが、コンピュヌタに觊れおいお 䞀番楜しいず思う点 はどんなずころにありたすか。 寺内さん、ありがずうございたした 最埌に、読者の方ぞメッセヌゞをお願いいたしたす ITの原理原則は科孊技術で成り立っおいたす。 物理 や æ•°å­Š を疎かにせず勉匷しおいきたいです。そしお珟実はSFビゞョンに近づいおきたした。正しく技術を理解し、 次の新たな未来をSF的思考をする こず、それが新たな゚ネルギヌになるず信じ、想像の翌を広げおいきたしょう   次回むンタビュヌは、2025 Japan AWS Top Engineers を受賞された 畑 健治 はた けんじさんです。 次回の蚘事もお楜しみにお埅ちください        
アバタヌ
SCSKの畑です。 今回は実案件における Redis から ElasticasheRedis OSSぞの移行においお盎面したいく぀かの仕様差異に぀いお、どのような察策を取ったのかも合わせお玹介したいず思いたす。ちなみに移行に関する初回の゚ントリは以䞋ずなりたす。 Amazon Elasticache 移行方匏のたずめ ずある案件においお 他クラりド IaaS 䞊の Redis から ElasticacheRedis OSSぞのデヌタ移行芁件があったため、移行方匏に぀いおどの方匏を採甚したのかを含めおたずめおみたした。 blog.usize-tech.com 2026.02.12   差異その1Elasticache は停止ができない たずはベヌシックな内容から。 よく知られおいるこずだず思うのですが、Redis ず異なり Elasticache は停止ができたせん。メモリ䞊にデヌタを保持する以䞊、むンスタンスを停止するずデヌタが倱われおしたうが故の仕様かず類掚するのですが、停止できないずいうこずは䞀床むンスタンスを立ち䞊げた埌は垞時課金が発生しおしたうこずになりたす。特に性胜詊隓甚の環境のように、䜿甚䞭は本番環境ず同様の倧きいむンスタンスを必芁ずする環境ではその匊害もより倧きくなっおしたいたす。 Redis も停止すればデヌタは倱われる以䞊、デヌタを保持したたたの停止ができないずいうのは同様ず蚀えるかもしれたせん。ただ、Redis の堎合はデフォルトで起動時にバックアップdump.rdb ファむルなどからのデヌタロヌドが可胜なため、起動停止を前提ずした運甚は Elasticache より実斜しやすいず蚀えるず思いたす。 そこで、倧きなむンスタンスサむズを必芁ずする環境に぀いおは、環境を䜿甚しおいない時間垯はむンスタンスサむズを瞮小するこずで課金額を䜎枛しようず考えおいたのですが・・ふず、瞮小先のメモリサむズより倧きなデヌタが Elasticache 䞊に存圚したらどういう挙動になるんだろうずいう疑問が。実運甚時においおも同じような状況になるこずが予想できたため事前に怜蚌しおおくこずにしたした。 詊しに 10 GB のキャッシュデヌタを cache.r7g.xlarge のむンスタンスにロヌドした埌、t3.micro にサむズを倉曎しおみたずころ・・ Failed to scale down to cache node type Replication Group redis-downsize-test because the node has insufficient memory. Please select a different node type or reduce current memory usage and retry のような゚ラヌが出力されおしたったため、ある意味予想通りでしたが瞮小できたせんでした。よっお、Elasticache の再䜜成・削陀により起動・停止を代替する方法が唯䞀の回避策ずいう結論ずなりたした。削陀時にデヌタをバックアップずしお残しおおいお、それを再䜜成時に䜿甚するような流れです。先述した Redis の挙動を Elasticache で実珟しようずするずこうなりたす、ずも蚀えたすね。 盎近にリリヌスした Elasticache で早速この察応が必芁ずなったため、 䞀旊は AWS CLI で実装するこずで解決したした 。 ただし、この手法だず各環境ごずに Elasticache の再䜜成コマンドが必芁になっおしたうためあたり効率が良いずは蚀えたせん。本案件における AWS リ゜ヌス/サヌビスのデプロむには CloudFormation を䜿甚しおいるため、将来的にはそちらに移行したいずころです。DeletionPolicy あたりを䜿甚すればできるのかしら・・   差異その2䞀括移行の堎合 Elasticache をバックアップから新芏䜜成する必芁がある 続いおはこちらのテヌマ。䞊蚘内容差異その1ずも関連する内容でもありたす。 先般の゚ントリ でも蚀及しおいた通り、本案件における Elasticache のデヌタ移行は䞀括移行で実斜する旚決定したのですが、䞀括移行においお珟行環境で取埗したバックアップを新環境に移行する際においお、そのタむミングでバックアップから Elasticache を新芏䜜成する必芁がありたす。蚀い換えるず、䜜成枈みの Elasticache に察しお特定のバックアップをリストアするずいうオペレヌションが行えたせん。 よっお、䞀括移行のタむミングたで新環境Elasticacheの゚ンドポむントが䞍明な状態になっおしたうずいう懞念点がありたした。圓日移行切替のタむミングでアプリケヌション偎の各皮蚭定を倉曎する必芁がある蚳ですが、その盎前たで新環境Elasticacheの゚ンドポむントが分からないずいうのは䜜業ぞの圱響が倧きいず考えたためです。 圓初この仕様にものすごく違和感があったのですが、Redis の堎合も起動時にバックアップdump.rdb ファむルなどのデヌタを読み蟌む挙動をしおおり、実のずころ同じ仕様でした。。ただ、仮に同様のシナリオで別の IaaS 䞊の Redis に移行するケヌスを考えおみるず、移行先サヌバぞの接続情報IPアドレス/FQDNは Redis 移行前に分かっおいるこずになるので、その点においおは差異があるず思いたす。 䞀方で、過去の経隓や䞊蚘差異その1の察応においお Elasticache を同じ蚭定で再䜜成した堎合、再䜜成前埌で必ず同じ゚ンドポむント名ずなったこずから、裏取りも兌ねお゚ンドポむントの呜名芏則が分かれば少なくずも珟圚の仕様においお事前に新環境での゚ンドポむント名を導出するこずができるず考えたした。 AWS のドキュメントには該圓するような内容がなさそうだったので、倧人しく AWS サポヌトに確認したした。その結果、呜名芏則に関する公開情報はないずいう前提においお珟圚の仕様を確認頂くこずができたので、以䞋に共有したす。クラスタヌモヌドや転送䞭の暗号化の差異により゚ンドポむントの FQDN が異なるずいうのは正盎気付かなかったずころです・・ ◆クラスタヌモヌド無効・転送䞭の暗号化が有効 ・プラむマリ゚ンドポむント master.<クラスタヌ名>.<6文字のランダム文字列(※).<リヌゞョン名>.cache.amazonaws.com ・リヌダヌ゚ンドポむント replica.<クラスタヌ名>.<6文字のランダム文字列(※).<リヌゞョン名>.cache.amazonaws.com ・ノヌド゚ンドポむント <ノヌド名>.<クラスタヌ名>.<6文字のランダム文字列(※)>.<リヌゞョン名>.cache.amazonaws.com ◆クラスタヌモヌド無効・転送䞭の暗号化が無効 ・プラむマリ゚ンドポむント <クラスタヌ名>.<6文字のランダム文字列(※)>.ng.0001.<リヌゞョン名>.cache.amazonaws.com ・リヌダヌ゚ンドポむント <クラスタヌ名>-ro.<6文字のランダム文字列(※)>.ng.0001.<リヌゞョン名>.cache.amazonaws.com ・ノヌド゚ンドポむント <ノヌド名>.<クラスタヌ名>.<6文字のランダム文字列(※)>.0001.<リヌゞョン名>.cache.amazonaws.com ◆クラスタヌモヌド有効・転送䞭の暗号化が有効 ・蚭定゚ンドポむント clustercfg.<クラスタヌ名>.<6文字のランダム文字列(※)>.<リヌゞョン名>.cache.amazonaws.com ・ノヌド゚ンドポむント <ノヌド名>.<クラスタヌ名>.<6文字のランダム文字列(※)>.<リヌゞョン名>.cache.amazonaws.com ◆クラスタヌモヌド有効・転送䞭の暗号化が無効 ・蚭定゚ンドポむント <クラスタヌ名>.<6文字のランダム文字列(※)>.clustercfg.<リヌゞョン名>.cache.amazonaws.com ・ノヌド゚ンドポむント <ノヌド名>.<6文字のランダム文字列(※)>.0001.<リヌゞョン名>.cache.amazonaws.com (※) 「6文字のランダム文字列」は、同䞀アカりント・同䞀リヌゞョンであれば同じ倀ずなる 今回䜿甚するのは 「クラスタヌモヌド無効・転送䞭の暗号化が無効」 のパタヌンに該圓するので、こちらの呜名芏則を連携しお䞀旊解決ずなりたした。   差異その3通信暗号化方匏ず認蚌方匏の組み合わせにおける制玄がある さお、ある意味本題ずいうか、盞察的に圱響が倧きかったトピックがこちらずなりたす。 珟行の Redis では 通信暗号化方匏暗号化なし 認蚌方匏AUTH 認蚌 ずいう蚭定だったため Elasticache でも螏襲しようずしたずころ、なんず Elasticache の仕様ずしお蚭定できない こずがわかりたした。蚭定可胜な組み合わせは 通信暗号化方匏暗号化あり、認蚌方匏AUTH 認蚌 通信暗号化方匏暗号化あり、認蚌方匏認蚌なし 通信暗号化方匏暗号化なし、認蚌方匏認蚌なし のどちらかに限定されおおり、どれを遞択した堎合においおも珟行 Redis ずの非互換が発生しおしたいたす。たた、珟行 Redis ずの互換性を考えるず、䞊蚘 3 ぀の組み合わせの内、2 に぀いおはどちらの項目も珟行 Redis からの倉曎になるため採甚するメリットがないず刀断し、それ以倖の方匏1 or 3のメリット・デメリットを敎理した䞊でどちらの組み合わせを採甚するかお客さんも亀えお怜蚎したした。 Elasticache における方匏の組み合わせが限定されおいる理由ずしお考えられるのは、「通信暗号化なしの堎合は認蚌情報も平文で通信路を流れおしたうため、認蚌を蚭ける意味がない」ずいうずころだず思いたす。その意図は理解できるのですが、サヌビスレベルで組み合わせを限定するほどの意矩があるのかずいうず・・正盎ないのではずいうのが個人的な感想です。 ざっくりメリット・デメリットをたずめるず以䞋の通りです。平たく蚀うず、珟行環境ず同䞀にするこずで圱響を抑えたい項目ずしおどちらを取るかずいうような内容ですね。 通信暗号化方匏暗号化あり、認蚌方匏AUTH 認蚌 メリットAUTH 認蚌に関連するアプリケヌションコヌドの倉曎が䞍芁 通信暗号化に関連するアプリケヌションコヌドの倉曎は必芁 デメリットElasticache ぞの移行により、通信暗号化に䌎う性胜ぞの圱響が生じる可胜性あり 通信暗号化方匏暗号化なし、認蚌方匏認蚌なし メリットElasticache ぞの移行により性胜ぞの圱響が生じる可胜性を盞察的に抑えられる通信暗号化しないため デメリットAUTH 認蚌に関連するアプリケヌションコヌドの倉曎が必芁 結論から蚀いたすず、本案件では性胜ぞの圱響を重芖しお 「通信暗号化方匏暗号化なし、認蚌方匏認蚌なし」 の組み合わせを遞択するになりたした。たた、珟圚 AWS ぞのマむグレヌションを先行しお実斜しおいる別の案件でも同䞀方匏が遞択されおいたこずも理由の䞀぀ずなりたした。   補足今回のケヌスにおける、䞊蚘倉曎に䌎うアプリケヌションぞの圱響に぀いお 䞊蚘にたずめた通り、通信暗号化を有効にする堎合・AUTH 認蚌を無効にする堎合どちらもアプリケヌションコヌドの倉曎はいずれにせよ必芁になりたすが、実際にどのような倉曎が必芁かはアプリケヌション偎の実装に䟝存したす。 今回のケヌスの堎合、通信暗号化関連に぀いおはいわゆるアプリケヌションのコンフィグ倉曎が必芁でしたが、いずれにせよ移行切替時に接続先を Elasticache の゚ンドポむントに倉曎する必芁があるこずも鑑みるず、圱響はほがなしずいう刀断になりたした。 察しお、AUTH 認蚌の無効化に぀いおは䞀郚のラむブラリを䜿甚しおいるアプリケヌションコヌドにおいお圱響がありたした。䟋えば、phpredis ラむブラリを䜿甚した以䞋のような php のコヌドで AUTH 認蚌なしのElasticache (Redis) に察しお接続しようずするず $redis = new Redis(); $redis->connect($host, $port, $timeout); $authenticated = $redis->auth($password); 以䞋のように、3行目の $redis->auth($password) 実行郚分においお゚ラヌが出力されおしたいたす。AUTH 認蚌が無効であるにも関わらず AUTH コマンドが実行されおいるずいう内容ですね。よっお、このようなコヌドに぀いお、察象凊理の削陀、Elasticache (Redis) に接続できた時点で各皮操䜜ができるようなロゞックぞの倉曎などの修正が必芁ずなりたした。 PHP Fatal error:  Uncaught RedisException: ERR AUTH <password> called without any password configured for the default user. Are you sure your configuration is correct? in /home/ec2-user/redis_test.php:14 ちなみに、AUTH 認蚌無効の Elasticache (Redis) に接続した状態でこの凊理を実行したずしおも、もしラむブラリ偎で゚ラヌを返さないような実装になっおいればコヌド倉曎が䞍芁になった可胜性もありたす。そのあたりは䜿甚しおいるラむブラリに䟝存するずころですが、䞊蚘に぀いおは redis-cli のような公匏ツヌルでも同じ挙動になったので、蚀い方が適切がどうかはさおおきこの実装自䜓は正しいのかなず思いたす。   たずめ 1点目・2点目に぀いおは仕様だけ芋おこういうものなのね、ず䞀旊流しおいたのですが、よくよくナヌスケヌスを考えるず困るみたいな内容でした。幞いどちらも事前に気づけおひずたず察策できたので良かったです。 トヌタルで䞀番圱響が倧きかったのはやはり3点目です。パラメヌタレベルでの互換性は事前にチェックしおいたのですが、Elasticache においおはパラメヌタで蚭定できない内容だったこずに加えお、個々の蚭定通信暗号化/ナヌザ認蚌ずしおは可胜だけど組み合わせパタヌンに制玄がある、ずいう非互換性はちょっず予芋できおおらず面食らいたした。先述の通りその意図は理解できなくはないんですけど、Redis ずの互換性を考えるずできるようにしおおいおも損しないんじゃないかず思うんですけどどうなんでしょうか。ElasticasheRedis OSSを遞択する以䞊は、Redis ずの互換性を最優先するずいう意図があるでしょうし。 本蚘事がどなたかの圹に立おば幞いです。
アバタヌ
こんにちは、SCSKの䌊藀です。 LifeKeeperは特長である『盎芳的なUI』に加え、利䟿性の高いCLIも備えおいたす。 本蚘事では、LifeKeeper for LinuxをCLIのみで構築する流れをご玹介したす。   CLIで構築する際の泚意点 本手順で䜿甚するLKCLIは、v9.5.0から実装された機胜でありバヌゞョンによっお察応しおいるARKが異なりたすので、バヌゞョンに合わせたドキュメントを参照しおおく必芁がありたす。 ■LKCLIガむド(v10.0) https://docs.us.sios.com/spslinux/10.0/ja/topic/lkcli-guide docs.us.sios.com   v10.0に぀いおは、LifeKeeper for Linuxむンストレヌションガむドの 『Linuxの䟝存関係』 に蚘茉のある「䞀般的なパッケヌゞの䟝存関係」のパッケヌゞをむンストヌルしおいれば、LinuxOS䞊のデスクトップ環境のパッケヌゞ導入は必須ではありたせん。 その他のバヌゞョンに぀いおは、デスクトップ環境のパッケヌゞ導入は必須になる堎合もありたすので、事前にサポヌトに確認するようにしおください。   LifeKeeper for LinuxをCLIだけで構築しおみた。 さっそく、LifeKeeper for Linuxの構築をCLIだけで実斜しおいきたす。 タヌミナルの背景に぀いお、LifeKeeperセットアップ画面を陀き 赀はアクティブサヌバ 、 青はスタンバむサヌバ になりたす。 実斜環境は以䞋の通り。 ■環境情報 ホスト名 アクティブサヌバ  rhel01 スタンバむサヌバ  rhel02 OS Red Hat Enterprise Linux release 8.6 (Ootpa) 導入するLifeKeeper補品 LifeKeeper for Linux v10.0 ■コミュニケヌションパス 優先床1 192.168.10.101/192.168.10.102 優先床2 192.168.11.101/192.168.11.102 ■䜜成するリ゜ヌス階局 /kdump ファむルシステムリ゜ヌス  datarep-/kdump デヌタレプリケヌションリ゜ヌス   ip-192.168.11.200 IPアドレスリ゜ヌス ■ファむルパス むンストヌルむメヌゞ /work/LifeKeeper_linux_10-0-0.img ラむセンスファむル /tmp/lk.lic   アクティブサヌバでむンストヌルむメヌゞを確認したす。 [root@rhel01 ~]# ls -l /work/LifeKeeper_linux_10-0-0.img -rw-r–r–. 1 root root 431099904 12月 18 16:20 /work/LifeKeeper_linux_10-0-0.img   むンストヌルむメヌゞをマりントしたす。 [root@rhel01 ~]# mount /work/LifeKeeper_linux_10-0-0.img /media -t iso9660 -o loop mount: /media: 譊告: デバむスは曞き蟌み犁止です、読み蟌み専甚でマりントしたす.   マりント先のディレクトリに移動し、セットアップを実行したす。 [root@rhel01 ~]# cd /media [root@rhel01 media]# ./setup   非同期ミラヌリング構成が未サポヌトである旚の譊告が衚瀺されたすので、[< Continue >]を遞択したす。   [Recovery Kit Selection Menu]を遞び、[<Select>]を遞択しお先に進めたす。   [Storage  —>]を遞び、[<Select>]を遞択しお先に進めたす。   [DataKeeper for Linux]にチェックを入れ、[< Done >]を遞択しお前の画面に戻りたす。   そのたた[< Done >]を遞択しお前の画面に戻りたす。   そのたた[< Done >]を遞択しおむンストヌル構成を確定したす。   むンストヌルの確認画面が衚瀺されるので、[< Yes >]を遞択しおむンストヌルを開始したす。   セットアップが完了するこずを確認したす。 Configure LifeKeeper management group Setup complete.   むンストヌルむメヌゞをアンマりントしたす。 [root@rhel01 media]# cd / [root@rhel01 /]# umount /media   ラむセンスファむルを読み蟌みラむセンスキヌを登録したす。 [root@rhel01 media]# /opt/LifeKeeper/bin/lkkeyins /tmp/lk.lic LifeKeeper license key installation was successful!   LifeKeeperを起動したす。 [root@rhel01 media]# /opt/LifeKeeper/bin/lkstart Created symlink /etc/systemd/system/lifekeeper-graphical.target.requires/lifekeeper.service → /usr/lib/systemd/system/lifekeeper.service. Created symlink /etc/systemd/system/lifekeeper-multi-user.target.requires/lifekeeper.service → /usr/lib/systemd/system/lifekeeper.service.   続けお、スタンバむサヌバにおLifeKeeper for Linuxをむンストヌルしおいきたす。    アクティブサヌバでむンストヌルむメヌゞを確認したす。 [root@rhel02 ~]# ls -l /work/LifeKeeper_linux_10-0-0.img -rw-r–r–. 1 root root 431099904 12月 18 16:20 /work/LifeKeeper_linux_10-0-0.img   むンストヌルむメヌゞをマりントしたす。 [root@rhel02 ~]# mount /work/LifeKeeper_linux_10-0-0.img /media -t iso9660 -o loop mount: /media: 譊告: デバむスは曞き蟌み犁止です、読み蟌み専甚でマりントしたす.   マりント先のディレクトリに移動し、セットアップを実行したす。 [root@rhel02 ~]# cd /media [root@rhel02 media]# ./setup   非同期ミラヌリング構成が未サポヌトである旚の譊告が衚瀺されたすので、[< Continue >]を遞択したす。   [Recovery Kit Selection Menu]を遞び、[<Select>]を遞択しお先に進めたす。   [Storage  —>]を遞び、[<Select>]を遞択しお先に進めたす。   [DaataKeeper for Linux]にチェックを入れ、[< Done >]を遞択しお前の画面に戻りたす。   そのたた[< Done >]を遞択しお前の画面に戻りたす。   そのたた[< Done >]を遞択しおむンストヌル構成を確定したす。   むンストヌルの確認画面が衚瀺されるので、[< Yes >]を遞択しおむンストヌルを開始したす。   セットアップが完了するこずを確認したす。 Configure LifeKeeper management group Setup complete.   むンストヌルむメヌゞをアンマりントしたす。 [root@rhel02 media]# cd / [root@rhel02 /]# umount /media   ラむセンスファむルを読み蟌みラむセンスキヌを登録したす。 [root@rhel02 media]# /opt/LifeKeeper/bin/lkkeyins /tmp/lk.lic LifeKeeper license key installation was successful!   LifeKeeperを起動したす。 [root@rhel02 media]# /opt/LifeKeeper/bin/lkstart Created symlink /etc/systemd/system/lifekeeper-graphical.target.requires/lifekeeper.service → /usr/lib/systemd/system/lifekeeper.service. Created symlink /etc/systemd/system/lifekeeper-multi-user.target.requires/lifekeeper.service → /usr/lib/systemd/system/lifekeeper.service.   それぞれのサヌバでlcdstatusが衚瀺できるこずを確認したす。 [root@rhel01 /]# /opt/LifeKeeper/bin/lcdstatus -e BACKUP TAG ID STATE PRIO PRIMARY [root@rhel02 /]# /opt/LifeKeeper/bin/lcdstatus -e BACKUP TAG ID STATE PRIO PRIMARY    アクティブサヌバで1本目のコミュニケヌションパスを登録したす。 [root@rhel01 ~]# /opt/LifeKeeper/bin/lkcli commpath create –laddr 192.168.10.101 –raddr 192.168.10.102 –dest rhel02 Performing commpath ‘rhel02:192.168.10.101/192.168.10.102’ create… Commpath ‘rhel02:192.168.10.101/192.168.10.102’ created successful.   続けお2本目のコミュニケヌションパスを登録したす。 [root@rhel01 ~]# /opt/LifeKeeper/bin/lkcli commpath create –laddr 192.168.11.101 –raddr 192.168.11.102 –dest rhel02 Performing commpath ‘rhel02:192.168.11.101/192.168.11.102’ create… Commpath ‘rhel02:192.168.11.101/192.168.11.102’ created successful.   コミュニケヌションパスが登録されたこずを確認したす。 ※このタむミングではSTATEがDEAD状態になりたす※ [root@rhel01 ~]# /opt/LifeKeeper/bin/lcdstatus -e BACKUP TAG ID STATE PRIO PRIMARY  MACHINE NETWORK ADDRESSES/DEVICE STATE PRIO rhel02 TCP 192.168.10.101/192.168.10.102 DEAD 1 rhel02 TCP 192.168.11.101/192.168.11.102 DEAD 2   スタンバむサヌバで1本目のコミュニケヌションパスを登録したす。 [root@rhel02 ~]# /opt/LifeKeeper/bin/lkcli commpath create –laddr 192.168.10.102 –raddr 192.168.10.101 –dest rhel01 Performing commpath ‘rhel01:192.168.10.102/192.168.10.101’ create… Commpath ‘rhel01:192.168.10.102/192.168.10.101’ created successful.   続けお2本目のコミュニケヌションパスを登録したす。 [root@rhel02 ~]# /opt/LifeKeeper/bin/lkcli commpath create –laddr 192.168.11.102 –raddr 192.168.11.101 –dest rhel01 Performing commpath ‘rhel01:192.168.11.102/192.168.11.101’ create… Commpath ‘rhel01:192.168.11.102/192.168.11.101’ created successful.   コミュニケヌションパスが登録されたこずを確認したす。 ※このタむミングでSTATEがALIVE状態になりたす※ [root@rhel02 ~]# /opt/LifeKeeper/bin/lcdstatus -e BACKUP TAG ID STATE PRIO PRIMARY MACHINE NETWORK ADDRESSES/DEVICE STATE PRIO rhel01 TCP 192.168.10.102/192.168.10.101 ALIVE 1 rhel01 TCP 192.168.11.102/192.168.11.101 ALIVE 2 [root@rhel01 ~]# /opt/LifeKeeper/bin/lcdstatus -e BACKUP TAG ID STATE PRIO PRIMARY MACHINE NETWORK ADDRESSES/DEVICE STATE PRIO rhel02 TCP 192.168.10.101/192.168.10.102 ALIVE 1 rhel02 TCP 192.168.11.101/192.168.11.102 ALIVE 2   アクティブサヌバでLifeKeeper蚭定ファむルを眮換しおブロヌドキャストPINGモヌドを無効化したす。 [root@rhel01 ~]# vi /etc/default/LifeKeeper :%s/NOBCASTPING=0/NOBCASTPING=1/g :wq!   蚭定倀が「NOBCASTPING=1」になっおいるこずを確認したす。 [root@rhel01 ~]# cat /etc/default/LifeKeeper | grep NOBCASTPING= NOBCASTPING=1 # Can be used to disable the broadcast ping mechanism   スタンバむサヌバでLifeKeeper蚭定ファむルを眮換しおブロヌドキャストPINGモヌドを無効化したす。 [root@rhel02 ~]# vi /etc/default/LifeKeeper :%s/NOBCASTPING=0/NOBCASTPING=1/g :wq!   蚭定倀が「NOBCASTPING=1」になっおいるこずを確認したす。 [root@rhel02 ~]# cat /etc/default/LifeKeeper | grep NOBCASTPING= NOBCASTPING=1 # Can be used to disable the broadcast ping mechanism   アクティブサヌバでIPアドレスリ゜ヌスを䜜成したす。 [root@rhel01 ~]# /opt/LifeKeeper/bin/lkcli resource create ip –tag ip-192.168.11.200 –ipaddr 192.168.11.200 BEGIN create of “ip-192.168.11.200” LifeKeeper application=comm on rhel01. LifeKeeper communications resource type= ip on rhel01. Creating resource instance with id IP-192.168.11.200 on machine rhel01 Resource successfully created on rhel01 BEGIN restore of “ip-192.168.11.200” END successful restore of “ip-192.168.11.200” END successful create of “ip-192.168.11.200”.   䜜成したIPアドレスリ゜ヌスのPINGリストを登録したす。 [root@rhel01 ~]# /opt/LifeKeeper/bin/lkcli resource config ip –tag ip-192.168.11.200 –pinglist 192.168.11.1 Saving new ping list for subnet 192.168.11.0:   PINGリストに登録されたこずを確認したす。 [root@rhel01 ~]# cat /opt/LifeKeeper/subsys/comm/resources/ip/pinglist.192.168.11.0 192.168.11.1   アクティブサヌバにおリ゜ヌスのステヌタスを確認したす [root@rhel01 ~]# /opt/LifeKeeper/bin/lcdstatus -e BACKUP TAG ID STATE PRIO PRIMARY ——  ip-192.168.11.200 IP-192.168.11.200 OSF 1 rhel01 MACHINE NETWORK ADDRESSES/DEVICE STATE PRIO rhel02 TCP 192.168.10.101/192.168.10.102 ALIVE 1 rhel02 TCP 192.168.11.101/192.168.11.102 ALIVE 2 ※この時点でIPアドレスリ゜ヌスのSTATEが OSF になっおいる堎合は、䞋蚘のコマンドでリ゜ヌス起動を実斜したす。 [root@rhel01 ~]# /opt/LifeKeeper/bin/perform_action -t ip-192.168.11.200 -a restore BEGIN restore of “ip-192.168.11.200” END successful restore of “ip-192.168.11.200”   アクティブサヌバからスタンバむサヌバにIPアドレスリ゜ヌスを拡匵したす。 [root@rhel01 ~]# /opt/LifeKeeper/bin/lkcli resource extend ip –tag ip-192.168.11.200 –dest rhel02 –ipaddr 192.168.11.200 Building independent resource list  Checking quorum status  Quorum does not seem to be installed on this server, continuing  Checking existence of extend and canextend scripts  Checking extendability for ip-192.168.11.200  Pre Extend checks were successful Extending resource instances for ip-192.168.11.200  Creating dependencies  Setting switchback type for hierarchy  Creating equivalencies  LifeKeeper Admin Lock (ip-192.168.11.200) Released  Hierarchy successfully extended   アクティブサヌバからスタンバむサヌバにPINGリストを拡匵したす。 [root@rhel01 ~]# /opt/LifeKeeper/bin/lkcli resource config ip –tag ip-192.168.11.200 –pinglist 192.168.11.1 –remote rhel02 Saving new ping list for subnet 192.168.11.0:   スタンバむサヌバにIPアドレスリ゜ヌスが反映されおいるこずを確認したす。 [root@rhel02 ~]# /opt/LifeKeeper/bin/lcdstatus -e BACKUP TAG ID STATE PRIO PRIMARY ——  ip-192.168.11.200 IP-192.168.11.200 OSU 10 rhel01 MACHINE NETWORK ADDRESSES/DEVICE STATE PRIO rhel01 TCP 192.168.10.102/192.168.10.101 ALIVE 1 rhel01 TCP 192.168.11.102/192.168.11.101 ALIVE 2   スタンバむサヌバにPINGリストが反映されおいるこずを確認したす。 [root@rhel02 ~]# cat /opt/LifeKeeper/subsys/comm/resources/ip/pinglist.192.168.11.0 192.168.11.1   続けお、デヌタレプリケヌションリ゜ヌスを䜜成しおいきたす。    アクティブサヌバでレプリケヌション察象がマりントされおいるこずを確認したす。 [root@rhel01 ~]# mount | grep /kdump /dev/sdb1 on /kdump type xfs (rw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota)   スタンバむサヌバでレプリケヌション察象がマりントされおいないこずを確認したす。 [root@rhel02 ~]# mount | grep /kdump [root@rhel02 ~]# fdisk -l /dev/sdb1 ディスク /dev/sdb1: 99 MiB, 103809024 バむト, 202752 セクタ 単䜍: セクタ (1 * 512 = 512 バむト) セクタサむズ (論理 / 物理): 512 バむト / 512 バむト I/O サむズ (最小 / 掚奚): 512 バむト / 512 バむト   アクティブサヌバでデヌタレプリケヌションリ゜ヌスを䜜成したす。 [root@rhel01 ~]# /opt/LifeKeeper/bin/lkcli resource create dk –tag datarep-/kdump –mode synchronous –bitmap /opt/LifeKeeper/bitmap__kdump –hierarchy existing –mount_point /kdump –fstag /kdump BEGIN create of “datarep-/kdump” /dev/sdb1 is configured to be mirrored using /dev/md0 END successful create of “datarep-/kdump” mount -t xfs -orw,seclabel,relatime,attr2,inode64,logbufs=8,logbsize=32k,noquota /dev/md0 /kdump devicehier: Using /opt/LifeKeeper/lkadm/subsys/scsi/netraid/bin/devicehier to construct the hierarchy   アクティブサヌバでデヌタレプリケヌションリ゜ヌスが䜜成されおいるこずを確認したす。 [root@rhel01 ~]# /opt/LifeKeeper/bin/lcdstatus -e BACKUP TAG ID STATE PRIO PRIMARY rhel02  ip-192.168.11.200 IP-192.168.11.200 ISP 1 rhel01 rhel02  /kdump /kdump ISP 1 rhel01 rhel02  datarep-/kdump 1ATA_VBOX_HARDDISK_VBe0725981-3d008a14-1 ISP 1 rhel01 MACHINE NETWORK ADDRESSES/DEVICE STATE PRIO rhel02 TCP 192.168.10.101/192.168.10.102 ALIVE 1 rhel02 TCP 192.168.11.101/192.168.11.102 ALIVE 2   アクティブサヌバからスタンバむサヌバにデヌタレプリケヌションリ゜ヌスを拡匵したす。 [root@rhel01 ~]# /opt/LifeKeeper/bin/lkcli resource extend dk –tag datarep-/kdump –dest rhel02 –mode synchronous –bitmap /opt/LifeKeeper/bitmap__kdump –fstag /kdump –device /dev/sdb1 –laddr 192.168.10.101 –raddr 192.168.10.102 Building independent resource list  Checking quorum status  Quorum does not seem to be installed on this server, continuing  Checking existence of extend and canextend scripts  Checking extendability for datarep-/kdump  Checking extendability for /kdump  Pre Extend checks were successful Extending resource instances for datarep-/kdump  extend datarep-/kdump/rhel01 -> datarep-/kdump/rhel02  Creating dependencies  Setting switchback type for hierarchy  Creating equivalencies  LifeKeeper Admin Lock (/kdump) Released  Hierarchy successfully extended Extending resource instances for /kdump  Creating dependencies  Setting switchback type for hierarchy  Creating equivalencies  LifeKeeper Admin Lock (/kdump) Released  Hierarchy successfully extended   スタンバむサヌバにデヌタレプリケヌションリ゜ヌスが反映されおいるこずを確認したす。 [root@rhel02 ~]# /opt/LifeKeeper/bin/lcdstatus -e BACKUP TAG ID STATE PRIO PRIMARY ——  ip-192.168.11.200 IP-192.168.11.200 OSU 10 rhel01 ——  /kdump /kdump OSU 10 rhel01 ——  datarep-/kdump 1ATA_VBOX_HARDDISK_VB05620f4b-02891c76-1 OSU 10 rhel01 MACHINE NETWORK ADDRESSES/DEVICE STATE PRIO rhel01 TCP 192.168.10.102/192.168.10.101 ALIVE 1 rhel01 TCP 192.168.11.102/192.168.11.101 ALIVE 2   アクティブサヌバからリ゜ヌス階局を䜜成したす。    リ゜ヌス「datarep-/kdump」の䞋䜍にリ゜ヌス「ip-192.168.11.200」を指定したす。 [root@rhel01 ~]# /opt/LifeKeeper/bin/lkcli dependency create –parent datarep-/kdump –child ip-192.168.11.200 Creating the dependency on the server rhel01 Creating the dependency on the server rhel02 The dependency creation was successful   リ゜ヌス階局が䜜成できたこずを確認したす。 [root@rhel01 ~]# /opt/LifeKeeper/bin/lcdstatus -e BACKUP TAG ID STATE PRIO PRIMARY rhel02  /kdump /kdump ISP 1 rhel01 rhel02    datarep-/kdump 1ATA_VBOX_HARDDISK_VBe0725981-3d008a14-1 ISP 1 rhel01 rhel02      ip-192.168.11.200 IP-192.168.11.200 ISP 1 rhel01 MACHINE NETWORK ADDRESSES/DEVICE STATE PRIO rhel02 TCP 192.168.10.101/192.168.10.102 ALIVE 1 rhel02 TCP 192.168.11.101/192.168.11.102 ALIVE 2 [root@rhel02 ~]# /opt/LifeKeeper/bin/lcdstatus -e BACKUP TAG ID STATE PRIO PRIMARY ——  /kdump /kdump OSU 10 rhel01 ——    datarep-/kdump 1ATA_VBOX_HARDDISK_VB05620f4b-02891c76-1 OSU 10 rhel01 ——      ip-192.168.11.200 IP-192.168.11.200 OSU 10 rhel01 MACHINE NETWORK ADDRESSES/DEVICE STATE PRIO rhel01 TCP 192.168.10.102/192.168.10.101 ALIVE 1 rhel01 TCP 192.168.11.102/192.168.11.101 ALIVE 2   念のため、スタンバむサヌバにスむッチオヌバヌを実斜しおみたす。 [root@rhel02 ~]# /opt/LifeKeeper/bin/perform_action -t /kdump -a restore BEGIN restore of “ip-192.168.11.200” END successful restore of “ip-192.168.11.200” BEGIN restore of “datarep-/kdump” /dev/sdb1 is configured to be mirrored using /dev/md0 Resource “/kdump” is “OSU”. The mirror “datarep-/kdump” will wait to replicate data until all resources in the hierarchy of type “filesys” are in-service. To replicate data immediately run: “/opt/LifeKeeper/bin/mirror_action datarep-/kdump resume” on “rhel02” (see “LKDR_WAIT_TO_RESYNC” in /etc/default/LifeKeeper). END successful restore of “datarep-/kdump” BEGIN restore of /kdump mounting file system /kdump mount -txfs -orw,relatime,seclabel,attr2,inode64,logbufs=8,logbsize=32k,noquota /dev/md0 /kdump File system /kdump has been successfully mounted. END successful restore of /kdump   問題なくスむッチオヌバヌできるこずが確認できたした。 [root@rhel02 ~]# /opt/LifeKeeper/bin/lcdstatus -e BACKUP TAG ID STATE PRIO PRIMARY ——  /kdump /kdump ISP 10 rhel01 ——    datarep-/kdump 1ATA_VBOX_HARDDISK_VB05620f4b-02891c76-1 ISP 10 rhel01 ——      ip-192.168.11.200 IP-192.168.11.200 ISP 10 rhel01 MACHINE NETWORK ADDRESSES/DEVICE STATE PRIO rhel01 TCP 192.168.10.102/192.168.10.101 ALIVE 1 rhel01 TCP 192.168.11.102/192.168.11.101 ALIVE 2 [root@rhel01 ~]# /opt/LifeKeeper/bin/lcdstatus -e BACKUP TAG ID STATE PRIO PRIMARY rhel02  /kdump /kdump OSU 1 rhel01 rhel02    datarep-/kdump 1ATA_VBOX_HARDDISK_VBe0725981-3d008a14-1 OSU 1 rhel01 rhel02      ip-192.168.11.200 IP-192.168.11.200 OSU 1 rhel01 MACHINE NETWORK ADDRESSES/DEVICE STATE PRIO rhel02 TCP 192.168.10.101/192.168.10.102 ALIVE 1 rhel02 TCP 192.168.11.101/192.168.11.102 ALIVE 2   さいごに クラりド環境では、構築担圓にGUIログむンをさせたくない等の芁望があるケヌスも少なくありたせん。 GUI接続がネックでLifeKeeper for Linuxの導入を躊躇しおいたナヌザヌの助けになれば幞いです。   詳しい内容をお知りになりたいかたは、以䞋のバナヌからSCSKLifekeeper公匏サむトたで
アバタヌ
Azureを䜿ったハンズオンやワヌクショップを開催する際、参加者のナヌザヌや参加者毎の専甚リ゜ヌスグルヌプを甚意し、それぞれに適切な暩限を蚭定したいこずがあるず思いたす。 本蚘事では、Terraformのfor eachを䜿甚しおこれらの準備を効率的に行う方法に぀いお解説したす。 for eachずは Terraformのfor eachは、リ゜ヌスを耇数回繰り返し䜜成するための機胜です。 通垞、耇数のリ゜ヌスを䜜成する際はそれぞれ個別にresourceブロックを蚘述必芁がありたすが、この機胜を䜿甚するず耇数のリ゜ヌスを1぀のresourceブロックで定矩するこずができたす。 メリット 1. 効率性の向䞊 for eachを䜿甚しない堎合、コン゜ヌルで䜜成たたはresourceブロックを蚘述する䜜業をリ゜ヌスの数だけ繰り返すこずになりたす。 for eachを䜿甚すれば、リストずresourceブロックをそれぞれ1぀蚘述するだけで䜜成できたす。 2. パラメヌタヌの蚭定ミスの䜎枛 「同じパラメヌタヌでリ゜ヌス名だけが違う」ずいうように、䞀郚のパラメヌタヌだけが異なるリ゜ヌスを耇数䜜成するケヌスがあるず思いたす。 for eachを䜿甚せずに個別に䜜成するず、䜜業ミスで䞀郚のリ゜ヌスだけ異なる蚭定にしおしたうこずがあるかもしれたせん。 しかし、for eachを䜿甚すれば、倉えたいパラメヌタヌリ゜ヌス名等だけをリストに蚘述し、他のパラメヌタヌは党く同じリ゜ヌスを安党に䜜成するこずができたす。 䜿い方 たずは、リストを蚘述したす。 locals { names = ["group_a", "group_b", "group_c"] } for eachにこのリストを指定し、{パラメヌタヌ名} = each.key ず蚘述するず、そのパラメヌタヌの倀がリストの各芁玠の倀ずなったリ゜ヌスが䜜成されたす。 䞋蚘のコヌドの堎合、リ゜ヌス名がgroup_a、group_b、group_cのリ゜ヌスグルヌプ3぀が䜜成されたす。 resource "azurerm_resource_group" "example_groups" { for_each = toset(local.names) name = each.key ・・・ } たた、for eachを䜿甚しお䜜成されたリ゜ヌスはマップ型になっおいるため、それらのパラメヌタヌはeach.value.{パラメヌタヌ名}で参照できたす。 䞋蚘のコヌドの堎合、リ゜ヌス名がexample_vmの仮想マシンがgroup_a、group_b、group_cに䜜成されたす。 resource "azurerm_windows_virtual_machine" "example_VMs" { for_each = azurerm_resource_group.example_groups name = "example_vm" resource_group_name = each.value.name ・・・ } 想定ナヌスケヌス ここからはfor eachを掻甚した実践的な䟋ずしお、Azureのワヌクショップやハンズオンの環境準備を想定したTerraformコヌドに぀いお解説したす。 想定するナヌスケヌスは以䞋の通りです。 参加者にはそれぞれナヌザヌを発行する 参加者毎に専甚のリ゜ヌスグルヌプを䜜成し、自分のリ゜ヌスグルヌプでのみリ゜ヌスの䜜成/閲芧/曎新/削陀ができるようにする 参加者党員が参照する共通のリ゜ヌスは閲芧のみ可胜にする 構成むメヌゞ Terraformコヌド 最終的なコヌドは以䞋の通りです。以降の章で各郚の解説を行いたす。 # ナヌザヌ名のリスト variable "user_names" { default = ["user1", "user2", "user3"] } # ナヌザヌIDず専甚リ゜ヌスグルヌプの名前のリスト locals { user_ids = [for user_name in var.user_names: "${user_name}_workshop@xxxxx.onmicrosoft.com"] resource_groups = [for user_name in var.user_names: "${user_name}_workshop_group"] } # ナヌザヌを䜜成 resource "azuread_user" "workshop_users" { for_each = toset(local.user_ids) user_principal_name = each.key display_name = each.key password = "xxxxx" } # グルヌプを䜜成 resource "azuread_group" "workshop_group" { display_name = "workshop" security_enabled = true } # ナヌザヌをグルヌプに远加 resource "azuread_group_member" "workshop_members" { for_each = azuread_user.workshop_users group_object_id = azuread_group.workshop_group.object_id member_object_id = each.value.object_id } # 共通リ゜ヌスグルヌプを䜜成 resource "azurerm_resource_group" "shared_rg" { name = "shared_workshop_group" location = "japaneast" } # 専甚リ゜ヌスグルヌプを䜜成 resource "azurerm_resource_group" "user_rg" { for_each = toset(local.resource_groups) name = each.key location = "japaneast" } # 共通リ゜ヌスグルヌプに察する暩限を定矩 resource "azurerm_role_definition" "shared_rg_read" { name = "SharedRGRead" scope = azurerm_resource_group.shared_rg.id description = "党員共通RGの閲芧暩限" permissions { actions = [ "Microsoft.Resources/subscriptions/resourceGroups/read", "Microsoft.Resources/subscriptions/resourceGroups/resources/read" ] not_actions = [] } assignable_scopes = [azurerm_resource_group.shared_rg.id] } # 共通リ゜ヌスグルヌプに暩限を付䞎 resource "azurerm_role_assignment" "group_shared_rg_read_assign" { scope = azurerm_resource_group.shared_rg.id role_definition_id = azurerm_role_definition.shared_rg_read.role_definition_resource_id principal_id = azuread_group.workshop_group.object_id } # 専甚リ゜ヌスグルヌプぞの暩限を定矩 resource "azurerm_role_definition" "user_rg_crud" { for_each = azurerm_resource_group.user_rg name = "UserRGCRUD_${each.key}" scope = each.value.id description = "${each.key}専甚RG甚のCRUD暩限" permissions { actions = [ "Microsoft.Resources/subscriptions/resourceGroups/read", "Microsoft.Resources/subscriptions/resourceGroups/write", "Microsoft.Resources/subscriptions/resourceGroups/delete", "Microsoft.Resources/*/read", "Microsoft.Resources/*/write", "Microsoft.Resources/*/delete", "Microsoft.Resources/deployments/*" ] not_actions = [] } assignable_scopes = [each.value.id] } # 専甚リ゜ヌスグルヌプに暩限を付䞎 resource "azurerm_role_assignment" "user_rg_crud_assign" { for_each = { for idx, rg_name in local.resource_groups : rg_name => local.user_ids[idx] } scope = azurerm_resource_group.user_rg[each.key].id role_definition_id = azurerm_role_definition.user_rg_crud[each.key].role_definition_resource_id principal_id = azuread_user.workshop_users[each.value].object_id } 1. ナヌザヌ名のリストを䜜成 ナヌザヌ名のリストを䜜成しおいたす。 # ナヌザヌ名のリスト variable "user_names" { default = ["user1", "user2", "user3"] } 2. ナヌザヌIDず専甚リ゜ヌスグルヌプの名前のリストを䜜成 1のリストを䜿甚しお、ナヌザヌIDず専甚リ゜ヌスグルヌプの名前のリストを䜜成したす。 # ナヌザヌIDず専甚リ゜ヌスグルヌプの名前のリスト locals { user_ids = [for user_name in var.user_names: "${user_name}_workshop@xxxxx.onmicrosoft.com"] resource_groups = [for user_name in var.user_names: "${user_name}_workshop_group"] } 3. ナヌザヌを䜜成 2のナヌザヌIDのリストを䜿甚しお、ナヌザヌを䜜成したす。 ※ 手順の簡略化のため、ナヌザヌの衚瀺名はナヌザヌIDず同じ倀にしおいたす。 # ナヌザヌを䜜成 resource "azuread_user" "workshop_users" { for_each = toset(local.user_ids) user_principal_name = each.key display_name = each.key password = "xxxxx" } 4. グルヌプを䜜成 & ナヌザヌを远加 グルヌプを䜜成し、3のナヌザヌをグルヌプに远加したす。 # グルヌプを䜜成 resource "azuread_group" "workshop_group" { display_name = "workshop" security_enabled = true } # ナヌザヌをグルヌプに远加 resource "azuread_group_member" "workshop_members" { for_each = azuread_user.workshop_users group_object_id = azuread_group.workshop_group.object_id member_object_id = each.value.object_id } 5. 共通リ゜ヌスグルヌプを䜜成 共通リ゜ヌスグルヌプを䜜成したす。 # 共通リ゜ヌスグルヌプを䜜成 resource "azurerm_resource_group" "shared_rg" { name = "shared_workshop_group" location = "japaneast" } 6. 各ナヌザヌの専甚リ゜ヌスグルヌプを䜜成 2の専甚リ゜ヌスグルヌプの名前のリストを䜿甚しお、専甚リ゜ヌスグルヌプを䜜成したす。 # 専甚リ゜ヌスグルヌプを䜜成 resource "azurerm_resource_group" "user_rg" { for_each = toset(local.resource_groups) name = each.key location = "japaneast" } 7. 共通リ゜ヌスグルヌプぞのRead暩限を定矩  グルヌプに暩限を付䞎 5の共通リ゜ヌスグルヌプぞのRead暩限を定矩し、4のグルヌプに付䞎したす。 # 共通リ゜ヌスグルヌプに察する暩限を定矩 resource "azurerm_role_definition" "shared_rg_read" { name = "SharedRGRead" scope = azurerm_resource_group.shared_rg.id description = "党員共通RGの閲芧暩限" permissions { actions = [ "Microsoft.Resources/subscriptions/resourceGroups/read", "Microsoft.Resources/subscriptions/resourceGroups/resources/read" ] not_actions = [] } assignable_scopes = [azurerm_resource_group.shared_rg.id] } # 共通リ゜ヌスグルヌプに暩限を付䞎 resource "azurerm_role_assignment" "group_shared_rg_read_assign" { scope = azurerm_resource_group.shared_rg.id role_definition_id = azurerm_role_definition.shared_rg_read.role_definition_resource_id principal_id = azuread_group.workshop_group.object_id } 8. 専甚リ゜ヌスグルヌプぞのCRUD暩限を定矩  各ナヌザヌに暩限を付䞎 6の専甚リ゜ヌスグルヌプぞのCRUD暩限を定矩し、各ナヌザヌに付䞎したす。 Microsoft.Resources/*/read, write, delete の、「*」の郚分にサヌビス名を蚘述するこずで、特定のサヌビスに限定した暩限を付䞎するこずもできたす。 # 専甚リ゜ヌスグルヌプぞの暩限を定矩 resource "azurerm_role_definition" "user_rg_crud" { for_each = azurerm_resource_group.user_rg name = "UserRGCRUD_${each.key}" scope = each.value.id description = "${each.key}専甚RG甚のCRUD暩限" permissions { actions = [ "Microsoft.Resources/subscriptions/resourceGroups/read", "Microsoft.Resources/subscriptions/resourceGroups/write", "Microsoft.Resources/subscriptions/resourceGroups/delete", "Microsoft.Resources/*/read", "Microsoft.Resources/*/write", "Microsoft.Resources/*/delete", "Microsoft.Resources/deployments/*" ] not_actions = [] } assignable_scopes = [each.value.id] } # 専甚リ゜ヌスグルヌプに暩限を付䞎 resource "azurerm_role_assignment" "user_rg_crud_assign" { for_each = { for idx, rg_name in local.resource_groups : rg_name => local.user_ids[idx] } scope = azurerm_resource_group.user_rg[each.key].id role_definition_id = azurerm_role_definition.user_rg_crud[each.key].role_definition_resource_id principal_id = azuread_user.workshop_users[each.value].object_id } 確認 terraform applyを実行しおAzure環境にコヌドで蚘述した内容を反映した埌、管理者暩限を持぀ナヌザヌでログむンするず、以䞋のようにグルヌプにナヌザヌが3぀远加されおいるこずがわかりたす。 たた、リ゜ヌスグルヌプも共通1぀ず専甚3぀の蚈4぀が䜜成されおいるこずが確認できたす。 続いお、参加者甚ナヌザヌでログむンしたす。䞋の画像はuser1_workshop@xxxxx.onmicrosoft.comでログむン リ゜ヌスグルヌプを芋に行くず、共通リ゜ヌスグルヌプず自分の専甚リ゜ヌスグルヌプしか衚瀺されないこずが確認できたす。 たずめ 以䞊の手順で効率的にナヌザヌ/グルヌプ/リ゜ヌスグルヌプの䜜成ず暩限の付䞎ができたす。 TerraformをはじめずするIaCツヌルを䜿甚せずに手䜜業で䞊蚘の環境準備を実斜する堎合、特に各自の専甚リ゜ヌスグルヌプに察する暩限付䞎の郚分で倚くの手間がかかっおしたいたす。 本蚘事で玹介したケヌスに限らず、for_eachを䜿甚するこずで効率的にむンフラ構築ができたすの皆様もぜひお詊しください
アバタヌ
本蚘事ではDropboxの共同線集に぀いお玹介したいず思いたす。 はじめに Dropbox では、他のナヌザヌず共有するファむルを共同線集できたす。共同線集する䜜業は、利甚するツヌルWebブラりザ、デスクトップアプリ、モバむルデバむスやファむルの皮類によっお方法が異なりたす。 前回、Windows PC䞊のWebブラりザを䜿った Dropbox での Microsoft Office ファむル の共同線集に぀いお玹介したした。今回は、Windows PC䞊の Dropboxデスクトップアプリで同期した Microsoft Office ファむル の共同線集 に぀いお蚘茉したす。 䜜業開始前の確認 共同線集を行うにあたっおの前提条件ず制限事項は、前回確認したした。 たた、共同線集を行うには、たず察象のナヌザヌに「線集暩限」を付䞎したフォルダを共有する必芁がある点も前回のWindows PC䞊のWebブラりザを䜿った共同線集ず同じです。詳现は前回の投皿を確認ください。   Windows PCでMicrosoft Office ファむルの共同線集を利甚する -1 では、Dropboxデスクトップアプリで同期した Microsoft Office ファむルの共同線集を利甚する手順を確認したす。 Microsoft Office ファむルの共同線集を利甚する 必芁な蚭定 Windows PC䞊の Dropboxデスクトップアプリで同期した Microsoft Office ファむル の共同線集を利甚する堎合、次の蚭定を行いたす。 「Microsoft Office ぞの保存堎所」の蚭定  ※必須 Windows の保護されたビュヌ ※任意 .「Microsoft Office ぞの保存堎所」の蚭定 Dropboxデスクトップアプリで同期した Microsoft Office ファむル の共同線集を利甚するには、Microsoft Officeアプリ偎に保存堎所ずしおDropboxを登録する必芁がありたす。 管理者による蚭定 管理コン゜ヌルから共同䜜業を有効にする チヌムによるアプリのリンクをブロックしおいる堎合は、Microsoft Office 365 ず Dropbox のリンクを蚱可し、共同䜜業を有効にしたす。 これはチヌム管理者が蚭定する内容なので、先ずはDropboxの管理者にMicrosoft Office 365 ず Dropbox のリンクが蚱可されおいるか確認ください。    管理コン゜ヌル 画面にお 補品  Dropbox の 蚭定 メニュヌから むンテグレヌション タブをクリックしたす。画面䞋郚のアプリのリストにある  Microsoft Office 365 が蚱可されおいるこずを確認したす。 ナヌザヌによる蚭定 Dropbox を保存堎所ずしお远加する ナヌザヌ偎では、 Dropboxデスクトップアプリ ず Microsoft Office アプリ の䞡方で、Dropboxを保存堎所ずしお有効にする必芁がありたす。 Dropbox デスクトップ アプリ Dropbox デスクトップ アプリの [基本蚭定] > [党般] タブを開き 、 Dropbox をMicrosoft Office での保存先ずしお 衚瀺する の暪にあるトグルをオンにしたす。                                   [基本蚭定]>[党般]タブDropbox をMicrosoft Office での保存先ずしお 衚瀺する Microsoft Officeアプリ 各ナヌザヌはMicrosoft Officeアプリ偎でDropbox を保存堎所に远加したす。 Dropbox での Microsoft Office の共同線集 – Dropbox ヘルプ 実斜手順は、Microsoft Office で利甚を開始する方法  Microsoft デスクトップアプリの堎合 を参照ください。 Excel の ファむル メニュヌから 開く をクリック、 堎所の远加 をクリックした堎合は、 画面右の䞀芧から Dropbox for Teams をクリックしたす。   Dropbox の認蚌情報画面が衚瀺されたら、画面をスクロヌルし、メヌルアドレスを入力しおDropboxにログむンしたす。   Dropboxの認蚌が成功するず、保存する堎所ずしお Dropbox が远加されたした。 2. Windows の保護されたビュヌ ファむルを開いお共同䜜業を開始した際にむンタヌネットからのファむルにりむルスが含たれおいる可胜性があるこずを譊告するバナヌが画面䞊郚に衚瀺される堎合がありたす。この堎合、Windowsが自動的に読み取り専甚暩限モヌドでファむルが開くので、ドキュメントの線集を開始するには、 線集を有効にする をクリックしたす。     この手順をスキップするには、Dropbox を信頌枈みサむトに蚭定したす。  コントロヌル パネル を開きたす。  むンタヌネット オプション をクリックしたす。  セキュリティ タブを遞択したす。  信頌枈みサむト を遞択したす。  サむト をクリックしたす。  このりェブサむトをゟヌンに远加 にりェブ アドレス「 https://wopi.dropbox.com 」を入力し 远加 をクリックしたす。 以䞊にお、事前に必芁な蚭定が完了したした。続いお、Dropboxデスクトップアプリで同期した Microsoft Office ファむル の共同線集 を開始したしょう。 Microsoft Office ファむルの共同線集を開始する Dropboxデスクトップアプリで同期した Microsoft Office ファむルWord、PowerPoint、たたは Excel を開いた埌、ファむルの巊䞊にある自動保存をオンに切り替えたす。 ※自動保存がオフになっおいる堎合、共同䜜業は機胜したせん。                     自動保存をオン                                他のナヌザヌず同時に線集䜜業を行っおいるファむル䞊で、誰が䜕凊を線集しおいるのか、たた線集内容をリアルタむムで確認できたす。 共同線集を行っおいるナヌザヌのアむコンが衚瀺されたす。                                    共同線集時には盞手偎で遞択されたセルが色付きの倪線で囲たれたす                                     Dropboxを保存堎所ずしお远加するず、アクセス暩のある Dropboxファむルの共同線集を次の 2 ぀の方法で開始するこずができたす。 ゚クスプロヌラヌWindowsから盎接開く。ファむルをダブルクリックするず、共同䜜業セッションが開始されたす。  Microsoft Office アプリからファむルを開く。ファむルを開くず共同䜜業セッションが開始されたす。 手順は以䞋のずおりです。 Microsoft Office アプリWord、PowerPoint、たたは Excel を起動したす。 巊偎のサむドバヌで 開く をクリックしたす。  Dropbox for Teams をクリックしたす。 開きたいファむルを遞択したす。 補足 Dropbox バッゞは衚瀺されなくなりたす 共同䜜業を有効にするず、 Dropbox バッゞは衚瀺されなくなりたす。 Dropbox バッゞは衚瀺されなくなりたすが、他のナヌザヌず共同䜜業しながら倉曎内容をリアルタむムで確認するこずで、党員が最新バヌゞョンで共同䜜業を行えたす。これにより、線集ファむルのコピヌ競合を防ぐこずができ、ファむルの管理がより簡単になりたす。 Microsoft Officeアプリの保存堎所からDropbox を削陀する Microsoft Officeアプリの「名前を付けお保存」や「開く」の画面に衚瀺される「Dropbox for Teams」を削陀するには、 「接続枈みサヌビス」から削陀 したす。 Microsoft Officeアプリ [ファむル] メニュヌ [アカりント] を遞択するず、画面右偎に「接続枈みサヌビス」が衚瀺されたす。 䞀芧にある 「Dropbox for Teams」 の暪に衚瀺されおいる [削陀] をクリックしたす。 確認メッセヌゞが衚瀺されたら、[はい] をクリックしたす。 蚭定を反映させるには、䞀旊 Microsoft Officeアプリを終了ください。 たずめ 1. 共同線集は Web ブラりザずデスクトップアプリで利甚可胜 2. 各利甚方法に前提条件ず制限事項がある 3. 共同線集には共有ファむルを「 線集可胜 」で共有する必芁がある 4. デスクトップで利甚するには远加蚭定が必芁 5. 共同線集䞭は競合防止やリアルタむム線集が可胜   本投皿に関するお問合せ先     ïŒšã€€ Dropbox-sales@scsk.jp SCSKのDropbox取り組み玹介    https://www.scsk.jp/product/common/dropbox/index.html 参照情報 Dropbox 内で共同䜜業を有効にする方法 https://help.dropbox.com/ja-jp/view-edit/admin-guide-co-authoring Dropbox での Microsoft Office の共同線集 https://help.dropbox.com/ja-jp/view-edit/collaborate-on-microsoft-office Microsoft Office 365 で Dropbox を堎所ずしお远加する方法 https://help.dropbox.com/ja-jp/integrations/adding-place-microsoft-office Dropbox 向け Microsoft Office に関するよくある質問 https://help.dropbox.com/ja-jp/integrations/microsoft-office-faq
アバタヌ
䌁業ネットワヌク環境では、セキュリティや管理の芳点から、゜フトりェアを耇数のパ゜コンに䞀括で自動むンストヌルしたいケヌスがあるかず思いたす。 䞀般的にはIT資産管理゜フトを利甚するこずが倚いですが、Active DirectoryのグルヌプポリシヌGPOでもMSI圢匏のむンストヌラヌを䜿った手軜な自動むンストヌル機胜が提䟛されおいたす。 今回はCatoクラむアントのMSIむンストヌラヌずGPOを利甚しお自動むンストヌルする手順をご玹介したす。 前提条件 今回、グルヌプポリシヌでCatoクラむアントを自動むンストヌルする際に䜿甚した構成・環境は以䞋の通りです。 構成 Catoネットワヌク環境 Active Directoryドメむンコントロヌラヌ Windows PC 環境 Windows PCがActive Directoryドメむンに参加枈み Active Directoryドメむン䞊に、むンストヌル察象ずなるWindows PC甚のOU組織単䜍が存圚する Windows PCから読み取り可胜なWindows共有フォルダヌ Active Directoryや共有フォルダヌを操䜜できるドメむン管理者暩限のナヌザヌ 党䜓の流れ CatoクラむアントのMSIむンストヌラヌファむルをWindows共有フォルダヌぞ配眮する ドメむンコントロヌラヌ䞊でGPOを䜜成する GPOが適甚されたWindows PCにナヌザヌの操䜜なしで自動むンストヌルが行われる 詳现手順 1. CatoクラむアントのMSIむンストヌラヌファむルを準備しお配眮する 1-1. MSIむンストヌラヌファむルの入手 Cato管理画面CMAにログむンし、 [Access] → [Client Rollout] → Windows Clientの[Download Client] → [Download MSI] からMSI圢匏のむンストヌラヌをダりンロヌドしおください。   1-2. Windows共有フォルダヌぞの配眮 ダりンロヌドしたMSIむンストヌラヌファむルを、Windows PCから接続可胜な共有フォルダヌぞ配眮しおください。 配眮したファむルのUNCパスをメモしおおきたしょう。 䟋UNCパス \\ad\share\setup.msi   2. ドメむンコントロヌラヌ䞊でGPOを䜜成する 2-1. グルヌプポリシヌ管理ツヌルの起動 ドメむンコントロヌラヌにサむンむンし、管理ツヌルからグルヌプポリシヌの管理を起動したす。   2-2. GPOの䜜成および適甚先のOU指定 むンストヌル先ずなるオブゞェクトが所属するOUに、新芏GPOを䜜成しおください。既存のGPOが甚途に合う堎合はそちらを䜿甚しおも構いたせん。 ここではMEMBERコンピュヌタヌオブゞェクトが所属しおいる[catoscsk.local/Cato/PC/Mobile/]OUを察象ずしたす。   2-3. グルヌプポリシヌの線集 䜜成したGPOを右クリックし線集をクリックしおください。 「グルヌプ ポリシヌ管理゚ディタヌ」が起動したら [コンピュヌタヌの構成] → [ポリシヌ] → [゜フトりェアの蚭定] → [゜フトりェア むンストヌル] ずツリヌを展開しおください。   2-4. パッケヌゞの远加 ゜フトりェア むンストヌルを右クリックし、新芏䜜成→パッケヌゞずクリックしおください。   2-5. むンストヌラヌファむルの指定 開くダむアログボックスが衚瀺されるので、パスの箇所に共有フォルダヌのUNCパス䟋\\ad\share\を入力し、察象ファむル䟋setup.msiを遞択し開くをクリックしおください。   2-6. パッケヌゞの割り圓お 衚瀺されるりィンドりで割り圓お枈みを遞択し、OKをクリックしおください。 ※この操䜜が完了するず、次回Windows PC起動時にパッケヌゞがむンストヌルされるので、タむミング等は考慮しおください。 パッケヌゞが右ペむンに衚瀺されれば蚭定完了です。 このGPOが適甚された埌、起動したWindows PCで自動むンストヌルが行われたす。   3. GPOの適甚ず自動むンストヌル GPOを適甚したWindows PCを再起動しおください。 グルヌプポリシヌの倉曎が反映された埌、PCの起動時にCatoクラむアントが自動むンストヌルされ、スタヌトメニュヌやデスクトップに[Cato Client]アむコンが䜜成されたす。   たずめ MSI圢匏のCatoクラむアントのむンストヌラヌを利甚し、Active Directoryのグルヌプポリシヌの機胜を䜿っお自動むンストヌルできるこずを確認したした。 䌁業環境でのクラむアント展開の䞀䟋ずしお、参考になれば幞いです。
アバタヌ
ビゞネスのデゞタル化が進む䞭、もはや「ただのオンラむンストレヌゞ」の枠を超え、チヌムの共同䜜業プラットフォヌムずしお欠かせない存圚になった Dropbox。 しかし、いざ導入や芋盎しを怜蚎するず「Standard、Advanced、Enterprise  結局、自瀟にはどれが最適なの」ずいう壁にぶ぀かりがちです。プランを間違えるず、コストが無駄になったり、逆にセキュリティ芁件を満たせなかったりするこずも。 今回は、䌁業向けDropboxの3プランの決定的な違いず、迷わず遞ぶための「簡単遞択ガむド」をお届けしたす。 特に、次のようなお悩みをお持ちの方は必芋です。 「プランが倚すぎお、どこから比范すべきか分からない」 「急増するデヌタの容量䞍足や、情報挏掩察策に頭を悩たせおいる」 「ファむルサヌバヌからの移行、業務を止めずにできるか䞍安  」 この蚘事を読めば、自瀟に最適なプランず、スムヌズな導入の進め方が芋えおきたす。 䌁業向けDropbox 3プランの比范衚 たずは、䞻芁な機胜を暪䞊びで比范しおみたしょう。                機胜・項目 Standard Advanced Enterprise 䞻な察象 小芏暡なチヌム 䞭堅〜倧芏暡組織 䞻に倧芏暡䌁業 高床な管理・制限が必芁な組織 ストレヌゞ容量 合蚈5TBチヌム党䜓 15TB〜5TB xナヌザ数 必芁なだけ ファむル単䜍のアクセス履歎 なし ✓ ✓ SSO連携 なし ✓ ✓ ランサムりェアの怜知ず埩元 なし ✓ ✓ 䞍審なアクティビティのアラヌト なし ✓ ✓ ゚ンタヌプラむズモビリティ管理連携 モバむルデバむスの制限 なし なし ✓ デヌタ保持/埩元 180日間 365日間 365日間   ズバリ、自瀟にはどれ「簡単遞択ガむド」 「機胜䞀芧を芋おもピンずこない」ずいう方のために、刀断基準をシンプルにたずめたした。 【Standard】を遞ぶべきケヌス 利甚人数が10名以䞋で、扱うデヌタがテキストや䞀般的なOffice文曞䞭心合蚈5TBで足りる。 たずは手軜に、堎所を遞ばない働き方を実珟したい。 【Advanced】を遞ぶべきケヌス 「容量䞍足を気にしたくない」 。動画やCADデヌタなど重いファむルを頻繁に扱う。 「誰が、い぀、䜕をしたか」 を詳现なログで远跡する必芁がある。 シングルサむンオンSSOを導入しお、ID管理を䞀元化したい。 【Enterprise】を遞ぶべきケヌス 数千名芏暡のナヌザを管理する必芁がある。 高床なガバナンス モバむルデバむスの利甚制限、瀟内での個人アカりントの利甚制限などが必須。 ストレヌゞ容量が1PBを超えおくる可胜性がある。   「ラむセンスを買っお終わり」にしない。SCSKが遞ばれる理由 Dropboxは非垞に䜿いやすいツヌルですが、䌁業導入においお最倧のハヌドルずなるのが「既存環境からの移行」 ず 「運甚ルヌルの培底」です。 SCSKでは、単なるラむセンス販売にずどたらず、お客様の「困った」を解決する以䞋のメニュヌを揃えおいたす。 ① 移行の䞍安を解消する「デヌタ移行支揎」 セルフデヌタ移行ツヌルの提䟛 「自分たちで安䟡に、でも確実に移行したい」ずいう方向けに、SCSK独自の移行支揎ツヌルを提䟛しおいたす。 関連蚘事 【決定版】Dropboxぞのデヌタ移行を自力で効率化SCSK「セルフデヌタ移行ツヌル」忖床なしレビュヌ – TechHarmony 移行䜜業の請負倧芏暡案件向け 「ファむルサヌバヌに数テラバむトのデヌタがあり、業務を止めずに移行するのは無理  」ずいう堎合は、SCSKのプロフェッショナルが移行蚈画の策定から実䜜業たでを代行したす。 100TBを超えるような超倧芏暡の移行実瞟 もございたすので、安心しおお任せください。            関連蚘事 東急建蚭株匏䌚瀟 様お客様事䟋SCSK株匏䌚瀟 ② 「䜿いこなし」を加速するトレヌニング 導入しおも䜿われなければ意味がありたせん。 管理者が安心しお運甚するための 管理者向けトレヌニング ナヌザヌが迷わず䜿いこなすための 利甚者向けトレヌニング これらをセットで実斜し、スムヌズな定着を支揎したす。 ③ 安党性を高める「認蚌システム連携」 Microsoft Entra ID旧 Azure ADやIDaaSずの連携蚭定も、技術的な知芋を持぀SCSKにお任せください。セキュアで利䟿性の高いSSO環境を構築したす。   たずめ Dropboxのプラン遞びは、珟圚の人数だけでなく、「将来のデヌタ量」 ず 「必芁なガバナンスレベル」を芋極めるのがコツです。 「自瀟の芁件だず、Advancedで足りるかな」「移行のコスト感を知りたい」ずいった具䜓的なご盞談があれば、ぜひお気軜にお問い合わせください。日本初のDropbox認定サヌビスパヌトナヌずしお培ったノりハりで、最適な環境づくりをお手䌝いしたす。 本投皿に関するお問合せ先  Dropbox-sales@scsk.jp SCSKのDropbox取り組み玹介 https://www.scsk.jp/product/common/dropbox/index.html
アバタヌ
こんにちは、Catoクラりド担圓SEの䞭川です 今回の蚘事では、SocketのBypass機胜の匷化に぀いおご玹介したす。 ようやくBypassしたい通信先の指定にFQDNが䜿えるようになりたしたので、その点を䞭心に蚭定方法を亀えながらご玹介したす。 Bypass機胜っおそもそもなんだっけ、ずいう方は䞋蚘の蚘事をご参考いただければず思いたす。 【Catoクラりド】アプリケヌション指定で通信をバむパスする – TechHarmony 本蚘事は䞋蚘のリリヌスノヌトの内容に埓っお蚘述しおいたす。 Socket-Version-25-0-Release-Notes 2026幎2月時点でEarly Availabilityずしお提䟛されおいたす。正匏リリヌス時には機胜が倉曎ずなる可胜性がありたすので、ご留意ください。 はじめに たず前提ずしお、Catoではすべおのトラフィックを Cato Cloudに集玄しセキュリティチェックするこずが掚奚されおいたす。Bypass機胜を利甚するずセキュリティチェックが行われたせんので、この点はご承知おきください。 ただその䞀方で、セキュリティレベルが担保されおいる特定の通信に぀いお、 Socket から盎接むンタヌネットぞブレむクアりトさせたい ずいう芁件も少なくありたせん。 特にブレむクアりトさせたいず芁望いただいおいたのが Windows Update です。Windows UpdateがMicrosoftから配信されるず、䞀斉にPCがアップデヌトを始めおしたい垯域を䞀気に消費しおしたいやすいからです。 これたでは、QoSで優先床を䞋げるこずで、他の通信に圱響を䞎えないよう回避しおいただくこずを掚奚しおいたした。 ただ回避策があったずはいえ、そもそもCatoを経由させずに垯域を䞀切䜿わせないようにしたいずいう芁望が倚くありたした。 そのご芁望をかなえる機胜がようやく远加されたずいうこずです アップデヌト抂芁 今回のBypass機胜匷化に぀いお、倧きく3぀のポむントに分けおご説明したす 通信先指定がより柔軟に これたでも特定の通信をBypassさせるこずは可胜でしたが、かなり限定的でした。具䜓的には IP アドレス指定  もしくは 以䞋の アプリケヌションのみ に限定されおいたした。 Zoom Google Apps Microsoft SharePoint Online および OneDrive Microsoft Teams Microsoft Exchange (Outlook) Microsoft Defender そのため䟋えばIPアドレスが公開されおいるSaaSサヌビスをBypassさせるこずは可胜でしたが、IPアドレスの远加があったりするずCMA䞊でわざわざ登録する必芁があり運甚に負担がありたした。 今回のアップデヌトでは、䞋画像のように遞択肢が増え、FQDNのほか、Custom Applicationやサブネットでも指定可胜になりたした。 Applicationは埓来の宛先に加えお、Windows Updateのほか、NetflixやAmazon Prime Videoなどの動画配信サヌビスも指定可胜になっおいたす。 たた、プロトコルでの指定も可胜になりたした。Simple Serviceを遞べば䞋蚘のいずれかで簡単に指定できるほか、Custom Serviceを遞べばポヌト番号を蚘茉する圢で指定もできたす。 管理が簡単に 蚭定箇所がこれたでSiteごずのConfigurationでしたが、 CMAのNetwork  Bypassに移動しおいたす。 Siteごずに個別に蚭定運甚する必芁がなくなり、SiteをAnyず指定すれば䞀括で蚭定が適甚できるようになり、たた各Siteに蚭定倀を芋に行かなくおも1ペヌゞで蚭定倀が可芖化できるようになったこずもメリットず蚀えたす。   むベントログが残るように 特にCatoのアップデヌト情報では蚀及されおいたせんが、埓来のBypass機胜ではむベントログは残せなかったずころ、今回のアップデヌトでむベントログに蚘録されるようになりたした。 Bypass機胜を利甚し始めたずきに、きちんず想定通りBypassされおいるのか、反察に䜙蚈な通信もBypassされおしたっおいないか確認するのに有甚ず思いたす。 䞋画像が実際のむベントログで、Sub-TypeSocket Bypass、RuleBypassのルヌル名で蚘録されるこずがわかりたした。 具䜓的な蚭定方法を解説 それでは早速、具䜓的な蚭定方法を解説しおいきたす。   最初に 先述の通り、蚭定箇所はNetwork  Bypassです。初めおBypass機胜を利甚される堎合は、右䞊のBypass rules Enabledのトグルをオンにする必芁がありたす。 拠点ず送信元の指定SiteずSource Firewallのルヌルなどず少し違うのは、Sourceずは別でSiteの蚭定があるこずです。 䞋画像の通り、Siteを指定したあず、SourceずしおIPアドレスレンゞやVLAN IDなどで送信元を限定するこずができたす。 今回はSiteのみ指定し、SourceはAnyずしたす。 送信先Destination Destinationは先の通り、FQDNやCustom Application遞べるようになりたした。 Custom Applicationでは、耇数のFQDNやIPアドレスをたずめおグルヌピングしおおき、各ルヌルの線集を行わなくずもグルヌプで远加すればすべおのルヌルに適甚できる点が小さなメリットです。 今回のルヌルは、ApplicationでWindows Updateを遞択したす。 ポヌト遞択ずむベント蚘録Actions Actionsでは、Socketのポヌト遞択ず、むベントに残すかが遞択できたす。 ポヌト遞択では、もし特定のポヌトからトラフィックを匷制的にブレむクアりトさせたい堎合には、WANポヌトを指定できたす。 䟋えばむンタヌネット回線が耇数あっお、Bypassさせる通信は特定のむンタヌネット回線を䜿わせるようにしたい、ずいった现かな芁件がある堎合に䜿甚したす。 ※AutomaticのたたにするずSocketで最適遞択されたす。 今回はAutomaticで、むベントログはオンにしたした。 最終的には䞋画像のような芋栄えになり、Firewallなどず同様Hit Count(むベント数)も芋るこずができたす。 想定ナヌスケヌス Catoのリリヌスノヌトでは、以䞋のようなナヌスケヌスが䟋瀺されおいたした。 Windows Update クラりドバックアップ ゲスト Wi-Fi Windows Updateのほか、既定のバックアップデヌタ保管先ずしおのクラりドサヌビスや、ゲストWi-Fiを拠点内で提䟛しおいる堎合に送信元指定しお、Catoを経由させないずいったこずもBypassの利甚シヌンずしお想定されおいたす。 その他ずしおは、Applicationで元々遞択できたWeb䌚議系、今回远加された動画配信サむト系などのリアルタむムの通信性胜が求められるような通信先があげられるかず思いたす。 ※FirewallやCASBなどで、䟋えばTeamsやNetflixに通信制埡をかけおいる堎合は、Bypassしおしたうず制埡が効かなくなりたすので泚意が必芁です。 たずめ 今回のアップデヌトにより、Socket の Bypass 機胜が倧きく匷化されたした。 これたで特に芁望の倚かったWindows Updateに぀いお、ようやく珟実的な圢でBypassできるようになった点は倧きなポむントです。 たた、テナント党䜓での䞀元管理やむベントログの蚘録に察応したこずで、運甚面でも扱いやすくなったず蚀えたす。 䞀方で、Bypassされた通信にはセキュリティチェックが適甚されないため、察象ずする通信の遞定には泚意が必芁です。 本機胜の特性を理解したうえで、適切なナヌスケヌスに限定しお掻甚しおいただければず思いたす。
アバタヌ
Microsoft ESI ã«ã€ã„お調べおも公匏情報が芋぀からず、ブログ蚘事もほが存圚したせん。 私自身ただ䜿いこなせおはいたせんが、本蚘事では実際に觊れた内容を远蚘しながら、ESI ã®æƒ…報を共有したす。   Microsoft ESIずは Microsoft ESI(Enterprise Skills Initiative) ã¯ã€äŒæ¥­å‘けに提䟛されるクラりドやAIの孊習プログラムです。 割匕蟌みの資栌の申し蟌みや、トレヌニングコヌスの受講などが甚意されおたす。   コンテンツ Enterprise Skills Initiative esi.microsoft.com ESIポヌタルには8぀のコンテンツがありたす 1.Copilot for Microsoft 365 Training 2.Course Videos 3.Microsoft Learn for Organizations 4.Instructor-Led Courses 5.Microsoft Credentials 6.Microsoft Virtual Training Days 7.Training Services Partners 8.Games この䞭でも5. Microsoft Credentials は認定詊隓を50%オフで申し蟌めたす。 正盎、SCSK瀟員の倚くはこれしか䜿っおない気がしおたす。 私自身も今たでは「ESI資栌申し蟌み」ずいうむメヌゞが匷かったですが、最近4. Instructor-Led Courses を利甚したした。 Instructor-Led Coursesはマむクロ゜フト専門家によるオンラむン講座を受講できるサヌビスです。   Instructor-Led Courses䜓隓蚘 詊しにCopilotの講座を受けおみたした。 講座名は「AI-3025 Work smarter with AI」で、3時間のTeamsを利甚したオンラむン授業でした。 内容ずしおはCopilot ã®æŠ‚芁説明から始たり、PowerPointでのCopilot䜿甚方法、効果的なプロンプトの䜜り方たで実務で即実践できる構成になっおたした。 特に印象的だったのは ラボ環境 が甚意されおいた点です。職堎でMicrosoft 365 Copilotが䜿えない人にも環境が甚意されおいお芪切でした。 講座の最埌にはアンケヌトを蚘入しお終了ずいう流れです。 今床Microsoft Foundryの講座受けおきたす。 AI゚ヌゞェントを䜜成するこずがあたりないので楜しみです。   さいごに Microsoft ESIは、資栌申し蟌みだけでなく倚様なコンテンツが揃っおおり、䜿い倒すほど面癜さが芋えおくるサヌビスだず感じおいたす。 今埌は利甚したコンテンツの䜓隓をもずに蚘事を曎新しおいきたす。
アバタヌ
SCSKの畑です。 先般の゚ントリ の内容は MySQL における特定障害シナリオからの埩旧手順の怜蚌に関連するものでしたが、匕き続き今回はその障害シナリオや埩旧手順に぀いお説明したいず思いたす。たた、その埩旧手順に関連する内容ずしお RDS/Aurora (MySQL) におけるバむナリログの確認・取埗方法に぀いおも合わせお玹介したす。   デヌタベヌスの構成に぀いお たず、本゚ントリで蚀及しおいくデヌタベヌス環境の構成に぀いお説明したす。 具䜓的には、以䞋の通り Aurora ⇒ EC2 䞊の MySQL ⇒ RDS ずいう流れで、ログポゞションベヌスのレプリケヌションが構成されおいる環境ずなりたす。たた、Aurora ⇒ EC2 䞊の MySQL 間ではレプリケヌションフィルタを䜿甚しおおり、特定のテヌブルに察する曎新のみをレプリケヌションしおいたす。よっお、必然的に EC2 䞊の MySQL ⇒ RDS 間においおも同じテヌブルに察する曎新のみがレプリケヌションされたす。 たた、Aurora 及び RDS はそれぞれ別の目的で耇数のアプリケヌションから䜿甚されおおり、䞡方のデヌタベヌスを䜿甚しおいるアプリケヌションも存圚したす。 ちなみに、実環境の構成はこの数倍以䞊耇雑で、デヌタベヌスむンスタンスの個数もはるかに倚いです。今回はあくたで怜蚌甚に実環境のサブセットを構成しおいるずお考えください。 たた、どうしおこのようなデヌタベヌスレプリケヌションの構成にしおいるんだろうずいう疑問をお持ちの方もいるかもしれたせんが、そのあたりの理由は別゚ントリにお小ネタ的に觊れたいず思いたす。ちゃんず理由がありたすので・・ たた、MySQL デヌタベヌスにおけるレプリケヌションの抂芁に぀いおは、抂芁を同じ課の野䞊さんが昚幎床たずめおくれおいたので、そちらも合わせおご芧いただければず思いたす。 MySQL レプリケヌションの方匏をたずめおみた 初心者ながらレプリケヌションの方匏をたずめお蚘事にしたした。 blog.usize-tech.com 2024.12.24   怜蚌察象の障害シナリオ及び埩旧手順に぀いお 怜蚌察象の障害シナリオ EC2 の AZ 障害 が察象のシナリオずなりたす。 本案件における Aurora や RDS はマルチ AZ 構成ずするため、単䞀 AZ 障害が発生した堎合でもクラスタ or むンスタンスがフェむルオヌバするこずで継続皌働できたす。察しお EC2 の堎合は単䞀 AZ 䞊にのみ構成されるため、同 AZ で障害が発生した堎合は継続皌働できたせん。EC2 の埩旧手順自䜓は発生した AZ 障害の内容によりケヌスバむケヌスで倉わっおくるず思われたすが、どちらにせよ EC2 䞊で皌働しおいた MySQL のデヌタが障害発生盎前の状態で埩旧できる可胜性は䜎いず考えるべきです。 よっお、 EC2 の埩旧埌に MySQL のデヌタを埩旧し、䞊流の Aurora 及び䞋流の RDS 間ずレプリケヌションを再開するための手順に぀いお怜蚎する必芁がありたした。 埩旧手順 こちらは先般の゚ントリでも觊れおいた通り、「 MySQL のデヌタをマネヌゞド PITR で特定時刻のデヌタ断面にリカバリした埌、その時刻以降のトランザクションログを察象ずしおレプリケヌションするこずで埩旧する 」流れずなりたす。具䜓的には以䞋の通りです。 文章ずしお冗長になっおしたうので、以䞋では「EC2 䞊の MySQL」を䟿宜的に「EC2」ず呌称したす。 EC2 むンスタンスを AMI から再䜜成 AZ 障害により AMI より EC2 むンスタンスの再䜜成が必芁ずいう前提のため Aurora のマネヌゞド PITR 機胜を䜿甚しお、できる限り最新の特定時刻のデヌタ断面にリカバリした Aurora を䜜成 AMI に含たれる EC2 侊 MySQL のデヌタの䞀貫性/敎合性が保蚌されおいない前提のため 指定した「特定時刻」以降のバむナリログが Aurora 䞊に党お保持されおいるこず 1.で䜜成した Aurora から、EC2 及び RDS にレプリケヌションしおいる察象のテヌブルデヌタを゚クスポヌトし、EC2 及び RDS にむンポヌト 1.で指定した「特定時刻」に該圓するバむナリログトランザクションログのログポゞションを、Aurora 䞊に保持しおいるバむナリログから特定し、EC2 のレプリケヌション開始ポゞションに蚭定 EC2 䞊のバむナリログの珟圚のログポゞションを確認し、RDS のレプリケヌション開始ポゞションに蚭定 EC2 及び RDS でレプリケヌションを再開 今回はレプリケヌション䞭継甚の EC2 で障害が発生しおいたすので、EC2 だけではなくその䞋流の RDS に぀いおもレプリケヌションの察象テヌブルデヌタを特定時刻のデヌタ断面にリカバリする必芁がありたす。この郚分が手順 2-3 ですね。その䞊で、特定時刻以降のトランザクションログを察象ずしおレプリケヌションを再開する郚分が手順 4-6 にあたるのですが、ここが少々難解です。 たず、レプリケヌションの蚭定は、レプリケヌションのタヌゲットずなる MySQL で行う必芁がありたす。぀たり、Aurora ⇒ EC2 のレプリケヌションに぀いおは EC2 䞊で、EC2 ⇒ RDS のレプリケヌションに぀いおは RDS 䞊で蚭定したす。そしお先述の通りログポゞションベヌスのレプリケヌションを䜿甚しおいるため、レプリケヌション再開再構成にはレプリケヌションの゜ヌスずなる MySQL のバむナリログポゞションを指定する必芁がありたす。぀たり、RDS では EC2 のバむナリログポゞション、EC2 では Aurora のバむナリログポゞションをそれぞれ指定するこずになりたす。 この内、EC2 に぀いおはレプリケヌション䞭継甚であり、元々 Aurora からのレプリケヌションによる曎新以倖は発生したせん。よっお、手順 3 の完了埌は 手順 6 によるレプリケヌション再開たでデヌタベヌスに曎新が発生せず静止点が保たれるため、RDS のレプリケヌション再開時に指定するログポゞションは EC2 䞊のバむナリログの珟圚のポゞションをそのたた䜿甚すれば OK です。 䞀方で、EC2 の AZ 障害が発生しおも Aurora は先述の通り継続皌働できるため、デヌタの静止点は確保できないこずから、EC2 ず同じような方法ではバむナリログポゞションの確認ができたせん。よっお、代わりに Aurora 䞊のバむナリログの内容を確認しお、手順 1 で指定した特定時刻に該圓するログポゞションを特定する必芁があるずいうこずになりたす。぀たり手順 4 ですね。 そしお、この「Aurora 䞊のバむナリログの内容確認」手順が未怜蚌であったため、やっおみたずころ意倖ず手間取ったずいうのが次セクションの話になりたす。 なお、AMI に含たれる EC2 侊 MySQL のデヌタの䞀貫性/敎合性が保蚌されおおり、か぀そのデヌタ断面の時刻以降のバむナリログが Aurora 䞊に党お保持されおいる前提であれば手順 2 は䞍芁です。この堎合、手順 3 では EC2 侊 MySQL のデヌタを RDS に゚クスポヌト/むンポヌトするこずになりたす。 ただし、この方匏では定期的に MySQL 及び EC2 を停止しお AMI を取埗する必芁があるため、その間は Aurora ⇒ RDS 間のレプリケヌションが実質的に停止しおしたいたす。その時間を蚱容できるかどうかが採甚可吊に盎結したすが、本案件では NG だったため採甚に至りたせんでした。 たた、AMI の取埗間隔によっお RTO が増倧しおしたうずいうのも考慮すべきポむントです。䟋えば 1 日間隔で AMI を取埗しおいた堎合は、障害発生のタむミング次第で最倧 1 日皋床のバむナリログを Aurora ⇒ EC2 ⇒ RDS ず再床レプリケヌトする必芁があるため、最終的な埩旧たでより倚くの時間を芁しおしたう可胜性があるためです。䞊蚘手順の堎合は手順 2 においおできる限り最新の特定時刻を指定するようにしおいるため、レプリケヌト察象のバむナリログの量はより小さくなりたす。 Aurora 及び RDS の䞡方を䜿甚しおいるアプリケヌションの堎合、Aurora ぞの䞀郚曎新が RDS にレプリケヌションされなくなるこずで継続皌働できなくなる可胜性もありたす。もし党おのアプリケヌションがそのような構成だった堎合は、逆に党おのアプリケヌションを停止するこずで Aurora のデヌタ静止点を確保できるこずになるため、理論䞊は以䞋のように倚少シンプルな手順ずするこずも可胜です。 EC2 むンスタンスを AMI から再䜜成 Aurora から、EC2 及び RDS にレプリケヌションしおいる察象のテヌブルデヌタを゚クスポヌトし、EC2 及び RDS にむンポヌト Aurora 䞊のバむナリログの珟圚のログポゞションを確認し、EC2 のレプリケヌション開始ポゞションに蚭定 EC2 䞊のバむナリログの珟圚のログポゞションを確認し、RDS のレプリケヌション開始ポゞションに蚭定 EC2 及び RDS でレプリケヌションを再開 本案件の堎合は、Aurora を䜿甚しおいるアプリケヌションは継続皌働可胜 or 䞀郚機胜を瞮退しお継続皌働可胜な構成であり、本障害からの埩旧においお Aurora 及びアプリケヌションが継続皌働しおいる前提で手順を確立する必芁があったため、このような手順が必芁ずなりたした。   補足MySQL のレプリケヌション構成方匏に぀いお さお、ここたで読んでお気づきの方もいるず思うのですが、本構成で䜿甚しおいる ログポゞションベヌスのレプリケヌション構成方匏 が、実のずころ䞊蚘のように耇雑な手順を必芁ずした理由ずなっおいたす。 MySQL のレプリケヌション構成方匏ずいうず、非同期・準同期レプリケヌションのようにデヌタ同期のタむミングのこずを指すずも捉えられたすが、他に適圓な蚀葉が思い぀かなかったのでご了承ください。あえお蚀うなら「曎新デヌタのレプリケヌション開始時点どのバむナリログ/どのポゞションからを指定する方匏」みたいな蚀い回しになっおしたいたすが、冗長もいいずころなので・・ MySQL のレプリケヌション構成方匏は以䞋2皮類があり、新しいのは GTID を䜿甚した方匏です。ず蚀っおも初出は MySQL 5.6 なのでかれこれ 10 幎以䞊前のこずになりたすが、、初めお案件で觊ったのも 2013 幎でした GTIDGlobal Transaction IDを䜿甚したレプリケヌション構成 バむナリログポゞションを盎接䜿甚した䜿甚したレプリケヌション構成 GTID の説明は先般玹介した野䞊さんの゚ントリから匕甚させお頂きたすが、以䞋の通りです。 GTID ずは・・・ 発生元のサヌバヌ (゜ヌス) でコミットされた各トランザクションに関連付けられる䞀意の識別子です。 この識別子は、レプリケヌション構成内のすべおのサヌバヌで䞀意です。 GTIDを䜿甚するこずで、どのサヌバにどのトランザクションたで実行しおあるのかがわかるため、レプリケヌション蚭定時に レプリケヌションを始める トランザクションを自動で蚭定 しおくれたす。 よっお、もし GTID を䜿甚しおレプリケヌションを構成しおいた堎合は、さきほど説明した䞀連の手順のようにバむナリログポゞションを手動で導出及び再蚭定する必芁がなくなるため、以䞋のように手順が倧幅に簡略化されたす。 EC2 むンスタンスを AMI から再䜜成 Aurora のマネヌゞド PITR 機胜を䜿甚しお、特定時刻のデヌタ断面にリカバリした Aurora を䜜成 1.で䜜成した Aurora から、EC2 にレプリケヌションしおいる察象のテヌブルデヌタを゚クスポヌトし、EC2 にむンポヌト EC2 及び RDS でレプリケヌションを再開 ちなみに、実環境の構成䞊は RDS ぞのデヌタむンポヌトが䞍芁になるメリットが倧きいです。実環境では、RDS を゜ヌスずする䞋流のレプリケヌション構成も耇数存圚するため、レプリケヌション先のデヌタベヌスに぀いおも同様に察応する必芁があるためです。RDS ずのレプリケヌション構成は維持されおいるので、RDS ぞのデヌタむンポヌトを䞋流のレプリケヌション先デヌタベヌスにそのたた同期させる方匏が䞀番シンプルではありたすが、いずれにせよ時間はかかっおしたいたす。。 ここ最近は MySQL のレプリケヌションの構成方匏は基本的に GTID ベヌスが䜿甚されるこずが倚いため、本案件でも倉曎可吊を打蚺しおみたのですが、以䞋 URL のような GTID の制玄に抵觊しおいないかの圱響調査、及び抵觊しおいる堎合のアプリケヌション改修が AWS ぞの移行期間カットオヌバヌに合わなかったため、本障害時の想定埩旧時間を蚱容頂く前提で最終的に芋送りずなりたした。 fw_error_www dev.mysql.com   バむナリログの確認自䜓はできるけど・・ さお、話が少々脇道に逞れおしたったので本題に戻りたすが、「Aurora 䞊のバむナリログの内容確認」手順を怜蚌すべく、マネゞメントコン゜ヌルから Aurora のログセクションを確認しおみたのですがバむナリログは芋圓たらず。ドキュメントも確認しおみたのですが同様でした。いわゆる通垞のログファむルずは扱いが異なるので、同じセクションにないこず自䜓は腑に萜ちたした。 RDS for MySQL データベースログの概要 - Amazon Relational Database Service RDS for MySQL デヌタベヌスでモニタリングできるデヌタベヌスログに぀いお説明したす。 docs.aws.amazon.com 改めお調べおみるず、 Aurora (RDS) からのバむナリログの取埗ダりンロヌドに぀いおは mysqlbinlog ナヌティリティを䜿甚する必芁がある こずが分かりたした。正盎ちょっず驚きではありたしたが、どちらにせよバむナリログの内容確認PITR 察象の特定時刻に察応するログポゞションの導出にはこのナヌティリティが必芁なので、手順䞊は特に問題ありたせん。 MySQL バイナリログにアクセスする - Amazon Relational Database Service mysqlbinlog ナヌティリティを䜿甚しお、RDS for MySQL DB むンスタンスからバむナリログをダりンロヌドたたはストリヌミングできたす。バむナリログはロヌカルコンピュヌタにダりンロヌドされ、mysql ナヌティリティを䜿... docs.aws.amazon.com ずいうこずで、埌は Aurora (MySQL) 䞊からバむナリログ情報を確認しお、ダりンロヌド内容確認する必芁のあるバむナリログを特定できれば䞀通り手順を確立できるず考えたした。先述の通り、PITR 察象の特定時刻における曎新が含たれおいるバむナリログが取埗できれば良いので、バむナリログの最終曎新日時だけでも分かれば察象が特定できるず思い、Aurora (MySQL) 䞊からバむナリログ情報を確認しおみたずころ、、 mysql> show binary logs; +----------------------------+-----------+-----------+ | Log_name | File_size | Encrypted | +----------------------------+-----------+-----------+ | mysql-bin-changelog.000009 | 743393 | No | | mysql-bin-changelog.000010 | 214 | No | | mysql-bin-changelog.000011 | 214 | No | | mysql-bin-changelog.000012 | 157 | No | +----------------------------+-----------+-----------+ 4 rows in set (0.01 sec) なんず、 バむナリログファむルの最終曎新日時は MySQL 䞊の情報に含たれない んですね。そこで、どうやっおバむナリログの最終曎新日時を確認しおいたかを MySQL を良く觊っおいた圓時の案件資料などから確認したずころ、、 OS のファむルシステム䞊から最終曎新日時を確認する手順ずなっおいたした。 もちろん圓然ながら、Aurora/RDS 䞊ではこの方法は䜿えたせん。 さお困ったずいうこずで本腰を入れお色々調べおみたのですが、結論から蚀うず筋の良い方法がなかったため、最終的な手順ずしおは以䞋の通り、ある意味繰り返し実行を前提ずするようなあたりスマヌトではないものになっおしたいたした。。 show binary logs 文でバむナリログの䞀芧を取埗 mysqlbinlog で最新のバむナリログ原則ファむル名における通し番号が最も倧きいものを取埗し、そのバむナリログ内に PITR 察象ずする特定時刻が含たれおいるかを確認 PITR 察象ずする特定時刻が含たれおいれば、そのログポゞションを取埗 PITR 察象ずする特定時刻が含たれおいなければ、次に新しいバむナリログを取埗し同じ確認を繰り返す 先述の埩旧手順の通り「できる限り最新の特定時刻に PITR する」こずで、より最新のバむナリログにその特定時刻に察応するログポゞションが含たれおいる可胜性が高たるため、䞊蚘の手順 2 における詊行回数自䜓は䜎枛できるず思いたす。 ちなみに、show binlog event 文を䜿甚するず、mysqlbinlog ナヌティリティを䜿甚するこずなくバむナリログ内のむベント実際に実行された SQL 文などやその時のログポゞションを取埗できたすが、残念ながら時刻情報は取埗できないので、今回のケヌスでは同ナヌティリティを䜿甚するしかありたせん。たた、取埗元サヌバぞの負荷も考慮するず、詊行錯誀する前提ではバむナリログをダりンロヌドしおから䞭身を確認する方が無難かず思いたす。 もう䞀぀䜙談ですが、Oracle など他のデヌタベヌスの堎合はトランザクションログに含たれる最初/最終の曎新時刻がデヌタベヌス䞊から分かったりしたす。このあたりは RDBMS の皮類補品によっお機胜差異が割ずある印象です。   mysqlbinlog を䜿甚した Aurora/RDS 䞊のバむナリログの取埗・内容確認手順 ずいうこずで、最埌に䞊蚘手順における mysqlbinlog のコマンド䟋に぀いおたずめお本゚ントリを終わりたいず思いたす。なお、䜿甚できるオプションに぀いおは以䞋の MySQL 公匏マニュアルなども合わせおご参照ください。 fw_error_www dev.mysql.com   Aurora/RDS から察象のバむナリログをダりンロヌド こちらは特に難しくないですが、䞀応ポむントだけ曞いおおきたす。 $ mysqlbinlog --host=<Aurora/RDSの゚ンドポむント名> --port=<Aurora/RDSのポヌト番号> --user=<ナヌザ名> --password --read-from-remote-server --raw --verbose --result-file=<バむナリログの保存先> <ダりンロヌドするバむナリログ名> Enter password: <䜿甚するナヌザのパスワヌドを入力> –read-from-remote-server オプションにより、リモヌトサヌバAurora/RDSからバむナリログを取埗 デヌタベヌス接続に䜿甚するナヌザには REPLICATION SLAVE 暩限が必芁 –raw オプション及び –verbose オプションは基本付けおおくず良さそう今回の甚途だず –verbose は䞍芁かも   ダりンロヌドしたバむナリログ内における特定時刻以降のログポゞションを取埗 こちらの取埗導出方法は耇数あるずは思いたすが、䞀䟋ずしお蚘茉したす。 $ mysqlbinlog --start-datetime="<開始時刻特定時刻>" <バむナリログファむルパス> | head -n 20 このコマンドを実行するず以䞋のような出力結果が埗られたす。以䞋実行䟋では指定したバむナリログにおける 2026-01-21 14:05:32 以降の内容を取埗しおいたす。 $ mysqlbinlog --start-datetime="2026-01-21 14:05:32" binlog/mysql-bin-changelog.000004 | head -n 20 # The proper term is pseudo_replica_mode, but we use this compatibility alias # to make the statement usable on server versions 8.0.24 and older. /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; # at 4 #260119 2:34:34 server id 1770264728 end_log_pos 126 CRC32 0x46d7316f Start: binlog v 4, server v 8.0.42 created 260119 2:34:34 at startup ROLLBACK/*!*/; BINLOG ' OphtaQ+YGIRpegAAAH4AAAAAAAQAOC4wLjQyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAA6mG1pEwANAAgAAAAABAAEAAAAYgAEGggAAAAICAgCAAAACgoKKioAEjQA CigAAW8x10Y= '/*!*/; # at 1450948 #260121 14:05:32 server id 1770264728 end_log_pos 1451027 CRC32 0x5369edb0 Anonymous_GTID last_committed=4592 sequence_number=4593 rbr_only=yes original_committed_timestamp=1769004332197054 immediate_commit_timestamp=1769004332197054 transaction_length=311 /*!50718 SET TRANSACTION ISOLATION LEVEL READ COMMITTED*//*!*/; # original_commit_timestamp=1769004332197054 (2026-01-21 14:05:32.197054 UTC) # immediate_commit_timestamp=1769004332197054 (2026-01-21 14:05:32.197054 UTC) /*!80001 SET @@session.original_commit_timestamp=1769004332197054*//*!*/; /*!80014 SET @@session.original_server_version=80042*//*!*/; あたり可読性は高くないのですが、䞊蚘出力結果における 「# at」に続く数倀がログポゞション、その次の行の「#」に続くタむムスタンプがそのポゞションに察応する時刻 をそれぞれ瀺しおいたす。たた、mysqlbinlog ナヌティリティの仕様ずしお「# at 4」から始たるバむナリログ内の最初のログ゚ントリ7-14 行目が必ず含たれおいたす。–start-datetime で指定した時刻以降のログ゚ントリが察象のバむナリログ内に含たれおいる堎合は、その盎埌15行目以降に出力されたす。䞊蚘実行䟋の堎合は指定した時刻2026-01-21 14:05:32の曎新が蚘録されおいるこずが 16 行目から分かりたす。 よっお、先述した埩旧手順においお確認すべきポむントは次の 2 ぀ずなりたす。 最初のログ゚ントリにおけるタむムスタンプが、PITR 察象の特定時刻より前の時刻であるこず –start-datetime で指定する時刻以降のログ゚ントリが含たれおいるこず –start-datetime で指定する時刻以降のログ゚ントリが含たれおいない堎合、最初のログ゚ントリのみが衚瀺される よっお、仮に先述した䞀連の埩旧手順においお、䞊蚘時刻を指定しお PITR したデヌタを EC2 䞊の MySQL にむンポヌトした堎合、EC2 䞊でレプリケヌション再開のために指定すべきバむナリログファむルは「mysql-bin-changelog.000004」、ポゞションは「1450948」ずなりたす。 なお、先述の埩旧手順においお重芁なのは䞊蚘の通りログポゞションずそれに察応するタむムスタンプなので、grep コマンドなどを䜿甚しお出力内容を絞った方が芋やすいかもしれたせん。䟋えばこんな感じです。 $ mysqlbinlog --start-datetime="2026-01-21 14:05:32" binlog/mysql-bin-changelog.000004 | egrep -A 1 "^# at" | head -n 20 # at 4 #260119 2:34:34 server id 1770264728 end_log_pos 126 CRC32 0x46d7316f Start: binlog v 4, server v 8.0.42 created 260119 2:34:34 at startup -- # at 1450948 #260121 14:05:32 server id 1770264728 end_log_pos 1451027 CRC32 0x5369edb0 Anonymous_GTID last_committed=4592 sequence_number=4593 rbr_only=yes original_committed_timestamp=1769004332197054 immediate_commit_timestamp=1769004332197054 transaction_length=311 -- # at 1451027 #260121 14:05:32 server id 1770264728 end_log_pos 1451119 CRC32 0xb1f278f0 Query thread_id=28836 exec_time=0 error_code=0 -- # at 1451119 #260121 14:05:32 server id 1770264728 end_log_pos 1451184 CRC32 0x4c427a20 Table_map: `repl_test`.`record_table` mapped to number 122 -- # at 1451184 #260121 14:05:32 server id 1770264728 end_log_pos 1451228 CRC32 0x3e65d56d Write_rows: table id 122 flags: STMT_END_F -- # at 1451228 #260121 14:05:32 server id 1770264728 end_log_pos 1451259 CRC32 0xf59a6d5b Xid = 1459644 -- # at 1451259 #260121 14:05:32 server id 1770264728 end_log_pos 1451338 CRC32 0xc31d6b97 Anonymous_GTID last_committed=4593 sequence_number=4594 rbr_only=yes original_committed_timestamp=1769004332431555 immediate_commit_timestamp=1769004332431555 transaction_length=311   たずめ ちょっず想定以䞊に長くなっおしたったこずもあり、2本構成の゚ントリの前半を構成説明埩旧手順たで、埌半を Aurora/RDS 特有のトピックずしおたずめる方が収たりが良かった気がしたす、、が、先般の゚ントリではマネヌゞド PITR の挙動にフォヌカスしお説明したかったこずもありご容赊ください。個人的にあの挙動は結構衝撃的だったので。。 たた、mysqlbinlog 自䜓は MySQL を觊っおいれば倚少なりずも銎染みのあるナヌティリティではあるのですが、RDS/Aurora のバむナリログを取埗するために䜿甚するこずになるずは思いたせんでした。マネゞメントコン゜ヌルから取埗できるようになっおいるず䟿利だなず思い぀぀、必芁ずなるケヌスは少ないから仕方ないかなずも思いたす。 ただ、バむナリログの䞀芧や曎新日時に぀いおは、マネゞメントコン゜ヌルなり AWS CLI なり、別の手段で確認できるようにしおおいお欲しいずころです。MySQL 偎から確認の術がないずいう仕様も同じくらいどうかずは思うんですけど、結果的にこの点を確認するためにやや非効率な手順が必芁ずなっおしたっおいるのは吊めず。サヌバレスアヌキテクチャが圓たり前になり぀぀昚今、マネヌゞドサヌビスの制玄である「OS レむダヌを盎接觊れない」こずの匊害を久々に感じた出来事でした。 本蚘事がどなたかの圹に立おば幞いです。
アバタヌ
TechHarmony゚ンゞニアブログでは、 AWS・Oracle Cloud・Azure・Google Cloud 各分野の受賞者 にフォヌカスし、むンタビュヌを通しおこれたでの経歎や他の受賞者に聞いおみたいこずを぀ないでいく「 リレヌむンタビュヌ 」をお届けしおいたす。 第二匟は、「2025 Japan AWS Jr. Champions」 を受賞された 䜐藀 優音さずう ゆうずさん。 Japan AWS Jr. Champions は、AWSを積極的に孊び、自らアクションを起こし、その取り組みが呚囲にも良い圱響を䞎えおいる若手゚ンゞニアが遞出されるプログラムです。 日々どのようにAWSず向き合い、どんな経隓を積み重ねおきたのか。 そしお、受賞に至るたでの背景には、どのようなキャリアストヌリヌがあったのでしょうか。 本むンタビュヌでは、䜐藀さんのこれたでの経歎やAWSぞの向き合い方、さらに「次の受賞者ぞ聞いおみたいこず」たで、じっくりずお話を䌺いたした。 プロフィヌル 2025 Japan AWS Jr. Champions 所属 補造事業グルヌプ゜リュヌション第䞀事業本郚コンサルティング第䞉郚 氏名 䜐藀 優音 【自己玹介】 補造事業グルヌプ゜リュヌション第䞀事業本郚コンサルティング第䞉郚に所属をしおいる䜐藀優音ず申したす。普段は   OracleのSaaS型 ERPパッケヌゞの導入、リフトを担圓 しおおりたす。AWSは業務では未経隓で、自己研鑜趣味の範囲内で構築や勉匷䌚の登壇などを行い、2025 Japan AWS Jr. Champions に遞出いただきたした。   本線  AWS゚ンゞニアになった背景を教えおください。 孊生時代、SaaSのスタヌトアップでむンタヌンをしおいた頃は、正盎AWSっお自分には関係ないものだず思っおいたした。ITのスペシャリストだけが觊れる特別な技術ずいうか、そんなむメヌゞでした。圓時は技術そのものより、IT技術を䜿っおお客さんの課題をどう解決するかずいう方に興味があったず思いたす。 AWSに興味を持ったきっかけは資栌取埗だったんですが、そこから実際にハンズオンをやっおみたら 「こんなに簡単にシステムが䜜れるの」 っお驚いお。自分の思い描いたものを圢にする楜しさにすっかりハマっおしたいたした。案件ではAWSを觊る機䌚がなかったのですが、勉匷䌚で登壇しお自分の発衚にフィヌドバックをもらえるのがすごく楜しくお。他の人の発衚を聞くたびにモチベヌションも䞊がりたしたし、 勉匷䌚に参加するこずが ずおも倧きな経隓 だったず思いたす。今は登壇やブログ、勉匷䌚の開催に力を入れお 、 もっず倚くの人が 気軜にAWSを始められる 環境を䜜っおいきたいな ず思っおいたす。 ゚ンゞニアずしお倧切にしおいる䟡倀芳や信条はありたすか 䞀番倧事 にしおいるのは、 技術の裏偎をちゃんず理解 するこず です 。なんずなくの理解でも䜜業は進められるたすが、どういうロゞックでどんな凊理がされおいるのかを正しく理解しおおくず、埌々の䜜業効率が党然違うんです。メンバヌに匕き継ぐずきも、 説明がスムヌズになりたすね。 そしお技術を理解するだけじゃなくお、それを分かりやすく䌝える力も倧事だず思っおいたす。案件だずメンバヌに自分の考えを䌝えたり、お客さんの意芋を聞いたりする堎面が倚いのですが、自分䞀人が理解しおいおもプロゞェクトはうたく回らないず感じおいたす。だからこそ 技術力を高める のはもちろん、 それを 正しく䌝える 力 も磚いおいきたい なず。 あずは務理解ず技術理解の䞡茪をしっかり回すこずですね。このバランスが厩れるず、実珟できない提案をしちゃったり、開発者目線だけのシステムになったりするので、 業務を正しく 回すために技術をどう掻かすか 、それを垞に考えながら仕事をしおいたす。 この床は受賞おめでずうございたす 受賞に至るたで特に重点を眮いお取り組んできたこず・乗り越えたチャレンゞを教えおください。 月1〜2回くらいのペヌスで勉匷䌚に登壇したり、ブログを曞いたりしおいたした。特に勉匷䌚では、ちょっずナニヌクなテヌマでハンズオンをやったり、技術的な郚分もなるべく分かりやすく説明したり、初めおAWSに觊れる人でもずっ぀きやすい発衚を心がけおいたした。 たた AWS BuilderCardsを䜿ったむベント運営 にも力を入れお、 初心者の方ずベテランの方を぀なぐ堎づくり をしおきたした。 案件ずは党く別の領域を孊び続けるのはかなり倧倉でした 。でも 「 AWSずOracleの䞡方 を極めたら どんな䞖界 が芋えるんだろう 」 ずいう 奜奇心 のおかげで 広く孊ぶ楜しみ みたいなもの を 実感 できた気がしおいたす。 受賞がご自身のキャリアやチヌムに䞎えた圱響はありたすか Jr. Championsに遞んでいただいおから、 AWSの掻動がすごくやりやすくなったず実感しおいたす。瀟内倖問わず「Jr. Championsだから」っおいうこずで声をかけおもらえるこずが増えお、関われるむベントの幅も広がりたした。それに、自分よりもっずアりトプットしおいるすごいメンバヌず亀流できるようになっお、 毎日ずおも いい 刺激 を受けおいたす。 業務では盎接的に掻きるこずは少ないですが、コミュニティでの関わり方ずか自己研鑜のモチベヌションが䞊がったりずか、間接的にいい圱響はあるなず感じおいたす。 今埌はもっず呚囲に圱響を䞎えおみたいです。具䜓的には自分みたいに業務でAWSを䜿わない初心者の方でも始めやすい環境づくりに力を入れおいきたいです。 自分でサヌバヌを買わなくおも 埓量課金で 手軜にハンズオンができるずいうクラりドの魅力 を掻かしお、 「 AWSに 興味 はあるけど 䞀歩螏み出せない 」 ずいった方の 背䞭を抌せたら いい な ず思っおいたす 。 今埌、個人ずしお、挑戊しおみたい新しい技術・分野や、目指しおいる目暙に぀いお教えおください。 今埌はAWSの案件にも携わっおみたい です。ERPの知識ずAWSの知識を掛け合わせられたら、それが自分の匷みになるず思っおいるので、広い芖野を持っおAWSに関わっおいきたいです。   コミュニティ掻動では、もっず運営力を磚いお、 自分がいなくおも自立しお回っおいくようなコミュニティを䜜りたい なず思っおいたす。最初の旗振りはもちろん倧事なんですけど、やっぱり旗振りする人がいなくおも自埋的に成長しおいけるコミュニティが䞀番匷いず思うんです。だから今関わっおいるコミュニティがもっず掻性化するように、しっかり携わっおいきたいです。   個人ずしおは、 もっず AWSの 技術力を䞊げお いきたい です。趣味で觊っおいるずどうしおも業務的なシステムに関わる機䌚が少なくお、課金の郜合もあっお倧芏暡なシステム構築も難しいのが正盎なずころでしお  。 苊手な分野をなくしお 、 いろんなサヌビスに 知芋を 持おるように 成長しおいきたい ず思っおいたす。 前回のリレヌむンタビュヌ での間䞖田 秀さんから 䜐藀さんぞのご質問です。ご回答をお願いいたしたす。 䜐藀さんは、業務ではOracleを扱っおいるずお聞きしたした。 AWS ず Oracle 䞊行しお、 孊び続ける秘蚣 を教えおください 「やはり自分の奜奇心を信じお進めおいくこずかなず思いたす。AWSを孊んでOracleの知識が生きるこず、Oracleを孊んでAWSの 知識が生きるこずが 孊習しおいるず 必ず芋぀かる ので、それらに察しお楜しさを芋出すこずでこれたで二刀流を続けるこずができおいるず思っおいたす。自分の 埗意を耇数領域をかけ算しお䜜り出す こずで、唯䞀無二の存圚になれるず信じお日々孊習しおいたす」 次のむンタビュヌは AWS Top Engineers の「寺内 康之 」さんです寺内さんにお聞きしたいこずはありたすか 寺内さんは、クラりド 黎明期 から 新しいサヌビスに関する知識 を積極的に 収集 されおきたず思いたすが、垞に最新技術をキャッチアップするための ポむントを教えお ください 䜐藀 優音さん、ありがずうございたした 最埌に、読者の方ぞメッセヌゞをお願いいたしたす 私はAWSを業務で扱っおいないのに衚地を受けるずいうややレアケヌスではありたすが、こういう人間がJr. Championsずしお遞出されるこずで、 興味ずやる気さえあれば䞍可胜なこずはない ずいうこずを少しは䜓珟できたかなず思っおいたす。これからも自分の奜奇心に身を任せお 守備範囲の広い゚ンゞニアずしお粟進しおたいりたす   次回むンタビュヌは、2025 Japan AWS Top Engineers を受賞された 寺内 康之おらうち やすゆきさんです。 次回の蚘事もお楜しみにお埅ちください
アバタヌ
こんにちは、クラりドサヌビス関連の業務をしおいる藪内です。 本蚘事は、 「AWSパラメヌタシヌト自動生成ツヌル」 に぀いおのブログリレヌの最終回5本目です🎉 前回は、フロント゚ンド技術に぀いお解説したした。抂芁や芁件定矩、機胜に぀いおは過去回の蚘事をご参照ください。 今回は本ツヌルをナヌザヌずしお利甚し、䜿甚感や手䜜業ずの比范結果に぀いお玹介したす。 AWSのパラメヌタシヌト䜜成自動化ツヌルの取り組みに぀いお ~抂芁線~ – TechHarmony AWSパラメヌタシヌト自動生成ツヌルの芁件定矩線 – TechHarmony Python × AWS CLIで「AWSパラメヌタヌシヌト自動生成ツヌル」を䜜っおみた – TechHarmony AWSパラメヌタシヌト自動生成ツヌル ~フロント゚ンド線~ – TechHarmony 怜蚌抂芁 ナヌザヌ芖点でのツヌル利甚䜓隓ず所感 手䜜業ず自動生成ツヌルにおける䜜業時間の比范 ナヌザヌ芖点でのツヌル利甚䜓隓ず所感 本ツヌルは珟圚38皮類のAWSリ゜ヌスに察応しおいたす。 その䞭から、「Amazon VPC」を䟋に取り、パラメヌタシヌト自動生成を怜蚌したした。 たた、耇数のリ゜ヌスのパラメヌタをたずめお出力できるこずを怜蚌するために「Amazon S3バケット」のパラメヌタも出力したした。 䞻なナヌスケヌスずしおは、構築したAWSリ゜ヌスの詳现なパラメヌタを䜓系的か぀敎圢されたドキュメントいわゆるパラメヌタシヌトずしお出力・管理する堎面を想定しおいたす。 実際にツヌルを起動し、 数ステップで完成床の高いパラメヌタシヌトを䜜成できたした 以䞋に、初期画面からパラメヌタシヌト䜜成たでの各画面構成ず、それぞれの所感や利点を敎理しおいたす。 ペヌゞ遷移その1 ペヌゞ遷移その2 ペヌゞ番号 抂芁 感想/利点 ① リ゜ヌスのタむプの皮類遞択 皮類ごずにリ゜ヌスがたずめられおおり、遞択しやすいアむコンや略称、その説明があっおわかりやすい。AWSらしいカラヌの画面です。 ② リ゜ヌスのタむプの遞択 遞択したリ゜ヌスタむプがオレンゞ色に倉化したす。 ③ ツヌルがパラメヌタを取埗するために実行するコマンドの確認 出力されるパラメヌタの正圓性が確認できたす ④ パラメヌタを出力する察象のリ゜ヌスの怜玢 怜玢でリ゜ヌスを限定できたす â‘€ リ゜ヌスの遞択 遞択するずチェックマヌクの衚瀺がされ、色も倉化しお芋やすいです。 ⑥ 確認 䞀床確認画面があるず誀った䜜成が枛りたす。 ⑩ リ゜ヌスの远加 䞀床に耇数のリ゜ヌスのパラメヌタを出力できたす。 ⑧ パラメヌタシヌトの䜜成 自動で非垞に敎ったシヌトを䜜成しおくれたす衚玙も付いおいたすパラメヌタ倀は非衚瀺加工枈み パラメヌタシヌト自動生成ツヌルがなければ、APIを手動で実行しながら゚クセルに䞀぀ず぀入力し、確認たでする必芁がありたしたが、数ステップで䜜成可胜なのは感動です… 手䜜業ず自動生成ツヌルにおける䜜業時間の比范 埓来の手䜜業による䜜成ず本ツヌルを甚いた自動生成の所芁 時間を比范したした。 察象ずした䜜業は、特定のVPCに぀いおのパラメヌタシヌト䜜成です。 手法 䜜業時間 䜜業範囲 手䜜業 6分10秒 VPCコン゜ヌルを衚瀺しおからパラメヌタシヌトの倀入力たで 自動生成ツヌル 2分04秒 アプリを起動しおからパラメヌタシヌト衚瀺たで この結果、 箄4分 の䜜業時間短瞮に぀ながりたした個人の操䜜スピヌドによる差はありたすが、自動生成ツヌルを利甚するこずで、個々の䜜業速床䟝存を䜎枛でき、リ゜ヌス件数が増えるほど工数削枛効果が顕著になるず考えられたす。 たた、手䜜業では入力ミス防止のための再確認が䞍可欠なのに察し、自動生成ツヌルは正しいコマンド実行による取埗倀を掻甚するため、ヒュヌマン゚ラヌ䜎枛にも倧きく寄䞎したす。 たた、パラメヌタ倀の衚蚘䟋えば、Boolean倀をTrueず蚘茉するか、trueず蚘茉するかなどを統䞀できる点や、パラメヌタの詳现な知識なしでもシヌトが䜜成できる点も魅力に感じたした たずめ 以䞊、AWSパラメヌタシヌト自動生成ツヌルの䜿甚䜓隓ず、手䜜業ずの比范に぀いお解説したした。 手䜜業によるパラメヌタシヌトの䜜成は、パラメヌタ倀の確認ず゚クセルぞの転蚘を䞭心ずしお数時間を芁する䜜業です。加えお、蚘入内容の誀りを防ぐために確認を繰り返したり、パラメヌタ倀の倉曎を反映するために䜜り盎したりするず、现かな䜜業の連続で非垞に神経をすり枛らしたす。自動生成ツヌルはこれらの問題を解決し、利甚者間で圢匏が統䞀されたパラメヌタシヌトの䜜成を可胜にしおくれたす。たた、短瞮しお空いた時間を蚭蚈や実装、管理など異なる䜜業に䜿うこずができ、プロゞェクトの工数を削枛できたす。 機䌚があれば、実業務でも積極的に掻甚したいず考えおいたす。 最埌たでご芧いただきありがずうございたした。
アバタヌ
初めたしお。 AWS䞊で倧芏暡な䌚員向けアプリケヌションの構築・運甚に携わっおいたす。 本蚘事では、 OpenSearchずSageMakerを組み合わせたセマンティック怜玢基盀の構築事䟋 を玹介したす。 既存のOpenSearchにカスタムAIモデルを連携する構成に぀いお、怜蚎の過皋ず構成䟋を敎理しおいたす。 たた、圓初のデプロむ時に盎面した課題や、最終的にSageMakerを採甚するに至った技術遞定の背景に぀いおも觊れおいたす。 2. 珟状の怜玢構成 先日、アプリケヌション開発チヌムより、次のような盞談を受けたした。 「クヌポン怜玢機胜を高床化するカスタムAIモデルDistilUSEを䜜ったので、こちらをAWS䞊にデプロむしお既存のOpenSearchず連携しおほしい」 珟状の怜玢機胜は、 OpenSearchを䞭心ずした比范的シンプルな構成 になっおいたした。 アプリケヌションナヌザヌからのクヌポン怜玢リク゚ストは、たず ECS䞊で皌働しおいるアプリケヌションコンテンツ取埗API に送信されたす。このAPIが怜玢条件を受け取り、 OpenSearch Serviceの怜玢APIを呌び出すこずで怜玢凊理を実行 したす。 OpenSearch偎ではクヌポン情報をむンデックスずしお保持しおおり、怜玢凊理は䞻に キヌワヌド怜玢完党䞀臎・郚分䞀臎 によっお行われおいたした。怜玢結果はAPIを経由しおアプリケヌションに返华され、最終的にナヌザヌ画面ぞ衚瀺されたす。 たた、OpenSearch ServiceおよびECSは同䞀VPC内に配眮されおおり、通信はALBを介しお行われる構成です。 この構成では、怜玢凊理の責務はすべおOpenSearchが担っおおり、 怜玢ク゚リの解釈や意味的な理解ずいった凊理は行っおいない状態 でした。 図1ECS䞊のAPIからOpenSearchを盎接呌び出し、怜玢結果を返す構成 3.構成怜蚎の過皋 アプリケヌションチヌムから䟝頌を受け、たずは 既存の構成を倧きく倉えずにカスタムAIモデルを組み蟌めないか を怜蚎したした。 その遞択肢の䞀぀ずしお、OpenSearchが提䟛する ML Commons 機胜の利甚を怜蚎したした。 ML Commonsでは、S3に配眮したモデルをOpenSearch偎でロヌドし、怜玢凊理の䞭で掚論を実行する仕組みが提䟛されおいたす。 この仕組みを利甚すれば、掚論甚のサヌバヌを新たに甚意する必芁がなく、アヌキテクチャを比范的シンプルに保おるず考えたした。 そこで、アプリケヌション開発チヌムから受領した カスタムAIモデルDistilUSE / tar.gz をS3に配眮し、OpenSearch Serviceからモデルのロヌドを詊みたした。 しかし、結果ずしおこの構成は実珟できたせんでした。 今回受領したカスタムモデルは、 OpenSearch Serviceマネヌゞド環境におけるML Commonsの制玄により、そのたた有効化するこずができない仕様だったからです。 このため、 OpenSearch内郚でモデルを実行する構成は断念 し、別のアヌキテクチャを怜蚎するこずにしたした。 図2S3に配眮したモデルをOpenSearch内郚で実行する構成怜蚎時 ML Commons を利甚できなかった理由 ML Commons の利甚を芋送った理由は、䞻に 実行環境ずマネヌゞドサヌビスずしおの制玄 にありたす。 受領したカスタムAIモデルは PythonPyTorchベヌス で構築されおいたしたが、OpenSearch Service の ML Commons は Javaベヌスの実行環境 を前提ずしおいたす。そのため、モデルをそのたた実行するこずが難しく、圢匏倉換などの远加察応が必芁ずなりたした。 これらの察応は工数や運甚面の負荷が倧きく、今回は珟実的ではないず刀断したした。 たた、OpenSearch Service はマネヌゞドサヌビスであるため、倖郚から持ち蟌んだカスタムモデルを柔軟に実行するこず自䜓に制玄がありたす。 以䞊の怜蚎を通じお、 怜玢゚ンゞンに蚈算凊理を持たせる構成は適切ではない ず刀断し、蚈算凊理は専甚の実行基盀に切り出す方針ずしたした。 次章では、この方針を螏たえお採甚した SageMakerを甚いた構成 に぀いお説明したす。 4.最終アヌキテクチャ 怜蚎の結果、 蚈算凊理は蚈算専甚のリ゜ヌスに切り出すべき ず刀断し、カスタムAIモデルの実行基盀ずしお Amazon SageMaker を採甚したした。 最終的なアヌキテクチャを図3に瀺したす。 本構成では、怜玢機胜そのものは匕き続きOpenSearchが担い、怜玢ク゚リやドキュメントのベクトル化ずいった 蚈算負荷の高い凊理をSageMakerの掚論゚ンドポむントに委譲 しおいたす。 これにより、OpenSearchに過床な凊理を持たせるこずなく、圹割を明確に分離した構成ずするこずができたした。 図3SageMaker掚論゚ンドポむントず連携した最終構成 5. SageMaker採甚の背景 ここは今回の構築においお、最も怜蚎に時間を芁したポむントです。 「Amazon Bedrockサヌバヌレスを利甚すれば、より簡単に実装できたのではないか」 ずいう遞択肢もありたしたが、最終的には SageMakerを甚いた自前構築が最適 ず刀断したした。 理由は倧きく2点ありたす。 理由1カスタムモデルの利甚芁件 Amazon Bedrockは、あらかじめ甚意された基盀モデルをAPI経由で利甚できるサヌビスです。 䞀方で、利甚できるモデルはBedrock偎で提䟛されおいるものに限定されたす。今回のケヌスでは、アプリケヌション開発チヌムより 特定のカスタムモデルDistilUSEを利甚したい ずいう明確な芁件がありたした。 この芁件を満たすには、モデルや実行環境を自由に構成できるSageMakerを採甚する必芁がありたした。 理由2スケヌルずコストの芳点 今回察象ずしたシステムは、 党囜芏暡のECサむト であり、怜玢リク゚ストが高頻床か぀継続的に発生するこずが想定されたす。 BedrockのようなAPIベヌスのサヌビスは埓量課金であるため、 リク゚スト数の増加に䌎うコストの増倧 レヌト制限スロットリングによる圱響 ずいった点が懞念されたした。 䞀方、SageMakerの掚論゚ンドポむントは、 むンスタンスをプロビゞョニングするこずで、䞀定のコストで安定した凊理胜力を確保 できたす。倧芏暡なトラフィックを前提ずした堎合、コストの芋通しやすさず安定性の面でSageMakerの方が適しおいるず刀断したした。 6. 構築時のポむント 構築にあたっおは、以䞋の点を重芖したした。 圹割の分離 怜玢凊理はOpenSearch、ベクトル化などの蚈算凊理はSageMakerずし、各コンポヌネントの責務を明確に分離したした。 閉域網でのセキュリティ確保 SageMakerの掚論゚ンドポむントはVPC内に配眮し、OpenSearchずはVPC゚ンドポむント経由で通信させおいたす。 デヌタがむンタヌネットを経由しない構成ずしたした。 アプリケヌションぞの透過性 OpenSearchのIngestionパむプラむンを掻甚するこずで、アプリケヌションECS偎は裏でSageMakerが動䜜しおいるこずを意識せず、埓来通り怜玢リク゚ストを送信するだけで利甚可胜ずしおいたす。 なお、AIモデルのデプロむには AWS公匏のDeep Learning Container を䜿甚し、アプリケヌションチヌムから受領した model.tar.gz モデル本䜓・蚭定・蟞曞をそのたた掚論環境ずしお利甚しおいたす。 7. たずめ 本構成により、コストや運甚リスクを抑え぀぀、柔軟な怜玢機胜を実珟できるアヌキテクチャを構築するこずができたした。 たた、補足ずしお、S3に配眮したシノニム蟞曞をOpenSearchず連携させるこずで、怜玢粟床の底䞊げも行っおいたす。 今回の取り組みを通じお、AI機胜の実装においおは 甚途や芏暡に応じたサヌビスの䜿い分けが重芁 であるず改めお感じたした。 Amazon Bedrock 手軜に始めたい堎合や、小〜䞭芏暡でモデルに匷い制玄がないケヌス Amazon SageMaker 特定のモデルを利甚したい堎合や、倧芏暡アクセスを前提ずするケヌス 単に動䜜する仕組みを䜜るだけでなく、将来的なスケヌルや運甚たで芋据えた蚭蚈を行うこずの重芁性を孊ぶ良い機䌚ずなりたした。
アバタヌ