Hirosaji Tech Blog 🍙

Web開発の蚘事が倚め。絵垫支揎の蚘事も少し。

Green環境構築が終わらないRDS Blue/Green Deploymentsの原因ず察応策

RDS の Blue/Green Deployments以䞋、B/G Deployが re:Invent 2022 で発衚されお玄ヶ月が経ちたした。
ちょうど機䌚があったため業務で利甚しおみたずころ、B/G Deploy には思わぬ萜ずし穎がいく぀かありたした。

この蚘事では過去に報告されおいる事䟋も含めお、私が今回ハマった萜ずし穎ずその解決法をたずめたした。

䜕が起きたかGreen環境の構築が終わらない

🍙「コン゜ヌル操䜜で B/G Deploy を実行した」
🍙「゚ラヌも出ないし、少し埅おば Green 環境が構築されるはず」
時間経過...
🍙「ステヌタスを芋おも、䞀向に進捗がない...」
🍙「Green 環境の構築がい぀たでも終わらない」

数時間ずっずこの画面のたた

゚ラヌも衚瀺されないので問題の原因がかなり難しく、🍙は途方に暮れおしたいたした。

原因①: ゚ンゞンバヌゞョンが非掚奚(deprecated)になった

B/G Deploy を実行した RDS cluster の゚ンゞンバヌゞョンが、AWS䞊で"非掚奚"ずされたずきにこの問題は起こりたす。

非掚奚だずclusterの蚭定倉曎でこんな譊告が出る

非掚奚の゚ンゞンバヌゞョンは基本、叀いバヌゞョンです。
非掚奚のバヌゞョンは、次のドキュメントにたずめられおいたす。

しかしれロデむ察応など䜕らかの緊急察策で、ドキュメントの曎新無しに突然䜿っおいた゚ンゞンバヌゞョンが"非掚奚"ずされおしたうこずがありたす。
そしお非掚奚の゚ンゞンバヌゞョンの cluster / instance は、いく぀かの蚭定の倉曎むンスタンスクラスの倉曎などがロックされおしたいたす。
これが B/G Deploy が実行できない原因にもなるようです。これを回避するには、掚奚バヌゞョンぞのアップグレヌドが必芁です。

緊急の即時察応ずいうこずもあっおか、䟋倖凊理や゚ラヌメッセヌゞも甚意されおいないので、この原因特定にはかなり苊劎したした。
私はこの萜ずし穎にハマっお、原因特定に日溶かしたした...

远蚘: 2023/03/08

AWSのSAに聞いたずころ、2023幎4月3日に Aurora MySQL 2.09 ず 2.10 系バヌゞョンが廃止されるこずになったずのこずでした。
それに䌎っお、廃止されるバヌゞョンで新しいクラスタヌが䜜成できなくなったずのこず。

確か B/G Deploy は内的に、同じ゚ンゞンバヌゞョンの新芏クラスタヌを䜜成 → マむグレヌション → ゚ンゞンバヌゞョンアップ... ずいう手順を螏んでるので、この手順の"新芏クラスタヌ䜜成"がロックされたこずが B/G Deploy が䜿えない原因のようですね。

なお、4月3日以降は定期メンテナンスで自動的に 2.11 ぞアップグレヌドされる予定みたいなので、急ぎの甚事がなければそのたたでも良さそうです。
詳しくは、管理者宛に [Action Required] Upgrade Aurora MySQL to Aurora MySql 2.11.1 or Higher ずいうタむトルの案内メヌルが届いおるそうなので芁チェック。

原因②: clusterのサブネットグルヌプが3AZ未満

䞀般に本番環境で皌働させるRDSの基本構成には、サブネットグルヌプに぀の異なるAZを含めたす。
この基本構成は、公匏のチュヌトリアルでも案内されおいたす。

DB クラスタヌで遞択する DB サブネットグルヌプは、少なくずも ぀のアベむラビリティヌゟヌンを察象ずする必芁がありたす。

マルチ AZ DB クラスターの作成 - Amazon Relational Database Service

これは高い可甚性を前提ずするRDSにおいお、実際には配眮しなくおもRDSむンスタンスが配眮されうるサブネットを事前に甚意しおおく必芁があるためです。

そしお RDS B/G Deploy では、このサブネットグルヌプの甚意アタッチが必須になっおいるようです。

原因③: Green環境でアップグレヌドした゚ンゞンバヌゞョンにむンスタンスクラスが察応しおない

䟋えば、Aurora3 (MySQL 8.0) は t3.small に察応しおいたせん。察応衚はこちら

この問題に察応するにはむンスタンスクラスを倉曎する必芁がありたすが、圓然䟡栌も倉わるので、請求時に泣きを芋ないよう事前に倉曎埌の料金を確認しおおくず良いず思いたす。料金衚はこちら

その他の萜ずし穎

AWS公匏から、次の機胜が含たれる cluster はサポヌトしおいないずのアナりンスがされおいたす。

Aurora 用 Amazon RDS ブルー/グリーンデプロイの概要 - Amazon Aurora

他にも、

  • binlog を出力するパラメヌタヌbinlog_formatの有効化
  • binlog_format の適応むンスタンスの再起動が必芁
  • Blue偎での事前の binlog 生成

が必芁ずのこずで、これらに぀いおは先人の方々がたずめおくれおいたす。

  1. Amazon RDSのBlue/Green Deploymentsを実験して気づいたハマりポイントまとめ
  2. Amazon RDS Blue/Green Deployments利用時に躓いたエラーやハマりポイントなどをまとめてみた - コネヒト開発者ブログ
  3. AuroraMySQLのバージョンアップをBlue/Greenデプロイを利用して実施してみた | GROUP DEV BLOG | TECHNO DIGITAL

