
2025.02.12
職員一人あたり52時間の残業削減に成功 kintone導入がもたらした富士吉田市の自治体DX“変革”ハウツー
リンクをコピー
記事をブックマーク
菊池宣明氏(以下、菊池):菊池宣明と申します。本日はよろしくお願いします。はじめに、簡単に自己紹介をさせてください。最近私は主にSRE関係の仕事を担当しています。2022年から「ハッカー飯」の開発者メンバーとしてジョインしました。経歴を簡単に述べると、科学系の大学院を卒業して、その後とあるCIerの会社に新卒で入社しました。
ここでは主にAWSについて業務でたくさん取り組み、そこでしばらく修行を積んだ後に、2021年の夏ごろ退職をして独立をして、今はいわゆるフリーランスエンジニアとして活動をしています。エンジニア歴としては、2022年でちょうど5年目になります。
最近の趣味はゲーム。「スマブラ」「Fortnite」が好きです。好きなAWSのサービスは「AWSサポート」です。AWSサポートのみなさん、いつも本当にありがとうございます。
自己紹介はこれぐらいにしておいて、さっそく本題に入りたいと思います。まずハッカー飯の紹介からさせてください。
ハッカー飯というプラットフォームは、技術や知識でアイデアをかたちにする人々、僕らは“ハッカー”と呼んでいますが、このハッカーがご飯を囲むような気軽さで語り合い、教え合い、つながれるオンラインプラットフォームとなっています。
もう少し概要について説明すると、ハッカー飯は、株式会社スタークロスの西田が作ったサービスとなっています。ハッカー飯の特徴としては、話したいことをもとに、エンジニアと1 on 1マッチングできる機能、エンジニア複数人と簡易的なイベントを行う食事会機能、そして興味のあることをもとに集まるコミュニティ機能が存在しています。
サービス開発の背景としては、「いわゆるエンジニア同士で気軽に、ハッカー同士で気軽に話せる環境があまりないよね」といったところがあり、そこを解決するためにハッカー飯というサービスを開発しました。
(スライドを示して)ハッカー飯にログインするとこういう画面になっていて、それぞれユーザーが話したいことリストみたいなことをカード形式で登録しています。
ここでは技術的な話や趣味的な話とかも行われていて、それぞれが「気になるボタン」を押すことによって、「この人はどんな話が気になっているのか」がわかり、気になるボタンを押してくれた人とマッチングして、メッセージを交換して話したり仲よくなったりするサービスとなっています。
(スライドを示して)食事会機能は、いわゆるエンジニアの勉強会なども企画されていたり、ただワインを飲む会というような、いわゆるリアルの飲み会、食事会も開催されていたりもします。
最近、ルーム機能も作成しました。こちらはハッカー飯上で「ルームを作成」というボタンを押すと画面が出て、入室することによってユーザー同士で気軽にカジュアルにお話しできる機能となっています。これによって、ユーザー同士がよりコミュニケーションがしやすくなるのかなと考えています。
そんなハッカー飯の運営メンバーですが、メンバー全員がそれぞれ本業がある中、副業でハッカー飯に携わっています。
開発スタイルですが、それぞれ副業で行っているので、毎週土曜日にDiscordのボイスチャンネルに入室して、各々開発を進めていく。そんなスタイルでやっています。
1時間開発して10分間休憩、みんなスマブラが好きなので、休憩時間中にスマブラをする。そんなサイクルでやっています。その日の夜には定例を行って、それぞれのタスクの確認や今後の方針について話し合いを行います。
収益化に関してですが、現状実はまだ収益化ができていなくて、コストをできるだけ抑えた構成となっています。今後、法人版のハッカー飯を作って、企業の中のエンジニアと気軽につながれるようなシステムを構築する予定です。ここまでがハッカー飯の紹介です。
ここからが今回のテーマでもあるセキュリティ・モニタリングについて、ハッカー飯で取り組んだことをお話しします。まずは、セキュリティについてお話しします。
セキュリティの話に入る前に、ハッカー飯のインフラの構成について簡単に紹介します。本当にすごくシンプルな構成ですが、「Route 53」があって、「CloudFront」「S3」「Lightsail」、こういったサービスを使っています。
この中でLightsailと呼ばれるサービスは、もしかするとあまり聞き慣れないサービスかもしれないので、ここで少し説明させてください。
(スライドを示して)こちらがLightsailの公式ページに載っているスクリーンショットです。「Amazon Lightsail」というのは、ここにも書いてあるとおり、低価格の事前設定されたクラウドリソースを使用して、アプリケーションとWebサイトを構築できるサービスとなっています。
ポイントとしては、数回クリックするだけでWebサイトやアプリケーションを作成でき、費用対効果の高い月額料金で使用できる。これが主なLightsailのポイントです。
なぜハッカー飯の初期の構成でLightsailを選定したかというと、一番の理由としては、コスト管理が行いやすいからです。低額で使用できるため、コストの予算が立てやすいというメリットがありました。
また、3.5ドルのプランというのがあり、これを使用するとEC2を起動するよりも安く使うことができる。そういったメリットもあったのでLightsailを選定しました。
2つ目の理由としては、環境の構築を素早くできるからです。Lightsailでインフラ環境を構築する場合、先ほどのプランを選んでプラットフォームを選択して、必要なものを選択する。これぐらいのクリック(だけ)でインフラの環境が構築できるものとなっています。
いわゆるVPC(Virtual Private Cloud)やサブネット、インターネットゲートウェイすら作成する必要がない。すべて、いわゆる隠蔽化されている状態で作成されるので、そういったところをあまり意識しなくても誰でも構築できるのは、当時の開発メンバーにとって都合がいいものでした。
3番目の理由としては、EC2への移行も可能ということです。やはりEC2に比べるとLightsailはある程度制約、制限があって、EC2に移行したくなるタイミングがあると思います。そういった時にもLightsail上でスナップショットを取得することで、簡単にEC2へエクスポートが行えます。(スライドを示して)この「Export to Amazon EC2」というボタンを押すことで、EC2にエクスポートが可能となります。
そんなLightsailですが、運用していて困ったことがちょっとあって。まずはLightsailにIAMロールが使用できないことです。
EC2であれば必要な権限を付与してIAMロールを作成してアタッチすると思いますが、そういったことができないというのが問題としてありました。なので、いわゆるアンチパターンと呼ばれるものだと思いますが、IAMユーザーを作成してアクセスキーをインスタンス内部に格納する必要があります。
2点目としては、スケールアップが簡単にできないといったことがあります。EC2のようにインスタンスを停止して、インスタンスタイプを変更して、スケールアップして起動ということが、Lightsailでは行えません。
Lightsailの場合、スケールアップするにはスナップショットから作り直す必要があるので、今後、サービスが広く認知されてアクセス数が増えた際には、ちょっと困りそうだなと考えていました。
僕がジョインした後に発覚したんですが、そもそもアクセスキー・シークレットキーがプログラムの中にハードコーディングされていて、誰でも閲覧できる状態になっていました。これは外に漏洩した際にけっこうなセキュリティ上のリスクがあると判断して、最初にアクセスキーを廃止する取り組みを行いました。
方法はほかにもあるかもしれませんが、ハッカー飯ではこれを機にLightsailからEC2へ移行してIAMロールを使用することにしました。
移行の流れとしては本当にシンプルで、LightsailをEC2へエクスポートして、適切な権限に絞ったIAMロールをEC2にアタッチします。アクセスキーには有効化・無効化を切り替えるボタンがあり、まずアクセスキーを無効化にしてテストを実施した後、問題ないことを確認してからアクセスキーを削除する方法で行いました。
これによって、アクセスキーを最初に無効化にしてからテストを実施したほうが、なにか問題があった時にも切り戻しが楽かなと思ったので、こういった手順を踏んでいます。
本来であれば、ここで移行の苦労話とかをしようかなと思っていましたが、特につまずくこともなくすんなりと移行できてしまったので、逆に言うとそれぐらい簡単にシンプルに移行できるサービスなんだとあらためて認識することができました。
実はセキュリティ上のリスクが実はこれだけではなくて、そもそもAWSコンソールへのログインなども、これまでRootユーザーが使われていたということが発覚しました。これもやはり、ふだんの作業でRootユーザーを使うケースはほとんどないと思うので、これもアクセスキーを廃止したタイミングで管理を見直そうと考えました。
そこでハッカー飯では、簡単にセットアップできてユーザー管理を効率化できる「AWS Single Sign-On」を採用しました。
(スライドを示して)こちらを使うとこのような画面が表示されて、このようなポータルページが表示されて、必要な権限が表示されます。「Management console」というボタンを押すとAWSアカウントにログインでき、アクセスキー・シークレットキーの一時的なクレデンシャル情報を出力することも可能となっています。
Single Sign-Onについてもう少し詳しく説明すると、「AWS SSO」と略されたりすることが多いのかなと思いますが、こちらを使用することによって、ユーザー・グループの管理および認証を行えます。
先ほど紹介したようなポータルサイトにログイン後、所属しているグループに付与されている権限のみ使用を制限できます。
(スライドを示して)このように、例えばグループを2つ作って、それぞれにユーザーを所属させて、片方のグループには2つの権限、もう片方のグループには1つの権限のみとこともできて、今後開発メンバーが増えた時にもこういった構成のほうが管理が楽かなと考えたので、AWS SSOを採用することにしました。
以上がハッカー飯のセキュリティに関するお話でした。
(次回に続く)
関連タグ:
2025.02.13
“最近の新人は報連相をしない”という、管理職の他責思考 部下に対する「NG指示」から見る、認識のズレを防ぐコツ
2025.02.06
すかいらーく創業者が、社長を辞めて75歳で再起業したわけ “あえて長居させるコーヒー店”の経営に込めるこだわり
2025.02.13
AIを使いこなせない人が直面する本当の課題 元マッキンゼー・赤羽雄二氏が“英語の情報”を追い続ける理由
2025.02.12
マネージャーは「プレイング3割」が適切 チームの業績を上げるためのマネジメントと業務の比率
2025.02.12
何度言っても変わらない人への指示のポイント 相手が主体的に動き出す“お願い”の仕方
2025.02.13
「みんなで決めたから」を言い訳にして仲良しクラブで終わる組織 インパクトも多様性も両立させるソース原理
2025.01.07
1月から始めたい「日記」を書く習慣 ビジネスパーソンにおすすめな3つの理由
2025.02.10
32歳で「すかいらーく」を創業、75歳で「高倉町珈琲」で再起業 「失敗したからすかいらーくができた」横川竟氏流の経営哲学
2025.02.14
報連相ができない部下に対するコミュニケーションの取り方 「部下が悪い」で終わらせない、管理職のスキル向上のポイント
2025.02.10
A4用紙を持ち歩いて殴り書きでアウトプット コクヨのワークスタイルコンサルタントが語る、2種類のメモ術
着想から2か月でローンチ!爆速で新規事業を立ち上げる方法
2025.01.21 - 2025.01.21
新人の報連相スキルはマネージメントで引きあげろ!~管理職の「他責思考」を排除~
2025.01.29 - 2025.01.29
【手放すTALK LIVE#45】人と組織のポテンシャルが継承されるソース原理 ~人と組織のポテンシャルが花開く「ソース原理」とは~
2024.12.09 - 2024.12.09
『これで採用はうまくいく』著者が語る、今こそ採用担当に届けたい「口説く」力のすべて
2024.11.29 - 2024.11.29
【著者来館】『成果を上げるプレイングマネジャーは「これ」をやらない』出版記念イベント!
2025.01.10 - 2025.01.10