Septeni Engineer's Blog

セプテーニ・オリジナルのエンジニアが綴る技術ブログ

aws-vault でアクセスキーを安全に

あけましておめでとうございます。河内です。

数ヶ月前に aws-vault を使い始めて安全の高まりを感じるので紹介します。

AWSのサービス上では IAM Role をできるだけ使ってアクセスキーを使わないようにしていますが、ローカルでの開発時にIAMのアクセスキーを利用することはあります。 アクセスキーが漏れると困ったことになります。 本番環境で利用している AWS アカウントで漏れると、付与している権限次第では機密情報が漏洩したりサービスが壊される可能性があります。 また開発環境としてのみ利用しているAWSアカウントであっても、ビットコインのマイニングなどで容赦なくリソースを消費され高額な請求が来たりする可能性ががあります。 そのようなことが起きないようにアクセスキーは安全に管理する必要があります。

続きを読む

Play FrameworkでServer-Sent Events(SSE)を使ってServer pushする方法あれこれ

あけましておめでとうございます。
初めまして、2017年4月に中途入社した張沢と申します。

今回はPlay FrameworkでServer-Sent Events(SSE)を使用してServer pushを行う実装方法について書きます。 WebSocketの情報は検索すると色々見つかりますが、SSEの記事やサンプルコードはあまり見かけないため…。

Play Framework 2.5からstream関連のAPI実装がAkka Streamに変わりました。そのため、Server pushのAPIでもAkka Streamを使用する必要があります。この記事ではSSEでのAkka Streamの使用方法について紹介します。

Server-Sent Eventsとは

Client(ブラウザ)へHTTP server pushを実現するための技術の1つで、以下のような特徴があります。

  • HTTPを利用したストリーム通信
  • 通信はServerからClient(ブラウザ)への一方向
  • UTF-8エンコードの文字列のみ送信可能
    • Base64に変換することで、画像データやUTF-8以外の文字列も送信できます
  • IEやEdgeではサポートされていませんが、polyfillが存在します
続きを読む

PlayFramework 2.6.X のDIについて

これはScala Advent Calendar 2017の11日目の記事です。

こんにちはセプテーニオリジナルの池田です。

弊社では社内勉強会が定期的に開かれており
先月 @kawachiさんより「DIを正しく知って便利に使おう」という発表がありました。

私自身社内での勉強会を受ける前までは、javax.injectGuiceのDIが使われる背景やメリットをあまり理解していませんでしたが、発表を聞いて、DIの歴史的な背景やPlayでのベストプラクティスな使い方など勉強になりました。

今回は、勉強会の復習にPlayFrameworkのDI周りについて書きます。

続きを読む