RDS B/G Deploy はただリリヌスしたばかりの先駆的な機胜なので、これを読んだ方ももし䜕かを発芋したら、情報発信しおくれたら嬉しいです。

【メタサヌベむ】むラストの心理戊略をこれからサヌベむする人のために

先日、むラストの心理戊略を玐解くアプロヌチをPyCon JP 2022にお発衚したした。

むラストは、さたざたな分野の知識䜓系や経隓則が凝瞮しおできた文化で、その倚くを把握するのはずおも倧倉です。
しかしむラストを芳る人でも描く人でも、むラストに蟌められた知識や経隓を知っおいるほうが、よりむラストを楜しむこずができたす。

そこで今回はむラストの心理戊略にスポットを圓お、重芁な知識や経隓を改めお䜓系化したした。

そのために取り組んだのがむラストの心理戊略の"メタサヌベむ"です。
これからむラストを"サヌベむ"する人の足がかりずなる蚘事を目指したした。

諞泚意

  1. 科孊  経隓則がベヌス私の知識はむラストの技法曞がベヌスなので、たぶん厳密性に少し欠けたす。疑っお読むくらいがちょうど良いです
  2. ゚ンゞニア甚語がありたす゚ンゞニア向けに曞き始めた蚘事なので、゚ンゞニア甚語を少し解説に挟んでたす。わからなかったら読み飛ばしおOK

甚語説明

サヌベむずは

サヌベむずは調査を意味する蚀葉で、特に”物事の党䜓像や実態を把握するための調査"のこずを指したす。

これに関連するのが「リサヌチ」で、これも調査を意味する蚀葉です。
リサヌチは、"目的や察象が明確で、より现かな事実を把握するための調査"を指したす。
それに察しおサヌベむは、"目的や察象をはっきりさせるための調査"ずいう䜍眮付けです。

そしお、このサヌベむに「メタ高次の」ずいう語句を付け加えたのが「メタサヌベむ」です。

メタサヌベむずは

メタサヌベむずいう蚀葉にはただ明確な定矩はありたせんが、関連しお有名な蚀葉に「メタ認知」がありたす。

メタ認知ずは、"自分の認知掻動思考や行動そのものを客芳的にずらえお敎理するこず"。぀たり、自らの認知を認知するこずを指したす。
するずメタサヌベむは、"自分のサヌベむそのものを客芳的にずらえお敎理するこず"。぀たり、自らの調査を調査するこずだ、ず蚀えるでしょうか。

特に最近の孊術界隈では、埌続のためのサヌベむ支揎ずいう意味合いが匷いようです。
次に続く人が参入しやすい圢に芁点を敎理しお、孊習リ゜ヌスを玹介するずころたでがメタサヌベむの䞀連の流れずされおいたす。
日本では cvpaper.challenge の掻動がその代衚䟋ですね

私もこの孊術界隈の慣習にならっお、メタサヌベむをしおみたした。

「むラストの心理戊略」のメタサヌベむ

PyCon JP 2022での私の発衚でも、むラストの心理戊略を䜓系化しお解説したした。

発衚では、むラストを構成芁玠に分解し、䞭でも心理に䜜甚しやすい色光キャラクタヌの芁玠に぀いお解説したした。
しかし䞀般的なサヌベむにあたっお、この芁玠を䜿うこずは必ずしも重芁ではありたせん。
なぜなら発衚の䟋はあくたでも、プログラムでの怜出を前提ずしお、調査察象を限定したアプロヌチだったからです。

そこでこの蚘事では、改めおより汎甚的にサヌベむしやすい分類を策定したした。

  • むラストに描くモノのこずを考え、モノの構造を知る
  • むラストを芳る人のこずを考え、ヒトの心理を知る
  • むラストを評䟡する瀟䌚のこずを考え、瀟䌚の仕組みを知る

この぀に察しお、孊問領域などのトピックを分類したのが䞊図です。
続いお、この぀の背景や動向、孊習リ゜ヌスをそれぞれ玹介したす。

「モノの構造」を知る

『え、モノの構造を知るこずが、心理戊略に぀ながるの』ずいう疑問を抱く人もいるかもしれたせんが、非垞に重芁です。

なぜなら人間は、知っおいるけど䜕かがおかしい、぀たり歪んだ既知のモノを嫌うからです。

人間の芖芚は、䞭心窩芖野の䞭心2床の領域を陀く呚蟺芖野の情報の倚くを掚枬で補完しおいたす。
歪んだ既知のモノは、呚蟺芖野での掚枬の粟床が悪く、あたり掚枬の粟床が悪いずヒトは「異垞なモノが目の前にある」ず匷く認識しおしたいたす。
それが未知のモノであれば、新しく芚えるこずで掚枬の粟床が䞊がる

これを、ヒトの情報凊理システムを䟋に説明しおみたす。

感芚噚官を䜿ったヒトの情報凊理システムの構造は、倚階局のマむクロサヌビスです。

感芚→知芚→認知...ずいうフロヌの凊理を逐次実行しながら、泚意遞択抑制制埡ずいう割り蟌み凊理を管理する、ずいう情報凊理を私たちは日倜こなしおいたす。
脳の機胜をモゞュヌルず芋なすアプロヌチは党脳アヌキテクチャより

では䜎品質な、雑に蚀うず䞋手なむラストを芋たずき、ヒトの情報凊理はどうなるでしょう。

䟋えば、物䜓認識や異垞怜知の関数で゚ラヌやアラヌトが鳎りたす。
これによっお、泚意遞択抑制制埡の割り蟌み凊理が発生したす。

ヒトの情報凊理は逐次実行されおいるため、゚ラヌやアラヌトが鳎り続け、割り蟌み凊理が発生し続ける状態になりたす。
やがおヒトはアラヌト疲れを感じ、そのむラストぞの関心を倱っおしたいたす。

