タグ

ブックマーク / dev.classmethod.jp (38)

  • AWSアカウントを作ったら最初にやるべきこと 〜2021年版〜 #devio2021 | DevelopersIO

    ログ・モニタリングのやるべきこと AWS CloudTrail の設定 CloudTrail は AWS リソースを「誰が」「いつ」「何に」対して「どうような」操作をしたのかを記録するサービスです。 ログの長期保管の設定をしておくことで、トラブル発生時の解析等に利用できます。 有料です(無料利用枠もあります) [YouTube] AWS CloudTrailを触ってみた CloudTrail Insights を利用することで、機械学習により異常なアクティビティを検出することもできます。 ログは S3 と CloudWatch Logs に転送でき、S3 に保管しているログは Athena により検索することもできます。 Athena を利用する場合は、事前に CloudTrail 用のテーブルを作成しておき、検索方法を習熟しておきましょう。 インシデントが発生してから習熟では対応が遅くな

    AWSアカウントを作ったら最初にやるべきこと 〜2021年版〜 #devio2021 | DevelopersIO
  • オリジンを S3 とした CloudFront に対して、存在しないオブジェクトへアクセスした際の HTTP ステータスコードが 403 Forbidden になったときの対処方法 | DevelopersIO

    困っていた内容 オリジンを S3 として CloudFront を使用している。 存在しないオブジェクトにアクセスすると HTTP ステータスコード 403 Forbidden が返ってきてしまう。 これを、HTTP ステータスコード 404 Not Found を返すようにしたい。 どう対応すればいいの? オリジンとして設定している S3 のバケットポリシーに、s3:ListBucket アクションを許可する設定を追加します。 また、Resource 句にバケットのルートを追加します。 設定前 { "Version": "2008-10-17", "Id": "PolicyForCloudFrontPrivateContent", "Statement": [ { "Sid": "1", "Effect": "Allow", "Principal": { "AWS": "arn:aws:

    オリジンを S3 とした CloudFront に対して、存在しないオブジェクトへアクセスした際の HTTP ステータスコードが 403 Forbidden になったときの対処方法 | DevelopersIO
    petitviolet
    petitviolet 2020/05/16
    知りたかったやつ
  • 次世代のデータベース 「EdgeDB」 を試してみる | DevelopersIO

    What is EdgeDB? EdgeDBとは、次世代データベースと言われている新しいデータベースです。 公式サイト曰く、 NoSQLデータベースのシンプルさを持つ リレーショナルモデルの強力なクエリー(EdgeQL)やGraphQLで問い合わせ可能 厳密さ、一貫性、パフォーマンスを兼ね備えている とのことです。 PostgleSQLをベースとして構築されており、データ整合性が保証されていたり、 構造化された複雑なデータを扱うことができたりもします。 また、EdgeDB独自の高度なクエリが使えたりするなど、 NoSQLデータベースとRelationalデータベース両方の特徴をもったデータベースになります。 なお、EdgeDBはApache2ライセンスで開発されており、先日alpha版がリリースされました。 EdgeDB Features 公式では、EdgeDBは下記の特徴を持つと記述して

    次世代のデータベース 「EdgeDB」 を試してみる | DevelopersIO
  • Sangria + Akka HTTPでGraphQL Connection編 | DevelopersIO

    こんにちは、かたいなかです。 前回に引き続き、GraphQLScalaでの実装であるSangriaについて解説していきます。 今回はページネーションを行うAPIを作成する方法について解説します。 Connection 今回はRelayのCursor Connectionという仕様に従ってページネーションを実装します。 まずは今回実装していくAPIを例にConnectionがどのようなものかを見ていきましょう。 クエリおよびレスポンスは以下のような形式です。 edgesやnode,cursorといった見慣れない名前がありますね。 順番に解説します。 クエリの引数 articlesのようなConnection型を返すフィールドはページネーションに関連した引数を取れるようにします。 前方にページを読み進めるための属性 after この引数で指定されたカーソルより後ろの要素を返す。 first

    Sangria + Akka HTTPでGraphQL Connection編 | DevelopersIO
  • Digdag + EmbulkによるTSVファイルのS3→Redshiftロード #digdag | DevelopersIO

    はじめに こんにちは、yokatsukiです。 先日6月18日、第五回ゲームサーバ勉強会に参加してきました。 そこで、トレジャーデータのサポートエンジニアマネージャー高橋様から、直前の6月15日にオープンソース化されたばかりのDigdagの説明がありました。その時の発表スライドは下記です。 Digdagは弊社でも何名かが既に触ってブログで公開(下記)しているので、名前と目的は知ってましたが、説明とデモを見るうちに自分でも試してみたくなりました。 Embulk界隈で話題になっている分散ワークフローエンジン「DigDag」について調べてみた #digdag Treasure Data社のOSSワークフローエンジン『Digdag』を試してみた #digdag|Developers.IO という訳で、簡単ではありますが共有します。 テーブル定義の無いTSVファイルをRedshiftへロードする 通

    Digdag + EmbulkによるTSVファイルのS3→Redshiftロード #digdag | DevelopersIO
  • Digdagのアーキテクチャとコンセプトを理解する #digdag | DevelopersIO

    Treasure Data社によってOSSワークフローエンジン『Digdag』はその発表以後多くの反響を呼び、社内外を含め良く利用されるようになってきていますが個人的には下記の『試してみた』エントリ以降、あまり触って来ていませんでした。ちょっと個人的にも腰を据えて取り掛かってみようかという感じになってきましたので、仕組みや使い方を把握するという意味で一番参考になるであろう公式ドキュメントの一部を読み進めてみた記録をブログエントリとして残しておきたいと思います。 Treasure Data社のOSSワークフローエンジン『Digdag』を試してみた #digdag | Developers.IO Digdagのアーキテクチャ Digdagによるワークフローの自動化 ワークフローを使って、手動で行なっているあらゆる操作を自動化出来ます。一連のタスクを『ワークフロー』として定義し、Digdagを使

    Digdagのアーキテクチャとコンセプトを理解する #digdag | DevelopersIO
  • Akka と Amazon ECS で構築するワーカー基盤:1万件のメッセージを処理させてみた | DevelopersIO

    この記事は Scala Advent Calendar 2016 - Qiita19日目の記事です。私は普段、クラスメソッド株式会社でサーバーサイドエンジニアとして働いています。業務のかたわら、「ScalaAWSを使ってなにができるか」ということを主なテーマにブログを執筆しています:和田祐介 | Developers.IO 今回は、AkkaとAmazon ECSを触ってみたいと思い、実際にワーカーを構築して処理させてみましたので記録を残します。 なにがしたいか ScalaおよびJavaの並列分散処理フレームワークである Akka におけるアプリ実行環境として、Amazon ECSが選択できることを示します。また、ECSのTask数(コンテナ数)によって処理性能がどう変わるか、ひとつの例を出します。どちらも、単純に使ってみたかったというのが動機です。ただ、Akkaは分散環境で動作することを

    Akka と Amazon ECS で構築するワーカー基盤:1万件のメッセージを処理させてみた | DevelopersIO
  • 【Tips】Lambda(Python)でハンドラーのeventを全て辞書型だと思っていたらハマったこと | DevelopersIO

    森永です。 物凄いハマったんですが、解決してみればそこかよという案件です。 Lambda使いこなしている人だとあるあるなのかもしれません。 問題 イベントソースがSNSで起きた事象です。(他のイベントソースでも起こる可能性はあります。) SNSからは以下のようなjsonがイベントとして送られてきます。(かなり端折ってます) いや、送られてくると思ってました。 { "Records": [ { "Sns": { "Timestamp": "2016-11-17T08:34:04.436Z", "Message": { "Trigger": { "Dimensions": [ { "name": "key", "value": "value" } ] } } } } ] } Lambdaのハンドラーにeventというパラメータがあります。 イベントソースから送られてきた情報などが記載されている

    【Tips】Lambda(Python)でハンドラーのeventを全て辞書型だと思っていたらハマったこと | DevelopersIO
  • Play Frameworkアプリの負荷試験を行う前に確認すべきことまとめ | DevelopersIO

    はじめに Play Frameworkを利用してアプリケーションを開発する動機の一つとして「高い負荷に耐えることができる(C10K)」が挙げられます。 しかしながら、たとえPlayを使っていても、チューニングが十分でなければ高いスループットが出るとは限りません。 今回は、300RPS(RPS=リクエスト毎秒)を超えるような負荷をPlayアプリケーションにかける前に確認すべきポイントをいくつかご紹介します。 稿ではPlay Frameworkのバージョン2.4を前提としています。 Playアプリの負荷試験前に確認すべきこと 目次 ExecutionContextが適切に分割されているか 並列実行可能なスレッド数の設定は適切か ログ出力方法は十分考慮されているか (おまけ)Amazon Linuxの設定で配慮すべきもの ExecutionContextが適切に分割されているか Executi

    Play Frameworkアプリの負荷試験を行う前に確認すべきことまとめ | DevelopersIO
  • もっとELB(Elastic Load Balancing)を活用する | DevelopersIO

    みんな大好きElastic Load Balancing(以下ELB)は利用にあたっては細かい仕様に注意する必要があります。 2014年ELBにお世話になった人もそうでない人も2015年はもっとELBを活用するために、改めてELBの仕様や活用方法を振り返ってみましょう。 ※稿の内容の多くは一度でもELBを使ったことがある方を想定しています。 ELBが得意なところ ELBはコスト効果良く高い可用性と拡張性をもつロードバランサーをサービスとして提供してくれるので、最初に利用するロードバランサーとしても、長く使うロードバランサーとしても優秀です。 ELBを活用するためのドキュメントがAWSから公開されています。未読の方は必ず目を通しておきましょう。 Best Practices in Evaluating Elastic Load Balancing ELBが苦手なところ ELBを利用する上で

    もっとELB(Elastic Load Balancing)を活用する | DevelopersIO
  • ScalaMatsuri 2016 一日目 最速レポート【パートA】 | DevelopersIO

    ScalaMatsuri 2016 最速レポート パートA こんにちは!今日は ScalaMatsuri 2016 にやってきました! yad と二人で参加し、並列でたくさんのセッションを拝聴しました。僕がパートA、yad がパートBとして早速レポートします! 上記は ScalaMatsuri 2016 のA会場(400名) です。 目次 Refactoring in Scala (中村 学さん) なぜリアクティブは重要か (岡 雄太さん) リアクティブ・マイクロサービス (Christopher Huntさん) ランチタイムLT (複数名) バッチを Akka Stream で再実装したら 100 倍速くなった話 (根来 和輝さん) sbt-aws-ebプラグインを使って簡単デプロイ (かとじゅんさん) ScalaコードはJVMでどのように表現されているのか (阪田 浩一さん) 実用関

    ScalaMatsuri 2016 一日目 最速レポート【パートA】 | DevelopersIO
  • 【Scala】play-jsonのReads/Writes頻出パターン5選 | DevelopersIO

    はじめに play-jsonはPlay Frameworkに含まれているJSONを取り扱うためのライブラリです。Play Frameworkを利用していないプロジェクトでもplay-jsonをライブラリ依存性に追加すれば利用することができます。 このライブラリは、非常に強力なJSONコンビネータを備えています。Play Frameworkを使っている方にとってはおなじみのReadsWritesFormatですね。 今回は、これらのコンビネータにまつわる頻出パターンを5つほどご紹介します。 目次 前提知識 1. inmapパターン 2. tupledパターン 3. デフォルト値パターン 4. 列挙型パターン 5. 直和型パターン 小休止: ReadsとWritesはどこに置く? 前提知識 家のドキュメントがとても詳細なため、それを一通り読めば基的な使い方がわかります。ですが一応、以下にお

    【Scala】play-jsonのReads/Writes頻出パターン5選 | DevelopersIO
  • HashiCorpの新プロダクトNomadとOttoを触ってみた | DevelopersIO

    ども、大瀧です。 VagrantやTerraformで有名なHashiCorpのカンファレンスイベント、HashiConf 2015が今朝未明からポートランドで開催されています。そこでNomadとOttoという2つの新サービスが発表されました。両方とも発表直後に公開され、試せるようになっているのでサンプルを動かしてみた様子をレポートします。 Nomad by HashiCorp Otto by HashiCorp Nomad NomadはEasily deploy applications at any scaleというリード文からあるように、アプリケーションをデプロイするスケジューラです。あらかじめアプリケーションを実行するホストにエージェントをインストール、アプリケーションをジョブとして設定ファイル(*.nomad)に定義しておき、設定ファイルに従ってジョブを実行します。 デプロイツー

    HashiCorpの新プロダクトNomadとOttoを触ってみた | DevelopersIO
    petitviolet
    petitviolet 2015/09/29
    早すぎるww
  • 【Scala】Future と未来のセカイ | DevelopersIO

    はじめに こんばんは!突然ですが Future 使い倒してますか? Future は、なんか中二病っぽい名前ですが、とっても便利ですよ! 一緒に Scala の Future を散歩してみませんか? なんとなく Future “未来”という文脈 以前、文脈を持った値 についてお話したことがあったと思います。 Future も文脈を持った値です。 Future[A] は 「未来に存在する A という値」*1 という文脈を持っています。 などという小難しいことはとりあえずおいといて、 scala.concurrent.Future の世界を散歩してみましょう。 ブログ記事を取得する関数を作る とりあえず、ブログサイトを作っていることにしましょうか。 findPostById という関数を用意しました。データベースから記事をひっぱってくるイカしたヤツです。 // 記事を取得する def find

    【Scala】Future と未来のセカイ | DevelopersIO
  • 【Scala】flatMap は怖くない! | DevelopersIO

    ここで注意が必要なのは「型引数をとる全てのクラス(全ての総称型) ≠ 文脈付きの値」ということです。型引数をとり、文脈付きの値とはいえないクラスも存在します。 たとえば SeqFactory[A] は、 Seq のサブクラス A を生成するファクトリであり、 文脈付きの値ではありません。もっと身近な例を上げると、わたし達が普段よく目にしている(であろう) Provider[A] や Publisher[A] というインターフェイスも、それぞれ「Aを提供するもの」「Aを発行するもの」という意味であり、Aという値を修飾しているわけではないので文脈付きの値とは呼びません。 文脈付きの値を返す関数 親友検索を考える さて、文脈付きの値がどのようなものかわかってきたところで、実際に文脈付きの値を生成する関数を作ってみましょう。 …などと大げさに言ってみましたが、そんなもの、今までだってたくさん作って

    【Scala】flatMap は怖くない! | DevelopersIO
    petitviolet
    petitviolet 2015/08/12
    友達がひとりもいなければ一番の仲良しも存在しない
  • [イベントレポート] Android オールスターズ #dotsandroid | DevelopersIO

    Android オールスターズ最速レポート公開! こんにちは!Android 大好き横山です。 今回は iOS オールスターズ勉強会に続き、Android オールスターズに参加してきたのでその内容をざくっとまとめて紹介したいと思います。 会場 会場は先日 2015/8/1 よりオープンした イベント&コミュニティスペース dots. イベント情報検索サービス「dots.」に登録している会員であれば、誰でも利用できます。イベント開催時以外にはコワーキングスペースとしても利用できます。 会場についての詳細な情報はこちらをご覧ください。 イベント&コミュニティスペース dots. [レポート]イベントスペース dots. プレオープニングPartyに行ってきました | Developers.IO イベント概要 以前開催した iOS オールスターズ勉強会に続き、今回は日を代表する Android

    [イベントレポート] Android オールスターズ #dotsandroid | DevelopersIO
  • 【Scala】foldとfoldLeftの違いを知る | DevelopersIO

    はじめに こんばんは! 突然ですが、 Scala における fold と foldLeft はほとんど同じものだ!と思っていませんか? また、Scala の Option#fold メソッドを使って、何か不自然に思ったことはありませんか? 先に結論を述べますと、 fold メソッドと foldLeft メソッドは異なります(もちろん foldRight とも違いますよ!)。 「ちょっとだけ挙動に差が…」的な違いではなく、根的に違います。 たまたま、 List#fold と List#foldLeft が(例外的に)似たような定義で、かつ(例外的に)似たような挙動をするため、誤った通説(全てのfold≒foldLeft)があったりなかったりするようです。少なくとも僕は、Scala を書くようになってからある一定の期間、全ての fold と foldLeft は同じものだと考えていました。

    【Scala】foldとfoldLeftの違いを知る | DevelopersIO
    petitviolet
    petitviolet 2015/08/04
    なるほど
  • [Android] OkHTTP + Retrofit + RxAndroid で REST クライアントを実装する | DevelopersIO

    REST 処理を扱いやすく実装する Android の REST クライアントのネットワーク処理と非同期処理について、最近流行っている OkHTTP と Retrofit と RxAndroid の組み合わせを使ってみました。これらはそれぞれ次のような機能を提供するライブラリです。 RxJavaAndroid 版 リアクティブプログラミングを Android で実装するためのライブラリ イベントベースで遅延実行や非同期コールバックなどを実装可能 なお、Retrofit が OkHTTP と RxAndroid の架け橋になってくれるため、組み合わせてシンプルに記述可能になります。 導入 まずはこれら3つのライブラリを Android プロジェクトに導入しましょう。 dependencies { compile 'com.squareup.okhttp:okhttp:2.4.0' co

    [Android] OkHTTP + Retrofit + RxAndroid で REST クライアントを実装する | DevelopersIO
  • [Androidアプリ開発] iOS 7 みたいなスライダーをdrawableで作ってみた | DevelopersIO

    今回は、Android の SeekBar に drawable を設定して、iOS7 の UISlider みたいにしてみようと思います。 iOS7 の UISlider というのは、下の画像のようなものです。 実装 thumb.xml それではつまみの部分から作っていきます。 res/drawable-xxhdpi フォルダに thumb.xml ファイルを新規作成します。 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:top="3dp"> <shape android:shape="oval" > <gradient android:centerColor="#99000000"

    [Androidアプリ開発] iOS 7 みたいなスライダーをdrawableで作ってみた | DevelopersIO
  • 突撃!隣の開発環境 パート1 【Wantedly編】 | DevelopersIO

    こんにちは!おおはしりきたけです。今回は突撃!隣の開発環境というタイトルでイケてる開発会社さんの開発環境についてインタビューさせてもらいました。第1弾として、iOS オールスター勉強会でベストプレゼンターに輝いたWantedlyの杉上さんとRubyエンジニアの森脇さんにお願いしました。Wantedlyさんは既に@yimajoさんがQiitaで連載しているiOSアプリ開発の現場で訊いてみた!シリーズでiOSの開発現場についてのインタビューはされており一部重複してしまっている部分もありますが、ご了承下さい。 突撃!隣の開発環境とは 技術事例やノウハウなどは、ブログや勉強会などで共有されることが多いと思います。しかし、各社の開発環境や開発体制などは意外と共有されていないこと多いと思います。ノウハウの流出になるかもしれませんが、それ以上に、より良い開発を目指している会社さん同士で情報交換を行い、良

    突撃!隣の開発環境 パート1 【Wantedly編】 | DevelopersIO
    petitviolet
    petitviolet 2015/05/12
    Android一人すごい