BEM Advent Calendar 2013の10日目の記事です。 ちょっとBEMツールのことは1日お休み。明日やろう明日。 BEMツールの Full stack quick startをやってた軌跡は以下です。 サンプルプロジェクトを使ってみる:BEMツールに触れてみる(1) ブロックライブラリを使ってみる:BEMツールに触れてみる(2) ブロックを作ってみる:BEMツールに触れ…
Testing React Native components has a reputation. A bad one. Now, if you watch this great talk by Leland Richardson I think you’ll agree that the reputation of React Native testing may have changed. Leland Richardson put a ton of work into making his testing utility, Enzyme, compatible with React Native by having “painstakingly mocked out the entire React Native API”. The result of this massive ef
charity.wtf charity wtf's about technology, databases, startups, engineering management, and whiskey. I’ve been using terraform regularly for 2-3 weeks now. I have terraformed in rage, I have terraformed in delight. I thought it might be helpful to share some of my notes and lessons learned. Why Terraform? Because I am fucking sick and tired of not having versioned infrastructure. Jesus christ,
Terraform + fluentd + Docker + Puree で小さく始めるモバイル行動ログ収集基盤構築 河合 航平 2015.07.07 1273 194192628259 こんにちは。 4月から新卒駆け出しインフラエンジニアとして日々奮闘しております河合です。 "モバイル行動ログ収集基盤" を "小さく" 始めたので、以下にインフラ構築からモバイルまでの設計までをまとめたいと思います。今回このログ収集基盤を作るにあたって私自身がこれまで経験したことのない技術・ツールを利用しましたので、それらの導入についてもご紹介いたします。 導入の背景 私は英単語サプリを中心にインフラを担当しています。 英単語サプリとは、聞ける・話せる・覚えてるをコンセプトとした高校受験からTOEICまで対策できる英単語学習のサービスです。 ユーザの分析によく使われるツールの1つにGoogle Analy
私はここ1週間ほど、同僚の David の一言で Infrastructure as Code について頭が大混乱状態でした。 それは次の一言です。 Chef や Puppet は大体の部分は Infrastructure as Code じゃないよね。ARM (Azure Resource Manager) はそうだけど。 ただ、Chef-Provisioning は Infrastructure as Code だよね。 もう頭が大混乱です。なんとなく言わんとしていることはわかりますが、私は今まで Chef とか、Puppet とか、Ansible とかで やっているようなことが、Infrastructure as Code と思い込んでいましたが、何か間違っていたのでしょうか?そういえば、 Chef はConfiguration Management Toolと紹介されていたなとか頭
HashiCorp Advent Calendar 2015の5日目の担当が空いていたので書いてみました。 クラウドを利用されているみなさんは、リージョン障害などに備えるために複数のリージョンを利用されているかと思います。 複数のリージョンに展開する際、どのような方法で行ってますでしょうか? CloudFormation Stackを複数のリージョンで作ったり、手動でポチポチやったり、SDKやAWSCLIを使ったスクリプトを使ったり… Terraform を使えば簡単に複数のリージョンを統一的に扱うことが出来ます。 Terraform は複数のプロバイダ(AWSやGCPなど)を一つのテンプレートの中に混在することが出来ます。 また、1種類のプロバイダを複数使用することも出来るため、AWSにマルチリージョンな環境を構築できます。 AWS謹製のCloudFormationは、S3やRoute5
$ mkdir advent2015aws $ cd advent2015aws/ $ awspec init + spec/ + spec/spec_helper.rb + Rakefile + spec/.gitignore + .rspec $ echo "require 'spec_helper'" > spec/ec2_and_rds_spec.rb $ awspec generate vpc my-vpc >> spec/ec2_and_rds_spec.rb $ awspec generate ec2 my-vpc >> spec/ec2_and_rds_spec.rb $ awspec generate elb my-vpc >> spec/ec2_and_rds_spec.rb $ awspec generate network_acl my-vpc >> spec/ec
このエントリは HashiCorp Advent Calendar 2015 - Qiita 10日目の記事です。今回はTerraformのmodule機能に関する知見をご紹介します。 moduleとは? module "consul" { source = "github.com/hashicorp/consul/terraform/aws" servers = 3 } moduleは、Terraform resourceを抽象化するためのものです。よく使うパラメータをmodule内に隠蔽して入力項目を減らしたり、複数のresourceをまとめたり、tfファイルの見通しを良くするために使います。 生のresourceを使ってTerraformの設定ファイルを書くのには、ある程度インフラの知識が必要です。module機能を使って、可能な限り入力項目を簡潔にすれば、インフラの知識がない人でも
This repository contains best-practice infrastructures across different cloud providers, regions, environments, and operating systems. You can think of this as a library of Packer templates and Terraform modules that allow you to provision unique infrastructures by referencing the different templates and modules. We've tried to set this repository up in a way that we don't have to duplicate code,
工夫したこと リソースの分離をファイル単位で行い、使い回しができるように配慮した Backlogチーム以外でも利用できるようになるべくAWSリソース単位でファイルを分割しておき組み合わせるだけでリソースが構成できるように配慮しました。 ファイル構成例を記載していますがterraform applyを実行したときに全ファイル読み込んですべてのリソースを作成してくれます。 depends_on設定をしておくと各リソースの依存関係を制御できすべてのリソースをいっきに作成することが可能です。 . ├── config.tf ├── terraform.tfstate ├── terraform.tfstate.backup ├── user_data │ └── api.tpl ├── variables.tf ├── vpc-db-instance.tf ├── vpc-db-subnet-
これは、Goodpatchのアドベントカレンダー 18日目の記事です。 こんにちは、Goodpatchでエンジニアをしている@urapicoです。 先日、GoodpatchのサービスのProttのインフラを専用サーバーからAWSに全て移行しました。 特に骨が折れたのは、S3の引っ越しですが。。。 今回は、HashiCorpで有名な2つのプロダクトTerraformとConsulについてです。 Terraform と Consul Terraform まず、Terraformですが、こちらはインフラ構築に利用されるツールです。 Amazon Web Serviceのインフラ構築には、非常に親和性が高いと思います。 Amazon Web Serviceには、Terraformと同じ目的のサービスがあります。 AWS CloudFormationです。 AWSを利用する場合、CloudForma
//////////////////////////////////////////////////////////////////////////////// /// Variable variable "ami_id" { default = "ami-b80b6db8" // CentOS 7 x86_64 (2014_09_29) EBS } //////////////////////////////////////////////////////////////////////////////// /// VPC /// VPC resource "aws_vpc" "test" { cidr_block = "10.9.0.0/16" tags { Name = "test" } } /// Internet Gateway resource "aws_internet_ga
Wantedly Advent Calendar 2015 __18__日目です。 インフラチームインターンの @dtan4 です。 Wantedly では Terraform を用いたインフラのコード化 (Infrastructure as Code) を全面的に取り入れています。インフラリソースの追加や修正は、コードを書くこと・CI 上での自動適用によって行われています。 この記事では、今年5月から半年以上の間 Terraform を運用してきた中での なぜ Terraform でインフラをコード化しようとしたのか どのように Terraform を運用しているのか Terraform 運用にあたって注意すべき点 既存リソースから Terraform コードを生成する Terraforming について ということを紹介したいと思います。 Terraform とは Terraform
前回の記事ではDockerとECSを使ったAWS上でのInfrastructure as codeについて言及しましたが、サーバリソースの構成管理についてはAWSのマネージメントコンソールから手動で行わないといけなかったり、コンテナを用いたアプリケーション構成を強制され、従来の単純なインスタンス構成ができないという問題点がありました。前回の記事はこちら。 後者については、今後コンテナを活用したインフラ構成が普通になっていくことで許容されていくかもしれませんが、普通にインスタンスを立ててインフラを構築している方にとってはInfrastructure as codeをやりたいためにコンテナを前提としたサーバ構成に変更しなくてはいけないなんて、正直気が進まないと思います。 そこで本記事では、今インフラ界隈で非常に強い影響力を持っているHashicorpのプロダクト、PackerとTerrafor
Terraformを使う機会が会ったので、概要をまとめてみました。 TerraformはCloudFormationよりも定義ファイルが簡潔で、驚くほど習得しやすいツールです。 また、Chefやシェルによるプロビジョニングの仕組みも用意されているためミドルウェアまでささっと構築するようなユースケースにも使えそうです。 CloudFormationと比較した特徴については、「HashiCorpの新オーケストレーションツールTerraformを試してみた」の「CloudFormationの弱いところはカバー済み」が参考になります。 以下は、ほぼGETTING STARTEDを確認した内容になります また、各リソースはデフォルトVPCに構築しています。 セットアップ INSTALL TERRAFORMの手順に従ってインストール バイナリパッケージがあるので、DOWNLOAD TERRAFORMよ
注: 2018/1/8にサンプルを更新しました。更新エントリはこちら。 情報がありそうでない 以前のエントリで書いたとおり、TerraformでAzureへデプロイする方式をClassicからResource Managerへ移行しているところです。 今後も継続して試行錯誤するとは思うのですが、ふらふらしないように原則を作りました。この手の情報はありそうでないので、参考になればと思いこのエントリを書いています。 なお、考え方は他のクラウドやデプロイツールでも応用できるかと。 4原則 セキュリティファースト 手順書をなくそう 分割境界にこだわりすぎない 早すぎる最適化は悪 なお、サンプルのTerraformファイル群を、Githubに置いておきました。 今後ガラガラポンする可能性は大いにありますが、現時点ではこんな構造です。 . ├── .gitignore ├── main.tf ├──
オリジナル: New Interface Design, User Experience, and Pricing for Atlas – HashiCorp https://www.hashicorp.com/blog/new-interface-design-user-experience-pricing-atlas.html ■ Atlas の新しいインターフェース設計、ユーザ経験、料金について Atlas という HashiCorp のアプリケーション・デリバリ・プラットフォームが変わります。その変更に関する発表ができることを嬉しく思います。 Atlas が初めてリリースされたのは 2014 年です。Atlas は開発からプロダクション(本番環境)に至るアプリケーションのデリバリに関する問題を解決することに注力してきました。サービスを開始してからも Atlas の機能群は成長を続け
Ansible getting started Getting started with Ansible Getting started with Execution Environments Installation, Upgrade & Configuration Installation Guide Ansible Porting Guides Using Ansible Building Ansible inventories Using Ansible command line tools Using Ansible playbooks Protecting sensitive data with Ansible vault Using Ansible modules and plugins Using Ansible collections Using Ansible on W
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Ansible 2.0 変更点まとめ Ansible 2.0のアルファ1.0がリリースされましたね! (2016.01.13追記: Ansible 2.0出ました。Qiita上ではリリースニュースを Ansible 2.0リリース! という記事で訳していただいています。) まだ開発中ではありますが、CHANGELOGを元に大きめの変更点をまとめてみます。 (よく使われそうと主観的に思うものと、個人的によく使うものについての記述粒度が細かくなってます。) 下記情報は全て2015年8月28日時点での公式ドキュメント・リリースノート・git
イベント名: Ansible Meetup in Tokyo 2015.09 開催日時: 2015-09-14(月) 会場: 日経ビル6F 日経カンファレンスルーム(大手町) Webサイト: Ansible Meetup in Tokyo 2015.09 - connpass 最近、Ansibleを業務で使い始めて色々調べていたところに、ちょうどAnsible Meetupが開催されたので参加してきました。去年も9月に開催されていて、2回目みたいですね。 今回の目玉は、僕も参考にさせて頂いた「入門Ansible」著者の若山史郎さん(@r_rudi)による、Ansible 2.0の新機能・変更点紹介でした。Ansible 2.0についての情報をコンパクトにまとめて紹介してくれて勉強になったので、僕のように2.0系の予備知識ゼロの人にはスライド資料(と以下のメモ)をおすすめしたいと思います。あ
はじめに 藤本です。 昨日、Packerのバージョン0.9がリリースされました。Chef ProvisionerのWindows対応や、OVA形式でのAWSへのインポートなどいくつかの機能が追加されました。今回はその中でもAnsible Provisionerについてご紹介します。 リリースノートはこちら 概要 Packerには今までAnsibleのProvisionerとして、Ansible Local Provisionerがありました。Ansible Local ProvisionerはPlaybookをビルドOSに送信して、ローカルでAnsibleコマンドを実行するというものでした。事前にAnsibleをインストールしていなくてはならないことでAWSなどで標準OS AMIを利用する場合、Shell ProvisionerでゴニョゴニョとAnsible外で設定を入れえなくてはいけなか
前置き hakobera.hatenablog.com この記事を公開した当時はまだオープンにできなかったのですが、実はこの記事は2月25日にリリースされたスタディサプリ(受験サプリ)を Quipper のプラットフォームに載せ替えるという移行プロジェクトを前提として内容も含んでいました。 【公式】スタディサプリ|苦手克服・定期テスト対策~大学受験まで 無事にリリースできたので、このプロジェクトで変わったことや導入したソフトウェア、ツールについていくつかピックアップして書いていきたいと思います。 目次 メンバーが増えた Infra as Code Deis AWS ECS + Docker + Locust による負荷テスト nginx (HTTP/2, ngx_mruby) 分析基盤 技術的課題 メンバーが増えた 前回の記事を書いた時はインフラ関連のエンジニア(Quipper では En
#初めに 著者はGo言語、インフラ構築自動化技術に関する知識はあまりないので、知識のある上級者は適切なアドバイスなり、間違いの指摘をして頂けると幸です。 このようなシチュエーションを想定しています。 ある日、上司からこんな無茶ぶりが・・・ 「君、優秀なんだね。Go言語が良いみたいだからGo言語でセキュアなAPIを軽く作っておいてよ。ついでにインフラ構築自動化も流行ってるから、導入して実行環境の構築も自動化しといて」 という無茶ぶりされたときにあなたはこのようなまなざしを上司に向けるでしょう。 安心して下さい。そんなあなたのためにこの記事を書きました。笑 冗談はさておき、本題に入ります。 #構成 今回の構成を図に表してみます。 図の参照元 Go Lang, GitLab, Vagrant, Docker, CircleCi, Ansible, Terraform, AWS 工夫した点 開発環
11. VPC 構築 • # VPC for staging resource "aws_vpc" "staging" { cidr_block = 10.0.0.0/24 tags { Name = "staging" } } 12. VPC 構築 • # Public subnets for staging ! resource "aws_subnet" "staging_public" { vpc_id = "${aws_vpc.staging.id}" cidr_block = 10.0.0.0/25 availability_zone = "${var.aws.availability_zone}" map_public_ip_on_launch = "1" tags { Name = "staging_public" } } 13. VPC Peering # VPC Pe
2015-06-01 Terraformを割と安全に使う方法 DevOps Terraform インフラの構成管理という意味で今のプロジェクトではTerraformを使ってます。 hashicorp/terraformgithub.com 非常に便利ですが、まだまだ全然枯れてないので若干猛獣使いな感じです。というわけで現時点で「割りと安全に」Terraformを使う方法を簡単に紹介しましょう。 tfstateの管理方法 Terraformでは管理しているインフラの状態をtfstateというファイルで管理してます。tfstateの中身はJSONです。このような唯一無二な状態を保持し、かつコンフリクトを起こすと悲惨な性質を持つファイルはGitでバージョン管理すべきではありません。 S3を使う Amazon S3のように耐久性のあるオブジェクトストアで管理するのが懸命です。Terraformでは
リリース日は決まっているのに仕様は決まりません! どうも、とよです。 以前所属していたプロジェクトでは自社DCで運用していたため、今まで全く触れてこなかったAWSですが、今のプロジェクトではAWSを使うので、terraformを使ってインフラを管理していこうと思っています。 このエントリでできること terraformを使ってMacからAWSのインスタンスを立ち上げる Macからterraformで作ったインスタンスにSSHする 環境 Mac OSX 10.9.5 Mavericks Terraform v0.5.3 Terraformとは Terraformは安全にかつ効率的にインフラを構築、変更、バージョニングできるツール。 かの有名なVagrantやPackerなどを擁するHashiCorp者のプロダクトで、Goで書かれてます。 インフラ管理がプログラマブルになるので、アプリエンジニ
技術的課題を書くと、それを解決してくれるエンジニアが採用できるって話は本当ですか?というのは冗談としても、今の技術的課題をブログにまとめて公開するノーガード戦法も良いかと思う。— Kazuyuki Honda (@hakobera) May 25, 2015 このツイートがそれなりに反応があったので、有言実行してみる。 最初に書いておくと、これはQuipperの採用のための記事です。Quipper では下記のようなお仕事、技術的課題の解決に興味がある DevOps エンジニアを絶賛大募集しております。興味のある方は、Wantedlyの募集ページ から「話を聞きに行きたい」をクリックしてみてください。応募までは行かないけど、もっと詳しい聞いてみたいという方は私個人にでも良いのでご連絡ください。(Twitter で @hakobera にメンション or DM、または hakoberaアットg
どうもどうも乙カレー様です。桑野です。 びっくりするほどブログ書いてなくてびっくりしてます。半年書いてないやん。 Terraformを使っていたりするんですが、最近EC2のAutoScaleを入れようとして辛いことがあったりしたのでちょっとまとめてみます。 Terraform Terraformは言わずとも知れたHashicorpさんのプロダクトですね。 インフラ構築をコード化してGithub等でレポジトリ管理することによって履歴管理や、プルリクエストベースの構築ができるのが売りだったりします。 TerraformでのAutoScale時のハマりどこ 端的にいうとこの2つです。 Terraform経由で実行した際のLaunchConfiguration(イカLC)とAutoScalingGroup(イカASG)の削除の順番が逆 LC内のuser_data更新で一網打尽になる Terrafo
お久しぶりです。tjinjinです(╹◡╹) 最近じめじめしていますね。梅雨あけると夏ですよ!!夏アニメが始まりますよ!! ということで、PV見た感じの私のおすすめは六花の勇者です!”りっか”ではなく”ろっか”です! AWS環境のコード化 弊社ではAWS環境の構築を管理コンソールでの温かみのある作業やRakeTaskで行ってきましたが、サービスを新規で立てるのに時間がかかるという課題があり、AWS環境もコード化したいという思いがありました。インフラチーム内で検討した結果、 名前がかっこいい コードが読みやすいということで一部サービスでterraformを採用し始めています。 terraformを使って行く中で、何点か壁にぶち当たったので情報共有できればと思います。 terraformとは? 一言で表すとインフラ構成をコード化することのできるツールというところでしょうか。みんな大好きHash
TerraformでAWS環境のつくり方は Terraform簡易チュートリアル on AWS - Qiita など分かりやすいですので参考にしてください。 ※ 追記(2016/10) 本記事の内容は少し古いので、今だとこちらに書いてあるのやり方がいいかもです。 Terraformにおけるディレクトリ構造のベストプラクティス | Developers.IO なお、以下の記事は terraform v0.6.0 で使っているものになります。 はじめに AWS上に環境を作る際に、たとえば develop環境、staging環境、production環境など複数の環境を、同じterraformの設定ファイルで管理したいことがあるかと思います。 同じ設定ファイルを使うと言っても、 instance_typeなどは環境ごとに分けたい 起動する台数も環境ごとに変えたい など、環境ごとに違う部分もあるの
エンジニアの内田 @spesnova です。 2015年8月5日に、@deeeet さんと一緒に Wantedly のオフィスにて Hashicorp Product Meetup と称して、 Hashicorp プロダクトに関する知見、悩み、展望 etc をフランクに共有する会を開きました。 参加者全員がゆるくざっくばらんに話せる場を作りたいと思って招待制のイベントにしました。 参加者の方は @deeeet さんと自分の知り合いの方から、Hashicorpプロダクトを既に利用していたり、導入予定の方々にお声をかけせて頂き、その方々がまた数名招待するという形にしました。 「行きたかった…」というツイートもチラホラありました、、参加できなかった方ごめんなさい。。 どんな内容だったのかをtogetterと以下に簡単にまとめておきます: http://togetter.com/li/856947
packer と terraform と ansible でインフラを作る 概要 長くなるので概要とつまづいた点に絞ってます。 packer, terraform, ansibleの使い方がわかっていている前提です。 インフラはAWSを使います。 packer(+ansible)でアプリケーションが乗ったAMIを作る terraformでインスタンスを動かす ansibleで環境を整える codedeploy でデプロイ packer, terraform, ansibleの実行にはお互いを必須としないようにしています。そのため入れ替えることは可能なはずです。 terraformはcloudformation、ansibleはchefに変えられるかと思います。 packer AMIをタグ付きで登録する terraform data "aws_ami"としてAMIを受け取る インスタンス起動
OSやミドルウェアの機能検証を実施した場合など、オンデマンドで一時的な検証環境を構築できるのもクラウドサービスの醍醐味です。 検証対象のOSやミドルウェアは異なれど、検証に必要な環境はある程度共通であることが少なくなく、また費用節約のためにも検証が終わった後はきれいさっぱりとその環境を削除したいものです。 AWSでそんな使い捨ての環境を構築する場合の方法として、ファーストチョイスとなるのはAWS CloudFormationかと思います。検証環境をテンプレート化しておくことができ、またマネージメントコンソールやAWS CLIを使って簡単に環境の構築/削除ができる、使い捨て環境の構築にはぴったりのサービスです。あるいはAWS CLIやAWS SDKを使って自前の環境構築スクリプトを作成するのもよいかもしれません。 AWS公式のツールを使う以外では、Terraformが有力な選択肢の1つになる
Hashicorpから2015年秋の新作が2つ登場した. Otto - HashiCorp Nomad - HashiCorp Ottoがなかなか面白そうなのでコードを追いつつ,Ottoとは何か? なぜ必要になったのか? どのように動作するのか? を簡単にまとめてみる. バージョンは 0.1.0 を対象にしている(イニシャルインプレッションである) Ottoとは何か? 公式はVagrantの後継と表現されている.が,それはローカル開発環境の構築も担っているという意味で後継であり,自分なりの言葉で表現してみると「OttoはHashicorpの各ツールを抽象化し開発環境の構築からインフラの整備,デプロイまでを一手に担うツール」である.ちなみにOttoという名前の由来はAutomationと語感が似ているからかつ元々そういう名前のbotがいたからとのこと. なぜOttoか? なぜVagrantで
HashiConfで発表されたHashiCorpの新しいツールOtto。Vagrantの後継という位置付けですが、OttoとVagrantとの技術的な違いは何か、コンセプトはどのようなものか、今後どのように使われていくのかといったことを分かりやすくまとめた記事。 出典について この記事は、Benny Cornelissen氏によるOtto: a modern developer's new best friendを翻訳したものです。 Ottoとは? HashiCorpによると、OttoはVagrantの後継という位置づけです。Vagrantはリリースされてからたくさんの変更が加えられていますが、大きな改善をしつつも、最初にリリースされた時とほとんど同じことを基本的にはやっています。Ottoを使えば、ローカル開発からデプロイまでのワークフロー全体を見直されることになるでしょう。 Ottoは本
概要 PublicSubnetとPrivateSubnetを切り分けてよりセキュアに構築する方法。 PrivateSubnetのインスタンスにSSHアクセスする場合は別途VPNを立てる形になると思いますが、今回は割愛させていただきます。 環境 Terraform 0.6.3 構成図とネットワークフロー inbound request 外部から内部へ入ってくるリクエストは以下の流れです。 青がリクエスト、赤がレスポンスです。 通常のクライアントからのリクエストのフローです。 outbound request 内部から外部へでていくリクエストは以下の流れです。 青がリクエスト、赤がレスポンスです。 private subnetから外部APIを叩きたい時などのフローですね。 コード VPC resource "aws_vpc" "vpc" { cidr_block = "10.0.0.0/16"
2024年4月1日より、Supership株式会社は親会社であるSupershipホールディングス株式会社に吸収合併されました。 合併に伴い、存続会社であるSupershipホールディングスは社名をSupershipに変更し、新たな経営体制を発足しました。本件に関する詳細は、プレスリリースをご確認ください。 2024年4月1日より、Supership株式会社は親会社であるSupershipホールディングス株式会社に吸収合併されました。 合併に伴い、存続会社であるSupershipホールディングスは社名をSupershipに変更し、新たな経営体制を発足しました。 本件に関する詳細は、プレスリリースをご確認ください。
HashiCorp 並びに HashiCorp Products である Atlas, Vagrant, Packer, Serf, Consul, Terraform, Vault, Nomad, Otto 等に関する Advent Calendar です。
課題 HashiCorpのTerraformではInfrastructure as a Codeを容易に記述できるが、各種providerではまだ未実装のモノが多い。 例えば、Redshift (2015/11/27現在) https://github.com/hashicorp/terraform/pull/3862 解決法 しかし、Terraform v0.6.7では最近CloudFormationのproviderに対応した為、CloudFormation templateを埋め込んで機能を補完できるようになった!(ついこの間まではHEADにしか入ってなかったので、goでコンパイルする必要があったけど) TF files こんな感じで。 # VPC resource "aws_vpc" "test" { cidr_block = "172.7.0.0/16" enable_dns_h
みなさんこんにちは、今村(@kyuns)です。今回は弊社の新規サービス開発にて、Hashicorp製品を中心にインフラ周りを整えたお話をしていきたいと思います。今回はTerraformとAtlasの話が中心になります。 今回実現したこと TerraformでAWS上のリソースをコードで管理 GithubでPullRequestを作ってインフラに対する変更をコードベースでレビュー Github上でPullRequestに対して変更がテストされ、テスト結果が貼られる Pull Requestをマージすると自動的にAtlas経由でterraformが実行されてインフラの変更が適用される いわゆるインフラのコード化&自動化です。 導入によるメリット インフラがコードで管理されることにより属人性を排除することができる インフラの変更に対して事前にレビューすることにより事故を減らせる 変更の適用はPu
1. @zembutsu Nov 27, 2015 Our Survival Strategies, Microservices, and HashiCorp DevOps/マイクロサービスセミナー ~導入事例から考える、マイクロ サービスを実現する コンセプトと技術~ at マイクロソフト@品川 2. 背景画像CREDIT:videodoctor / PIXTA(ピクスタ) https://pixta.jp/@prof306848 @zembutsu Nov 27, 2015 Our Survival Strategies, Microservices, and HashiCorp 今日の内容 ‣ 1. 生存戦略――Microserviceの課題 ‣ 2. "技術"ではなく、"ワークフロー"が真の課題 ‣ 3. HashiCorpは何を解決するのか? ‣ ツール概要 ‣ Nomad は
徹底比較!HA Kubernetes ClusterにおけるControl Plane LoadBalancerの選択肢
PythonやJavaでコードを書く場合、コードカバレッジの測定は、よくやりますよね。最近、Ansibleでもコードカバレッジを測りたくなったのですが、それらしいツールがなかったので、作ってみました。名前はKirbyです。今回はKirbyがどんなツールなのか紹介してみます。 ks888/kirby · GitHub どんなことができるのか Kirbyは、AnsibleのPlaybookやRoleに対して、タスクレベルのカバレッジを測定するツールです。 例えば、次のようなPlaybookと、Serverspecのテストがあったとします。Playbookでは2つのタスクを実行しています。Serverspecのテストでは、Playbookの一つ目のタスク(create dir1)に対するテストをしています。 ~/src/kirby_demo% cat create_2dirs.yml --- -
今回はAnsibleを本格運用した際のイメージを掴むためにAnsibleのベストプラクティスを参考に実際に試してみたいと思います。 実践のお題はWordPressとします。WordPressのセットアップを通してベストプラクティスのイメージを掴んでいただければと思います。 準備 ローカルマシンに作業ディレクトリを作り、その中でAnsibleのベストプラクティスに則ったプレイブックを作っていきます。MacもしくはLinuxなどで試してみてください。 $ mkdir try-ansible-best-practices $ cd try-ansible-best-practices ウェブサーバとDBサーバを別個に立てますので、さくらのクラウドでサーバを二台立てておきます。OSはCentOS 6.6を利用します。サーバ作成時にrootでのsshの接続に必要となる公開鍵も忘れずに登録してください
About reserved postingIf you register a secret article by the day before the same day, it will be automatically published around 7:00 on the same day. About posting periodOnly articles submitted after November 1 of the year can be registered. (Secret articles can be registered anytime articles are posted.)
この記事で書いていること この記事では Ansibleをはじめる人 を対象に、下記の Ansible 入門的な内容についてまとめています。 Ansibleとは Ansibleを調べる Ansibleを試す Ansibleをもう少し試す 既にわかっている人向けに用語を使えば、 「 jinja templateによるファイルの動的配置などとroleによるタスクの切り出しまでをハンズオン 」 となります。 なお、環境は Python 2.6.6 + Ansible 1.9.4 です。 Ansibleとは Ansibleは "構成管理ツール" と呼ばれ、最近(少なくとも私の中で)話題のツールです。 Infrastructure as a Code なんていう文脈の中では Chef, Puppet などと並んで必ず出てくるツールの1つかと思います。 このあたりの話は話しだすとそれだけで記事が書けてし
インフラ自動化ツール「Ansible 2.0」正式版がリリース。リファクタリングによるアーキテクチャの整理、Block文や動的なIncludeなどの新機能 Ansibleは昨年10月にRed Hatが買収しており、Ansible 2.0は買収後初の(そしてAnsibleにとっても初めての)メジャーバージョンアップです。 参考:Red HatがAnsibleを買収した理由、同社クラウドマネジメント戦略担当が説明 Ansible 2.0では大規模なコードのリファクタリングが行われたことにより内部アーキテクチャが整理され、それに伴って新しい機能がいくつか追加されています。 Task Blocksと動的Include 1つ目の新機能としてあげられていたのは「Task Blocks」です。タスク内でBlock文を用いて処理をまとめることができます。 Blockは、Pythonやほかの言語が備えている
最近プロビジョニングにchefよりansibleを使うことが多くなってきて、その都度コピペもあんまりよろしくないので、ベストプラクティスにそった雛形を自動生成するスクリプトを作成しました。 github.com 環境 serverspec (>= 2.17) ansible (>= 2.0.0) python (~> 2.7) 使い方 usage: ansible-init [-h] -p PLAYBOOK_NAME [-b BOX_NAME] [-i IP_ADDR] [-m MEMORY] [-c CPU] オプション optional arguments: -h, --help show this help message and exit -p PLAYBOOK_NAME, --playbook_name PLAYBOOK_NAME playbook name -b BOX_NAM
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Intro の参考訳です。Terraform に対する理解の手助けになればと思います。※v0.1.0に対する記述のものであり、バージョンが変わると、内容にに変更が加わる可能性があります。 変更リクエスト大歓迎です。 Terraform 入門 Introduction http://www.terraform.io/intro/index.html Terraform 入門ガイドへようこそ! こちらのガイドは、これから Terraform を始めるために役立つものです。ガイドでは、Terraform とは何か、どのような問題を解決するのか
cloudpack の 脳筋 (岸上) です。 はじめに Terraform 始めました。 使っていてこれはどーすりゃよいのかしらと思っていたことが実装できたのでメモを残します。 (1)AWS Security Groupを用いて内部通信ツーツーの設定を作りたい Security GroupにAll trafficを許可するInboundルールを書くことがあると思います。 Management Consoleから作成した All Traffic を選択してセキュリティグループのIDを登録するだけで良いです。 では Terraform で実装する時は、aws_security_group リソースの ingress に self を指定すると自身のセキュリティグループのIDを登録できますが、All trafficはどう指定したらよいのかとドキュメント読んでも見当たらなかったのでソースを眺めた
TL;DR Terraform + GitHub + CircleCI + Atlas を用いてAWSの操作を自動化した 各ツールの役割は下記のような感じ Terraform => インフラへの変更ツール GitHub => .tfファイルのバージョン管理 CircleCI => CI、Terraformをawsに対して実行 Atlas => インフラの状態を記録するterraform.tfstateの管理 インフラの継続的デリバリー - naoyaのはてなダイアリーにて、言及されていた範囲(Route53の変更、Chefの適用)をAWSの操作全体に拡大した 背景 今までの問題点 AWSの各種操作がブラウザからポチポチ業… 手作業なので誤操作に気づきにくい。事故りやすい インフラの実構成がバージョン管理出来ていない ちなみにRoute53に関してはroadworkerを用いてコードで管理済
目の前にある「やるべきこと」を軽々と片付けるためには、自分がホテルで働くポーター(荷物の運搬などを主業務とするホテル従業員)だとイメージし、やるべきことを台車の上に置いた「荷物」だと考えればよいのです。これを「台車理論」と呼びます。 荷物を載せた台車を軽々と押すためには、滑らかな路面を選択しなければなりません。砂利道であったり、ぬかるんだ泥道の上を選ぶと、うまく荷物を運べないからです。 「台車理論」では、「思考ノイズ」が常に脳のワーキングメモリに入っていると『路面の摩擦抵抗が大きくなる』と考えます。したがって、常にこのノイズを除去する作業をしなければなりません。放置しておくとノイズとノイズとが化学反応を起こし、さらに大きな「心の摩擦」を引き起こします。ひどい場合は、「なんで私がこんなことで悩まなくちゃいけないわけ? 絶対に変だ。何かがおかしい」などと被害者意識まで醸成されていってしまいます
こんにちは。技術部の吉川です。 最近ではMicroservicesという言葉もかなり浸透し、そのテクニックも体系化されつつあります。 一方でMicroservicesについての話は概論や抽象的な話が多く、具体像が見えないという方もいらっしゃるのではないでしょうか。 当ブログでは1年半ほど前にMicroservicesへのとりくみについてご紹介しました。 当時社内ライブラリだったGarageはその後オープンソースとして公開され、また社内のシステムも当時と比べ飛躍的な進化を遂げています。 そういったクックパッドにおける最近のMicroservices事例を先日Microservices Casual Talksで紹介しました。 Microservicesの抽象的な話は一切割愛し、具体的な事例に終始した内容となっています。 Microservicesの基本となる考え方はわかったものの、実践方法で
Wunderlistが2020年5月にサービス終了予定なのでMicrosoft To Doに乗り換えました(追記) Wunderlistはサービス終了予定しています。今からだと、後継のサービス「Microsoft To Do」がWunderlistと同じ使い勝手で使用できるのでおすすめです。 WunderlistからTo Doへの乗り換えに関しては、以下記事参照下さい。 夫婦でのタスク共有 私たち夫婦は、下記記事で書いた通りグーグルカレンダでスケジュールを共有しています。 これは超絶便利でオススメなのですが、最近スケジュールとは別にタスクも管理したくなりました。スケジュールとタスクは、人によって多少定義が別れると思うのですが、この記事では以下として定義させて下さい。 スケジュール:実行する時間が決まっている仕事(ex:打ち合わせ、出張、習い事等) タスク:期限のみ決まっていつやってもよい仕
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? はじめに 社内の勉強会で現在の開発についてまとめてみたので公開します。 みなさんの意見も是非お聞かせください そもそもアジャイル開発ってなに? まず、前提知識として、我々はなぜアジャイル開発をしているのか、どういった手法があるかを簡単に説明する。 ウォータフォール開発の問題点 ドキュメント等の成果物で進捗が管理しやすいが、見た目の進捗は分かっても真の進捗は最後まで分からない。 ユーザは最初に見積もったシステム機能の7%をよく使うが45%は全く使わない。 アジャイル開発とは 最初から正しく決定できるわけがないと認め、学習と改善を前提として
寒さも和らぎ、日によっては春の訪れを感じさせる今日この頃、いかがお過ごしでしょうか。春といえば Swift です。Swift は春と秋に、まるで衣替えのように大きなリリースがあります。2016年の春と予告されていた Swift 2.2 は、おそらく来週には正式にリリースされるものと思われます3月22日にリリースされました。 Swift 2.2 は、バグの修正や警告や診断の改善、コンパイル時間や実行速度の向上が主目的であるとされ、それに加えて Swift 2.0 以来のちょっとした機能向上を図ってのリリースとなります。Swift2.2 は OSS となった Swift の初めてのバージョンアップでもあります。すなわちコミュニティからの直接的なフィードバックを経た、最初の Swift と言えるでしょう。そんな Swift 2.2 の変更から主だった(おもしろい)部分を紹介します。 春に備えて準
文書校正ツール textlint の Chrome 拡張を作ったのですが、その開発の過程でハマった問題や対策などを記録として残しておきます。 なお、textlint 拡張のソースコードは GitHub で公開しています。 github.com 1. textlint Chrome 拡張の仕組み textlint とは azu さんが作成している文書校正ツールで、Node のパッケージマネージャである npm を通してインストールできるようになっています。中身は当然 Node の JavaScript 製であり、モジュールとして Node で読み込んで利用する事もできるため、textlint 拡張ではそれを利用しています。 Node のコードを Chrome 拡張として動かすにあたり、Chrome 拡張の JavaScript エンジンはブラウザとしての Chrome のものと同等なため、そ
以前、プラグインで拡張可能な文章校正ツール textlint で小説の作法を検証するための規則を作ったのですが、textlint はコマンドラインツールであるために利用するまでのハードルが高い状況でした。 Sublime Text や Atom などのプログラマ向けエディタを利用していれば、textlint のプラグインが使えたりするのですが、今回はより簡単に利用できるように Chrome の拡張機能として textlint をブラウザ上で使えるようにしてみました。 インストールはこちら: 【Chrome ウェブストア】 textlint: 文章チェッカー インストールすると、ページ内の編集領域で文章入力中にリアルタイムで校正してくれるようになります。(もちろん ON/OFF できます) textlint に最近追加された自動修正機能にも対応しているので、ボタン一発で自動で修正されたりしま
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く