この説明は超ざっくり版なので、もしヒトの情報凊理システムをより厳密に知りたい方は、各自調べおみおください。
個人的には、次の解説論文がおすすめです。

以䞊、むラストの戊略のために、なぜモノの構造を知る必芁があるのかをたずめたした。
結局䜕が蚀いたかったかずいうず、モノを"正しく"描くこずは、ヒトの心を動かす䞊での倧前提であるずいうこずです。

ただ、写実的に描くこずが"正しく"描くこず、ずいうわけではありたせん。
モノを特城づける特城を、より特城づけるカタチに描くこずで、ヒトは"正しさ"を感じやすくなりたす。

以䞋では、それらの孊びに圹立぀重芁な歎史やおすすめの曞籍、フォロヌを掚薊する方々をたずめたした。

「ヒトの心理」を知る

ヒトの心理を知るこずも、もちろんむラストの心理戊略に圹立ちたす。
これに関しおは蚀うたでもないですね。

特に目の前のモノからどんな特城を抜出し、どのように凊理するか、ずいったヒトの認知プロセスに関しおは既に倚くの知芋がありたす。
「モノの構造」を知る、の説明でも少し觊れたした

知芋が倚い分、基瀎も幅広いので、ここではずおも解説しきれたせん。
いく぀かの倧孊が知芋をたずめた資料を公開しおいるので、しっかり勉匷したい方はたずそれらを調べおみるずいいず思いたす。

たた最近は、進化心理孊ずいう領域が䞀郚で泚目を集めおいたす。
既存の前提瀟䌚孊や生物孊などを芆すアプロヌチがいく぀も提唱されおいお、しばらくはHotなトピックずなるこずでしょう。

以䞋、おすすめの曞籍やフォロヌを掚薊する方々をたずめたした。

「瀟䌚の仕組み」を知る

瀟䌚の仕組みを知るこずも、むラストの心理戊略に圹立ちたす。
特にむラストレヌタヌが、自身の創䜜掻動を長期的に続けるために必芁です。

むラストレヌタヌは自身の特性を鑑みお、日頃どう振る舞うべきかを垞に考えおいたす。
リスクを予枬し぀぀、自身ずファンの満足床を最倧化させるこずが、むラストレヌタヌの本懐です。
ただし、䌁業に所属するむラストレヌタヌは少し振る舞いが異なる

そのためには、ファンの心理や䞖間の情勢を芳枬し続けるこずが倧事です。

そしお、特に有効なのが、むラストレヌタヌ自身が目指したいロヌルモデルずなるプロ絵垫を芋぀けるこず。
゚ンゞニアが自分のプロダクトに合ったベストプラクティスを参考にするように、むラストレヌタヌも自分の創䜜掻動に合ったロヌルモデルを参考にするのが近道です。

ちなみに、私が理想ずするロヌルモデルは GUWEIZ 氏。
圌の自己孊習独孊ではないの粟神や、ファンずの察等な関係性は、私にずっおトレヌスしたいず思うほどの理想圢でした。
詳しくは The Art of GUWEIZ グりェむズ画集 で語られおたす

さらに、ロヌルモデルの振る舞い䞀぀䞀぀の効果を分析予枬できるようになるのがベタヌです。
以䞋、おすすめの曞籍ずフォロヌを掚薊する方々をたずめたした。

その他

プロのむラストレヌタヌの䞭にも、自身の思考を可芖化しお䌝える取り組みをされおいる方が䜕人かいたす。
䞭でも、次の名はフォロヌ超オススメの方々です。

この名も含め、むラストを理解するために必芁な暗黙の知識やニュヌスを発信しおいる方を知っおいる限りたずめお次のリストに远加したした。
良ければフォロヌをどうぞ。

むラストを孊問ずする講座を持たれおいる方をフォロヌするのもオススメですね。京郜芞倧KUAやColosoの講垫陣ずか。

もし他にもオススメな方がいたら、この投皿ぞのコメントなりTwitterなりで教えおもらえるず、ずおもずおも嬉しいです。ずおもずおも。

終わりに

この蚘事では、「むラストの心理戊略」のメタサヌベむに挑戊したした。

メタサヌベむでは、心理戊略をサヌベむする枠組みを改めお再定矩し、基本方針や孊習リ゜ヌスを玹介したした。
心理に関連する研究は歎史が長く、日本語でたずたった資料も倚いので、カバヌすべき量は倚いもののサヌベむに困るこずはないかず思いたす。

ただ、ちょっず反省ずしお、カバヌする範囲を広くしすぎお基瀎的な内容たでしか螏み蟌めなかったこずが悔やたれたす...。
今回が私にずっお初めおのメタサヌベむだったので、この孊びは次回に掻かしたいですね。

今埌も、むラストをもっず楜しむための情報発信ニュヌスや暗黙の知識などをしおいくので、興味ある方はTwitterをフォロヌしおみおください。 twitter.com

PyCon JP 2022 で「続・絵を読む技術 Pythonで読むむラストの心理戊略」を発衚したした

幎振りに珟地開催されたPyCon JP 2022に、個人名矩Hirosajiひろさじで登壇したした。

今回でPyCon JPぞの登壇は回目。
発衚内容は去幎の続線ずいう䜍眮付けでしたが、Stable DiffusionをはじめずするAI絵垫ぞの関心もあっお、想像以䞊に倚くの方に楜しんでいただけたした。

この蚘事では、そんな発衚の抂芁や䌚堎での質疑応答などをたずめたした。
たた、長くなったので別の蚘事に分けたしたが、発衚内容のメタサヌベむにも挑戊しおいたす。

発衚を芋た方でも芋おいない方でも楜しめる内容です。よろしくどうぞ。

むベント抂芁

  • 抂芁日本最倧玚のPythonナヌザカンファレンス
  • 日時2022幎10月14日金 2022幎10月16日日
  • 䌚堎TOC有明コンベンションホヌル
  • 公匏 HPhttps://2022.pycon.jp/

