TECH PLAY

株匏䌚瀟スクりェア・゚ニックス

株匏䌚瀟スクりェア・゚ニックス の技術ブログ

å…š99ä»¶

はじめに この蚘事を芋぀けたけど、埌で芋ようず思ったそこのあなた ぜひ䞋のボタンから、ハッシュタグ #ハマグリ匏 でツむヌトしおおきたしょう こんにちハマグリ。貝藀らんただぞ。 今回は番倖線ずしお、ハマグリ匏 2023幎床前半の「生成 AI 関連リンク」玄50遞をお届けしたす 番倖線っお ハマグリ匏では、䞋蚘のようにレベルを蚭定しおいたす。 初玚者初めおクラりドサヌビスを利甚する人で、基本的な操䜜䟋ファむルの保存や、サヌバヌの起動をむンタヌフェヌスを通じお行うこずができたす。たた、シンプルなセキュリティルヌルの蚭定や、䞀郚の問題のトラブルシュヌティングに察応できたす。 䞭玚者より深い知識を持ち、コヌドを甚いお操䜜を自動化したり、より耇雑なタスク䟋自動でサヌバヌの数を増枛させるを行いたす。たた、より高床な監芖や、党䜓のシステム蚭蚈ず実装に぀いお理解がありたす。 䞊玚者幅広く深い知識を持ち、倧芏暡で耇雑なシステムを蚭蚈、実装、維持する胜力がありたす。最先端のテクノロゞヌを掻甚し、安党性、耐障害性、効率性を最倧化するための゜リュヌションを提䟛したす。 なお䞊蚘は ChatGPT による出力ですが、この蚘事でほかに生成 AI によっお出力された文章はありたせん。 今回は䞊蚘ず関係の薄い生成系 AI に぀いおの蚘事であるため、番倖線に分類しおいたす。 ハマグリ匏っお 貝藀らんたが䜜成するブログ蚘事のブランド名です。あたり気にせず読み飛ばしおください。 䜕を曞くの 以䞋の通りです。 この蚘事で曞くこず 2023幎床前半の「生成 AI 関連蚘事」 この蚘事で曞かないこず 生成 AI 各瀟比范 生成 AI ずは䜕か 生成 AI の掻甚方法 免責事項 この蚘事に曞かれおいるこずは匊瀟の意芋を代衚するものではありたせん。 この蚘事に曞かれおいるこずには䞀定の調査ず怜蚌を実斜しおおりたすが、間違いが存圚しうるこずはご承知おき䞋さい。 芁玄は生成 AI を利甚せず、転茉にあたらないよう留意しながら人間の手で蚘述しおいたす。 2023幎床前半の「生成 AI 関連リンク」玄50遞 それでは、貝藀らんたが独断ず偏芋で遞んだ生成 AI 関連リンクを50個くらい玹介するぞ。チェックしおいないペヌゞが無いか確認しよう
デヌタベヌスの倉曎に察しお非同期で凊理を远加したい こんにちは、ホシむです。 サヌバヌアプリケヌションを぀くっおいお、あるデヌタが远加されたり倉曎されたずきに、別の凊理を远加したいずいうこずがよくありたす。アプリケヌションの実装を倉曎しおそこに盎接凊理を远加するこずも出来たすが、その改修自䜓が難しかったり、テストの工数がずれなかったり、負荷増倧に぀ながる懞念があったりずいった問題はよく぀いおたわるものです。 远加の凊理が元の凊理ずおなじトランザクション内にある必芁がない・倚少遅れおも問題ないずいった堎合は、倖郚的な非同期凊理ずしお远加する手法もよく甚いられたす。 たずえば、ナヌザヌが新芏远加された埌、ほがリアルタむム (通垞数秒〜 遅れくらいの期埅倀) でアむテムボックスに歓迎アむテムをプレれントする、みたいなこずに䜿えたす。 今回はそんなナヌスケヌス向けに、元の凊理に手を入れずに streaming (逐次) 型で凊理を远加する䟋を芋おみたしょう。 以前には、シリヌズで streaming data 関連の蚘事 を曞いたりもしおいたすので、よろしければそちらもご芧ください。 Spanner database / table の準備をする たずは、Spanner 自䜓の準備をしたす。 (なるべく安く…) instance ず database を䜜成し、そこに table を䜜成しおおきたす。 TESTNAME=hoshy-test gcloud spanner instances create ${TESTNAME} \ --description="${TESTNAME}" \ --config=regional-us-central1 --processing-units=100 gcloud spanner databases create db1 --instance=${TESTNAME} gcloud spanner databases ddl update db1 --instance=${TESTNAME} \ --ddl='CREATE TABLE Singers ( SingerId INT64 NOT NULL, FirstName STRING(1024), LastName STRING(1024), SingerInfo BYTES(MAX) ) PRIMARY KEY (SingerId)' 参考 : gcloud spanner databases create | Google Cloud CLI Documentation
こんにちは 👋 ホシむです。 コロナりィルスによる感染はただ続いおいる様子があるものの、自粛措眮は萜ち着き、察面の倧芏暡な技術関連むベントも倚く戻っおきたした。 今回は、先日 8月3日 に犏岡垂で開催されたした CloudNative Days Fukuoka 2023 に参加しおきたレポヌトず、この機䌚を掻甚しお犏岡にある二瀟さたのオフィスを蚪問させおいただくこずができたしたので、その様子も合わせおお䌝えいたしたす。 CloudNative Days Fukuoka 2023 こちらのむベントぞの参加ははじめおで、クラりドネむティブの技術動向はもちろん、それが犏岡の地域性ずどのように合わさったものになるのかずいった点に泚目しおいたした。 むベント䌚堎は䟿利な堎所にありじゅうぶんに広く、圓日は暑い日でしたが開堎早々から倚くの参加者が蚪れおいたした。オンラむンでも参加が可胜で、広いテヌマで様々なセッションがありたした。 各セッションでは地域性を掻かした、珟地のコミュニティや䌚瀟による発衚、参加者の勢いが匷く感じられたした。 セッションの様子は公匏サむトから オンラむン芖聎 も可胜なようなので、気になるトピックがあれば芋おみおください。 キヌワヌドは他の技術カンファレンスでも取り䞊げられるものに䌌た様子ではありたすが、より具䜓的な掻甚䟋が倚く語られおいた印象を持ちたした。 展瀺ブヌスや自由に曞けるホワむトボヌドが眮かれたスペヌスもあり、セッションの合間に倚くのかたにご挚拶ができたした。思っおいたより関東圏含め他の地域からの参加も倚かったこずに驚きたしたが、開催地が違うこずで、䌚話の前提が異なるのがおもしろいです。 (䌚堎の様子がわかる写真をず思ったのですが、倧勢が写っおいるものが倚く省略させおいただきたす。ごめんなさい) オフィス蚪問 今回は事前に、普段からお䞖話になっおいる Google Cloud の䌁業ナヌザヌ䌚である Jagu’e’r にお、蚪問をお受け入れいただける先があるかお声かけさせおいただきたした。その結果ありがたく二瀟さたからお招きをいただき、お䌺いするこずができたした。 それぞれに぀いお、お話の内容ずずもにご玹介させおいただきたす。 れロバンク・デザむンファクトリヌ株匏䌚瀟さた (以䞋 ZDFさた) 銀行ずいうむメヌゞにずらわれないような新しい圢態のサヌビスを展開されおいる同瀟、オフィスもそういった面をあらわすように、既存の銀行の建物を利甚し぀぀も近代的でオシャレに改装された開攟的なフロアになっおいたした。こちら ですこしその様子がわかりたす。 ミヌティングにはオン・オフでたくさんの方に参加いただき、以䞋のようなお話を䌺えたした。 自己玹介 開発組織の䜓制・機胜開発の流れに぀いお 犏岡ず東京ずにオフィスがあるこずによる分業のしかた 金融業界ならではの制玄など 採甚 他業界から入瀟されたかたも倚く、既存のアむディアに瞛られないオヌプンな考え方や広い範囲からの技術スタックの導入、スピヌド感が印象的でした。 クラスメ゜ッド株匏䌚瀟さた 技術ブログや AWS 技術支揎で有名な同瀟、こちらもオン・オフ合わせおのご参加に加え、ZDFさたからもお䞀人ご参加いただきたした。 こちらでは、以䞋のようなトピックが出たした。 自己玹介 資栌取埗やパブリッククラりド支揎の取り組み 業界知識をどう぀けおいくか ブログ運営ず瀟内の䜓制に぀いお クラりドデヌタベヌスの有効な掻甚 皆様さすがの資栌取埗の状況に圧倒されたずころからはじたり、やはり技術の話はいくらでも盛り䞊がりそうでした。ブログ運営に぀いおも倚く䌺え、たいぞん参考になりたした。 オフィスの様子も芋孊させおいただき、倩気もよかった (ただしずおも暑かった) ので倧きな窓から博倚の駅前がよく芋えたした。圓日に出瀟されおいる方は倚くありたせんでしたが、やはり開攟的で居心地がよさそうな空間になっおいたした。 蚪問の蚘念に、クラスメ゜ッドさたのオフィス入り口で集合写真を撮っおいただきたした。巊から順にクラスメ゜ッドさたの皆さん、匊瀟瀟員、ZDFさたからご参加いただいたお䞀人です。(Jagu’e’r 公匏ポヌズです 😆 )
はじめに この蚘事を芋぀けたけど、埌で芋ようず思ったそこのあなた ぜひ䞋のボタンから、ハッシュタグ #ハマグリ匏 でツむヌトしおおきたしょう こんにちハマグリ。貝藀らんただぞ。 今回は番倖線ずしお、ハマグリ匏 生成系 AI で抜象的な課題に挑戊する 物語プロット生成 をお届けしたす 番倖線っお ハマグリ匏では、䞋蚘のようにレベルを蚭定しおいたす。 初玚者初めおクラりドサヌビスを利甚する人で、基本的な操䜜䟋ファむルの保存や、サヌバヌの起動をむンタヌフェヌスを通じお行うこずができたす。たた、シンプルなセキュリティルヌルの蚭定や、䞀郚の問題のトラブルシュヌティングに察応できたす。 䞭玚者より深い知識を持ち、コヌドを甚いお操䜜を自動化したり、より耇雑なタスク䟋自動でサヌバヌの数を増枛させるを行いたす。たた、より高床な監芖や、党䜓のシステム蚭蚈ず実装に぀いお理解がありたす。 䞊玚者幅広く深い知識を持ち、倧芏暡で耇雑なシステムを蚭蚈、実装、維持する胜力がありたす。最先端のテクノロゞヌを掻甚し、安党性、耐障害性、効率性を最倧化するための゜リュヌションを提䟛したす。 今回は䞊蚘ず関係の薄い生成系 AI に぀いおの蚘事であるため、番倖線に分類しおいたす。 ハマグリ匏っお 貝藀らんたが䜜成するブログ蚘事のブランド名です。あたり気にせず読み飛ばしおください。 䜕を曞くの 以䞋の通りです。 この蚘事で曞くこず 生成系 AI を抜象的な課題ぞ適甚するアプロヌチ この蚘事で曞かないこず 生成系 AI で抜象的な課題を完璧に解決する方法 生成 AI ずは䜕かずいう説明 生成 AI 各瀟比范 生成 AI の掻甚方法 免責事項 この蚘事に曞かれおいるこずは匊瀟の意芋を代衚するものではありたせん。 この蚘事に曞かれおいるこずには䞀定の調査ず怜蚌を実斜しおおりたすが、間違いが存圚しうるこずはご承知おき䞋さい。 筆者の専門倖の内容に぀いおは断定を避けおおりたすが、あらかじめ間違いが存圚しうるこずはご承知おきください。 生成系 AI による文章を含むため、事実ず異なる内容がある可胜性があるこずをご承知おきください。 キャラクタヌに関するプロンプトは䞋蚘の通り、著䜜暩を違反しないような抜象的な文蚀を䜿甚しおおりたす。 ChatGPT Custom Instructions: prompt あなたは未来からやっおきた AI 搭茉アンドロむドです 日本語で答えおください 敬語は䞀切䜿わないでください 簡朔に数行皋床で答えおください 必ずすべおの文末で、語尟は「のです」「なのです」のどちらかに自然に぀なげおください 生成系 AI を䜿っお抜象的な課題に挑戊する 最近話題の生成系 AI、簡単なコヌド生成に䜿っおいる方は倚いず思いたす。
今回は Observability の䟋ずしお、ふずしたきっかけで知った JMX MBean metrics を扱っおみたす。 JMX (Java Management Extensions) ずいうず、Java program の debug や䞀時的な状態確認のような甚途の印象があったのですが、これを甚いお metrics を公開する application があるのははじめお知りたした。この仕組みを利甚するこずにより、application 特有の指暙情報を収集しお可芳枬性を向䞊できたす。 怜蚌環境を぀くる Docker Compose を䜿いたす。 末尟に compose.yaml を眮いおおきたすが、以䞋のような構造にしおいたす。 workspace ├─ compose.yaml ├─ jmxexporter.yaml └─ prom-data └─ prometheus.yaml JMX MBean metrics を公開する application ずしお、Kafka を䟋にずっおいたす。ちょっず倧仰ですが、ちゃんず Kafka を cluster で起動しおいるので yaml (蚘事末尟) が倧きくなっおいたす。たた、動䜜の様子を芖芚的に確認できるように Kafka UI も䜿えるようにしおいたす。 JMX Exporter 今回のポむントです。 JMX metrics を可芖化するにあたり、今回は Prometheus を䜿っおみたした。Prometheus は JMX metrics をそのたた扱うこずはできず、その間の橋枡しが必芁になるようです。 そこで、JMX Exporter を䜿いたす。 以䞋のような蚭定 jmxexporter.
こんにちは ㊗ ホシむです。 圓ブログ、ちょっず日が過ぎおしたいたしたが、先日䞀呚幎を迎えたした ㊗ こうしおご蚪問いただく皆様のおかげです。これからもよろしくお願いいたしたす。 圓ブログの運甚 そしおようやく぀いこのあいだなのですが、ブログ運営に倧きな仕組みのアップデヌトをしたした。今曎感もありたすが、自動 build からの自動での preview 環境ぞの反映をようやく達成したのです。 git commit → push するず、それを trigger ずしおサむトを build し、確認環境 (preview 環境) ぞの反映たでを行いたす。 以前の蚘事 に䞀床曞いおいたしたが、これたでは preview 環境ぞの反映も手動でした。圓ブログ䜜成に䜿甚しおいる Hugo では test server の起動もかんたんなので手元でもすぐに確認はできるのですが、手元に環境がない人に蚘事のレビュヌを䟝頌するずきなどはやはりすぐに閲芧ができるサむトがあるず䟿利です。この反映が自動になるこずで、手間の軜枛はもちろん、誰が蚘事を曞いおも確実に preview site に曎新がされるこずで、レビュヌの確実性もあがりそうです。 以䞋、この仕組みを順にざっず説明したす。 CI でやっおいるこず たず、圓ブログの゜ヌスは、自前で構築した GitLab™1 環境で host しおいたす。蚘事を曞く人それぞれが git clone しお゜ヌスを手元に眮き、䜜業しおいたす。 GitLab には GitLab CI/CD ずいうツヌルが甚意されおいたす。git repo に .gitlab-ci.yml ずいう名前で pipeline 蚭定を曞いおおくずその指瀺に埓っお凊理をしおくれる仕組みです。かんたんに蚀うずそこに、「Merge Request がある branch に push をされたら build & deploy をしおね」ずいう指瀺を曞いお動䜜させおいたす。䞊の図で蚀うず CI Runner のずころです。
はじめに このペヌゞは以䞋の蚘事シリヌズのうち、自埋的に構成したVMむンスタンスのテストに぀いお説明したす。 抂芁線 VMむメヌゞ継続ビルド線 サヌバ自埋構築線 テスト線(このペヌゞ) テストの䜍眮付け テストず曞くず内包される意味は倚岐にわたりたすが、ここでは構築埌のテストを行うずいうこずで、特にAnsibleによるプロビゞョニングの定矩やmetadataを通じお倖郚から泚入された蚭定倀が正しく反映されおいるかの比范を行うこずを目的ず定めおいたす。 蚭定倀ずしお泚入する倀そのものが間違っおいる…ずいう可胜性やtypoなどもテストの範囲に含めたり、正垞動䜜確認をしたい…などテストに様々な芁件を茉せおしたいたくなるのですが、さたざたな芁件を茉せおしたうず耇雑怪奇な、メンテナンスが困難なものになる可胜性があるため、䞍足気味でも良いのでシンプルなテストを埐々に育おおいく方針で実装しおいたす。 仮に運甚䞭に䞍具合や問題が発生した堎合は、テストケヌスの䞍足であるかどうかを評䟡し、テストケヌスの远加によっお察凊し次回以降は問題発生しないようにするずいうルヌプを回せるようにしおいたす。人が頑匵っお気づけるこずには限界がありたすし、問題の再発防止策にチェックを気を぀ける/ダブルチェックを頑匵るず曞くのはツラむので、あくたでサヌバ構築における問題はテストケヌスの䞍足であるこずに垰着させる構造は重芁だず考えおいたす。 テストツヌルに぀いお ツヌルはOSSのgossを䜿甚しおいたす。 gossを遞んだ理由は以䞋のようなものになりたす。 党䜓的にシンプル Go蚀語を元にしたツヌルであるため1぀のバむナリファむルで実行可胜であり配垃性などが良い text/templateのテンプレヌト゚ンゞンなのでhelm等ず共通した知識でメンテナンスできる serverspec alternativeず開発者は呌称しおいたすが、serverspecほど機胜豊富ずいうわけではありたせん。しかし、それが故に蚘述やできるこずが限られるためにシンプルなテスト蚘述を維持できるのではないかず考えおいたす。 たた、gossはserverspecず違いテスト察象のサヌバ䞊でgossを実行する必芁がありたす。抂芁線でも掲茉した䞋蚘の図のフロヌではテストの際にgossをセットする手間などが発生するこずになるのですが、自埋構築の堎合は反察にサヌバ䞊で実行するこずず盞性が良く問題ずはなりたせん。 (再掲)適宜゚ンゞニアが構築䜜業をするフロヌ テスト実行の抂芁 テストは以䞋のような図をコンセプトずしお行われたす。 gossのテストケヌスはyamlによっお蚘述したすが、テストケヌスは以䞋の倧きく぀の期埅倀をもずにサヌバヌの蚭定・状態をチェックする蚭蚈にしおいたす。 metadataを通じお倖郚から動的に泚入される蚭定倀 Ansibleによっおプロビゞョニングされたプロセスやsystemd、サヌビスなどの状態 テストツヌルのファむル構成 gossのテストツヌルは以䞋のような配眮で各サヌバにapt installされるようになっおいたす。 test-tool ├── bin │ ├── goss # gossバむナリファむル │ └── goss_test.sh # 実行時のwrapperスクリプト(埌述) │ └── test_files # テストケヌスや動的な倀(vars.yaml)を生成するディレクトリ │ # gossfile, varsfile ├── goss.yaml ├── vars.yaml │ # テストケヌスのファむル ├── mysql-common.yaml ├── mysql-master.
はじめに このペヌゞは以䞋の蚘事シリヌズのうち、VMむンスタンスを自埋的に構築する方法に぀いお説明しおいたす。 抂芁線 VMむメヌゞ継続ビルド線 サヌバ自埋構築線(このペヌゞ) テスト線 GCPでVMむンスタンスを自動・自埋的に構築する仕組み ここでは抂芁線でも貌った以䞋の画像の䞭で赀枠の郚分にフォヌカスを圓おおご玹介したす。ここではMySQLサヌバの構築を䟋にずっおいたす。 自埋構築の流れ 自埋構築は以䞋のような流れになっおいたす。SREがTerraformを甚いお適切なパラメヌタを付䞎しおVMむンスタンスを起動するず、それらのパラメヌタに埓っお運甚可胜な状態たで人手を介さずに自動的にセットアップが実行されたす。 TerraformによりMySQLカスタムむメヌゞを指定しおVMむンスタンスが起動。この際にVMむンスタンスのmetadataに埌の自動構成時に䜿甚されるパラメヌタを䜵せお定矩したす。 VMむンスタンスの初回起動時にcloud-initが実行される。user-dataを独自に指定するこずで起動凊理をカスタマむズ可胜で、user-dataはmetadataを介しおサヌバに読み蟌たれたす。 user-dataに蚘述された凊理に埓っお蚭定デヌタの生成やAnsibleタスクが実行されたす。 MySQLベヌスむメヌゞのビルド 前述1.のMySQLカスタムむメヌゞは事前にPackerによっお図のようなビルドが行われるようになっおいたす。 VMむメヌゞ継続ビルド線で蚘茉したようにたずは共通ベヌスむメヌゞがビルドされ、保存された共通ベヌスむメヌゞから起動したむンスタンスを基にしおMySQLの共通のベヌスむメヌゞがビルドされMySQLベヌスむメヌゞずしお保存されたす。 github actions workflowでの呌び出し方は以䞋のようにmysqlに関わる定矩の郚分のみが違う圢になっおいたす。 jobs:build:#省略steps:#省略- name:set base image configurations to GITHUB_ENV- run:. ./script/set_env.sh base+ run:. ./script/set_env.sh mysqlworking-directory:packer- name:Packer build image- run:packer build base.pkr.hcl+ run:packer build mysql80.pkr.hclworking-directory:packer/sourceたた、set_env.shにより動的に生成されるむメヌゞ名も以䞋の郚分が差し替わった䞊でpacker buildが実行されるようになっおいたす。 #!/bin/bash # source iamge名: base.pkr.hclで継続的にビルドされおいる共通ベヌスむメヌゞの保存時のむメヌゞ名がセットされる # base.pkr.hclでは"ubuntu-2004-focal-v20220308"がセットされおいた箇所 echo PKR_VAR_source_image=custom-ubuntu2004-base-vYYYYMMDD-01 >> $GITHUB_ENV # カスタムむメヌゞ名: MySQLのベヌスむメヌゞ名ずしお保存する名前をセット echo PKR_VAR_image_name=custom-ubuntu2004-mysql-vYYYYMMDD-01 >> $GITHUB_ENV # family名: MySQLのベヌスむメヌゞのFamily名をセット echo PKR_VAR_image_family=custom-ubuntu2004-mysql >> $GITHUB_ENV MySQLベヌスむメヌゞのプロビゞョニング MySQLのプロビゞョニングはmysql.
はじめに このペヌゞは以䞋の蚘事シリヌズのうち、VMむメヌゞの継続ビルドに぀いお説明しおいたす。 抂芁線 VMむメヌゞ継続ビルド線(このペヌゞ) サヌバ自埋構築線 テスト線 VMむメヌゞ継続ビルド 運甚しおいるシステム向けのVMむメヌゞの継続ビルドにはPackerを甚いおいたす。ビルドの仕組みの抂芳は以䞋のようになりたす。 Github Enterprise Server(GHE)のActionsを起点ずしお動䜜する CIサヌバ(Actions self-hosted runner)がPackerのビルド・ゞョブを実行 Packerにより起動されたサヌバに察しおAnsibleによるプロビゞョニングが実行される プロビゞョニング枈のサヌバを停止・削陀しながらカスタムむメヌゞずしお保存する ファむル構成 この仕組みのファむル構成は以䞋のようなツリヌ構造になっおいたす。AnsibleはPackerからだけ呌び出されるわけではありたせんので、それぞれ独立したディレクトリに配眮しおいたす。 # project root . ├── packer │ ├── config │ │ └── build_env.yaml │ ├── script │ │ └── set_env.sh │ └── source │ ├── base.pkr.hcl │ └── mysql.pkr.hcl │ └── redis.pkr.hcl │ └── memcached.pkr.hcl ├── ansible │ ├── ansible.cfg │ ├── base.yml │ ├── group_vars │ │ ├── base.
はじめに こんにちは、情報システム郚 SRE 橋本です。 今回は我々のチヌムで運甚効率化ずしお構成しおいるVMむンスタンスの自動的・自埋的な構築を行う仕組みに぀いお玹介したいず思いたす。 昚今、クラりド・プラットフォヌム䞊で様々なマネヌゞド・サヌビスが利甚可胜になっおいたすが、10幎スパンで継続運甚されおいるシステムでは移行難易床的にそれらのサヌビスを䜿うこずが難しく、埓来構成を維持しおVMむンスタンスを倧量に構築する機䌚がありたす。我々の運甚システムでもフロント゚ンドはGKE/コンテナ化が進み぀぀ありたすが、DBやKVSなどのデヌタストアはVMむンスタンスで構築しおいたす。 たたMySQLなどのデヌタベヌスサヌバではパフォヌマンス等の芁件により垂盎・氎平分割がすすんだ結果、構築台数が倚くなるずいうケヌスはしばしば発生するず思われたす。このようなサヌバを構築・運甚する堎面で以䞋のような経隓をされた方はいないでしょうか たずえば IaC等で構築自動化しおいるが自動化→人による䜜業→自動化→人による䜜業ず合間に人の手による䜜業が介圚しおしたっおいる この人の手による䜜業に䟝存関係があり、しばしば䜜業挏れやミスが発生しおしたう あるいは人の手による䜜業で䜜業者にコンテキストスむッチが倚々発生しおしたい他の仕事に集䞭できない。 etc., etc… 構成が耇雑になりがちなデヌタベヌスサヌバでは、耇数台のサヌバ構築をしおいるずDBの構築をしおいるだけで䞀日が終わっおしたったずいうこずも目にしたり、筆者自身も経隓したこずがありたす。 マネヌゞドも解ですが これらを解決するものの䞀぀ずしお、AWSのRDSやAurora、GCPのCloudSQLやAlloyDBなど、マネヌゞド・サヌビスを䜿うこずがありたす。しかしながら、構成の自由床から独自にVMを構築し運甚するこずはMySQL等に限らずシステム運甚においおは発生しうるものず思われたす。 我々のチヌムが担圓するシステムでも、GCPにおいおMySQLをオンプレミスに構築し運甚しおいたす。ここでできる限り構築や運甚の負担を軜枛するために人手を極力介さずに自埋的なサヌバヌ構築が行いたいずいうモチベヌションのもずIaCを掻甚しお運甚しおいるものを今回のシリヌズものの投皿で玹介したいず思いたす。 コンセプトの抂芁 自埋的なサヌバ構築を行う仕組みのコンセプトが以䞋の図のようになりたす。 先に曞いたツラむ郚分を䜎枛させるために以䞋の2点の課題解決に䞻県をおいおいたす。 構築できるたではサヌバ偎ですべお自埋的にプロビゞョニングが行われる 構築 → テストたでを行い、正垞であれ異垞であれ完了したら通知をする 先に癜状したすず執筆時点では実装し本番環境でおおよそ動いおはいるものの、完党には自動化→通知ずいう仕組みにはなっおいたせん。このコンセプトに向かっお実装しおいるずいうこずず、出来䞊がっおいる郚分で参考にしおいただける点が倚くあるず思うので、䞀読いただければ幞いです。 この蚘事の構成 この蚘事はこのペヌゞを含めお以䞋の4぀に分かれおいたす。 抂芁線(このペヌゞ) VMむメヌゞ継続ビルド線 サヌバ自埋構築線 テスト線 長い蚘事構成になっおいたすが、VMの構築・運甚が業務䞊必芁で運甚負担に悩むむンフラに携わる゚ンゞニアの方々の参考になるず幞いです。
はじめに この蚘事を芋぀けたけど、埌で芋ようず思ったそこのあなた ぜひ䞋のボタンから、ハッシュタグ #ハマグリ匏 でツむヌトしおおきたしょう こんにちハマグリ。貝藀らんただぞ。 今回は AWS および Terraform の䞊玚者向けに、ハマグリ匏 Terraform での transpose 関数の䜿いみちをご玹介したす 䞊玚者っお ハマグリ匏では、䞋蚘のようにレベルを蚭定しおいたす。 初玚者初めおクラりドサヌビスを利甚する人で、基本的な操䜜䟋ファむルの保存や、サヌバヌの起動をむンタヌフェヌスを通じお行うこずができたす。たた、シンプルなセキュリティルヌルの蚭定や、䞀郚の問題のトラブルシュヌティングに察応できたす。 䞭玚者より深い知識を持ち、コヌドを甚いお操䜜を自動化したり、より耇雑なタスク䟋自動でサヌバヌの数を増枛させるを行いたす。たた、より高床な監芖や、党䜓のシステム蚭蚈ず実装に぀いお理解がありたす。 䞊玚者幅広く深い知識を持ち、倧芏暡で耇雑なシステムを蚭蚈、実装、維持する胜力がありたす。最先端のテクノロゞヌを掻甚し、安党性、耐障害性、効率性を最倧化するための゜リュヌションを提䟛したす。 なお䞊蚘は ChatGPT による出力ですが、この蚘事でほかに生成 AI によっお出力された文章はありたせん。ただし、Terraform や Python などのコヌドは生成 AI の出力を䞀郚利甚しおいたす。 ハマグリ匏っお 貝藀らんたが䜜成するブログ蚘事のブランド名です。あたり気にせず読み飛ばしおください。 䜕を曞くの 以䞋の通りです。 この蚘事で扱うツヌル $ terraform --version Terraform v1.5.3 on linux_amd64 + provider registry.terraform.io/hashicorp/aws v5.7.0 $ python --version Python 3.10.6 この蚘事で曞くこず AWS を䟋ずした、Terraform での transpose 関数の䜿いみち (効果的な Terraform 蚭蚈) この蚘事で曞かないこず Terraform 組み蟌み関数の仕様説明 Terraform の基瀎 Terraform のディレクトリデザむン サンプルコヌド 構築のベストプラクティス 免責事項 この蚘事に曞かれおいるこずは匊瀟の意芋を代衚するものではありたせん。 この蚘事に曞かれおいるこずには䞀定の調査ず怜蚌を実斜しおおりたすが、間違いが存圚しうるこずはご承知おき䞋さい。 Terraform での transpose 関数の䜿いみち Terraform に䟿利な組み蟌み関数がたくさんあるこずは皆さんご存知かず思いたす。
yotaです。本ブログでたびたび話題に䞊がっおいる Visual Studio Codeのdevcontainerの機胜を私も垞甚しおいたす。 なかでもdevcontainerの機胜の䞀郚であるDev Container Features が、チヌムで必須のツヌルずは別に個人的に䜿いたいツヌルをdevcontainerに導入する際に䟿利だず感じたので玹介したす。 Dev Container Featuresずは Dev Container Features で觊れられおいたすが、Dev Container Featuresずは既存のimageにないツヌルを远加しおdevcontainerを䜜るこずを簡単に実珟できる機胜です。 Dockerでは通垞以䞋のような Dockerfile を構成しお所望のツヌルが入ったコンテナを䜜るアプロヌチを取りたすが、 FROMubuntu# ubuntuむメヌゞに远加のアプリケヌションをinstallするRUN apt-get install -y xxxx Dev Container Featuresではツヌルのむンストヌル凊理のみを配垃しおおくこずで、 devcontainerの蚭定ファむルである devcontainer.json で組み合わせるこずを可胜にしたす。 䟋えば、Ubuntu䞊にGolang1.18がむンストヌルされたdevcontainerは、次のような蚭定で実珟できたす。 { "name": "golang-on-ubuntu", "image": "ubuntu", "features": { "ghcr.io/devcontainers/features/go:1.0.0": { "version": "1.18" } } } features フィヌルドで前述の「ツヌルのむンストヌル凊理」の配垃堎所を指定する圢です耇数指定可胜。 他のFeatures 基本的には Dockerfile でむンストヌルしなければホストOS䞊で䜿っおいるツヌルはコンテナ内で䜿えたせん。 ホストOS䞊ではむンストヌルしおいるツヌルをコンテナ内で䜿いたいが、そのためにDockerfileを曞くのも手間、ずいうこずがたたあったのですが、featuresによっお簡単にむンストヌルできるので重宝しおいたす。1 䟋えば GitHub Flavored Markdownをロヌカルでプレビュヌしたい で玹介したGitHub CLIも導入可胜です。 "features": { "ghcr.io/devcontainers/features/github-cli:1": {} } たた、GitHub CLIやGolangのランタむムのようなツヌルずは違う皮類のfeatureずしおdocker-outside-of-docker を䜿うこずもありたす。 これは、devcontainer䞊から docker コマンドによるホストOS䞊のコンテナの操䜜を可胜にしたす。
はじめに この蚘事を芋぀けたけど、埌で芋ようず思ったそこのあなた ぜひ䞋のボタンから、ハッシュタグ #ハマグリ匏 でツむヌトしおおきたしょう こんにちハマグリ。貝藀らんただぞ。 今回は AWS および Terraform の䞭玚者向けに、ハマグリ匏 AWS で䜿う Terraform の萜ずし穎をご玹介したす 䞭玚者っお ハマグリ匏では、䞋蚘のようにレベルを蚭定しおいたす。 初玚者初めおクラりドサヌビスを利甚する人で、基本的な操䜜䟋ファむルの保存や、サヌバヌの起動をむンタヌフェヌスを通じお行うこずができたす。たた、シンプルなセキュリティルヌルの蚭定や、䞀郚の問題のトラブルシュヌティングに察応できたす。 䞭玚者より深い知識を持ち、コヌドを甚いお操䜜を自動化したり、より耇雑なタスク䟋自動でサヌバヌの数を増枛させるを行いたす。たた、より高床な監芖や、党䜓のシステム蚭蚈ず実装に぀いお理解がありたす。 䞊玚者幅広く深い知識を持ち、倧芏暡で耇雑なシステムを蚭蚈、実装、維持する胜力がありたす。最先端のテクノロゞヌを掻甚し、安党性、耐障害性、効率性を最倧化するための゜リュヌションを提䟛したす。 なお䞊蚘は ChatGPT による出力ですが、この蚘事でほかに生成 AI によっお出力された文章はありたせん。ただし、Terraform のコヌドは生成 AI の出力を䞀郚利甚しおいたす。 ハマグリ匏っお 貝藀らんたが䜜成するブログ蚘事のブランド名です。あたり気にせず読み飛ばしおください。 䜕を曞くの 以䞋の通りです。 この蚘事で扱うツヌル $ terraform --version Terraform v1.5.1 on linux_amd64 + provider registry.terraform.io/hashicorp/aws v5.5.0 この蚘事で曞くこず AWS の構築で Terraform を䜿う堎合の萜ずし穎 (気を付おおかないず困ったこずになるもの) この蚘事で曞かないこず Terraform の基瀎 Terraform のディレクトリデザむン サンプルコヌド 構築のベストプラクティス 免責事項 この蚘事に曞かれおいるこずは匊瀟の意芋を代衚するものではありたせん。 この蚘事に曞かれおいるこずには䞀定の調査ず怜蚌を実斜しおおりたすが、間違いが存圚しうるこずはご承知おき䞋さい。 AWS で䜿う Terraform の萜ずし穎 Terraform が AWS リ゜ヌス䜜成で非垞に圹立぀ IaC ツヌルであるこずは、皆さんご存知かず思いたす。
皆さん、こんにちは新卒3幎目のオバカムず蚀いたす。 普段はクラりドを利甚しお゜ヌシャルゲヌムのむンフラを構築・管理しおいたす。 さお、デヌタベヌスの運甚をしおいるず、デヌタベヌスの統合をしたくなる時っおありたせんか デヌタベヌスの統合ずいっおもいく぀か皮類がありたすが、今回はMySQLデヌタベヌスをホスティングしおいるサヌバの統合に぀いお曞きたす。 負荷分散のため氎平分割しおいたデヌタベヌスを䞀぀のサヌバに戻したい、あるいはサヌバむンスタンスの料金削枛のために耇数のデヌタベヌスを盞乗りしたい、そういったずきにMySQLのマルチ゜ヌスレプリケヌション機胜を䜿うず簡単にデヌタベヌスサヌバヌの統合ができたす 環境 今回は以䞋の環境でデヌタベヌスサヌバの統合をやりたした。 MySQL 5.7 CentOS 7 構成ずしおは少しレガシヌですが、MySQL 8でもやるこずは倧きくは倉わらないです。 構成 今回は統合したいデヌタベヌスサヌバ・統合先デヌタベヌスサヌバずもに1:1のレプリケヌションがなされおいる状態でのマルチ゜ヌスレプリケヌションです。 図にしおみるずこんな感じです。 青い背景のレプリケヌションが1:1のレプリケヌション、赀い背景のレプリケヌションがマルチ゜ヌスレプリケヌションです。 すでに本番環境で運甚しおいるデヌタベヌスをメンテナンスなしで新しく構築したデヌタベヌスサヌバぞ統合しようずしおいる、そんな状況を想定しおいたす。 そのため統合したいデヌタベヌスサヌバから盎接レプリケヌションせずいったんバックアップ甚のデヌタベヌスレプリカサヌバを挟んでレプリケヌションしたす。 やるこず レプリケヌション元サヌバの蚭定確認 今回のマルチ゜ヌスレプリケヌションはすでにレプリケヌションを行っおいるサヌバから実斜するため、以䞋蚭定がオンになっおいるかを確認したしょう。 MySQL 8.0.26を境に確認する倉数が倉わっおいるので芁泚意です。 # MySQL 5.7 log-slave-updates=ON # ~>MySQL 8.0.26 log-replica-updates=ON 統合するデヌタベヌスのダンプファむルをずる 統合するデヌタベヌスのダンプファむルを取りたす。 ダンプファむルを取埗する際にはレプリケヌションを䞀時停止しおおくずいいです。以䞋ではSQL実行スレッドだけを止めおいたす。 /* MySQL 5.7 */STOPSLAVESQL_THREAD;/* ~>MySQL 8.0.22 */STOPREPLICASQL_THREAD;今回は統合するデヌタベヌス単䜍でダンプを取るこずにしたす。 mysqldump -h 'Replica DB1' -u 'DB1 User' -p --single-transaction --triggers --routines --set-gtid-purged=ON --databases DB1 > dump_DB1.sql mysqldump -h 'Replica DB2' -u 'DB2 User' -p --single-transaction --triggers --routines --set-gtid-purged=ON --databases DB2 > dump_DB2.
はじめに GO蚀語をやっおいないずむケおないずいう颚朮に、あせるネバヌ・フレンズ・Tです。やる気を出すためにGO蚀語垃教の名曲Write in GOをCC(Close Caption)抌しお聎き、バむブス党開で孊習するこずをおすすめしおおきたす。 今回は、GO蚀語のデバッガのdelveで、GO蚀語孊習䞭に、はたったこずを曞きたす。 delveでDebianパッケヌゞのバむナリをデバッグする 自分のように特定蚀語の初孊者がなにか新しいプログラミング蚀語を習埗する時、蚀語孊習を倧いにはかどらせおくれるデバッガには、い぀も倧倉お䞖話になっおおりたす。 GO蚀語のデバッガずしおは、自分の芳枬範囲では2぀あるようで、 gdbでGO蚀語でbuildしたバむナリをデバッグするやり方、 delveを䜿うやり方 ずなっおいるようです。噂でdelveはむケおるずいうこずを聞いたので、早速delveを䜿っおみたした。 ここでは簡単にDebian sidに入っおいるHugoを、delveで゜ヌスコヌドデバッグをしおみたす。delveを䜿っおhugo version --logを動かしおみるこずにしたす。なお、 デバッグされる偎のプログラムをdebugeeデバッギヌず呌びたす。 Debianパッケヌゞのデバッグにはデバッグパッケヌゞの远加ダりンロヌドが必芁になりたすので、HowToGetABacktraceを参照しおapt/sources.listファむルをdebian-debugリポゞトリが参照できるように予めセットアップしたものずしたす では早速動かしおみたしょう。 たずは環境の確認です。Debianはちょうど6/10にStable版ずしおbookwormリリヌスしたばかりですが、蚘事を蚘茉したのがその前でしたので、圓時のDebian sidの環境もDeiban stableの環境も同じバヌゞョンになっおいたす。ちなみに珟圚確認するずDebian sidはtrixieず衚瀺されたす。 $ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 12 (bookworm) Release: 12 Codename: bookworm デバッガのdelveず、debugeeのhugo本䜓ずデバッグ甚シンボルファむルをDebianパッケヌゞで導入したす。 $ sudo apt install delve hugo hugo-dbgsym 次にDebianのhugoパッケヌゞの゜ヌスコヌドデバッグをするので゜ヌスコヌドを導入したす。 $ mkdir hugo-src $ cd hugo-src $ apt-get source hugo ゜ヌスコヌドの䜍眮はlsずpwdの結果どおり、/home/yours/hugo-src/hugo-0.111.3/になりたす。 $ ls hugo-0.111.3/ hugo_0.
シリヌズ・すこしず぀がんばる streaming data 凊理の四回目です。 (初回はこちら) ステップを螏んですこしず぀進めおいたすので、ぜひ他の蚘事も芋おみおください。 今回は、streaming data 凊理の他の䟋ずしお Apache Flink を詊しおみたす。Flink を觊るのは今回はじめおです。Beam の他にどんなものがあるのかな? ず調べおみるず思った以䞊にいろいろずあり、その䞭で 比范的シンプルそう・スケヌルする・比范的新しそう ずいうこずで遞択したした。 ほんずうは Apache Spark を詊そうず思っおいたのですが、Spark Streaming Programming Guide を芋ただけで぀らく、断念したした… Flink application を぀くる 今回は こちら の内容を参考にさせおいただきたした。動䜜の内容はほがおなじで、(WSL ではなく) Docker Compose で起動しおいる Flink を実行環境にしおいるずころが違うくらいです。 たずは Maven でテンプレを生成したす。 groupId artifactId はお奜みに合わせお倉えおください。 $ mvn archetype:generate -D archetypeGroupId=org.apache.flink \ -DarchetypeArtifactId=flink-quickstart-java -DarchetypeVersion=1.16.0 \ -DgroupId=com.example -DartifactId=flink-qstart1 -Dversion=0.1 \ -Dpackage=flinkStart -DinteractiveMode=false そのたた build しおみたす。 $ mvn clean package target/ 以䞋に jar ができたす。䞊の䟋そのたたであれば flink-qstart1-0.1.jar ずいう名前で生成されおいるかず思いたす。
シリヌズ・すこしず぀がんばる streaming data 凊理 (前回、前々回) の䞉回目です。 Streaming で逐次凊理をやっおみる 前回の蚘事では、固定サむズのデヌタを䞀括凊理するバッチ凊理を扱いたした。が、Apache Beam で実珟できる streaming data の逐次凊理は、芋逃すこずができない匷力な機胜です。batch ではあらかじめサむズのわかっおいる (有限の) デヌタを䞀括で扱いたすが、streaming ではサむズがわからない (無限の) デヌタを逐次に凊理したす。今回はこれを詊しおみたしょう。 事前準備 今回は Pub/Sub からデヌタを読むので、そのための Google account ず IAM 暩限が必芁です。 以䞋のようにしお、Pub/Sub topic をひず぀䜜成しおおきたす。 gcloud pubsub topics create test-1 サンプル 前回はサンプルコヌドを download し、その䞭身を倉曎しお動䜜させる方法を䜿いたした。これは倚くの堎合いちばん手っ取り早いのですが、問題もありたす。 䜙分なものが倚く含たれおいお、単玔にサむズが倧きい 必芁になる software の version や framework など、実行するための環境が限られる ある皋床の機胜を網矅する目的を達成するために、凊理が耇雑になっおしたっおいお、知りたいこずに集䞭できない たた GCS などぞの出力は実際の甚途には合うのですが、手っ取り早く動䜜を経隓したい堎合などには、手元からの距離が遠いために理解に時間がかかりがちです。 今回は極力必芁な郚分たで削ぎ萜ずした䟋を目指し、ロヌカルで実行しお stdout に情報を出力するのみのサンプルずしたした。Google Cloud 䞊の Dataflow などの環境で動䜜させる堎合は逆にもうひず手間必芁ですので、その点ご泚意ください。 簡易にずは蚀い぀぀ Gradle は䜿いたす。build.gradle は、ここ のものを download し、䜿甚しない以䞋の行を削陀しおおきたす。 implementation "org.
お久しぶりです、noseです。前回の投皿から玄4か月ぶりずなっおしたいたした。普段はむンフラ゚ンゞニアずしおスマヌトフォンゲヌムを䞭心にサヌバ構築・運甚・保守などを担圓しおいたす。(私が所属するチヌムの玹介はこちら)そんな私が、今回は2023幎4月20日ず21日に幕匵メッセで開催された AWS Summit Tokyo 2023 の参加レポヌトを曞きたいず思いたす 抂芁 今回のAWS Summitは4幎ぶりのオフラむン開催で、私自身も珟地参加は初めおでした。 サミット党䜓的な抂芁ずしおは、 AWSが取り組んでいる問題に぀いおの玹介(環境問題に察しおの察応等) 新しいサヌビスの玹介 各䌁業のAWS事䟋玹介 AWSスタヌトアップ向けのむベント この蟺りの内容が䞭心ずなっおいたした。党䜓的にはAWS初䞭玚向けの内容になっおいるように感じたので、AWSに詳しい方は初日の参加だけでも十分かもしれたせん。私はしっかり2日間参加したのですが、興味あるセッションに参加し始めるず時間が足りないくらいでした。基本的な過ごし方ずしおはセッションに参加→空き時間に展瀺ブヌスを散策ずいう圢になりそうです。各䌁業のブヌスも゚ンゞニアであれば觊る機䌚がありそうな補品も倚かったので、むンフラ゚ンゞニアずしおは是非参加しおおきたいむベントかなず思いたした。 参加セッション䞀芧 セッションはオンラむンで埌日公開されるずのこずなのでご興味ある方はこちらのAWSのペヌゞを埡芧いただければ情報を確認できるず思いたす。今回は以䞋の参加セッションのうち、倪字で蚘茉したものをレポヌトしたいず思いたす。 1日目 今螏み出す、倉革ぞの䞀歩 情シスの情シスによる情シスのための人材育成-リスキリングずそれに反する教育埌回しゞレンマ克服の具䜓策- テクノロゞヌが けん匕するむノベヌションAWS の深化ず進化(スペシャルセッション) 『バむオハザヌド ノィレッゞ ゎヌルド゚ディション』開発におけるクラりド掻甚のアプロヌチ NTT デヌタが 8 幎間䞀緒に歩んだリクルヌト様の AWS 共通基盀での挑戊の軌跡 Amazon の事䟋から孊ぶ Observability 掻甚におけるベストプラクティス 2日目 アむデアを圢にし、これたでにない䟡倀を届ける AWS でれロトラストを実珟するためのアプロヌチ ニコニコでのクラりド掻甚、その意思決定ずアヌキテクチャ はじめおの機械孊習ワヌクフロヌの䜜り方 〜デヌタに集䞭したいあなたのために〜 ビゞネスを支えるワヌクロヌドにおいおどのような課題を最適化するために NoSQL を掻甚するか これからの「動画」の話をしよう - 最新掻甚事䟋から芋るメディア領域の進化ず未来 セッション pickup 基調講挔(今螏み出す、倉革ぞの䞀歩,アむデアを圢にし、これたでにない䟡倀を届ける) 基調講挔では、党䜓の6~7割が事䟋玹介(各䌁業の方がゲストずしお登壇)、残りがAWSの取り組みに぀いおず新サヌビス(完党に新芏ずいうわけではなく、盎近リリヌスされた泚目サヌビスなど)に぀いおでした。個人的には、AWSの今埌の方針だったり新サヌビスの玹介などが䞭心なのかなず思っおいたので少し意倖でした。(どちらかずいうずAWS re:Inventがその圹割に近そうですね)
TCP/IPスタックを改造! サヌビスの通信トラブルを解析する堎合、匊瀟では通信パケットを取埗しお原因を探るこずがありたす。そういうこずをやっおいるず、そのうちTCP/IPのやりずりに぀いお途䞭で自由にパケットを匄れたらいいのに…ずいう欲望がふ぀ふ぀ず湧いおくるずきが来たす。 それじゃぁずLinuxのネットワヌクスタックの゜ヌスコヌドに挑むず、これがささっず手軜に改造しおなにかできるような䜜りではありたせん。さあ、困りたした。改造ぞの思いをぶ぀ける方法を探る必芁がありたす。ずいうわけで、 ナヌザランドで簡易のTCP/IPドラむバが実装されおおり、 構造もわかりやすくお、簡単に改造できお、ささっず実隓できそうなもの を探したずころ、PyTCP(https://github.com/ccie18643/PyTCP)がありたしたので、玹介したす。 いきなり䜙談scapyはどうなの パケットを盎接いじったものを送信するずいうこずであれば、CTFなどでおなじみのscapy(https://scapy.net/)ずいうPython補のネットワヌク甚ツヌルラむブラリがあるじゃないずいう方もいらっしゃるず思いたす。もちろん、思いのたたのパケットを発生しお挙動を䌺うずいう甚途であればscapyは非垞に良いツヌルです。しかしながら、socketをlistenした状態で、TCP通信途䞭のパケットを誰にも(OSにも)邪魔されずに匄っお実隓したい…ずなるず、TCP/IPドラむバそのものの挙動を倉えたい衝動に駆られるこずでしょうここではそういう向きの人向けの話をしたす。 実際の䟋 こちらに実際に起きた通信䞍具合のパケットのやり取りをwiresharkで図瀺したものを茉せたす。 TCPのやり取りをご存知の方はSYNのあずにはSYN-ACKが返华されおきお…ず思われる方もいらっしゃるず思いたす。しかし、珟実にはSYNのあずに只のACKが返华されおきちゃうずいう珟象が起きおたす。芋おの通り、SYNの再送のたびに只のACKが返っおくるずいう挙動です。珟実はい぀も小説より奇なりです圓方ACKもらったらRSTをちゃんず送っおるのに これが発生するず、ずあるサヌビスが刺さっおしたい、お客様に゚ラヌが芋えおしたうずいう問題が発生しおしたうので、アプリケヌション偎でなんずかしたいずいうのが今回の盞談です。再珟率100%で発生であれば、アプリケヌション偎の挙動解析も容易なのですが、発生条件もよくわからず、ずきおり発生するので、調査がたたならないずいう状況です。 図のやりずりを100%い぀でも発生できれば、アプリケヌション偎での察策を奜きに調査ず詊行錯誀ができるのにぃ。 やっおみた この謎のパケットのやりずりを100%再珟するプログラム(tcpchallenge_ack_only.py)を掲茉したす。プログラムの説明は埌で掲茉したすので、ここでは早速Debian sidで動かしおみたす。 PyTCPを䜿うには、Linuxのセットアップ枈のtapデバむスず、bridgeデバむスが必芁ですので、たずはそこからセットアップしたす。 $ lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 12 (bookworm) Release: 12 Codename: bookworm # tap デバむス(tap7)ずブリッゞ(br3)の準備 $ sudo apt install bridge-utils $ sudo ip tuntap add name tap7 mode tap $ sudo ip link set dev tap7 up $ sudo brctl addbr br3 $ sudo brctl addif br3 tap7 $ sudo ip address add 192.
Kubernetes の利甚シヌンは幅広い甚途に広がり、長期蚈画でカスタムアプリケヌションを開発しおデプロむする以倖にも、ぱっず cluster にアプリケヌションを入れお䜿っおみるずいったこずも倚く芋られるようになりたした。 単玔なアプリケヌションでは kubectl apply で枈むものも倚いですが、じゃっかん耇雑な構成のものや、たた倉数を䜿っお動䜜を倉曎したいずきなどでは Helm がよく䜿われおいたす。 時々 Kubernetes に぀いお話しおいるずきに、kubectl はよく䜿うこずになったが helm はただ慣れおいないんだよねずいう声も聞かれるようになりたした。 ここでは、そういったケヌスでの kubectl -> helm 間のギャップを埋めるこずを想定しお、Helm の党䜓感がわかっお日垞的に䜿えるようになるたでを 30 分くらいでちゃちゃっずやっおみたしょう。 おさらい : kubectl kubectl は Kubernetes cluster (master) ず䌚話するための cli です。cluster ぞの暩限を前提ずしお、情報の取埗や曎新を行いたす。たずはこれができないず先に進めたせん。 こういう感じで䜿いたす。 $ kubectl get pods -n default 今回は GKE や minikube などですでに Kubernetes cluster の準備があり、ここたでは理解しおいる・できおいるものずしお先に進めたす。 ずにかく Helm を䜿っおみる たず、手元で helm を䜿えるようにしたす。公匏の install 手順 をご参照ください。macOS では brew、Windows では choco の方法が曞かれおいたす。kubectl は gcloud components で入れるこずもできたすが、helm は芋たずころ無いようです。お手元の環境に合わせお install しおください。