タグ

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

  • Ansible実践入門 | DevelopersIO

    渡辺です。 最近、Ansibleに関する書籍が増えてきていますね。 とはいえ、ほとんどは入門的な位置付けで、それはそれで需要があるんですが、実践レベルで使いこなすノウハウは少ないというのが現実かと思います。 この辺り、まだ試行錯誤を繰り返しているところも多いでしょう。 そこで、ノウハウをガンガン流出させるクラスメソッドなので、ベストプラクティスみたいなものをまとめちゃいました。 Ansibleとは? 雑な言い方をすれば、SSH接続したリモートホストでミドルウェアのインストールや設定ファイルの更新を行うツールです。 カテゴリとしては構成管理ツールに分類されます。 SSH接続が可能であれば、リモートホスト側にエージェントのインストールが不要である点は大きな特徴です。 Playbookにサーバの状態を定義する AnsibleのPlaybookは、リモートホストの状態を定義したファイルです。 構成

    Ansible実践入門 | DevelopersIO
  • 【CloudFormation入門】5分と6行で始めるAWS CloudFormationテンプレートによるインフラ構築 | DevelopersIO

    「設定ファイルでインフラ構築とか、オシャレだよね〜」 AWSの構築をオートメーション化するサービスの代表格である、AWS CloudFormation。 AWSに普段から触れている方であれば、なんとなくはその存在を知りつつも、「設定ファイルとか、300行ぐらい書くのでは?」「余計めんどくさそう」「覚えること多そう」なんて敬遠している人も多いかと思います。 というか、自分も昔はそうでした。 この記事ではそんな方に向けて「5分と6行で始めるCloudFormationテンプレートによるインフラ構築」と題して、yamlファイルを利用したCloudFormationによるインフラ構築の手順や、設定ファイルの書き方、拡張の仕方などの超基的な部分を解説します。 これをきっかけに、膨大な仕様をもつ奥深く趣深いCloudFormationワールドに足を踏み入れていただける方が少しでも増えれば、筆者として

    【CloudFormation入門】5分と6行で始めるAWS CloudFormationテンプレートによるインフラ構築 | DevelopersIO
    shiba_yu36
    shiba_yu36 2018/04/10
    良い資料
  • 管理職のためのエンジニア組織構築マニュアル | DevelopersIO

    はじめに クラスメソッド株式会社 AWS事業部長の佐々木です。 私は前職で創業メンバーの1人としてビジネスを立ち上げた後、エンジニアとして実業務に携わりながら、統括マネージャーとして50人規模のエンジニア組織を構築しました。 また2014年にAWSエンジニアとしてクラスメソッドに入社し、2015年7月よりAWS事業部の部長に就任。事業は順調に拡大しており、2015年と比較して組織も2倍以上に大きくなりました。これは優秀な仲間に恵まれたのはもちろんのこと、組織設計と構築プランが功を奏したことも一因だと感じています。 そこで、私がこれまでに培ってきた経験から得たエンジニア組織の構築の仕方をお伝えしたいと思います。 エンジニア組織構築マニュアル 骨子を定義する これはエンジニア組織に限りませんが、組織には3つの骨子が必要です。 ポリシー ビジョン ターゲット ポリシーは、その組織が最もこだわる一

    管理職のためのエンジニア組織構築マニュアル | DevelopersIO
  • [AWS]EC2へのsshアクセスを少し楽にする[ec2-ssh] | DevelopersIO

    EC2でsshアクセスはよく使います 最近、仕事でEC2を使用する機会が非常にふえました。EC2にsshログインして作業をすることもよくあるのですが、 インスタンス数の増加にしたがって、EC2のホスト名を管理するのも面倒になってきます。 通常、ホスト名管理が面倒な場合はconfigファイルに次のようにホスト名の別名を定義すれば楽です。 #~/.ssh/config Host sample-host Hostname ec2-xxx-xxx-xxx-xxx.amazonaws.com 上記configがあれば、下記のようにEC2へsshログイン可能です。 % ssh -i <キーファイル> ec2-user@sample-host しかし、インスタンスを起動したり消したりしていると、当然ながらec2-xxx〜なホスト名は変わってしまいます。 EIPを使えば固定しておけますが、開発の時やAut

  • 【Scala】列挙型を使おう | DevelopersIO

    はじめに 列挙型(Java の enum)を使いたいなあ。あれ、でも enum キーワードが無いみたいだぞ。 Scala を使いはじめた Java プログラマにとってはあるあるだとおもいます。 Scala で列挙型を表現する方法には、大きく分けて シールドクラス と Enumeration の二種類があります。字面だけを見ると Enumeration に飛びつきたくなりますが、一般的な用途には シールドクラス が多く使われます。今回はこのシールドクラスを使って列挙型を表現する方法を探っていきましょう。 目次 シールドクラスを使ってみよう sealed / case object による列挙型 値を持った列挙型 まとめ シールドクラスを使ってみよう シールドクラス は、次のように定義します。 sealed abstract class Idol sealed 修飾子がつけられたクラスは、同一

    【Scala】列挙型を使おう | DevelopersIO
  • 画面上の任意のポイントにカーソル移動するパッケージ avy.el のご紹介 | DevelopersIO

    カーソルのダイレクト移動 Emacs のパッケージ avy.el を利用すれば、画面内の任意のポイントへダイレクトにカーソルを移動することができます。 実行例 以下は avy 実行時の様子です。 49 行目にカーソルがある状態で、53 行目の self の前にジャンプしています。 私は以下のように avy-goto-char-timer というコマンドを Control + Meta + ; に割り当てています。 (global-set-key (kbd "C-M-;") 'avy-goto-char-timer) これを実行すると avy は一定時間(デフォルトで 0.5 秒)文字の入力を受け付け、タイムアウトとなるまで入力された文字列でバッファ内を検索します。 文字列がマッチした箇所には ヒント が表示され、そのヒント文字列を入力すると、その場所にカーソルが移動します。 上の例では入力

    画面上の任意のポイントにカーソル移動するパッケージ avy.el のご紹介 | DevelopersIO
    shiba_yu36
    shiba_yu36 2017/04/11
    便利
  • [アンコール] エンジニアのためのブログ講座で講師をさせていただきました! #blog_engineer | DevelopersIO

    はじめに おばんです、けものフレンズ最終話が良すぎて、「よかった」という語彙力のない感想しか出てこなくなってしまった田中です。 今回はサポーターズ様で開催されたエンジニアのためのブログ講座というイベントでアンコールで講師をさせていただきましたので、その報告と振り返りなどをしていこうと思います。 発表内容 発表内容に関することは前回のレポートブログにまとめてあります。今回は前回のスライド内容を分類し直したり、まとめ直して発表を行いましたので前回の内容と若干差分があります。 まとめ・感想 ブログを書く上で気になることとして、プラットフォームの使い分けであったり、実名公開やマサカリに関する質問が多かった印象でした。前回開催と比較して、同じ部分への質問が多かったので人が気になるところがわかってよかったです。 前回のスライドを改良し、言いたいことをさらに精度を増して喋ることができたようでうれしかった

    [アンコール] エンジニアのためのブログ講座で講師をさせていただきました! #blog_engineer | DevelopersIO
  • Elasticsearch 1.0.0 released! なのでSnapshot/Restore on S3をやってみた | DevelopersIO

    $ curl -XPUT 'http://localhost:9200/_snapshot/my_backup' -d '{ > "type": "fs", > "settings": { > "location": "/mnt/backup/my_backup", > "compress": true > } > }' {"acknowledged":true} 設定値を確認します。 $ curl -XGET 'http://localhost:9200/_snapshot/my_backup?pretty' { "my_backup" : { "type" : "fs", "settings" : { "compress" : "true", "location" : "/mnt/backup/my_backup" } } } スナップショットの取得 それでは実際にスナップショットを取

    Elasticsearch 1.0.0 released! なのでSnapshot/Restore on S3をやってみた | DevelopersIO
  • 第6回 Elasticsearch 入門 基本コンセプトを理解する | DevelopersIO

    これまでの記事でも Cluster や Node を始めとする Elasticsearch を構成する要素について触れているのですが、 文章だけでは理解しづらいところもあるので、今回は改めて Elasticsearch の基コンセプトについて図も交えて解説したいと思います。 それではさっそく。 Cluster は Node の集合 Cluster は 1つ以上の Node (Elasticsearch Server) で構成されます。Elasticsearch は検索トラフィックの増加とデータ量や書き込み速度の分散を Node を増やすことで対応することができます。 Index は RDBDatabase に近い概念 Elasticsearch の Index は、リレーショナル・データベースの Database に相当します。1つの Cluster に複数の Index を作成す

    第6回 Elasticsearch 入門 基本コンセプトを理解する | DevelopersIO
  • Elasticsearch入門 | シリーズ | Developers.IO

    Elasticsearch入門 シリーズ 第8回 Elasticsearch 入門 API の使い方をハンズオンで理解する 〜後編〜 ElasticsearchElastic特集 記事 2016年06月15日 木戸 国彦 33 第8回 Elasticsearch 入門 API の使い方をハンズオンで理解する 〜後編〜 前回に引き続き、今回もハンズオンです。後編では、仮想 Classmethod 社の社員情報をサンプルデータとして用意しました(※ […]

    Elasticsearch入門 | シリーズ | Developers.IO
  • 第1回 Elastisearch 入門 インデックスを設計する際に知っておくべき事 | DevelopersIO

    今回、第1回目の Elasticsearch 入門という事で、今回は「インデックスを設計する際に知っておくべき事」というテーマにしてみました。ここでのインデックスの設計とは RDB のデータベースとかテーブル、ビューの設計に当たるところです。 Elasticsearch は RDB など他のデータベスに比べ、その設計方法も結構独特です。(と言うか同じ事を実現するにしても色々な方法が用意されていて、さらにアプリケーション要件〜システムアーキテクチャ、運用面など広い範囲が関わってくる)RDB との比較も交え解説していきます。 Index で分けるか? Type で分けるか? 例えば、商品情報を保存するインデックスの設計を考えてみましょう。いわゆるRDBの設計で言うところのテーブル設計ですね。おそらくRDBではアプリケーション要件のみが、その設計の中心になるはずです。例えば、商品名や説明、価格情

    第1回 Elastisearch 入門 インデックスを設計する際に知っておくべき事 | DevelopersIO
  • 第2回 Elasticsearch 入門 データスキーマ設計のいろは | DevelopersIO

    第2回目の Elasticsearch 入門は「データスキーマ設計のいろは」です。 設計と言うほどでもないのですが、例えば RDB で検索にフォーカスした設計や、他の検索エンジンも経験していると、これまでの制限や習慣で Elasticsearch の特徴を生かせない設計をしてしまう事があるので、このテーマにしてみました。 それではインデックスするためのデータ構造を Elasticsearch でどのように設計するのか解説したいと思います。 設計フローまで変えてしまう画期的なドキュメント指向型検索エンジン Elastic 社のホームページを見てみると Elasticsearch の特徴の1つとして「Document-Oriented」と言う記載があります。直訳すると「ドキュメント指向」です。 簡単に説明すると 現実世界の複雑なデータをJSONドキュメントにしてインデックスするだけで、デフォル

    第2回 Elasticsearch 入門 データスキーマ設計のいろは | DevelopersIO
  • エンジニアのための無料で使えるドローイングツールまとめ | DevelopersIO

    今回は、ローチャート、UML、システム構成図、などなどなど、 エンジニアがよく使いそうな図を書くためのツールを紹介したいと思います。 無料でMac/Windowsの両OSで使えるという条件でチョイスしてみました。 (あ、タイトルには「エンジニアのための」と書きましたが、今回紹介するのは別にエンジニア専用のツールではないです(念の為)) 汎用的 とりあえず、色々な図が書けそうなツール Cacoo 【URL】 https://cacoo.com 【特徴】 無料版では25シートまで 無料版での書き出しはPNGのみ だいたい何でも書ける 複数人でチャットしながら1つの図を作成出来る 【メモ】 特に有料版は高機能だと思う 会社で有料アカウントに入っているのであれば、このツールを使う選択肢で良いと思う draw.io 【URL】 https://www.draw.io/ 【特徴】 とりあえず会員登録し

    エンジニアのための無料で使えるドローイングツールまとめ | DevelopersIO
  • よくわかる認証と認可 | DevelopersIO

    よく訓練されたアップル信者、都元です。「認証 認可」でググると保育園の話が山程出て来ます。が、今日は保育園の話ではありません。そちらを期待した方はごめんなさい。こちらからお帰りください。 さて、先日のDevelopers.IO 2016において、マイクロWebアプリケーションというテーマでお話させて頂きました。一言で言うと OAuth 2.0 と OpenID Connect 1.0 のお話だったのですが、これらを理解するにあたっては「認証」と「認可」をはっきりと別のものとしてクッキリと認識する必要があります。 まず、ざっくりとした理解 認証と認可は密接に絡み合っている一方で全く別の概念です。正直、理解は簡単ではないと思います。 まず「認証」は英語では Authentication と言います。長いので略して AuthN と書いたりすることもあります。意味としては 通信の相手が誰(何)であ

    よくわかる認証と認可 | DevelopersIO
  • 【Scala】flatMap は怖くない! | DevelopersIO

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

    【Scala】flatMap は怖くない! | DevelopersIO
  • javascriptのテストのはなし:Sinon.JS(その1) | DevelopersIO

    QUnitについてある程度分かった所で、今回はSinon.JSというライブラリを紹介します。 Sinon.JSをテストフレームワークと合わせて使う事で様々なテストができる様になります。特定のテストフレームワークには依存していないのでQUnit以外でも使えます。Sinon.JSのサイトに行けばいくつかのテストフレームワークのアダプタがあります。 Sinon.JSにはいくつかの機能があるので順に紹介します。今回はSpyとStubとMockの3つについてです。テストフレームワークにはQUnitを使っています。 準備 題に入る前に、準備です。Sinon.JSのライブラリをhttp://sinonjs.org/からダウンロードして適当な位置に配置して、テストで使うhtmlにロードしておきます。 Spy Spyは、メソッドが呼ばれた時の引数や戻り値、エラーなどを監視する事ができます。 これはSino

    javascriptのテストのはなし:Sinon.JS(その1) | DevelopersIO
  • Amazon Route 53でドメインを購入する | DevelopersIO

    ども、大瀧です。 昨日、Amazon Route 53の大規模アップデートがあり、以下2つの新機能と値下げが発表されました。 ドメイン登録(Gandi SASとの提携)・管理機能の追加 地理情報によるレスポンス機能の追加 問い合わせ課金の20%値下げ こちらの記事では、ドメイン登録機能について概要と手順をご紹介します。 概要 従来、Route 53を利用するためには事前にレジストラで用意する必要がありました。今回のアップデートでRoute 53の管理画面およびAPIでドメインが購入/移管できるようになりましたので、ドメインの手配からDNSレコードの設定までのDNSの一連の管理をRoute 53がワンストップで提供できるようになりました。 登録手順 では、登録手順を追って行きます。まずはAWS Management ConsoleでRoute 53の管理画面を表示します。今回のアップデート

    Amazon Route 53でドメインを購入する | DevelopersIO
  • Amazon SNSメッセージの電子署名検証の重要性 | DevelopersIO

    よく訓練されたアップル信者、都元です。AWSにおける Publisher / Subscriber モデルの通知 (Notification) インフラサービスとして、Amazon Simple Notification Service (SNS) があることは皆さんご存知かと思います。 SNSに対してPublisherから送信されたメッセージは、Subscriberに配信されます。Subscriberのプロトコルにはいくつかの種類があります。要するに、どのような仕組みでメッセージを受け取るのか、です。最も分かりやすいのは「Email」で、これはメッセージをメールとして受信します。その他、Amazon SQSのキューがenqueueオペレーションとして受け取ったり、HTTP/HTTPSサーバがPOSTリクエストとして受け取るような仕組みも用意されています。また、下図のように、1つのトピック

    Amazon SNSメッセージの電子署名検証の重要性 | DevelopersIO
  • Amazon API Gateway Swagger ImporterでAPIを一発で定義する | DevelopersIO

    ども、大瀧です。 Amazon API Gateway、皆さん触ってますか?APIサーバーに関する様々な機能があって便利ですが、Management ConsoleでのAPI定義や設定が煩わしいと感じる方もいると思います。そこで今回は、Amazon API Gateway Swagger Importerを利用してAPI定義を一括でやってみたいと思います。 セットアップ 動作確認環境 OS : Mac OS X Yosemite AWS CLI : 1.7.39 Mavenを利用するために、HomebrewでJavaと一緒にインストールしておきます。 $ brew install Caskroom/cask/java $ brew install maven 続いて、GitHubリポジトリをCloneし、README.mdに従いMavenを実行します。 $ git clone https:

    Amazon API Gateway Swagger ImporterでAPIを一発で定義する | DevelopersIO
  • Amazon S3 の結果整合性と読み取り一貫性 | DevelopersIO

    2015/2/23、「書き込み後の読み込み」整合性について更新しました。 Amazon S3 の使いどころ 前回の記事では、Amazon S3 でホームページが作れるという記事を書きましたが、それならファイルのステータスを使ってトランザクション処理にも使えるのでは?と思う方が100人中2人ぐらいいらっしゃるのではないでしょうか。 答えから言いますと、Amazon S3 ではトランザクションの制御はできません。トランザクションを実現するためには、SimpleDBを使う必要があります。(正確には、SimpleDBであるモードに設定する) それでは、Amazon S3 はどのような考え方でインターネットストレージを実現しているのか解説します。 読み取り一貫性 Amazon S3 の特性を理解するために、読み取り一貫性についてご紹介します。読み取り一貫性は、データベースのトランザクション管理を行う

    Amazon S3 の結果整合性と読み取り一貫性 | DevelopersIO