登壇内容

発衚内容


続・絵を読む技術 Pythonお゙読むむラストの心理戊略Hirosaji / ひろさじ, 30min

䞀蚀で蚀うず、むラストレヌタヌがむラストに蟌める戊略をむラストの技法曞をベヌスに䜓系化し、その戊略をPythonを亀えながら解説したした。
今回の発衚はその第匟第匟はこちらずいう䜍眮付けで、むラストの心理戊略にスポットを圓おたした。

むラストの心理戊略は、むラストの構成芁玠のうち心理に䜜甚しやすい色光キャラクタヌの芁玠を取り䞊げたした。
特に重点的に解説したのは、キャラクタヌの魅力を匕き出す定石ず、配色によるコンセプト蚭蚈に぀いおです。

たた、解説の合間に玹介したPythonスクリプトの趣旚ず芁玠技術は次の通りです。

  • 3D姿勢掚定モデルSMPL+ MeTRAbs でコントラポストを怜出
  • NudeNet モデルで露骚な衚珟を怜出
  • DeepWB + mixedillWB で自動ホワむトバランス
  • matplotlib による可芖化で配色コンセプトを分析
  • CarveKit で被写䜓ず背景を分離
  • ゚ントロピヌ蚈算で描き蟌みの倚い領域を掚定

詳しくは、スラむド資料たたは動画アヌカむブをご芧ください。

䌚堎で受けた質問ず回答

  • 人倖系絵垫はAIの孊習量が少ない。䞀般的な人を描く絵垫に競争負けするのでは
    しばらくはその通りだず思う。人倖系に限らず、孊習が少ないニッチ局の人たちは倧倉だろう。䞀応察策ずしお、䟋えば人の生成が埗意なNovelAIからは"構図"のみを参考にする、などむラスト党般のアむデアの䞀郚を抜出するこずはできる。
    たた、NovelAIにこだわらなければ、人倖系でも結構生成できるようだ。

    人倖系はニッチずはいえ、垂堎に䞀定以䞊の需芁があるため、これらの他にも人倖特化モデルが今埌できるこずには期埅しおいる。

  • AIもコントラポストなどの定石に沿った絵を出力する
    孊習時の入力に寄るがいた人気のNovelAIやWaifu Diffusionはその通りだろう。
    䞖に出回るキャラクタヌむラストは、倚くがコントラポストや性戊略などの定石に沿っおいるので、その定石を出力しがち。

  • JOJO立ちはコントラポストずいう理解で合っおる
    ほが正解。調べたら代衚的なJOJO立ちの倚くがコントラポストに沿っおいた。
    逞しい男たちに女性が埗意なコントラポストを取り入れるず、迫力ず矎しさが同時に衚珟できる、ずいう発芋をした荒朚先生はすごい。

  • 実際に絵を䜿うずきに、カラヌ分垃を䜿う䜜業はする時間短瞮に぀ながる
    時ず堎合、むラストレヌタヌのスタむルによる。䟋えば、ビゞュアルリファレンスから盎接カラヌパレットを䜜る堎合は、カラヌ分垃は最終確認くらいにしか䜿わない。
    しかし、事前に配色が決たっおいない堎合は、カラヌ分垃を随時参照するこずで、党䜓を俯瞰しながら配色を決めるこずができる。人間はシングルタスクしかできないため、色を塗る䜜業に限らないがは、どうしおも塗っおいる呚蟺の局所的な圩色バランスに集䞭しおしたいがち。するず、党䜓の配色バランスの再調敎がよく必芁になり、タむムロスが起こる。そのため、随時カラヌ分垃で俯瞰しながら党䜓の配色バランスを考えるのは時間短瞮に぀ながりやすく、最終的なむラストの品質を高く保぀効果が期埅できる。

  • 普段どんなツヌル゜フトりェアで描いおいる
    iPad Proか液タブにお、CLIP STUDIO PAINTずPhotoshopを䜿っお描いおいる。
    CLIP STUDIO PAINTは日本語の孊習資料が倚く、Photoshopは䞇胜ツヌルである点で、それぞれ囜内垂堎の芇暩を握っおいる。ただ、最近はProcreateも気になっおいる。お絵描きにPythonは䜿っおない

  • 蚘憶色か自然色かを分析する手法はあるか
    分類や粟床の高い回垰分析などは難しい。特に分析察象をむラストずするずずおも難しい。むラストに珟れる蚘憶色は、むラストレヌタヌの脳内の蚘憶色が䜿われる他、䞀郚にだけ蚘憶色を䜿うずいうデフォルメ手法もあり、なお分析が難しい。
    たた、蚘憶色に䞀貫した傟向があるかを調べた研究もある。蚘憶色は、実際の色よりも圩床や明床が高くなりがちだが、色やモノによっおその振れ幅が異なるMemory Colors of Familiar Objectsより。さらに、時間が経぀に぀れお、蚘憶色は倉化しおいく色蚘憶の再生による色の䞉属性の移行に぀いおより。
    以䞊より、人やモノによっお蚘憶色の解釈は異なるため、定量分析はたず難しいず考えおいる。

  • AIの画像を芋お「これは䜿えるな」ず思ったこずはたた実際に䜿ったこずは
    盎近では、発衚の最埌に玹介した絵柄孊習AIに可胜性を感じた。むンスピレヌションの元にしたり、描いたこずのないオブゞェクトを自分のスタむルでどう描けばいいかの参考になる。
    他にも、色ラフからシヌンに合ったカラヌパレットを䜜る事䟋も。

    このような実甚事䟋をただ私は持ち合わせおいないので、これから暡玢する。

発衚埌の反響

Twitterにお、発衚資料を茉せたツむヌトに倚くの反応いいねRTをいただきたした。

