組織内でのAWS運用について思ったこと
Updated Date: 2024/01/01 02:55
最近Middlemanの記事書くとき、英語名を記事名(URL)に付けないといけないのが苦痛になってきた。 記事タイトルは日本語なのでその辺うまくなりたいと切に思う。
さて、2016年初の記事は、SIerとして今まで9年くらいやってきて、
ようやく8年目だか9年目でAWSを業務利用することになったという話である。
業務利用と言ってるけど実際はまだ運用しているわけじゃなくて、
今まで運用はその手のチームに任せていたこともあり、
インフラやAWSの使い方を知ってる人が手探り状態で業務適用を模索してる感じである。
えっ、今頃になってようやくAWS?とか思う意識高い系、
もしくはWeb業界および中小ベンチャー企業の先進技術者諸氏は多いだろうが、
これが通常の地方SIerのスピード感であることをここに言及しておく。
SIってのはお客のシステム化の話を受けて、
それをIT技術……とは言い難い何かを以てハンドメイドでシステム構築もしくは
業務改革を進めていくのがメインの仕事である。
もちろんそこにクラウドサービスだとか他社製品の導入だとか、
むしろシステム化範囲の狭小化の後、運用でカバーするとかいうコンサルもソリューションとして
実施することもある。
でも大抵は受託開発として、ハード・インフラ・アプリを総合的にシステム提案することが、
SIの醍醐味であり代名詞である。と、大手SIerの仕事っぷりを見てきた僕は思ってる。
だから、社内的にクラウド環境だとかSaaSやIaasなどのインフラの外部プラットフォームを使おうという
選択肢はあまり出てこない。まあ、身バレを恐れずに言うとこれは僕の会社の親会社の親会社が、
ハード事業やってるからという事情もあるんだろう。
前置きが長くなってしまったが、AWSの話に戻る。
AWSの運用で一番困るのがSSH接続だ。
それなりに検証環境とか本番環境とか乱立させちゃってるけど、
僕らはそれらすべてを1つの秘密鍵でやりくりしている。
はっきりってヤバい。
僕らの会社もSIerのご多分に漏れず派遣会社や請負会社を利用しているんだけど、
その社員さんらにもどうぞと平気で秘密鍵をくれてやるのが運用らしい。
個人的には自分らのクラウドシステム・サービスを派遣社員・請負社員の技術で構築・作成し、
社員はSEとして管理・設計だけやってるという現状ですら厭である。
それに加えシステムのスーパーバイザー的権限を派遣・請負社員にまで渡してるんだぜぇ?
ワイルドだろぉ? なわけだけど、そういう認識は、SEにはどうも生まれないらしい。
で、無駄に意識高い僕はその辺どうかと思ったので、
(声には出さず)便利系AWS管理ツールを作っちゃろうかと画策したわけである。
実際に自分で作ろうと思ったけど、通常業務が忙しくて回らないという言い訳をしつつ先延ばしにしてた。
そしたら僕より数倍生産性の良いSEには稀有な存在であるスーパープログラマーの同僚がサクっと作ってくれたので、
そいつを利用することにした。
こいつはRailsでできていて、内部ではevalを使った危険コードの実行や、
Sidekiq+ActiveJobを用いたバッチ実行が可能となっている。。。はず。
要するに直接AWSにつなげなくとも、管理対象のEC2なりRDSを管理者メニューから追加すれば、
あとは開発者ユーザが対象のサーバを選択し、好きなコマンドを投げることができる的な感じである。
ここで、何でもかんでもコマンドを投げられるのも困るので、
必要なコマンドは管理者が絞ってもいいし、
モデル化してバリデーションでひっかけるとか運用カバーでもいいと思ってる。
(例えば rm コマンドは使えなくするとか、管理ツールの実行ユーザはsudo権限が無いとか)
様々な契約・制約のあるSIerの現場におけるAWSの運用でとにかく重要なのは、
誰でも、好きなように、好きな時に何でもできるという状況を制限することである。
AWSを銀行系基幹システム開発環境に置き換えたら、もう少し危機感というか認識容易性は増すのかな?
Dockerの例でも考えてみる。
DockerコンテナにSSHで好き勝手に入れるようにすることが、
運用上良いことではないというのは、
Dockerのそもそもの概念を理解している人であればわかると思う。
(参考: Dockerコンテナ内でsshdを実行してはいけない理由 - POSTD -)
同じようにAWSでクラウドサービスやるなら運用方針としてその辺固めなきゃだめだと思う。
以上が組織としてのAWS運用について僕の思ったことである。 組織というよりSIerという立場上の話になってしまったのは、 僕が地方SIerであり、見聞が広くないということでもあるので、 その辺は大目に見てほしい。というか逆にどうすればいいか教えてほしい。