TECH PLAY

Linux

イベント

マガジン

技術ブログ

TechHarmonyエンジニアブログでは、 AWS・Oracle Cloud・Azure・Google Cloud 各分野の受賞者 にフォーカスし、インタビューを通してこれまでの経歴や他の受賞者に聞いてみたいことをつないでいく「 リレーインタビュー 」をお届けしています。 第7弾は、「2025 Japan AWS Ambassadors」 を受賞された広野 祐司(ひろの ゆうじ)さん。 Japan AWS Top Engineers は、特定の AWS 認定資格を持ち、AWS ビジネス拡大につながる技術力を発揮した活動を行っている方、または技術力を発揮した重要な活動や成果がある方が選出されるプログラムです。 日々どのようにAWSと向き合い、どんな経験を積み重ねてきたのか。 そして、受賞に至るまでの背景には、どのようなキャリアストーリーがあったのでしょうか。 本インタビューでは、広野さんのこれまでの経歴やAWSへの向き合い方、さらに「次の受賞者へ聞いてみたいこと」まで、じっくりとお話を伺いました。 プロフィール 2025 Japan AWS Ambassadors 所属:クラウド事業本部クラウドサービス第二部 氏名:広野 祐司   【自己紹介】 社内クラウド人材育成や、お客様向け内製化支援をしています。 AWS サーバーレスサービスと React を使用した当社独自教育アプリ開発とそのコンテンツ作成をしており、その過程で得た AWS 技術情報をさらにコンテンツに追加したり、お客様案件に活用したりするサイクルを回しています。 本編 AWSエンジニアになった背景を教えてください。 12年間のグループ会社出向から帰任することが決まったときにちょうど 当社 社員向けAWS教育を強化する会社方針が打ち出され、その 教育担当としてアサインされたこと がきっかけ です。 AWS未経験の教育担当という負い目を感じていたので、当初は必死でAWS資格取得を頑張りました。そのうち研修講師をすることが非効率だと感じるようになって e-Learningツール を開発したり、マネジメント層への研修成果報告に労力がかかっていたので 社員の受講状況・資格取得状況を可視化するツール を開発したり、と 自分のAWSの勉強も兼ねてアプリ開発をしていたら、それが得意分野になってしまいました。 今ではその経験からお客様にアドバイスする立場になっています。ようやくAWS教育ができるようになった、と胸を張って言えるようになったかな、とこれを書きながら改めて思いました。 エンジニアとして大切にしている価値観や信条はありますか? 自分が手を動かして、 つくりたいものを自由につくれるエンジニアでありたい と 考えています。 自分が手を動かしているからこそ得られる洞察があり、他人へのアドバイスも現実的、実践的なものにできる と考えています。その代わり、広範囲をカバーすることができないデメリットはありますが、そこは割り切っています。 私は 「高くてうまいは当たり前、早くて安くてうまいを追求したい」 という考えを常に持っています。IT文脈において「うまい」を「品質が高い」という意味に置き換えると、それを前提に ITで何か目的を達成したいと考えたとき、クラウドの利用が不可欠で、かつマネージドサービス、サーバーレスアーキテクチャを優先的に採用して設計することが必然になります。 元々私がハードウェアが好きではなかったというのもあり、低レイヤーの技術から解放してくれる、ソフトウェアとしてITシステムを構築できるクラウドは私に合っていましたね。 この度は受賞おめでとうございます! 受賞に至るまで特に重点を置いて取り組んできたこと・乗り越えたチャレンジを教えてください。 AWS領域で既に社内で先人達が活躍している中で、 自分が早期に勝負できる技術領域はどこになるのか 、 をまず考えました。 先人達と比べると数年のディスアドバンテージがあったので、 当時まだあまり使われていなかったサーバーレスであれば先駆者になれると思い、VPC、EC2、コンテナはすっ飛ばしてサーバーレス技術習得にチャレンジ しました。 結果的にその選択は良かったと思っていて、サーバーレス領域においてはすぐに社内から相談をもらえる存在になることができました。 受賞がご自身のキャリアやチームに与えた影響はありますか? 私自身の プレゼンスが向上した と感じました。AWSが社内外で受賞者を称賛したことで知名度が上がり、登壇依頼が増えたことで実感しました。 社外の受賞者と会話したことで、自分の強み、弱みを知ることもでき、強みに関しては負けていない、と自信を持つこともできました。 言葉は悪いですがAWS未経験から数年での成り上がり人生は、笑い話にして毎年当社新入社員研修で講演させてもらっています。ただし、それまでのAWS以外のIT業務経験が大きな下支えになっていることは間違いなく、 これまでやってきたことは1つも無駄になっていない ことを新入社員に伝えています。そういう気持ちでこれからの長い社会人人生に取り組んで欲しいという思いです。 今後、個人として、挑戦してみたい新しい技術・分野や、目指している目標について教えてください。 私は 身に着けた技術力はどんどん捨てていくもの だと考えています。ITは特にそうだと思うのですが、日々新しい技術が開発されるので、古い技術に固執していては時代に取り残されてしまいます。過去の知識、経験は今の自分を育てるために必要だったと強く思いますし、必要あれば引き出しから取り出しますが、 他の新しい技術領域に鞍替えすることに迷いはない です。 今は サーバーレスとAI領域でまだまだやることがある と考えていますが、これは面白いな、と思ったことがあればまた転身すると思います。変な話、面白い、と思えることが私が挑戦する動機なのかもしれません。 私は野心家ではないので、何か大きなことを成し遂げたい!という野望はなく、 将来は個人で開発したスマホアプリで一儲けしたい な、 ぐらいのことを考えています。 前回のリレーインタビューでの安彦 洋樹さんから 広野さんへのご質問です。ご回答をお願いいたします 広野さんはAmbassadorとして、これまで主にクラウドネイティブ、DevOps、モダンWebアプリケーション開発等の第一人者として技術者育成に尽力されてきたかと思います。しかし近年AIの台頭により本領域についても変革期を迎えていると感じているのですが、広野さんはこの状況に対し、 今後はどのような取り組みを構想されていますでしょうか。 これまで提供してきたトレーニングで身に着けていただいたことは、既にAIが人に代わってできるようになってきています。そのため、例えば既存の実践トレーニングを開催するにしても、 AIを活用してトレーニングの目的を達成する方向に変えています。 また、AI-DLCに代表される、開発におけるAI活用では Git, IaC, CI/CD の相性が良く、それらがますます求められていると感じています。改めて、 その技術領域の教育もセットでAIを活用できる人材の育成 を考えたいです。 次のインタビューは AWS Top Engineers の「貝塚 広行」さんです!貝塚さんにお聞きしたいことはありますか? 貝塚さんは長年ネットワークやLinux領域に従事された後、クラウド領域に活躍の幅を広げられたと思います。貝塚さんご自身はクラウドがない時代からIT業界にいたわけなので、その順で学習されてきたことは自明なのですが、今、 IT技術の学習をクラウドから始めた若手がネットワークなどの基盤技術を学習しようと思ったら、どうしたらよいと思いますか? 広野 祐司さん、ありがとうございました! 最後に、読者の方へメッセージをお願いいたします! 人間って、好きなことでないと続かないな、とすごく感じています。多くの人にとって、仕事を通して自分の技術力を大きく向上させられることは稀で、基本的にはプライベートな時間に勉強していくしかないと考えています。それが仕事で自分の立ち位置を確立することにつながります。でもそれって、好きでないとできないな、と。自分が何を好きなのか、何であれば頑張れるのか、を見つけることは今後のキャリアに大きく影響するので、そういうことも意識して仕事に取り組んでもらえたらと思います。     次回インタビューは、2025 Japan AWS Ambassadors を受賞された 貝塚 広行(かいづか ひろゆき) さんです。 次回の記事もお楽しみにお待ちください!
サイオステクノロジーのひろです。 今回はpython環境の依存関係を管理するrequirements.txtとconstraints.txtについて学んだのでブログにまとめてみます。 こんな方におすすめ requirements.txtでパッケージ管理を行っている方 pipによるパッケージの依存関係の仕組みを理解したい方 事前準備 本記事では、実際に手元の環境にパッケージをインストールして動作を確認していきます。 システム全体のPython環境を汚すことなく、クリーンな環境でインストール内容の確認等を行うために、 venv を使用して仮想環境の中でコマンドを打っています。 # 仮想環境の作成 python -m venv .venv # 仮想環境の有効化 (Linux/macOS) source .venv/bin/activate # 仮想環境の有効化 (Windows) .venv\Scripts\activate requirements.txtとは何か requirements.txtはpipによってインストールされるパッケージのリストを記述したファイルです。 必ずしもこの名前である必要はなく他の名前であっても動作しますが、慣例としてrequirements.txtという名前が一般的に使用されます。 例えば、以下のように記述されたrequirements.txtがあるとします。 pandas==3.0.1 pip install -r requirements.txtというコマンドを使用して、パッケージをインストールすると、pandasの3.0.1がインストールされます。 実際にインストールして、何がインストールされているのか確認してみます。 pip install -r requirements.txt 上記のコマンドで仮想環境へ実際にインストールしてみました。何が実際にインストールされたのか以下のコマンドで確認してみます。 pip list requirements.txtで指定した通り、pandasの3.0.1がインストールされていることがわかります。 しかし、初期状態からインストールされているpipを除いても、numpyやpython-dateutil、sixといったrequirements.txtに記載していないパッケージがインストールされています。 これらのパッケージは推移依存パッケージと呼ばれ、pandasが依存している、pandasが動作するために必要としているパッケージです。 pipの仕様上、これらの推移依存パッケージのバージョンはpandasが要求するパッケージバージョンの中で最新のものがインストールされます。pip installの仕様については こちら の公式ドキュメントからご確認ください。 つまり、requirements.txtでパッケージのバージョンを指定していたとしても、推移依存パッケージのバージョンは固定されておらず、インストールを実行したタイミングで互換性のある最新のバージョンをインストールしてしまうということになります。 ちなみにpandasが要求するパッケージバージョンは2026/4/2時点の公式ドキュメントで確認すると以下のようになっています。(sixはpython-dateutilの推移依存パッケージです。) Package Minimum supported version NumPy 1.26.0 python-dateutil 2.8.2 依存パッケージのバージョンを固定していたと思ってもこれらの推移依存のパッケージバージョンは固定されていないということに注意が必要です。 例えば、推移依存の最新バージョンに脆弱性があったり、破壊的変更が加えられていた場合、パッケージインストールしたタイミングによって、システムが動作しなくなる可能性や、予期せぬ不具合が起こる可能性があります。 この推移依存パッケージのバージョンを固定することができるのが次の章で説明するconstraints.txt及びpip installの-cオプションです。 constraints.txtと-cオプション 前章で挙げた推移依存パッケージのバージョンが固定されない問題を解決できるのがconstraints.txtです。 例によってconstraints.txtという名前である必要はないですが、一般的にconstraints.txtという名前なのでそのように表現いたします。 constraints.txtはインストールされるパッケージのバージョンに制約を設けることができるファイルです。 例えばrequirements.txtに以下の内容を記述してインストールする場面について考えてみます。 pandas==3.0.1 constraints.txtには以下のように記述したとします。 numpy==1.26.4 pip install時に-cオプションでテキストファイルを指定することで推移依存パッケージのインストールバージョンに制約を設けることができます。 実際にやってみます。 以下のコマンドで仮想環境へインストールを行います。 pip install -r requirements.txt -c constraints.txt インストール後のパッケージリストを確認します。 numpyの1.26.4がインストールされました。 このようにconstraints.txtによって推移依存パッケージのバージョンの固定が可能になります。 constraints.txtの活用方法 推移依存パッケージのバージョンを固定できることがわかりましたが、1つずつ推移依存を調べて書いていくのは面倒で手間がかかります。 以下のコマンドで、現在インストールされているすべてのパッケージとそのバージョンをconstraints.txtに記述できます。 実際に実行してみます。 注意 グローバルな環境でpip freezeすると無関係なパッケージがconstraints.txtに入ってしまいます。 requirements.txtのパッケージを仮想環境へインストールして、仮想環境内でpip freezeしましょう。 pip freeze > constraints.txt 実行した結果、直接依存、推移依存を含めて現在インストールされているすべてのパッケージとそのバージョンが記載されました。 このconstraints.txtを-cオプションで指定することで、いつ誰が環境構築をしても、完全に同じバージョン構成を再現できるようになります。 推移依存の意図しないアップデートを防ぎ、常にクリーンな環境を保てます。 requirements.txtに推移依存も含めてすべてのパッケージをpip freezeするというのも手ですが、constraints.txtを併用すれば、requirements.txtにはプロジェクトで必要なパッケージだけを管理し、推移依存を含めた全体のバージョンはconstraints.txtで管理するという役割分担が可能です。 まとめ pip installは推移依存パッケージのバージョンは要求バージョンの中で互換性のある最新のものをインストールする。 -cオプションによってインストールされるパッケージのバージョンを固定できる pip freeze によって簡単に現環境のパッケージバージョンをconstraints.txtに記述できる。 パッケージ管理はpip以外にもpoetryやuv等を使用して行う方法がありますが、今回はpythonの標準機能でパッケージを管理する方法についてまとめました。 今後はpoetryやuvを使用したパッケージ管理についても学んでブログに起こしていきたいと思います。 参考文献 pip installの仕様 https://pip.pypa.io/en/stable/cli/pip_install/#satisfying-requirements -cオプションについて https://pip.pypa.io/en/stable/cli/pip_install/#options ご覧いただきありがとうございます! この投稿はお役に立ちましたか? 役に立った 役に立たなかった 1人がこの投稿は役に立ったと言っています。 The post constraints.txtを使用してPythonの推移依存パッケージを管理する first appeared on SIOS Tech Lab .
Linuxのセキュリティを強化する仕組み「SELinux(Security-Enhanced Linux)」について解説します。サーバーやコンテナのセキュリティ強化、アプリケーションの分離といった活用シーンを紹介し、`sestatus`や`setenforce`コマンドを使った状態確認・モード変更の具体的な方法を説明します。また、SELinuxが有効な場合にアプリケーションの動作に与える影響と、ポリシーを適切に設定・調整して問題を解決するチューニング方法についても触れます。

動画

書籍