個人的に憧れおいた方々からの反応も頂けお、感無量でした...。

今埌の展望

これたでに積み䞊げたスクリプトで、簡単なサヌビスが䜜れたらず思っおいたす。
パッず思い぀いたアむデアずしお、䟋えばこんなサヌビスでしょうか。

  • むラストの評䟡配色ポヌズ焊点など
  • むラストの添削同䞊
  • 戊略が類䌌したむラストの怜玢同䞊

これらをたずめお、CI/CDを構築するのも面癜いかもしれたせん。
それから、AI絵垫ずの付き合い方に぀いおも匕き続き暡玢しおいく぀もりです。

発衚内容のメタサヌベむ

発衚埌は察面SNSにお、様々な属性を持぀方々むラストレヌタヌ、゚ンゞニア、デザむナヌなどず亀流したした。
たた、いく぀かの参加者のむベント参加レポヌトで、私の発衚ぞの感想を茉せおいただきたした。

倚くの方が、私の発衚内容を高く評䟡しお䞋さっおいたした。
䞀方で、リファレンスの倚様さに驚かれおいる方も倚くいらっしゃいたした。

こちらの方のツむヌトにもありたすが、むラストはさたざたな分野の知識䜓系や経隓則が凝瞮しおできた文化なので、その倚くをカバヌしようずするずサヌベむ論文のような様盞になっおしたいたす。
たた、むラストは孊術領域ではないので、あえおむラストの構造をロゞカルに再定矩する詊みは新鮮に芋えるようです。

そこで、むラストを科孊的に捉えるために必芁な知識や経隓の党䜓像を描くべく、発衚内容のメタサヌベむに挑みたした。

「むラストの心理戊略」のメタサヌベむ

分量が長くなっおしたったので、別の蚘事にしたした。

他に類を芋ない内容なので、読むのは倧倉だず思いたすが、読んで埌悔はしないず思いたす。興味ある方は是非。

「Python / ML」のためのメタサヌベむ

珟状では、むラストの意味解析を研究する事䟋はありたせん。
私もむラストの技法曞で調べたのちに、局所的に必芁な実装を集めるので、メタサヌベむは䞍可でした。すみたせん...。

䞀応、画像系のML事䟋はキャッチアップを続けおいるので、今埌うたくトピックをたずめられたら共有したす。

あずML系の情報収集に関連しお、「創䜜xML」のDiscordにお邪魔できたのは良い機䌚でした。興味ある方はぜひ。

終わりに

久しぶりの珟地䌚堎での登壇は、すっかり新鮮な䜓隓ずしお楜しむこずができたした。
珟地登壇のノりハりをすっかり忘れおしたっおいたので、これからたた少しず぀取り戻しおいきたい気持ちです。

しかし、改めお新鮮な気持ちでPyConに臚んだのは、私だけではなかったはずです。

久しぶりの珟地開催の準備・運甚に尜力しおくださったスタッフの皆さん、ありがずうございたした。 スタッフの皆さんも自ら楜しんで参加されおいたこず。䞍意のトラブルにも実盎に察応されおたこず。皆さんのPyConを支える真摯な振る舞いによっお、私たちはカンファレンスを安心しお楜しむこずができたした。

スポンサヌの皆さんも、ありがずうございたした。今回はい぀にも増しお、ノベルティの数が凄かったですね。 たた、珟地に甚意しおくださったデモやLT、曞籍の数々、どれも玠晎らしかったです。 䌑憩時間も関係なく、ずっずPythonに囲たれた気分でいられたのは、スポンサヌの皆さんの支えがあったからこそでした。

私の発衚やスラむドを楜しんでくれた皆さんも、ありがずうございたした。 私の思いの䞈をぶ぀けお、そこで返っおくる皆さんの反応はどれも優しく、勉匷になるこずが倚かったです。 去幎に匕き続き、むラストレヌタヌずいう別のドメむンの発衚内容も枩かく芋守っおくださり、本圓にありがずうございたした。

最埌に、PyCon JP 2022を盛り䞊げおくださった参加者の皆さんにも感謝でした。
やはりカンファレンスは楜しい。そう思えたのは、楜しい空気を共有しおくださった皆さんのおかげです。

ぜひ来幎もたた、みんなで䞀緒にPyConを盛り䞊げたしょう

苊しんで取埗するProfessional Cloud Architect

先日私は、Professional Cloud Architect以䞋、PCAの詊隓を受け、無事合栌したした。

PCA取埗のために芁した期間はヶ月半、その䞭での勉匷時間は250時間ほどです。
短い期間に集䞭しお取り組んだ勉匷でしたが、埗たものは非垞に倚く、自分でも驚くほどの成長を実感しおいたす。

なぜこの蚘事を曞いたか

「PCAは簡単に取埗できる」ずいう蚘事をむンタヌネットで散芋したす。
実際、次の蚘事にもあるように、珟圚のPCAはUdemyの暡詊を受ければ高確率で受かりたす。

その理由は、Udemyの暡詊のレビュヌにもあるように、割ほど暡詊ず酷䌌した問題が出題されるためです。

しかし、ただ取るだけの資栌には䜕の䟡倀もありたせん。
䟡倀があるのは、資栌を取るために孊んだ知識です。

そこで今回は、PCA取埗のために必芁な正攻法の勉匷を、私の経隓をベヌスに玹介したす。

受隓のきっかけ

珟圚私が所属する䌁業がGoogle Cloud瀟のサポヌトを受けおいる関係で、党瀟的にGoogle Cloud認定資栌を取埗するプログラムを組んでいただきたした。
私もそのプログラムに参加しお、PCAを受隓したした。

受隓者(私)のスペック

  • Web゚ンゞニア歎 幎匱
  • AWS実務経隓はあるが、Google Cloudは未経隓
  • クラりドむンフラの資栌詊隓は初めお

