タグ

ブックマーク / medium.com (59)

  • AWS IAM セキュア化の取り組み

    鍵がいっぱいあるよこの記事は Eureka Advent Calendar 2021 の 13日目の記事です。 はじめにこんにちは、エウレカ SREチーム のハラダです! 2020年頃から今年にかけて、 エウレカのSREチームとSecurityチームではAWS IAMのセキュア化を注力ポイントのひとつとして、継続的に取り組んできました。 記事では、その実践から学んできたIAM管理で守るべき大原則および、具体的にどうやってセキュアな理想像に近づけてきたか、今後の方向性などを話したいと思います。 Why “IAM” so important ?そもそもなんでIAMが注力ポイントなの?と疑問に思われる方もいるでしょう。 クラウドの大きな強みである「すべてをAPI経由で操作できる」という性質ゆえに、IAMは大きなAttack Surfaceでもあります。 Gartner社の予測によると、2023

    AWS IAM セキュア化の取り組み
    dai0916
    dai0916 2021/12/14
  • Cloud Run でマイクロサービスを作る 5 つのポイントをまとめてご紹介!

    はじめに早速ですが、皆さんはマイクロサービスを構築するとしたら、どのような構成を考えますか? 多くの企業で、GKE を使ったマイクロサービス アーキテクチャが採用されています。選定理由として、Kubernetes が持つ機能や大きめなリソースが必要であったり、社内インフラチームによる Kubernetes のサポートがあるといった理由などがあります。一方、定期アップグレードなどの観点から、Kubernetes の運用は少し大変…と感じる方もいるかと思います。 GKE Autopilot の利用という考えもありますが、サーバーレスでコンテナを動かせる Cloud Run を使って、インフラ管理不要でマイクロサービスを構築が出来ると嬉しくないですか? 実際、そういった構成を採用されている企業も見かけます。 この記事では、設計や実装時に考えるであろう、以下の 5 つのポイントにフォーカスしてみた

    Cloud Run でマイクロサービスを作る 5 つのポイントをまとめてご紹介!
    dai0916
    dai0916 2021/10/04
  • インフラエンジニアなら気になるQUICのロードバランサ (方式編)

    図1: QUICコネクションを振り分けるロードバランサはじめに記事では、バックエンドのWebサーバへリクエストを振り分ける装置の意味でのロードバランサ(図1)について、QUIC対応の議論状況を紹介します。方式編と実装編にわけて二編を予定しており、稿は方式についての解説です。 IETFでは、F5 Networksとマイクロソフトから提案されたロードバランシング方式が議論されています。稿では下記のインターネットドラフトをQUIC-LBと表記します。 QUIC-LB: Generating Routable QUIC Connection IDs https://datatracker.ietf.org/doc/html/draft-ietf-quic-load-balancers 執筆時点の -07 をベースとしますが、ドラフトですので今後の議論次第で改版が続きます。あらかじめご承知おき

    インフラエンジニアなら気になるQUICのロードバランサ (方式編)
    dai0916
    dai0916 2021/08/26
  • エンジニア組織のキャリア戦略とスタンスとして大事にすべきこと

    こんにちは、株式会社エウレカでCTOをしている kaneshin です。 この記事は CTOA Advent Calendar 2020 の21日目の記事です。エンジニア組織におけるキャリア設計について、今までの私の経験を踏まえて考察してきたスキルの礎の部分について、いろいろな方にお話しする機会が増えたこともあり、今年の締め括りとしてエンジニア組織のキャリア戦略について一書こうと思い、記事を書いています。 はじめに株式会社エウレカは、恋活・婚活マッチングアプリ「Pairs」の運用とオンライン結婚相談所「Pairsエンゲージ」の展開をしています。私は2012年にエンジニアとして入社し、当時ローンチしたばかりのPairsチームへの配属となりました。(Pairsは以下「ペアーズ」と表記します) 入社当時は出会い系と同じ括りとして認識されていたペアーズですが、今ではこのようなクリエイティブを世

    エンジニア組織のキャリア戦略とスタンスとして大事にすべきこと
    dai0916
    dai0916 2020/12/22
  • Let’s Build Micro Frontends with NextJS and Module Federation!

    That headline is a mouth-full, I know! In the past several years I have been working on distributed and multiple teams as well as being a pretty early adopter of NextJS (since around V2.0!) in production. I’ve worked on micro frontends with shared npm packages while trying to orchestrate one cohesive user experience. It was and is hard. That’s why I have been closely following the latest developme

    Let’s Build Micro Frontends with NextJS and Module Federation!
    dai0916
    dai0916 2020/11/26
  • gRPCが遅すぎる?eBPFでカーネル内で動かす!

    gRPCの高速化への飽くなき追求(具体的な目標や目的なし)を続けてきましたが、まだ、遅すぎる!今回は、安全にLinuxカーネルに機能を追加できるeBPFという仕組みを使って、カーネル内で動作するgRPCサーバを実装しました。その結果、前回実装したRust版よりも2倍高速になりました! eBPFで安全なユーザコード実行eBPFを使えば、システムコール、パケットの受信など、カーネルで発生する様々なイベントに対して、私たちユーザが実装したコードを、カーネル内部で実行することができます。同じようにカーネルに機能を追加できるカーネルモジュールと違って、eBPFは、データ破壊など、システムの安定性に深刻な影響を与える危険なコードの実行を防ぐことができます。 eBPFで検索すると、たくさんの日語の情報が見つかるXDPは、ネットワークインターフェイスのドライバのパケット受信時に、ユーザコードを実行する仕

    gRPCが遅すぎる?eBPFでカーネル内で動かす!
    dai0916
    dai0916 2020/10/16
  • RustのgRPCがGoよりも遅い?

    夏のある日、GogRPCが、Rustよりも2倍早いという記事を見つけました。「おいおい、測定ミスだろ」と強がっていましたが、日々、不安は高まっていきます。真実の愛であれば、疑うことは許されませんが、エンジニアの言語への愛など、所詮、状況に応じて使い分けるような打算的な愛。確認してみました。 性能測定結果上記の記事と同じく、gRPCのサーバソフトウェアは、Gogrpc-goRustはtonicのgreeterの性能を、gRPCのクライアントソフトウェアghzを使って、測定しました。ハードウェアは、AWSを利用し、サーバはc5a.8xlarge(32 vCPU/64 GiB)インスタンス、クライアントはc5a.16xlarge(64 vCPU/128 GiB)インスタンスを使いました。 1台のクライアントインスタンスは、同時に3,000個のgRPCクライアントを立ち上げ、合計で6,000

    RustのgRPCがGoよりも遅い?
    dai0916
    dai0916 2020/09/10
  • 「Infrastructure as Codeに疲れたので、僕たちが本来やりたかったことを整理する」を1年掛けて整理した

    こんにちわ。rwle1212です。 記事は JAWS Days 2020 で話す予定でしたが、昨今の事情によりオンライン開催となったため、登壇予定の内容を記事にしたものになります。 登壇していれば諸般の事情により左手首を骨折したネタが使えたのですが、ブログでは伝わらないので非常に残念な思いをしております。という話はどうでも良いので題に入ります。 50分の登壇内容なので少々長くなりますが、お付き合いください。 JAWS Days 2019で登壇した内容の振り返り昨年の JAWS Days 2019 で「Infrastructure as Codeに疲れたので、僕たちが来やりたかったことを整理する」という内容で登壇しました。 まずは上のリンクに添付されているスライドを5分位で読めると思うので一読頂いて、下の文に進んで頂ければと思います。 そもそもInfrastructure as Cod

    dai0916
    dai0916 2020/03/30
  • デザイナーと働くならこんなふうに – SOELU Developers – Medium

    SOELU[ソエル] はオンラインのライブヨガスタジオです。空いた時間におうちでヨガを楽しめ、インストラクターとライブで繋がってレッスン受講できるのでおうちでもヨガが続きます。ヨガ初心者の方も歓迎!まずは無料体験から! Webサービスのプロダクト開発チームは異なる職種(PM/デザイナー/エンジニアなど)が集まってできています。ぼくはエンジニアなので、PMやデザイナーがどんなことをエンジニアに求めているか、けっこう気にしながら働いています。でも、他職種のチームメンバーに求めていることを直接聞くのって結構勇気がいるんですよね。 エンジニアはチーム内に複数人いることが一般的ですが、デザイナーの場合はチームに自分しかデザイナーがいないということも多いので、デザイナー同士で評価しあうということもしづらく、他職種からの評価はなおさら気になるところだと思います。 会社にデザイナーの同僚がいても、ふだん一

    デザイナーと働くならこんなふうに – SOELU Developers – Medium
    dai0916
    dai0916 2020/02/15
  • ミルクボーイがアジャイルを説明したら

    序章駒場「最近、うちのおかんがシステム開発に興味を持っててなぁ、名前は忘れたらしいんやけど、迅速に開発できて、仕様変更にも対応できる、素晴らしい開発手法を取り入れてるところがあるらしいんやわ〜。」 内海「そんなもんアジャイルに決まってるがなぁ〜! 今やシステム開発と言えば、アジャイル。素早く変化に対応できるってゆーのが特徴なんよ。そもそも名前が “迅速” を意味する英語やねんから、アジャイルに決まってるがなぁ〜。」 チームの人数駒場「最初、オレもそう思たんやけどな、なんでも 40 人ぐらいで開発してるらしいんやわぁ〜。」 内海「ほなぁ、アジャイルちゃうかぁ…。アジャイルでは 5〜9 人ぐらいが推奨されてるからなぁ〜。40 人もおったら、とてもやないけど、コミュニケーションが成立するとは思われへんなぁ〜。効率の悪い伝言ゲームになるのは目に見えてるからなぁ〜。おかん、他にもなんか言うてなかった

    dai0916
    dai0916 2020/01/28
  • Network Architecture Design for Microservices on GCP

    This is our goal architecture design, please read the article to understand the journey :)This blog article is participating in the Mercari Bold Challenge month (#6) Hi everyone, this is Raphael from the Microservices Platform team at Mercari. Bluntly introduced, we are a post-IPO Japanese C2C (Customer to Customer) marketplace transitioning from a monolithic to a microservices architecture. A few

    Network Architecture Design for Microservices on GCP
  • Web スクレイパー必携の一冊、ふたたび - 『増補改訂版 Python クローリング & スクレイピング』

    この度縁あって『増補改訂版 Python クローリング & スクレイピング, 加藤耕太 著, 2019年, 技術評論社』(以下、書)を技術評論社よりご恵贈賜りました。

    Web スクレイパー必携の一冊、ふたたび - 『増補改訂版 Python クローリング & スクレイピング』
  • GCEとMySQLで実現する高可用性システム(HA)

    TL;DRマルチゾーンのGCE上にInnoDB Cluster(MySQL Group Replication) + MySQL Routerを構成することで、高可用性システムが簡単に実現できます はじめに記事で取り扱う内容は執筆時点(2018年11月21日時点)の情報となります。特にSLAの内容は変更されている可能性がありますので、必ずオリジナルのSLAをご確認ください。 クラウドにおける稼働率の考え方クラウドでシステムを構築する際に重要となる一つのポイントがサービス毎に設定されているアップタイム(稼働率)のSLAとなります。RDBのマネージドサービスであるCloudSQLのアップタイムのSLAを確認してみると、99.95%である事がわかります(ダウンタイムの定義についてはSLAサイトをご確認ください)。 DBを構築する際、Cloud SQLで保証されている稼働率では不足している場合は

    GCEとMySQLで実現する高可用性システム(HA)
    dai0916
    dai0916 2018/11/25
  • コードレビューにおけるレビュアー側のアンチパターン

    tl;drコードレビューが上手く回って無くてチームが疲弊して辛かったよレビュアーの言い方を変えるだけで大体解決するよ立場とかで例外を許さず、みんながレビューしてレビューされると良いよはじめにあるプロジェクトGitHubのPRベースでのコードレビューを導入をしました。いかんせんチーム開発が初めてレベルの新人さんが多く、何かと苦労しました。特にレビュイーに対して不効率な指摘はそのまま指示の不明確さに繋がり、チーム全体の開発生産性を下げるので、レビュアーはレビュイー以上に気を使う必要があると感じました。下手をすると、レビュイーのメンタルが弱って闇堕ちするので、チームメンバーの最も大人な人がメンタルケアしたりします。大人な人は大体がリーダー格なので、その人の時間が奪われると何かと開発現場が疲弊しちゃいますね。コードレビューってそんなに難しいものだっけと思ったりもしますが、反省の意味も込めて実際に

    コードレビューにおけるレビュアー側のアンチパターン
  • Apache Kafkaを使ったアプリ設計で反省している件を正直ベースで話す

    Apache Kafka: Producer, Broker and Consumer2017年は生まれて始めてApache Kafkaを格的に業務利用(PoCではなく番運用)した年でした。Apache Kafka的なメッセージングミドルウェアそのもののは、社内的な事情でよく使っていたのでその使い勝手に対して困惑はほとんど無かったですし、ミドルウェアとして非常に安定しているため、Kafkaクラスタそのものでの不具合らしい不具合が発生したことは一度もありませんでした。 しかし、Kafkaのトピック設計などに関してのベストプラクティスは事例ベースでもあまり見かけたことがなく、チームメンバーと悩むことも多かったです。このストーリーでは、主にKafkaを利用したアプリ設計で考えたことや失敗したことを振り返りつつ共有します。なお、パーティション数や各種バッファサイズなどのチューニング要素は今回取

    Apache Kafkaを使ったアプリ設計で反省している件を正直ベースで話す
  • Qiitaを運営するIncrementsのエイチームグループ入りについて

    開示のあった先週金曜日に個人のTwitterやFacebookで簡単に書きましたが、弊社よりQiita, Qiita:Teamを運営するIncrementsは2017/12/25より株式会社エイチームの完全子会社となり、エイチームグループへ加わることとなりました。 株式会社エイチームによる Increments 株式会社の全株式取得について — Increments株式会社 Twitterでは多くの方に言及していただき、「買収」ということに対して不安に思われているQiitaのユーザーさんもいらっしゃるようですが、Incrementsが引き続きQiitaやQiita:Teamを提供し改善し続けること、今後もエンジニアを幸せにするサービスや事業に取り組むことは変わりません。株式会社エイチームは経営理念として「みんなで幸せになれる会社にすること」を掲げていますが、その中でも社内外のエンジニアに対

  • 過去のバージョンをサポートするのはやめよう

    この記事はMikealさんの素晴らしい記事の翻訳版です。 Thanks Mikeal for sharing amazing article, and allow me to translate and share with friends in Japan! ライブラリの保守担当者がさらに前進するための必要性。 LinuxやNode.js等大きく注目されているプロジェクトでは、エンタープライズ、番運用レベルのユーザが基盤刷新することなく継続して利用できるよう長年にわたってサポートを提供している。 これに影響された多くのプロジェクトで同じような長期間サポートを行うエコシステムができてしまっている。これらのプロジェクトではCI環境にて古いバージョンも維持し続け、万が一古いリリースで動かないようなPRが上がった場合にはBlockしてしまうのである。 私はここで声を大にして言いたい。小さなプロ

    過去のバージョンをサポートするのはやめよう
  • ”仕事で始める機械学習”の要点をまとめてみたらとても良い入門書だった

    最近、販売された仕事で始める機械学習を買ったので、購入を考えられている方や機械学習を始めたいと思っている方に読んで、参考になればと思います。 この記事の目的と全体の流れただ読むのと、アウトプット(ブログに書く)前提で読むのとはインプットの質が違うということがわかったので、ブログに書きながら理解していく形を取ります。 全体の流れとしては、章の要約。あぁこの内容知ってるなって人は買わずに済むし、わからないこと多いという人は購入を検討して頂ければ。(出版関係者でもなければ、アフィリエイトなどの営利目的でもなく、いち消費者としての個人的意見になります。 ご了承ください。) 結論から言うと(書評)いままでのオライリーのデータサイエンスだと英語から翻訳したのでわかりにくい日語が非常にうっとうしいのですが、 このは、日の方が書かれており、日語スムーズに理解できます。 また、非常に論理立てられて

    ”仕事で始める機械学習”の要点をまとめてみたらとても良い入門書だった
  • config/routes.rb の書き方を見直した – r7kamura – Medium

    開発を手伝っている Rails アプリの config/routes.rb の書き方を見直した。 ルール以下のようなガイドラインを設け、これを守るように書き換えた。 resource(s) などの DSL の利用を避けるパスの辞書順に定義するHTTP メソッドの部分だけ特別にインデントする具体例こういう形の、素朴なルーティングがひたすらに羅列されていくコードになる。実際のコードでは数百行以上に及ぶ。基的に1行に1つのルーティングが定義される。 MyApp::Application.routes.draw do get '/' => 'top_pages#show', as: :top_page delete '/api/applications/:applicaiton_id' => 'api_applications#destroy', as: :application get '/a

  • CASHのデザインプロセスが凄すぎて思わずブログを書いてしまった話

    ここが決定的に違うんです。 微妙なサービスの多くは機能ドリブンのあやふやなゴールセッティングでデザインを始めてしまうため、要件がぶれてしまい「他行では○○だ」とか「マネジメントが××と言っている」という非論理的な要件をただ浴び続けるだけに陥りがちです。 どの高みを目指すかによってデザインの重要度は大きく変わります。 極論とりあえず1個の機能としてあればいいのなら、デザインなんかいらないわけです。存在することが付加価値なので。 凄さポイント:ゴールから逆算して論理的に要件が導き出されている 凄さ2:ありがちなデザインをなぞる ゴールが明確になり、要件が決まったとしても、その最適解を生み出すプロセスは違いを生む大きな要因になります。 特に金融系のようなどちらかというとオールドな業界の場合、新しいことやサービスをやろうとすると「新しいからOK!」的なデザインがまず出てくることが多いのですが、なぜ

    CASHのデザインプロセスが凄すぎて思わずブログを書いてしまった話