サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
掃除・片付け
kaminashi-developer.hatenablog.jp
はじめに Presigned URL(*) などで、Amazon S3 へのアップロード処理を実装していると、大きなサイズのファイルをアップロードしようとしたときに、以下のような課題に直面することがあります。 一回のPUT リクエストでアップロードできるサイズの上限が 5GB まで 単一の HTTP リクエストでアップロードするため、大きなサイズをアップロードしようとしたときに問題が起きる。例えば、アップロードの処理の途中で失敗したとき、最初からやり直しになる。 このようなときに活用したいのが、マルチパートアップロードです。マルチパートアップロードとは、その名の通り、アップロード対象のオブジェクトを小分けにしてアップロードする方法です。 AWS の SDK には、マルチパートアップロードが簡単に行えるような API が用意されているものの、多くは、S3 にアップロードを行うことができる I
どうもこんにちは西川です。AWS Community Builder に選ばれたからにはAWSのこともアウトプットしなきゃということで、今日は Security Hub の Central configurationの素晴らしさをお伝えしたいと思います。 Security Hub 運用の課題と Central configuration Cental configuration は re:Invent 2023 で発表された機能で、実は最近までこの機能が追加されていたことに西川は気づいておりませんでした(汗) でも、この機能はSecurity Hubを運用していくうえでは欠かせない機能で、それはなぜかというと、Automation rules では、OU単位だったり、アカウントについているタグ等を判別してルールを書くことができないのですが、AWSアカウントをOrganization管理して
息子に「お父さんカエルの匂いがする」と言われているセキュリティエンジニアリングの 西川です。カエルの匂いとはこれ如何に。。 カミナシに関わって1年経って 見出しで入社してではなく、関わってと表現したのは業務委託で関わり始めたのが去年の4月からだったからです。1年経って色々と今までの活動などの振り返りをしたいと思い筆を取りました。 そもそも振り返るきっかけとなったのは、IssueHunt 社のイベント(https://issuehunt.jp/seminar/lounge3)でプロダクトセキュリティについて話をする機会があったからです。できるだけ無意識下にあったものを言語化したいなと思いました。自分の考えを整理する貴重な機会をいただけて本当にありがたかったです。 私はセキュリティに関する競技への参加などを通じてチームビルディングないしは、組織に馴染むといいますか、その組織に最適化するのが得意
こんにちは! カミナシでエンジニアリングマネージャーとして働いております、吉永です。 先日、 3/21 に Findy さんが主催の「TechBrew in 東京 〜mtx2sさんと考えるコード品質とビジネスインパクト〜」というイベントに参加してきました。 findy.connpass.com イベントにブログライティング枠なるものがあったので、この枠での参加ではないものの、参加レポートを書いてみます。 動機 mtx2s さんの記事は以前から参考にさせていただくことが多くて、毎回首がもげそうになるくらいの共感や学びを得られていました。自分自身のマネジメントの参考にもしています。いつかお会いしてみたいものだなと思っていたところ、偶然このイベントが開催されることを知り、すぐに参加を決意した次第でした。 イベントのテーマも今の私にうってつけのものでした。私の担当するチームが提供するサービスは20
はじめに こんにちは。カミナシでソフトウェアエンジニアをしている佐藤です。 みなさんは、アプリケーションのフロントエンドから、Amazon S3 にファイルをアップロードするときに、どのような方法を用いているでしょうか? 「バックエンドのサーバーにファイルを送信し、バックエンドのサーバー経由で S3 にアップロードしている」「Presigned URL を払い出して、フロントエンドから直接 PUT している」など、いくつかの方法があると思います。 弊社で提供しているサービス「カミナシレポート」でも、用途に応じて上記の方法を使い分けて S3 へのファイルのアップロードを行っています。 特に、Presigned URL は、手軽に利用できる上に、バックエンドのサーバーの負荷やレイテンシーの削減といったメリットも大きく、重宝しています。 一方で、その手軽さの反面、アップロードに際して様々な制約を
こんにちは。ソフトウェアエンジニアの坂井 (@manabusakai) です。 カミナシでは職能別のチーム分けをしておらず、エンジニアのロールは基本的に全員ソフトウェアエンジニアです。フロントエンドやバックエンドにとどまらずインフラやセキュリティも含めて、サービス開発チームがすべてを担っています。 CTO の言葉を借りるなら「システムのライフサイクル全体を見る」のがカミナシにおけるソフトウェアエンジニアであり、単一のチームで顧客への価値提供ができる体制を目指しています。 type.jp しかし、個々人のスキルマップを見るとインフラ領域を得意とするメンバーが少なく、インフラの改善は後回しになっていました。 私は前職で 6 年ほど SRE として働いていたので、入社時点からインフラの改善にも着手しなければと感じていました。しかし、専任チームが存在しないカミナシでの取り組みは、まさに試行錯誤の連
どうもセキュリティエンジニアリングの西川です。 暖かい日と寒い日の寒暖差が激しく体がおかしくなりそうですが今のところ健康を維持しております。体もセキュアでありたいものです。 今期のセキュリティ施策の検討 新年を迎え、この半期セキュリティエンジニアリングとして何をやっていくか?を「セキュリティ戦略会議」と銘打ってオフサイトで話し合いました。 そんな目的で始まった話し合いですが、結果的には時間が足りず、どういう方向性でカミナシのセキュリティを高めて行くかというところにとどまりましたが、良い話し合いができたので共有したいと思います。 この話し合いは、CTOのトリ、それからコーポレートITのメンバーと、業務委託としてセキュリティエンジニアリングを支えてくれる濱野さん、そしてこの記事を書いている西川の4名で行いました。 未来からの逆算 今期のセキュリティ施策を考えていく時に、まずは未来にどういう状態
こんにちは、カミナシのソフトウェアエンジニアの内田 (@A2hiro_tim) です。 11/28、AWS の CEO Adam Selipsky 氏の Keynoteで Amazon Q が発表されましたね。 今回ありがたいことに、AWS re:Invent 2023 にラスベガス現地で参加する機会をいただき、複数のセッションに加え、この Keynote も聞いてきました。 Amazon Q についての情報はまだ多くないですが、Amazon Q の中でも、"Amazon Q for general business use" と呼ばれる機能について、現地のセッションで聞いた話が面白かったので、書いてみたいと思います。 Keynote の様子 私は大学院で機械学習の研究室に所属していて、同時期に AI コンサルティングの会社でインターンもしていました。卒業後はソフトウェアエンジニアとしてキ
こんにちは。カミナシにて業務委託としてフロントエンドを担当している田村(@junkboy0315)です。皆さんはフロントエンドのテスト、どのように取り組んでいますか?フロントのテストはなかなか難しいですよね。 バックエンドのテストには、「入力、出力、永続化されたデータ」の3つを検証するという基本セオリーがあります。しかし、フロントエンドのテストは、その粒度や手法が多様で、とっつきにくいと感じる方も多いのではないでしょうか。 カミナシでもフロントエンドのテストは以前は十分とは言えない状態でしたが、これまで継続的に改善を重ねてきました。今回は、その変遷についてお話ししようと思います。 夜明け前 カミナシのコードベースでは、元々ユニットテストがある程度整備されていました。これらは主に複雑な計算処理を行い結果を返す関数などに対して実施されていました。 しかし、画面全体の機能を網羅する包括的なテスト
どうもセキュリティエンジニアリングの西川です。 12/3(UTC)現在まだラスベガスにいます。これが今回のラスベガスで書く最後のブログとなります。 最高の仲間たちと過ごせて最高の1週間でした。笑いすぎてお腹が筋肉痛です。 たくさんのお土産話ができましたので、日本に帰った際は聞いていただけると嬉しいです。 ラスベガス最後は「セキュリティの自動化」について話をしていきたいと思います。セキュリティの自動化といってもAWS環境の話で、コンプライアンス違反があったら自動的に修復したりするもののことを言っています。 どうしてこうも世の中、「セキュリティの自動化」の話が多いのだろうと思いながら色々なセッションを聞いていました。そして、「セキュリティの自動化は本当に必要なのだろうか?」と、ここラスベガスで自分の中であれやこれやと考えていて、最終日に「SEC327-R1: Speed up cloud se
ソフトウェアエンジニアの鈴木(@szk3)です。この記事は re:Invent の現地 ラスベガス からお届けしています。 唐突ですが、re:Invent 2023 にて行われた AWS GameDay Championships 2023 というグローバルな舞台で優勝🥇することができました \ やったー 🙌 / ということで 本記事では、現地でGameDayに参加する際の知見をシェアしたいと思います。 本文に行く前に最初にお伝えしておくと、GameDayに参加する誓約としてゲーム内容の共有は禁止されていますので、どんなゲームだったのかについては触れませんのでご了承ください。 この記事が、今後 ラスベガスでGameDayに参加してみたい!と思っている方の参考になれば幸いです。 ではでは、早速いってみよー AWS GameDay とは まずは、そもそもGameDayとは何なのか?について
AWS re:Invent 参加中のソフトウェアエンジニアの内田(@A2hiro_tim)です。 “Build and scale generative AI applications with Amazon Bedrock” という Workshop Session に参加しました。 Workshop Session は、まず簡単に Amazon Bedrock の概要を10分ほど話して、そこから用意された 資料の説明に沿ってひたすら進める形式でした。資料はおおまかに以下の構成です。 簡単な Prompt Engineering をやってみる Email 生成アプリを使ってみる 後半の資料とコードは既に公開されています。興味ある方は試してみてください。 資料:workshop studio コード:Github: build-scale-generative-ai-application
ソフトウェアエンジニアの鈴木(@szk3)です。AWS re:Invent 2023に参加しており、現地ラスベガスでこの記事を書いています。 さて、本日の Keynoteで発表された Amazon Q という生成AIのサービスですが、めちゃくちゃ使えそうという印象を受けました。 aws.amazon.com しかし、そんな Amazon Q ですが、公式サイトの紹介ページヘッダーを見ると、専門領域と機能の複数の切り口で紹介されており、若干わかりづらい感じになっています。 専門領域のところでいうと、Amazon Qが主となる「Amazon Q (For Business Use)」「Amazon Q (For AWS Builder Use)」の2つで、他のAWSサービスにbuilt-inされる「Amazon Q in QuickSite」「Amazon Q in Connect」「Amaz
こんにちは、セキュリティエンジニアリングの西川です。 WAFのワークショップ(NET308-R1 | Get hands-on with fraud prevention using AWS WAF )に参加し、面白い機能がAWS WAFに追加されていたので、そちらを紹介します。 なお、ここではAWS WAFの説明は割愛します。 今日ご紹介したいのはApplication integrationという新機能です。 画像の左側をみていただくとわかる通りNewのアイコンが出ていますね。 Application integrationでは、アカウントへの不正アクセスを防止するための機能で、ログインページで用いられます。 機能としては二つあって、一つ目がInteligent threat integration、もう一つがCAPTCHA integrationです。CAPTCHAはみなさんご存知の
おはようございます(?)セキュリティエンジニアリングの西川です。 AWS re:Invent 2023 2本目の記事です。前回同様、若干ガバナンス系の話なのですが、 「SEC319-R | Enhance cloud security: Using AWS SRA with Terraform」というセッションを聞いていました。 このセッションではChalk talk というセッション形式で、SRA(Security Reference Architecture)の概念やこういう風に適用していくといいよという話をスピーカーがしながら、参加者は適宜質問をするという形式のもので、スピーカーの方から「これは対話形式なので質問があれば挙手をお願いします」と伝えていました。 SRAという言葉はまだあまり聴きなれない方も多いかもしれませんが、2021年あたりから出てきたもので、CIS Critical
こんばんは(?)、セキュリティエンジニアリングの西川です。 re:Invent始まりましたね。 カミナシからも今年は4名参加して、AWSの知識・技術向上のためさまざまなセッションに参加しています。 私は今回re:Inventは初参加で、右も左もわからない状態ですが、その中でも特に楽しみにしていたセッションがありまして、それが「COP402: Coding for compliance at scale」でした。 このセッションはレベルが400(Expert)という一番高いものでしたが、コードを見ながら解説がされていくため元々開発者だった私にとっては非常にわかりやすかったのと、 RDK(AWS Config Rule Development Kit)を試そうとして色々と調べていたので、英語はあまり得意ではないのですが理解することができました。 AWS Configのカスタムルールが書けるのは
こんにちは。ソフトウェアエンジニアの坂井 (@manabusakai) です。 カミナシでは RDB に Amazon Aurora MySQL を使っています(以下 Aurora と略します)。また、データ保護の追加レイヤーとして KMS を使って DB クラスターを暗号化しています。 docs.aws.amazon.com ここまでは良いのですが、KMS キーに AWS マネージドキーが設定されていました。普段から AWS を使っている方であれば「あちゃ〜」と思われるでしょう。 なぜ Aurora の KMS キーに AWS マネージドキーを使うのが「あちゃ〜」なのか KMS キーには、AWS マネージドキーとカスタマーマネージドキーの 2 種類があります。 AWS マネージドキーはユーザーに代わって作成されるキーで、RDS の場合は aws/rds というエイリアス名が付いています。
こんにちは、セキュリティエンジニアリングの西川です。 カミナシのエンジニアリングチーム向けにセキュリティ競技会「ごーとんカップ」を開催しました。ごーとんというのはカミナシのヤギのキャラクターです。非常にかわいいですね。 開催のきっかけ 今回の取り組みは取締役CTOの原トリ(以下トリ)と「Hacktoberfest(https://hacktoberfest.com/ )みたいなのしたいよね」という軽いノリから始まったのですが、いわゆるCTFをエンジニアリング向けにやっても意味がないので、あくまでも教育の機会になることを目的としコンテンツを検討していきました。合わせてモチベーションアップのために、参加者特典や優勝者特典でTシャツやステッカーを制作しました。結果的にこれは大正解だったと思います。あるとないとではイベントのクオリティが全然違うと実感しています。 出題コンセプトと感想 今回の取り組
こんにちは。ソフトウェアエンジニアの坂井 (@manabusakai) です。 カミナシではマルチプロダクト化に向けて、認証・認可の切り出しを進めています。その対応を進める中で、既存テーブルへのカラム追加が必要になりました。 先日、そのリリースのために本番データベースにマイグレーションの ALTER 文を実行したところ、クエリが詰まって危うく障害になるところでした(幸いすぐにキャンセルして事なきを得ました)。 原因を調べたところ、オンライン DDL は複数の条件が関係することがわかりました。オンライン DDL に対する知識不足と事前検証の甘さゆえのミスでしたが、結果的には良い学びが得られました。 カミナシのバリューのひとつである「全開オープン」の気持ちで、事の顛末やそこから得た学びを公開します。 なお、今回の話は MySQL 5.7 互換の Amazon Aurora MySQL 2 で確
こんにちは。カミナシでソフトウェアエンジニアをしているaomanです。 私のエンジニアとしての経歴はカミナシが2社目で、前職も含めフロントエンドからバックエンドまで一通り開発はしていました。ですが、AWSなどインフラに関しては、アプリケーション開発時必要になったところを少し触ったりするくらいで、ガッツリと本格的に学んだことがありませんでした。 そんな私ですが、今回ECS Clusterの切り替え作業を先輩エンジニア監修の元一緒に行う機会をいただきました。どのようなことをしたのか、簡単にではありますがご紹介させて頂こうと思います! ざっくり概要 カミナシのサービスでは、APIサーバーの運用にAmazon ECS(on Fargate)を利用しています。また、APIサーバーコンテナの他にいくつかのコンテナが起動しています。以下がざっくりとした図になります。1つのTask定義があり、4つのコンテ
こんにちは、普段ほとんど家で冷房を使わないので、時々都会に行くと建物の中が寒すぎてびっくりするセキュリティエンジニアリングの西川です。 先日Security-JAWS DAYS(https://s-jaws.doorkeeper.jp/events/155024)に登壇させていただきました。30回記念という節目に登壇できたことがただただありがたかったです。運営のみなさま本当にありがとうございました。 登壇資料はこちら https://speakerdeck.com/kaminashi/advantages-and-disadvantages-of-separation-of-responsibilities-using-amazon-verified-permissions 今日は登壇資料をふまえつつ、時間の関係で話せなかったことなどについて書いていきたいと思います。 おさらいも踏まえてご
こんにちは。ソフトウェアエンジニアの坂井 (@manabusakai) です。 今月でカミナシに入社してちょうど 1 年が経ちました。前職では 6 年間 SRE チームにいたのでプロダクト開発はブランクがありましたが、さまざまな挑戦をさせてもらっていたらあっという間に 1 年が経っていました。 カミナシのエンジニアリング組織もこの 1 年で急拡大しており、入社当初から比べると正社員のエンジニアも倍以上に増えました。 GitHub の権限管理、どうしていますか? ところで、みなさんが所属されている組織ではどのように GitHub の権限管理を行なっていますか? カミナシではつい先日まで、ほとんどのエンジニアが Organization の Owner 権限を持っていました。理由は、メンターになったエンジニアがニューカマーのユーザーを招待していたからです。 しかし、統制が取れていないことでいく
こんにちは、カミナシでソフトウェアエンジニアをしている 佐藤 と申します。 弊社で開発・提供しているノンデスクワーカー向けプラットフォーム「カミナシ」(以降「カミナシレポート」や「弊社アプリケーション」と呼びます)において、Feature Flags の仕組みを整備し、デプロイとロールアウトの分離を加速させたことについてご紹介したいと思います。 登場する技術 Amazon Elastic Container Service (ECS) AWS AppConfig AWS AppConfig agent 前提知識 後半の「技術的な話」以降の部分は、以下の技術についても触れています。 Feature Flags、Feature Toggles AWS AppConfig Amazon Elastic Container Service (ECS) Terraform 「背景」や「解決策」といっ
こんにちは。 カミナシでソフトウェアエンジニアをやっている Taku です。 先日、社内で AWS の Workshop を開催してみたところ良い反応をいただいたのでその共有となります。 Workshop 開催の目的 今回 Workshop を開催した主な目的はAWS の自己学習を推進するためです。 カミナシには学習・実験・検証を目的とした「AWS アカウント(検証用個人 AWS アカウント)」を発行して利用できる制度があります。 もっとこの良い制度を活用していきたいという思いと、特に新しく入社した人にはあまり知られていない状態をカイゼンしようと思い、 Workshop を開催することで気軽に AWS を触っていただけるようにしたいと考えました。 Workshop でやったこと Workshop の題材としては、昨年末に参加した AWS re:Invent で体験した以下を利用することとし
こんにちは、セキュリティエンジニアリングの西川です。息子が8歳なのですが、生まれてからずっと可愛いままで、いつまでこの可愛さは続いてしまうのでしょうか。 ということで、今日はセキュリティの文化の作り方について話をしていこうと思います。 セキュリティの文化の作り方ってなんなんだろう と言いますか、日々私自身、手探りなのですが、今日は取締役CTOの原トリ(以下トリ)からもらった金言とともにカミナシにおけるセキュリティの文化の作り方について書いていきたいと思います。 カミナシにおけるセキュリティの文化の定義 その前にセキュリティの文化を定義していかなければスタートラインにすら立てないわけですが、カミナシにおいては、セキュリティの問題をセキュリティ担当者の介在なしに、自分たちで気付き、セキュリティの問題をお互い注意し合えるようになるという定義を行っています。これは開発だけではなく、コーポレートでも
こんにちは。ソフトウェアエンジニアの坂井 (@manabusakai) です。 カミナシでは RDB に Amazon Aurora MySQL 2(MySQL 5.7 互換)を使っています(以下 Aurora MySQL と略します)。 ある日、社内の Slack で「𠮷」などの文字列が登録できないのではないかという話が出ました。これを聞いて「あー」と思った方も多いでしょう。 MySQL で有名な UTF-8 の 4 バイト文字問題で、歴史的な理由から MySQL 5.7 以前では utf8 の文字セットは utf8mb4 ではなく utf8mb3 を指しています。 dev.mysql.com カミナシのアプリケーションは 4 バイトの文字列が入力された場合はシステムエラーを返す実装になっていますが、エラーの内容をユーザーにわかりやすく伝えることは難しいためユーザー体験としても良くない
はじめまして、2023年6月よりカミナシにセキュリティエンジニアとしてjoinした西川と言います。今回はCTOのToriと私とで参加したAWS re:Inforceについて書いていきたいと思います。 re:Inforceとは AWSのセキュリティに特化したカンファレンスでEXPO、ChalkTalk、BuildersTalkなどのセッションが存在し、ハンズオン形式だったり、みんなで話し合ったり、さまざまな形での学びを提供しています。 今回のre:InforceはMLBの大谷選手が所属しているエンゼルスの本拠地があるアナハイムで開催されました。去年はボストンで開催されていたので、来年は大谷選手が見られる!?というのは期待しないようにしましょう。ちなみにre:Inforce開催の週はエンゼルスのホームゲームがなかったので試合観戦はできませんでした(涙) re:Inforceのセッション 講師の
こんにちは〜。カミナシでソフトウェアエンジニアをやっている飯間です。 04/27(木)・04/28(金)の 2 日間、開発合宿に行ってきました! この記事はそのレポートとなります。 合宿の目的・やったこと 今回の目的は以下の 2 点でした。 「β版マインド」発揮の場を提供する チームビルディング 1 の「β版マインド」というのはカミナシのバリューの一つです。これについては、弊社公式の説明をそのまま引用しますが以下の通りです。 “限られた時間や情報の中で、最大限考え尽くしたなら、すぐに一歩を踏み出そう。100%の確信を待っている時間はもったいない。 成功も失敗も前倒しして、そこから学べばいい。その繰り返しが、前例のない大きな成果につながっていく。” 合宿では、このβ版マインドを発揮するため、(リリースするかどうかは別として)「カミナシにあったらワクワクするβ版機能の開発」をテーマにハッカソン
Gopherの皆さん、こんにちは! カミナシのHRでエンジニア担当している木村です。 来る2023年6月2日金曜日にGo Conference 2023が開催されますね。 カミナシはシルバースポンサーとして参加させていただきます! Go Conference 2023 今回もオンライン開催となりますが、オフィスアワーでカミナシのブースを出させていただいています! ブース内ではテーブルを2つ設けており、カミナシのソフトウェアエンジニアが常時2名以上おりますので、ぜひお気軽にお声がけください。 Golangについて雑談したい! カミナシについて聞きたい! カミナシのGolangの話を聞きたい! kaminashi-developer.hatenablog.jp などなど、なんでもOKです! ブース内の資料コーナーにはカミナシを知るためのコンテンツを用意していますので、こちらもぜひ併せてご覧くだ
次のページ
このページを最初にブックマークしてみませんか?
『kaminashi-developer.hatenablog.jp』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く