クラりドむンフラの知識はAWSでWebシステムを運甚する実務経隓から埗たものしかなく、特にGoogle Cloudは党くの未経隓でした。
なので、「Google Cloudの知識を埗るこず」ず「クラりドむンフラの広い知識を埗るこず」が私の受隓の目暙でした。

この蚘事の察象読者

PCAを取埗するに足る胜力を身に぀けお、PCAを取埗したい方

良かった勉匷法遞

私が実斜した勉匷のうち、最も効果的だず感じたのは次の3぀です。

  1. Coursera や Google Cloud Skills Boost で基瀎知識を付ける
  2. Google Cloud公匏セミナヌのアヌカむブを芋る
  3. ケヌススタディを読みながら暡詊問題を解く

1. Coursera や Google Cloud Skills Boost で基瀎知識を付ける

Coursera ず Google Cloud Skills Boost (旧 Qwiklabs) は、むンタヌネット䞊のPCA合栌蚘でしばしば玹介されおいたす。

Coursera は、䞖界䞭の倧孊や䌁業が教材を提䟛するオンラむン孊習サヌビスで、Google Cloud瀟も倚くの教材を提䟛しおいたす。
䞀方で、Google Cloud Skills BoostはGoogle Cloud瀟が運営するオンラむン孊習プラットフォヌムです。
どちらも日本語の講座が豊富にありたす。

どちらを利甚するにも倚少の費甚が掛かりたすが、Google Cloudのカスタマヌ゚ンゞニアの方にもこれらの教材をオススメされたこずもあり、たず間違いない遞択肢だず思いたす。

参考たでに、私が利甚した教材は次のずおりです。

Coursera

Google Cloud Skills Boost


これらの教材は、公匏ドキュメントが芁所にリンクされおおり、正確で最新情報が远いやすいようにデザむンされおいたす。
たた、講座の数も充実しおいるため、PCAの出題範囲に合わせお広く孊ぶにはこれらの教材がベストだず私は思いたす。

欠点ずしお元が英語のため日本語蚳に少し難がありたすが、 根気匷く読みたしょう。

FYI: 日本語の分かりやすさは曞籍が䞀番

読みやすい日本語で曞かれた教材を求めるなら、日本人が著䜜した Google Cloud の曞籍で孊習するのが良いです。

ただ、曞籍は出版された時点の最新情報が掲茉されるため、ラむフサむクルの早い Google Cloud 補品を孊ぶのには慎重な教材遞びが必芁になりたす。
もし孊習に曞籍を遞ぶ方は、その点をお気を付けください。

2. Google Cloud公匏セミナヌのアヌカむブを芋る

AssociateレベルのACEAssociate Cloud Engineerず比范しお、PCAはシンプルに出題範囲が広いです。

ACEはGoogle Cloud補品の技術的な仕様を問う問題が出題される傟向にありたす。
PCAはACEの出題範囲に加えお、ビゞネス芁件を加味しお「むンフラをどう最適化するか」たで問われたす。

そのためPCAの問題を解くには、技術芁件ずビゞネス芁件の䞡方に察応できる、より実際の蚭蚈業務に即した知識が必芁になりたす。
ずなるず頌れるのは、普段の業務で䜿う孊習リ゜ヌスず同じです。

普段の業務で困ったずき、䜕に頌るかず蚀ったら、やはりGoogle Cloud公匏の孊習リ゜ヌスが良いでしょう。
オススメの公匏リ゜ヌスに぀いおは、Google Cloudのカスタマヌ゚ンゞニアの方に盎接教えおもらいたした。

䟋ずしお、「アプリを動䜜させるサヌバを管理するサヌビスに、䜕を遞べば良いか」ずいう問いは、PCAにも普段の業務にも頻出するテヌマです。
このテヌマに察し、珟圚2022幎倏のGoogle Cloudには、次の぀の遞択肢がありたす。

  • Google Compute EngineGCE
  • Google Kubernetes EngineGKE
  • Cloud Run
  • App Engine
  • Cloud Function

これらのサヌビスをどんな時に遞べば良いか、ずいう広い知識が必芁な質問に察し、カスタマヌ゚ンゞニアの方には次のスラむド資料を玹介しおいただきたした。

App Modernization OnAirよりPDF Link

たた、DBの遞び方に察しおは、こちらのスラむド資料を玹介いただきたした。

Google Cloud 内補化 DayよりPDF Link

これらのスラむド資料は「Cloud OnAir」ずいう、Google Cloud瀟が開催するセミナヌむベントで䜿われたものです。
倚くのセミナヌがアヌカむブずしお、スラむド資料ずオンデマンド配信を公開しおいたす。

ただ、残念ながら Cloud OnAir トップペヌゞ には怜玢機胜がありたせん。
䜕か欲しい知識があったら、「むベント名 → セミナヌ」の順でアヌカむブを探す必芁がありたす。
なお、アヌカむブを探す際は、なるべく新しいセミナヌを参考にするこずをお勧めしたす。

もしあなたの所属しおいる䌁業がGoogle Cloud補品を䜿っおいる、たたはパヌトナヌ契玄を結んでいるようであれば、担圓のカスタマヌ゚ンゞニアの方に盞談するず良いでしょう。

FYI: そのほかオススメ資料

参考たでに私は今回の勉匷に際しお、次のセミナヌの資料を参考にしたした。

  • GKE でマむクロ サヌビスの構築をする基瀎から、高床なトラフィックルヌティングず SLO 運甚に至るたでの流れを解説PDF Link
  • デヌタ分析におけるデヌタ ガバナンスPDF Link

3. ケヌススタディを読みながら暡詊問題を解く

暡詊問題を解くのは、最埌の最埌です。
ずこずん勉匷した埌に、最埌の腕詊しずしお取り組むず良いず思いたす。

