タグ

ブックマーク / qiita.com/y13i (10)

  • CFn Custom Resource でハマりがちな罠 - Qiita

    cloudpack あら便利カレンダー 2017 の11日目です。 追加されたのはだいぶ前ですが、 Lambda Backed Custom Resource のおかげでカスタムリソースを使う敷居がだいぶ下がりました。 カスタムリソースは CloudFormation でネイティブサポートされていないリソース(AWS のリソースでなくても構わないです)を作成・更新・削除する仕組みですが、 Lambda Backed カスタムリソースは大まかに言うと以下のような流れでリソースを操作します(話を単純にするため、ここでは Create の例のみ)。 リソースの操作を行う Lambda Function をあらかじめ用意しておくか、カスタムリソースを含めるテンプレート内で作成する(この Function が custom resource provider となる) テンプレートにカスタムリソース

    CFn Custom Resource でハマりがちな罠 - Qiita
  • CloudFormation で Cognito - Qiita

    これまで Amazon Cognito は AWS CloudFormation でのリソース作成と管理に対応しておらず、リソース作成を自動化したい場合は AWS CLI や AWS SDK を使った自作スクリプトを使う必要がありました。 しかし、この方法で冪等性を担保するのは難しく、 CloudFormation Custom Resource を作った猛者もいました。 また、 IAM Role の Assume Policy に Identity Pool の ID を含めないといけない点が特に面倒でした。 これから 2017年4月28日、 Cognito の各種リソースが CloudFormation で作成・管理できるようになりました。 Amazon Cognito Now Supported by AWS CloudFormation AWS::Cognito::Identity

    CloudFormation で Cognito - Qiita
  • Serverless + Webpack + TypeScript + tslint メモ - Qiita

    $ npm init $ npm install --save-dev serverless serverless-webpack ts-loader tslint typescript webpack 今回はあえて serverless をグローバルに入れないパティーンでやってみる。 package.json で serverless のバージョンを管理できるメリットがある(serverless.yml の中にバージョン固定する設定もできるけど)。 雛形を作り、いらないものを一旦捨てる $ node_modules/.bin/serverless create --template aws-nodejs $ node_modules/.bin/tslint --init $ rm handler.js serverless.yml # このあと手動でつくる

    Serverless + Webpack + TypeScript + tslint メモ - Qiita
  • S3 のクロスアカウント書き込みにまつわる厳しい現実 - Qiita

    tl;dr AWS アカウントをまたいだ S3 バケットへの書き込みが色々とアレなので Lambda で無理矢理アレした。 ※1年半ぶりに追記: 解決策はあまりにも無理矢理だったが問題の知見としては有用なのでタイトルを変更しておく 背景 S3 は AWS 最古参のサービスであり、 S3 が登場した頃は IAM も存在しなかった。このため、今では AWS サービスの標準アクセス権限管理になった IAM とは異なる、独自のアクセス権限管理の仕組みが S3 にはある。 この歴史的経緯により、ある状況で非常に面倒な事態が発生する。 バケットオーナー != オブジェクトオーナー の場合に発生するつらみ 凡例 つらくない現実 つらい現実 バケットポリシーで他アカウントへの認可を設定すると、別の AWS アカウント(と、その配下の IAM User など)がバケットへの書き込みを行えるようになる バケッ

    S3 のクロスアカウント書き込みにまつわる厳しい現実 - Qiita
  • AWS Lambda で S3 に置かれた Markdown を HTML に変換する - Qiita

    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 Lambda で S3 に置かれた Markdown を HTML に変換する - Qiita
  • Amazon ECSでCluster Instanceと同じタイムゾーンをTask Definitionに設定する - Qiita

    { "family": "test-volumes-from", "volumes": [ { "name": "localtime", "host": { "sourcePath": "/etc/localtime" } } ], ... "containerDefinitions": [ { ... "mountPoints": [ { "sourceVolume": "localtime", "containerPath": "/etc/localtime", "readOnly": true } ], ... Task Definitionの volumes でCluster Instance側のパスを指定し、 containerDefinitions 内の各コンテナーの設定の mountPoints でコンテナー側の /etc/localtime に読み取り専用でマウントします。

    Amazon ECSでCluster Instanceと同じタイムゾーンをTask Definitionに設定する - Qiita
  • npmパッケージ非公開化問題の巻き添えを食らっているかチェックする - Qiita

    $ node --eval "$(curl -fsSL https://gist.githubusercontent.com/y13i/e6d43a57548d7af3cfea/raw/1f3e034c68f09498f086cb425b450d57c9816ac7/check_azer.js)" を node_modules があるディレクトリで実行するとチェック可能です。 運悪く該当パッケージがあった場合、GitHubのrepoを指定する方法 があります。azer氏自身も言及している通り、氏のGitHubのリポジトリを直接参照すれば良いでしょう。

    npmパッケージ非公開化問題の巻き添えを食らっているかチェックする - Qiita
  • TerraformをRubyでごにょごにょしてみたメモ - Qiita

    最近になってようやくTerraformを触り始めた石器時代人ですこんにちは。 tfstate をignoreするの?しないの?問題 terraform.tfstate はTerraformで作成されたリソースの状態を保持している巨大なJSONファイルです。 何らかのプロジェクトに使うTerraformリポジトリとこのファイルは一蓮托生になる(はず)なので、このファイルもgitで管理した方が一元管理できていいのでは?と思いますよね!!思いませんか?思いますね? しかし、例えばaws_iam_access_keyを使ったりすると terraform.tfstate にIAM Userのcredentialsが思いっきり平文で書かれるんですね。これは git add したくない!! 書いてる途中に初めて知ったんですが、どうやら terraform.tfstate をS3やAtlasで管理できるら

    TerraformをRubyでごにょごにょしてみたメモ - Qiita
  • AWS Lambdaで為替レート情報をSlackに流す - Qiita

    この記事は今年もやるよ!AWS Lambda縛り Advent Calendar 2015 - Qiitaの22日目です。 ご存知の通り、AWSへの料金支払いはドル建てです。当然、円が下がれば支払い金額は上がってしまいます。AWSヘビーユーザーにとって円/ドルのレートは気になる情報のはずなので、会社のSlackに流すようにしてみました。 Incoming Webhookの設定 最初にSlackでIncoming Webhookの設定をします。 投稿先のChannelは何でもいいですが、テスト等で他のメンバーの迷惑にならないように適当なChannelを作ってしまうのが吉かもしれません。 Webhook URLを後で使うので控えておきます。 Lambda Functionの作成 Lambda Functionの機能は非常に単純で、外部APIから取得した為替レートをWebhookでSlackに投

    AWS Lambdaで為替レート情報をSlackに流す - Qiita
  • EC2インスタンスにEphemeral Diskがマッピングされているか確認する - Qiita

    概要 EC2インスタンス上でEphemeral Diskを使用するためには、 インスタンスを起動する時、Block Device MappingsにEphemeral Diskを含めるよう指定する OS上で上記のEphemeral Diskをマウントする という2段階が必要。1が正しくできているか、既存インスタンスを調べる方法を書きます。 方法 aws ec2 describe-instances でいいっしょwwwって思ったそこのアナタ!残念! インスタンスのブロックデバイスマッピングを表示した場合、EBS ボリュームのみが表示され、インスタンスストアボリュームは表示されません。 インスタンスストアボリュームのインスタンスブロックデバイスマッピングの表示 そして、次の文に正解が続きます。 インスタンスメタデータを使用すると、完全なブロックデバイスマッピングに対してクエリを実行できます。

    EC2インスタンスにEphemeral Diskがマッピングされているか確認する - Qiita
  • 1