タグ

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

  • 社内の精鋭たちを集めて3週間でAmazon Goっぽい仕組みを作った | DevelopersIO

    渡辺です。 米中で無人コンビニ沸騰 機動力の良さ日でも - 日経電子版で弊社の取り組みが紹介されました。 筆者が参加した小売り関係者の勉強会では、米中の視察の報告会に加え、アマゾン・ゴーを実際に再現したシステムの体験会があった。 企画した会社は、クラスメソッド(東京・千代田)。アマゾン・ウェブ・サービス(AWS)で国内有数の実績をもつシステム会社で、なんと3週間で疑似的な体験システムを完成させた。 日は、こちらの記事で紹介されたAmazon Goの再現システム(以下、Yokota de Go)について、技術的な部分を紹介します。 なお、このエントリーは、上記2018年7月のデモ時点の実装に基づきます。 また、3週間程度で、試行錯誤しながら、実験をしている段階であることをご理解ください。 Amazon Goに関しては、Amazon Go体験ツアーを参照ください。 発端 ある日、ボスが「A

    社内の精鋭たちを集めて3週間でAmazon Goっぽい仕組みを作った | DevelopersIO
    michael26
    michael26 2018/08/02
  • [新機能]Auto Scalingにスケールインを防止するオプション付与できるようになりました! | DevelopersIO

    AutoScalingの新機能発表 AWS AutoScalingでは、負荷状況や時間に応じてEC2インスタンスを自動的に起動・停止することができます。AutoScalingに日新しい機能が追加されました。「Protect Instances from Termination by Auto Scaling」というタイトルで発表されています。 AutoScalingを利用したことがある方なら心当たりあるかと思いますが、AWSのAuto Scalingでは、スケールイン時にEC2インスタンスが自動的に、そして強制的にTerminateされます。Terminate対象のインスタンスで何か処理が行われていたとしても、スケールインのタイミングでぶった切られて強制的にシャットダウンがかかってしまいます。 *1 今回のアップデートでは、AutoScaling Groupに対してスケールインを防ぐこと

    [新機能]Auto Scalingにスケールインを防止するオプション付与できるようになりました! | DevelopersIO
    michael26
    michael26 2018/07/23
  • インフラエンジニアが一切コードを書かずにWebサーバーに認証機能を実装した話 | Developers.IO

    コンニチハ、千葉です。 AWSのサービスを組み合わせれば、独自の認証基盤を構築できます。例えば、WordPressを限定的に公開する、Apache、 Nginx、カスタムWebアプリなどなど、簡単に認証をかけたい場合、ベーシック認証は昔から利用されてきました。ただし、これはスケーラビリティや運用面でどうしてもつらい場面がでてきます。 そこで、ALBに素敵すぎる組み込みの認証機能が追加されたのでこちらを利用し、コードを一切書かずに認証を導入します。また、OIDCなど認証プロトコルに対応していますが、今回はシンプルにCognitoのユーザープールを利用し、ユーザー管理自体もCognitoに任せます。 要件 今回の想定する要件です。 Nginxを社内ユーザーのみに公開 スタンドアローンのユーザープールを用意(AD、OICD、SAMLなどによる連携なしで、独自でユーザーを管理) ユーザーは管理者が

    インフラエンジニアが一切コードを書かずにWebサーバーに認証機能を実装した話 | Developers.IO
    michael26
    michael26 2018/07/11
  • AWS Fargateが東京リージョンに対応しました! | DevelopersIO

    AWS Fargateが東京リージョンに対応! Dockerコンテナを直接起動できるサービスであるAWS Fargateが東京リージョンに対応しました! 東京リージョンでも、EC2インスタンスを意識する必要なくDockerコンテナを起動することができるようになりました。 AWS Summitで7月に対応することがアナウンスされていましたが、第一週での対応となりました。 【日のコンテナファン熱望】AWS Fargateの東京リージョン対応予定がアナウンスされました!#AWSSummit 東京で起動させてみた 簡単ですが試してみました。AWS Fargateはチュートリアルに沿って簡単に構築できます。 今回はチュートリアルのうち、nginxで試しました。下図をみて分かる通り、東京リージョンでFargateが選択できています。 適当にALB(Application Load Balancer)

    AWS Fargateが東京リージョンに対応しました! | DevelopersIO
    michael26
    michael26 2018/07/04
  • [速報] ACID トランザクションをサポート! MongoDB 4.0 がリリースされました! #MDBW18 | DevelopersIO

    こんにちは、菊池です。 MongoDB使いのみなさん、ニュースです。現地時間の2018年6月26、27日、アメリカ・ニューヨークでは MongoDB のカンファレンス、MongoDB World'18 が開催されています。 そんな中、現在開催されいてるキーノートで、MongoDBの新しいメジャーバージョンである、4.0 の正式リリースが発表されました。 Release Notes for MongoDB 4.0 MongoDB 4.0 の目玉は、以前よりアナウンスされていたマルチドキュメントトランザクションのサポートです。 MongoDB 4.0 では複数ドキュメントの ACID トランザクションがサポートされます 記事では、マルチドキュメントトランザクションについてリリースノート、ドキュメントからわかる内容を紹介します。 Transactions | MongoDB Documenta

    [速報] ACID トランザクションをサポート! MongoDB 4.0 がリリースされました! #MDBW18 | DevelopersIO
    michael26
    michael26 2018/06/28
  • 運用担当者のためのAWS改善マップ | DevelopersIO

    Trusted Advisor AWS Trusted Advisorは、コスト、パフォーマンス、セキュリティ、耐障害性、サービスの制限について、アドバイスしてくれるサービスです。 サポートプランによって、チェック項目が異なります。 セキュリティについては、セキュリティグループの無制限アクセス、S3バケット許可などをチェックしてくれます。 セキュリティについては、赤の指摘項目は0にしましょう。 insightwatch insightwatchは、弊社が提供するサービスです。 AWSアカウントが、ガイドラインに沿ったセキュリティのベストプラクティスで運用されているかチェックします。 複数アカウントをチェックしやすいため、たくさんのアカウントを運用されているかたに特にお勧めします。 どなたでも無料でご利用いただけます。 IAMの見直し、定義 IAM のベストプラクティスに基づいた見直しを行い

    運用担当者のためのAWS改善マップ | DevelopersIO
    michael26
    michael26 2018/06/27
  • Redisのsetnxを使ってマルチサーバ環境での Web API ロック機構を実現する | DevelopersIO

    「これ、同時にリクエスト飛んできた場合って、どうなるの?」 「2つ登録されちゃいますね…」 はじめに Web APIは、リクエストを受け、処理を終えた後レスポンスを返します。モバイルアプリやウェブアプリとセットで開発しているとつい忘れがちになってしまいますが、同時に同じリクエストが飛んできた場合にどういう挙動をするか ということは常に考慮しておかなくてはなりません。「UI上同時にリクエストが送れないから問題なし」では Web APIの設計が不十分です。別の端末から同時に同じリクエストを送ることも可能ですので、UIとは切り離して考えるべきです。 さて、この状況、GETリクエストについては大きな問題にはならないでしょう。いくらリクエストが来てもサーバ側の状態に変化はないので、負荷対策だけしておけば大丈夫そうです。問題はPUTリクエストやPOSTリクエストといった、サーバ側のリソースに変化を及ぼ

    Redisのsetnxを使ってマルチサーバ環境での Web API ロック機構を実現する | DevelopersIO
    michael26
    michael26 2018/06/04
  • Rustの開発環境セットアップ | DevelopersIO

    はじめに 前回の投稿でレポートしたRustの開発環境を構築してみます。とても手軽なのでRustが気になっている方はぜひお試しください。 検証環境 macOS: 10.12.6 Command Line Tools for Xcode: 9.2.0.0.1.1510905681 rustup: 1.11.0 (e751ff9f8 2018-02-13) Rust: 1.24.1 rustupとは? Rustプロジェクトが公式に提供しているインストーラーです。 rustup コマンドでRustのコンパイルに必要なツールチェーンやクロスコンパイル環境を構築できるようになります。 rustupをインストール まず、rustupの公式サイトにアクセスしましょう。 rustup.rs - The Rust toolchain installer 手元で試したところ、環境によって表示内容が変わるようです

    Rustの開発環境セットアップ | DevelopersIO
    michael26
    michael26 2018/03/03
  • OSXのコマンドライン通知ツール「Alerter」のご紹介 | DevelopersIO

    メールやチャットなど色々なところに通知が飛びます。 例えば会議が始まる前にチャットに通知したり、CircleCIがビルドを完了したらメールに通知したりしていますが、どちらも私が見に行かないといけません。 チャットを全然気にしていないタイミングで会議が始まったら通知を逃し、会議に行けない(遅れる)、といった結果が想定されます。 OSの機能で通知することで、私が気づく確率が上がるのではないかと思い調べていたところ見つけたのが今回紹介するAlerterです。 Alerter Alerter/Send User Alert Notification on Mac OS X 10.8 from the command-line. alerter is a command-line tool to send Mac OS X User Alerts (Notifications), which are

    OSXのコマンドライン通知ツール「Alerter」のご紹介 | DevelopersIO
    michael26
    michael26 2017/12/25
  • GitHubのチームディスカッション機能のご紹介 | DevelopersIO

    最近日々のタスクをこなす上で、「議論をどこで行うべきか」について考えることが多いです。 チャット 口頭 GitHubのIssue GitHubのPR など、色々な手段がありますが、内容的にここで議論して問題ないか?結論をどこで管理すべきか?経緯を記録すべきか?など考えることは色々あります。 GitHubのチームディスカッション機能が議論の場所として検討できるケースがそれなりにあるような気がしたので、機能について紹介します。 チームディスカッション機能 大雑把に言えばGitHubのTeam内で議論をするための機能です。 個人的には「リポジトリに紐づかないゆるいIssue(的なもの)」を「軽く」使うための機能でしょうか。 Issueよりも、「テーマを設定できるチャット」という理解の方が正しいかもしれません。 特定のプロジェクトではなくチームとして発生する問題や提案に対する議論の場として良さそう

    GitHubのチームディスカッション機能のご紹介 | DevelopersIO
    michael26
    michael26 2017/12/23
  • DockerでRailsの開発環境を構築する | DevelopersIO

    モバイルアプリサービス部の五十嵐です。 先日、あるRailsアプリケーションの開発環境を同僚のマシンに作成しようとしたところ、gemのインストールに1日かかってしまいました。環境構築は手順化されていたのですが、トラブったのは主にNative Moduleを利用する libv8 、 therubyracer 、 rmagick などのおなじみの面々です。手順を作った時は、これらのgemのインストールに必要なライブラリを brew install で最新バージョンをインストールするだけでよかったのですが、時が経ちライブラリの最新バージョンが更新されていたことが主な原因でした。この状況はいかんな〜と思い、Railsアプリケーションの開発環境もDockerにすることにしました。 記事では、Railsアプリケーションの開発環境をDockerにするときに検討したことや問題点などを書いています。なお、

    DockerでRailsの開発環境を構築する | DevelopersIO
    michael26
    michael26 2017/11/02
  • [小ネタ] mkdir したディレクトリに cd する方法 9 選 +1 (BASH) ※追記あり | DevelopersIO

    $ mkdir /very/_very/Very-long/directory_name/20170915 なんて操作をしたあと、そのディレクトリにcdしたい場合ってまれによくありますよね。 どんなやり方があるか考えてみました。 1. コピペする そのまんまですが、これをやりたくなくてこの blog を書いてます。 2. TAB 補完で頑張る これも無いわけではないですが、間違えたりすることを考えると正直あんまりやりたくないです。 3. 上矢印キーで前コマンドを呼び出し、右矢印キーで先頭に戻ってmkdirをcdに書き直す よく見る方法ですが、もうすこし少ない手数でできないでしょうか。 4. 上矢印キーで前コマンドを呼び出し、Ctrl-Aで先頭に戻ってCtrl-Dx5 のあとにcd BASH のキーバインドはデフォルトだと emacs モードなので、このやり方が出来ます。 でもまだちょっと手

    [小ネタ] mkdir したディレクトリに cd する方法 9 選 +1 (BASH) ※追記あり | DevelopersIO
    michael26
    michael26 2017/09/16
  • Route 53 が CAA レコードに対応しました! | DevelopersIO

    日(現地時間 8/21)、Route 53 が CAA レコードに対応しました。 Amazon Route 53 now supports CAA records CAA Format - Supported DNS Record Types - Amazon Route 53 さっそくマネジメントコンソールから設定できるようになっているわけですが、その前に CAA レコードについて少し解説します。 CAA (Certification Authority Authorization) レコード ひとことで言うと、 「このドメインに関する証明書(SSL, TLS)を発行できる認証局(CA) を指定する」ためのレコードです。 例えばこのレコードに「認証局 A しか発行してはならない」と記述した場合は、認証局 B はたとえリクエストがあったとしても証明書を発行しません。 勝手に他人のドメイン

    Route 53 が CAA レコードに対応しました! | DevelopersIO
    michael26
    michael26 2017/08/23
  • Webページにチャット機能を簡単に導入できるSmallchatを試してみた #Slack | DevelopersIO

    どうも!西村祐二@大阪です。 今回はWebページに簡単にチャット機能を追加できる「Smallchat」というサービスを紹介したいと思います。 このサービスのいいところはWebページ上のチャットとSlackが連携できるところです。 通常だとチャット機能の開発コストや運用コストがかかり大変ですが、 このサービスは出力されたJavascriptのタグをWebページに埋め込むだけで簡単にチャット機能の導入ができます。 さっそくSmallchatを使ってみましょう! 事前準備 Slackを利用するためSlackのアカウント、Slackのチームの準備をおねがいします。 Slackのサイト SmallchatとSlackを連携 ▼こちらよりSmallchatのサイトにアクセスし「Add to Slack」をクリックします。 ▼「Authorize」のボタンをクリックして権限を付与します。 ▼Webサイト

    Webページにチャット機能を簡単に導入できるSmallchatを試してみた #Slack | DevelopersIO
    michael26
    michael26 2017/08/11
  • CloudFrontで「Forward Cookies」を「All」にしている時に注意すべき点 | DevelopersIO

    菅野です。 先日、CloudFront経由でウェブページにアクセスした時に常に「X-Cache: Miss from cloudfront」となるので調査したところ、CloudFrontの「Behavior」の「Forward Cookies」が「All」になっている事が原因でした。 今回はなぜ「All」だとキャッシュが使われなかったのか、CloudFrontにおけるcookieの注意点について書こうと思います。 webページを準備 EC2インスタンスを立ち上げ、apacheとphpをインストールします。 /var/www/html/index.phpを作成し、内容は以下にします。 GoogleAnalyticsもcookieを使うので検証の為に埋めました。 <?php setcookie( "cookie01", "value01" ); // setcookie( "cookie02"

    CloudFrontで「Forward Cookies」を「All」にしている時に注意すべき点 | DevelopersIO
    michael26
    michael26 2017/07/14
  • Amazon RDS for MySQL と全文検索 | DevelopersIO

    こんにちは、藤です。 先日開催された Developers.IO 2017 で「Amazon Elasticsearch Service の使いドコロ」というタイトルで登壇しました。 Developers.IO 2017セッション「Amazon Elasticsearch Service の使いドコロ」で話しました #cmdevio2017 資料を作成する中で MySQL 5.7 から追加された全文検索の日語対応に関して調べました。せっかくなのでまとめた内容をブログに書き出すとともに、RDS だとどこまでできるのかということを追加調査してみました。 MySQL 5.7 の日語全文検索に関しては公式ドキュメントや、Oracle の方のスライドに詳しく説明されていますので、詳しく知りたい方は下記をご参照ください。 12.9 Full-Text Search Functions MySQL

    Amazon RDS for MySQL と全文検索 | DevelopersIO
    michael26
    michael26 2017/07/10
  • Amazon Route 53のALIASレコード利用のススメ | DevelopersIO

    よく訓練されたアップル信者、都元です。 Amazon Route 53は、AWSが提供するDNSサービスです。通常、ドメインを取得すると、ドメインレジストラからDNSがサービスで提供されることが多いと思います。費用は大抵ドメイン代に含まれていて、追加費用は無いことが多いです。しかしAWSで利用するドメインは、下記のような理由から、ドメインのオマケで付いてくるDNSではなく、Route 53を利用するメリットが大いにあります。 無料じゃないとは言え、とにかく安い。Route 53のコストが月10ドル超えるような人気サービスを作れたら勝ち組です。 プログラマブルである。レコードの定義と書き換えをスクリプトで実行できる。デプロイの自動化に寄与。 CloudFormationからレコードの定義と書き換えができる。まぁ↑とほぼ同じことを言ってますが。 SLAは100%(!?) ELB, CloudF

    Amazon Route 53のALIASレコード利用のススメ | DevelopersIO
    michael26
    michael26 2017/07/10
  • CloudFront + S3 によるCDN (Cache Distribution パターン) 構築手順 | DevelopersIO

    渡辺です。 4月でも札幌は雪が降りますが、異常気象でもなんでもなく平常運転です。 今日は、いわゆるCache Distribution パターンでのCDN構築手順をまとめておきます。 CloudFrontの細かい設定は行いません。 S3を静的サイトホスティングで公開し、CloudFrontをキャッシュサーバとして設定し、独自ドメインで公開します。 構築手順 構築は以下の手順で行います。 S3バケットを作成し、静的サイトホスティングで公開する CloudFrontを作成し、オリジンにS3バケットを設定し、代替ドメインを設定する Route53に代替ドメインのCNAMEレコードを追加する S3バケットの設定 S3バケットを作成し、静的サイトホスティングで公開します。 S3バケット名は、最終的に公開するドメインとするのが無難でしょう(例: cdn.example.com)。 バケットを作成したな

    CloudFront + S3 によるCDN (Cache Distribution パターン) 構築手順 | DevelopersIO
    michael26
    michael26 2017/07/10
  • 【朗報】Terraform v0.7.0 から既存リソースをインポートする機能が追加されます! | DevelopersIO

    はじめに こんにちは、中山です。 次回リリースバージョンであるTerraformのv0.7.0にはいろいろと大きな変更点があります。エントリでは変更点の内インパクトの大きい import サブコマンドについてご紹介します。 import サブコマンドとは何か ドキュメントから引用します。 Terraform is able to import existing infrastructure. This allows you take resources you've created by some other means and bring it under Terraform management. つまりTerraform以外で作成したAWSなどのresourceをTerraform管理下にすることができる機能です。すばらしい。ただし、v.0.7.0時点では以下の文章に書かれているよ

    【朗報】Terraform v0.7.0 から既存リソースをインポートする機能が追加されます! | DevelopersIO
    michael26
    michael26 2017/07/06
  • オンプレからAWS環境にデータベース移行するのに役立つ情報まとめ | DevelopersIO

    西澤です。先日"AWS環境へのデータ移行"をテーマに社内で営業向け勉強会を行ったのですが、自分が1から資料を作るよりもずっと有用な公開資料がたくさんあったので、それらを使って説明をさせてもらいました。当日メンバーから出た質問等も補足しながら、今回はその情報をこちらにまとめておきたいと思います。 前提 タイトルではデータベース移行としていますが、こちらではRDBの移行のみを対象とします。AWSの各種サービスの詳しい説明は行いません。それらを組み合わせて利用する際に必要となる情報をまとめたいと思います。また、これからご紹介する資料の中には重複する部分も含まれるのですが、私が個人的によくまとまっているというところをピックアップしてご紹介して行こうと思います。 AWSへのデータ転送方法のまとめ まずは、データファイルの転送方法のまとめです。いつの間にかできていた下記ページが非常にわかりやすくまとま

    オンプレからAWS環境にデータベース移行するのに役立つ情報まとめ | DevelopersIO
    michael26
    michael26 2017/06/25