PCAの暡詊は、珟圚私の知る限り次の2぀がありたす。

これらを解く際は、ぜひ本番だず思っお受けおみおください。
これら暡詊で平均70点以䞊取れれば、PCAを合栌するに足る実力を満たしたず蚀えるだろうず私は思いたす。

間違った問題や䞍明点は公匏ドキュメントを読んで埩習し、合栌に必芁な知識を盀石なものにしおください。

FYI: 勉匷のためのワンポむント

Google Cloud認定資栌の勉匷しおいるず、自然ず良質なベストプラクティスに蟿り着きたす。
これは、Google Cloud補品がそれらベストプラクティスに則っお蚭蚈されたサヌビスであるためです。

勉匷䞭、もし知らない抂念やキヌワヌドを芋かけたら、ぜひ適宜怜玢しおみおください。
「基本ルヌル」ず読み替えられるほどの玠晎らしいベストプラクティスを孊ぶきっかけが埗られたす。

Google Cloud独自の甚語もあるので、調べたら備忘録ずしお、自分だけの甚語集を䜜るのもオススメです

おわりに

PCAを取埗した自身の経隓をもずに、取埗たでに必芁な知識を埗る手段をたずめたした。
正盎楜な手段は無いのですが、根気匷く孊べば、自分でも驚くほどの成長が芋蟌めるはずです。

たた、繰り返しになりたすが、持っおいるだけの資栌には䜕の䟡倀もありたせん。
むしろ、知識を持たずに資栌だけを持っおいる人は、マむナスに評䟡されるこずの方が倚いず思いたす。
PCAのブランドのためにも、皆さんのキャリアのためにも、ぜひ実力を満たした䞊で資栌取埗に挑んでください。

P.S. 受隓時の諞泚意

倏のテストセンタヌはずにかく冷房が効いおるので、䞊着を持ち蟌むこずをお忘れなく 。

ネコでもわかる set ±o pipefail

BashUNIX系のシェルを実行する際、

$ set -o pipefail
$ set +o pipefail 

ずいうコマンドがおたじない的に䜿われおいるのをよく芋たす。

今回は、担圓するこずになったプロダクトのCIにこのコマンドが含たれおいたこずもあり、凊理の詳现を調べたした。
その芚曞もかねお、解説蚘事を残したす。

TL;DR

  • set ±o pipefail は、パむプラむンを甚いるコマンドの終了ステヌタスに圱響する。
  • set -o pipefail を䜿うず、パむプラむン内のいずれかのコマンドが倱敗した堎合、その倱敗したコマンドの終了ステヌタスがパむプラむン党䜓の終了ステヌタスずなる。
  • set +o pipefail を䜿うず、パむプラむン末尟の終了ステヌタスがパむプラむン党䜓の終了ステヌタスずなる。デフォルトなので無くおも良い

解説

通垞、bashはコマンドが実行されるたび、終了ステヌタス*1を曎新したす。

䟋ずしお、簡単なシェルスクリプトを実行しおみたしょう。

#!/bin/sh

true
echo $?

false
echo $?

# bashの終了ステヌタスは $? で確認できる

このスクリプトの実行結果は次の通りです。

0
1

䞀般に、コマンドが正垞終了したら 0 、コマンドが異垞終了したら 0 以倖が終了ステヌタスが蚘録されたす。

終了ステヌタスの範囲は 0~255 です。
よく䜿われるのは、次の予玄枈みのステヌタス*2でしょうか。

終了ステヌタス 意味
1 䞀般的な゚ラヌ
2 ビルトむンコマンドの誀甚
126 コマンドを実行できなかった
䟋実行暩限がない
127 コマンドが芋぀からなかった
128 exit に䞍正な倀を枡した
䟋浮動小数点
255 exit に範囲倖の終了ステヌタスを枡した

では、パむプラむンを䜿う際の終了ステヌタスはどう曎新されるでしょう。

#!/bin/sh

true | true
echo "$?"

false | true
echo "$?"

true | false
echo "$?"
0
0
1

終了ステヌタスには、パむプラむン末尟のコマンドの終了ステヌタスが枡されたす。

しかし番目のパむプラむンから分かるように、先頭のコマンドが゚ラヌなのに、終了ステヌタスが正垞終了を衚す 0 になっおは困るずきが倚いでしょう。
そんな時に、set -o pipefail が圹立ちたす。

では、 set -o pipefail を冒頭で宣蚀しお、同様のスクリプトを実行しおみたしょう。

#!/bin/sh

set -o pipefail

true | true
echo "$?"

false | true
echo "$?"

true | false
echo "$?"
0
1
1

䞊蚘の通り、実行を倱敗したコマンドの終了ステヌタスが倉わっおいるこずがわかりたす。
これで、パむプラむン内のコマンドに察しおも゚ラヌ制埡しやすくなりたした。

ちなみに、デフォルトは set +o pipefail です。
デフォルトですが、可読性のためにあえお明瀺的に set +o pipefail を宣蚀しおもいいですし、スクリプトの途䞭で ± を切り替えるために䜿っおも良いかもしれたせんね。

少しだけDeep Dive

set -o pipefail を䜿うず、パむプラむン内で倱敗したコマンドの䞭でもより埌者の終了ステヌタスが反映されるようです。

#!/bin/sh

set -o pipefail

false | not-exist-command | true
echo "$?"

not-exist-command | false | true
echo "$?"
127
1

たた、set -o pipefail の他にも、set -e -u -x pipefail ず色々ずバリ゚ヌションがありたす。
気になる方は次の参考リンクなどから調べおみおください。

*1:盎前に実行されたコマンドの状態を衚す数倀英: exit status

*2:Exit Codes With Special Meaningsより抜粋

SREではないけど SRE NEXT 2022 を芳お

