AWS+Terraform の記事を書くのってあまり好きじゃないんですけど、年末くらい1つ書いておこかなという義務感的なアレです、ハイ。 Terraform v0.7.8 から aws_iam_user_login_profile が追加され(CHANGELOG)、IAM User にログインパスワードを設定して、暗号化して state ファイルに保存できるようになったのでやってみましたという、たわい無い内容でございます。 概要 TerraformでIAM Userを作成します。管理画面ログイン用のパスワード設定も行い、パスワードは暗号化された状態で terraform.state に保存されます。 aws_iam_user_login_profile に書いてありますが、使用する公開鍵は base64 でエンコードしたものを直書きするか、keybase のユーザー名を入力することになって
この記事はDocker Advent Calendar 2016 の13日目の記事です。 AWS re:Invent2016に初参加してきたのですが、一番印象に残っているのがAmazon AIをはじめとする Deep learningの取り組みです。 そこで今回はAWSが公式にサポートを表明したDeep learningフレームワークであるMXNetを ECSを使ってDockerコンテナで立ち上げて処理をしてみる、という内容になります。 MXNetとは MXNet はワシントン大学とカーネギーメロン大学によって開発されたDeep learningフレームワークです。 re:Invent 2016で発表された内容から抜粋すると、特徴としては以下です。 豊富な対応言語 学習(train)には Python/C++/R/Scala/Java/Julia が使える 推論(prediction)には
※ 弊社 feedforce で毎週行っている、インフラ共有会を元にした記事で す。AWS で Rails を使っている方を想定していますが、数人規模のチー ムを意識した内容になっています。 こちらの記事で yaml_vault を知ったので、実際に試してみました。 yaml_vault+KMSでRailsアプリのconfig/secrets.ymlを暗号化してgitにコミットして管理する - Qiita 環境変数つらい# SaaS の API Key などの秘匿情報をコードに埋め込まないために、Rails で dotenv を使っている方も多いかと思います。 しかし、README.md にあるように 作者の @bkeepers さんは production での利用は奨励していません。 dotenv was originally created to load configuration
ども、大瀧です。 先月GAを迎えたGoogle製RPCフレームワークgRPCをちまちま触っています。 gRPCクライアントからgRPCサーバーへの負荷分散は、GitHubでクライアントサイドの例が紹介されていますが、今回はAWSのELB(Elastic Load Balancer)を用いたL4ロードバランサによる負荷分散を試してみた様子をレポートします。 ELBのgRPCサポート状況 gRPCは、HTTP/2上にProtocol Buffers形式でデータの送受を行います。HTTP/2サポートと言うと、AWSでは最近追加されたApplication Load Balancer(ALB)を連想するところですが、ALBがHTTP/2に対応しているのはリスナーであり、ターゲット(バックエンド)へのHTTP/2転送には対応していません。また、こちらのブログ記事に倣いALBのバックエンドにnghtt
GoでAWS SDKを叩くCLIツールを作ってリリースするまでの流れ(aws-sdk-go+cobra+viper+gox+ghr)GoAWSgoxcobraghr はじめに 最近CLIツールを作るのはGoで書くのが流行りっぽいので、GoでCLIツールを作ってみたメモ。 お題としては、aws-sdk-goでAWSのAPI叩く myaws という自作コマンドを作って、 サブコマンドとしてEC2インスタンスの一覧を取得する myaws ec2 ls コマンドを作ってみる。 自作コマンドへの引数フラグの渡し方、設定ファイルの読み込み方などCLIツールとして必要そうなトピックにも触れつつ、最終的にビルドしてできたバイナリをGitHubのReleaseページからダウンロードできるようにするところまで説明する。 これからGoで何かCLIツールを作ってみようと思ってる人の参考になれば幸いです。 作ったも
2016.08.25開催の勉強会で使った資料。 IaaSメインのシステム構築をする場合に、如何にサードパーティ製品に頼らずAWSネイティブの機能でセキュアにシステムを作っていくかに焦点を絞った内容にしました。Read less
Amazon ELBをうまくつかうには、KeepAliveを有効にしよう。Timeoutは60秒よりだいぶ長くしよう。その背景。 鯖管のメモ帳: AWSのELBでHealthyHostCountが0になるという記事の中で ■AWSのELBとApacheを使う際の注意点 ・Timeoutは120以上が推奨 ・ApacheのKeepAliveは有効にすべし。ELBとの接続効率があがる。 という形ですでにやるべきことは書いてあるのが、なぜそうなるか。。(いそがしい人は後は読まなくてok!) 根本的な理由としては、ELBはTCPを単にリレーしているのではなくて、アプリケーションレイヤのプロキシであることによるものが大きい。ELBはバックエンドのEC2との間で無通信の場合でも60秒はセッションを維持する。 ELBはTCP Persistent Connectionを提供し、webサーバとの間のTCP
弊社秋葉原佐久間町オフィス周辺では『ポケモン GO』に於いてコイキングがエラい多い割合で捕獲出来ています。川沿いに場所を構えているという側面もあるかと思いますが、社内では専ら、生魚好きの某有力者の(魚類を)引き寄せる力によるものなのでは、と専らの噂になっています。 という訳で本題です。Amazon Elasticsearch Serviceについては弊社でも利用ケース・頻度が増えており度々ブログでも採り上げる機会が増えていますが、私もちょろっと触ってみようかなと思いました。その中で、AWS CLIによる構築手順、内容に言及しているものがあまり無さそうだったので、どんな構成要素・設定で作られているものなんだろう?という部分を理解する為に一度管理コンソールでクラスタを作成し、その上でAWS CLIでの作成を試してみようと思いました。当エントリではその内容紹介となります。 もくじ Amazon
Docker と Amazon ECS で DevOps を進化させる 6/1 (水) ~ 6/3 (金) に開催された AWS Summit Tokyo 2016 の Develoeprs Confrence のセッション「Docker と Amazon ECS で DevOps を進化させる」を聴講しました。本記事はそのレポートです。 コンテナ技術である Docker と、Amazon EC2 のクラスタ上でコンテナを管理できる Amazon EC2 Container Service (ECS) を利用することで、アプリケーションとインフラという2つの密結合したライフサイクルの管理から脱出し、新しい DevOps へと向かう方法、及びその事例をいくつかご紹介します。 スピーカーは 岩永 亮介 氏(アマゾン ウェブ サービス ジャパン株式会社 技術本部 メディア・エンターテインメント部
tl;dr ES2015 で書くので前回参照。 S3 バケットに Markdown を置いたら Lambda Function が発火して、別のパスに HTML が出力されるようにしてみる。ソースはこちら。 やりたいこと ユーザーが Markdown をアップロードするのは /.src/ 以下、出力された HTML が出力されるのはバケット直下とします。 例: s3://orenobucket/.src/orenopage/index.md をアップロードすると s3://orenobucket/orenopage/index.html が出力される。 Lambda Function を書く 前回、 ES2015 で書いて簡単にデプロイできるようになったので、このリポジトリの内容から引き続き作業する前提で進めます。 まず、 S3 オブジェクトへの読み書きをしなくてはならないので、 AWS
ピックアップ aws_cloudfront_dirstribution のattributeに hosted_zone_id が追加 aws_s3_bucket や aws_elb リソースにはALIASレコードを設定する際に利用する hosted_zone_id というattributeがあります。今回のアップデートで aws_cloudfront_dirstribution にもこのattributeが追加されました。今まででもCloudFrontのHosted Zone IdをハードコードしてあげればALIASレコードの作成はできたのですが、attributeとして追加されることでより簡単に利用することができるようになりました。 以下にCloudFrontのドメインに対してALIASレコードを設定するサンプルコードを記載します。ドメインは適当なものに読み替えてください。 variab
s3に画像をアップロードするために、一度サーバを通すのはリソースの無駄なのでやめておきたいですよね。 今回は、ブラウザから複数画像を直接アップロードし、それをReactを用いて描画するところまでやりたいと思います。 コードはすべてgithubに置いてあります。 akameco/react-s3-uploader-sample スクリーンショット aws-sdkを使って署名付きURLを発行 ブラウザに直接アップロードするには、一度サーバに署名付きURLを発行してもらう必要があります。検索するとブラウザ側にアクセスキーやシークレットキーを直接配置している例も見かけましたが、危険なのでやめた方がいいです。署名付きURLですが、aws-sdkを利用することでこの処理を自分で書かずに20行程度で実装可能です。 以下が、s3の署名付きURLを発行するサーバ側のコードです。アクセスキーなどは自分の環境と
はじめに 佐々木です。先ほどの記事の通り、現在インドネシアに向かって移動中です。 今回はAmazon InspectorをAWS CLIで設定し、脆弱性検査の実行までやってみました。 やってみた 事前準備としてAWS CLIを最新にしておくのを忘れないでおきましょう(ちょっとハマりました) IAM Roleの作成と設定 まずはAmazon Inspectorに設定するIAM Roleを作成します。Assume Role Policyとして設定するJSONファイルを作成しておきます。 $ vi inspectorTrustRelationship.json { "Version": "2012-10-17", "Statement": [ { "Sid": "", "Effect": "Allow", "Principal": { "Service": "inspector.amazonaw
目的 スマホアプリ開発の初期段階でまだAPIの仕様等がフワっとしているような状況で、さくっと試験用のAPIサーバーを立てて、APIをちょこちょこいじってみながらアプリ開発をしたい。 ローカルマシンにJSON ServerでAPIサーバ立てるのが一番早そうだったけど、どうせならネットワーク上に置いてHTTPSでAPI叩いてみたいよね、ってことで構築してみた。 完成予定図 スマホアプリ開発用PC ↓↑ HTTPS(Let’s encrypt) ↓↑ Nginx(:443) ↓↑ JSON Server(:3000) ※ サーバはEC2使ってますがお好みに合わせてどうぞ 構築手順 1. AWSとドメインの準備 1. 管理コンソール等からEC2インスタンスを立ち上げる 今回はOSは Amazon Linux AMI 2016.03.1 (HVM) を選択 インスタンスタイプはt2.microを選択
最近はAWS WAFを触っています。こういう防御ツールは、やはり攻撃をどれぐらい防いでくれるか気になります。AWS WAFの場合、SQLインジェクション系の脆弱性を探ってくれるsqlmapをかけたところ、攻撃をブロックしてくれたという記事があります。 記事を読んだり自分でちょっと試したりして、ちゃんとSQLインジェクション攻撃を防いでくれるんだーと思っていました。が、つい先日WAFをバイパスしてSQLインジェクション攻撃をするテクニックがあることを知りました。例えばOWASPのこのページには、そういうテクニックがいくつか紹介されています。 こうなると気になるのは、AWS WAFに対してWAFバイパスのテクニックを使うとどうなるかです。というわけで、実際に試してみました。 単純にSQLインジェクションしてみる まずは、AWS WAFがないときにSQLインジェクションができること、また、AWS
Terraformとは Terraformは、HashiCorp社によって提供され、環境構築の一連の手順をスクリプトで記述できる 所謂Infrastructure as codeを実現するためのツール群である。 TerraformはAWSに特化したツールというわけではなく、 Azure、Google Cloud、OpenStackやVMware vSphereの環境構築にも活用できる。 最初、AWSの環境構築自動化をCloudFormationで実現すべくJSONをしこしこ書いていたわけだが、 クライアントの気まぐれにより、Terraformで書き換えることになった。 まあ、これも1つの勉強か。 Terraformのインストール インストールというか、ダウンロードして解凍してパス上に配置するだけである。 1、Amazon Linuxを起動してログイン 2、terraformをダウンロードし
最近流行りのサーバーレス・アーキテクチャでの開発は、複数のサービスを組み合わせて使うことが多いと思います。そのためデプロイや設定は複雑になりがちです。AWS でサーバーレス・アーキテクチャの代表と言えば、AWS Lambda と Amazon API Gateway が思い浮かぶのではないでしょうか?今回ご紹介する Claudia.js は、それらのサービスを使用した開発をさらに加速する予感です。 Claudia.js とは? Claudia.js はマイクロサービスを簡単に開発するためのオープンソースのデプロイメントツールです。Claudia.js を使うと AWS Lambda と Amazon API Gateway を使ったマイクロサービスを簡単に開発・デプロイすることができます。 さらに、Node.js 用の REST API をプログラミングするための Claudia API
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く