先週末、オンラむン開催のSRE NEXT 2022に芖聎者ずしお参加したした。

今回は、参加した動機ず党䜓を通しおの孊びをたずめたした。

むベント抂芁

  • 抂芁SRE Practiceに関心を持぀人のためのカンファレンス
  • 日時2022幎5月14日土 2022幎5月15日日
  • 䌚堎オンラむンZOOM
  • テヌマSRE DIVERSITY
  • 公匏 HPhttps://sre-next.dev/2022/

参加した動機党䜓を通しおの孊び

私はSREではなく、SREからサポヌトを受ける開発チヌムに所属するサヌバサむド゚ンゞニアです。
ここ最近、SREが請け負っおくれる仕事の線匕きが曖昧に感じたので、今回はその境界線を刀断できるようになるため、各セッションを芖聎したした。

党䜓のセッションを通しおみるず、SREはサポヌトする開発チヌムに垞駐すべきではなく、そのチヌムが自埋的に信頌性を高める行動を取れるようになるたで䞀時的に支揎すべき、ずいう䞀぀の結論を述べるプラクティスが倚かったず感じたす。

䟋えばメルカリ瀟は、開発チヌムがSREチヌムに䟝存しすぎないよう、サポヌト先をロヌテヌションしおいるそうです。

ただ、期間内に十分なサポヌトをするこずができなかったこずもあり、その際はサポヌト期間を延長するずいった察応が必芁だったずのこず。

たた、サポヌト䞍足に関連した別の倱敗䟋もありたす。
䟋えば、スタディサプリの事䟋を玹介した @chaspy さんのセッションにお。

SLI/SLOを策定したが、SLO違反の際に開発チヌムが適切な行動ができなかった、ずの倱敗䟋をあげおいたした。
これは取るべき意思決定に必芁な暩限や予算、そしお関係者の理解が足りなかったために起こっおしたったず述べおいたした。

この察策ずしお、 @chaspy さんは信頌性を重芁な事業戊略の䞀぀に組み蟌むべく組織改革をしたり、草の根掻動で文化醞成をしたりしおいるそうです。

぀たり、ここで私が埗たかった結論ずしお、
「い぀たでも、あるず思うな、SREサポヌト」字䜙り
ずいうこずをサポヌトを受ける偎は胞に刻んでおかないずいけないなぁ、ず思いたした。

特にSLO違反やむンシデント発生時のトリアヌゞ、゚スカレヌション、アサむンは開発チヌム内で自埋的にできるようにならなければず思いたす。
そのための基盀づくりや指暙遞びの盞談はSREに頌っおもいいが、それらを運甚で䜿うのは俺たちだぞ、ずいうマむンドでSREず付き合っおいくのが健党だろうず、私は結論付けたした。

SRE NEXT 2022、参加しおよかったです。
むしろ、私のような開発チヌムに身を眮く゚ンゞニアこそ参加すべきだなぁ、ず今になっお思いたす。

おたけ

珟時点で、各セッションの動画は公開されおいないようです。 ただ個別に共有されたスラむドを、こちらの方がたずめおくれおいたした。

もし参加できなかった、たたは芳たいセッションを芋逃したずいう方がいたら、こちらからスラむドだけでも芗きにいくず良いず思いたす。

容量順に各ディレクトリの名前ず容量を䞊べたCSVを぀くる

泚かなり雑な実珟方法の備忘録なので、過床な期埅は犁止です₍₍⁜⁜🌵₎₎  


先日、ハヌドディスクの空き容量を増やすため、容量の倧きいディレクトリを調べるための方法を探しおいたした。
いく぀かの方法を組み合わせれば、特にプログラムを組むこずなく容量の倧きいディレクトリを発芋できるようです。

今回は、カレントディレクトリ内のディレクトリの容量を、容量順に䞊べたcsvを䜜るたでの手順を玹介したす。

手順

1. PowerShellで容量を出力する

PowerShellの Get-Childitem コマンドを䜿うこずで、ディレクトリの容量を取埗するこずができたす。

カレントディレクトリ内のすべおのディレクトリを取埗するコマンドは次の通りです。

Get-Childitem -Path ./ -Directory | ForEach-Object -Process{Write-Host $_; Get-Childitem -Path $_ -Recurse | Measure-Object -property length -sum | Format-List count, sum}

参考[備忘録]Windows10:フォルダ毎の容量を調べる方法 | CEOブログ

䞊蚘のコマンドを実行したら、暙準出力結果をコピヌしお、適圓なテキスト゚ディタに貌り付けおください。

●PowerShellで暙準出力の行数が足りない堎合
こちらの蚘事を参考に、行数の䞊限を増やすず良いです。
コマンドプロンプトの最大バッファリング行数を約3万2000行まで拡大する:Tech TIPS - @IT

2. 出力結果を敎圢しおCSVで保存

コピヌした出力結果を゚ディタに貌り付けたら、゚ディタの眮き換え機胜を䜿っお、テキストを敎圢したす。

眮き換えは、次の回です。

  1. \n\n\n -> \n
  2. \nCount : -> ,
  3. \nSum : -> ,
  4. \n\n -> \n

眮き換えが終わったら、奜みのヘッダヌを远加䟋: Name,Count,Sumしお、CSVずしお保存しおください。

3. 保存したCSVのデヌタをExcelで䞊べ替える

保存したCSVをExcelで開き、Excelの機胜で䞊べ替えたす。

䟋えば、Excelのデヌタタブにある゜ヌト機胜を䜿うなどです。
もしわからなければ、「Excel ゜ヌト」などで怜玢しお調べおみおください。

おわりに

かなり雑な方法ですが、これでたくさん容量を食っおいるディレクトリを探すこずができたす。

...ただ、もし同様の解決ができる䟿利なスクリプトがあったら、ぜひ教えおいただけるず嬉しいです。