タグ

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

  • [新機能]Amazon Athena ルールベースでパーティションプルーニングを自動化する Partition Projection の徹底解説 | DevelopersIO

    [新機能]Amazon Athena ルールベースでパーティションプルーニングを自動化する Partition Projection の徹底解説 Partition Projection(パーティション射影)は、テーブル定義で指定したパーティションキーのルールやフォーマットからパーティションを計算し、パーティションプルーニングを自動化します。パフォーマンスの向上やパーティション管理の自動化などインパクトがある新機能なので、実際の動作を確認しつつ、ユースケースについて解説します。 用語の補足:パーティションプルーニングとは、一定の期間(年、月、日)やキー情報に基づき、データを分割管理したデータをクエリする際に、範囲外のデータスキャンを避ける仕組みを表します。 Glueパーティションの課題 従来のGlueパーティションは、メタデータストアがパーティション情報を保持しているので、データストア(S

    [新機能]Amazon Athena ルールベースでパーティションプルーニングを自動化する Partition Projection の徹底解説 | DevelopersIO
    uokada
    uokada 2020/06/28
  • Amazon API Gateway は何をしてるのか | DevelopersIO

    アプリケーションをユーザに公開する場合, それがGUIであってもCUIであってもインタフェースが必要になります. Webアプリケーションを公開する場合にはWeb APIを利用するのが一般的であり, AWSAPIをフルマネージドで活用するためのAPI Gatewayを提供しています. 非常に簡単に活用できるのですが細かい機能などを今一度洗い直す機会があればと思っており, 社内勉強会の機会があったのでAPI Gatewayについて話しました. 今回の記事では社内向け勉強会で登壇した内容をブログ向けに再編しています. 資料はSpeakerDeckで公開していますが, 内容についてより細かくこのブログで説明しますので, 是非ご閲覧ください. What is API まず最初にAPIが何かを確認します. 大雑把に伝えるとアプリケーションが呼び出せば予期した結果を返されるような仕組みです. 名前にあ

    Amazon API Gateway は何をしてるのか | DevelopersIO
  • LambdaからRDS/RDBを利用する際に意識したいポイント5選 | DevelopersIO

    こちらの記事はRDS ProxyがGAされる前に執筆した記事です。現在はLambdaからRDSを利用する場合、間にRDS Proxyを挟むという選択肢が増えているので、まずはRDS Proxyを使う/使わないの検討をお願いします。以後で紹介しているトピックの一部はRDS Proxy利用時は考え方が変わってきます。 CX事業部@大阪の岩田です。私が現在関わっているプロジェクトではLambda × RDSというアーキテクチャを採用して開発を進めています。開発を進める中でLambda × RDS(RDB)という構成についてある程度ノウハウが貯まってきたので、注意したいポイントやオススメの設定をTIPS的に紹介していきます。 環境 以後の説明では以下の環境の一部もしくは組み合わせを利用しています。具体的なコードやSQLの例はプログラミング言語やDBエンジンに依存しますが、根底の考え方はどの言語、

    LambdaからRDS/RDBを利用する際に意識したいポイント5選 | DevelopersIO
  • 【資料公開】Auth0ハンズオンウェビナー – 基本編 | DevelopersIO

    コネクションとユーザー Auth0を使ってログインを行うと、テナント内にユーザー情報が作成されます。このユーザー情報はコネクション単位で作成されます。例えばLINEでログインした場合はLINEユーザー、Facebookでログインした場合はFacebookユーザーとして作成される、といった具合です。 1人が異なるコネクションでログインしてしまった場合は別々のユーザー情報が作成されてしまいますが、Auth0にはアカウントリンクという機能により名寄せすることができます。こちらは後述している手順により、非常に簡単に実現できるようになっています。 コネクションとアプリケーション Auth0テナントにログイン可能なアプリケーション(Webアプリやモバイルアプリなど)は複数作成できますが コネクションのON/OFFはアプリケーションごとに設定できます。 例えば「LINEのアプリ内ブラウザからアクセスされ

    【資料公開】Auth0ハンズオンウェビナー – 基本編 | DevelopersIO
  • 社内勉強会で AWSエンジニアのためのActive Directory入門 という発表をしました | DevelopersIO

    しばたです。 日弊社の社内勉強会で「AWSエンジニアのためのActive Directory入門」というタイトルでActive Directory(AD)の基と、AWSにおけるAD関連サービスやADの構成例について発表しました。 その際に使用したスライドをSpeaker Deckに公開しましたので、皆さんもぜひご覧ください。 発表内容について アジェンダにあるとおり、勉強会では Active Directoryとは AWS と Active Directory AWS環境での Active Directory構成例 についてお話しました。 時間の都合により最後の部分は話せませんでした。 AD自体のはなしやAWSでのDirectoryサービス関連については私の説明以外にも多くのサイトやDevelopersIOに解説記事があるのでここでは多くを語らなくても良いかなと思ってます。 # Act

    社内勉強会で AWSエンジニアのためのActive Directory入門 という発表をしました | DevelopersIO
  • PythonのORMライブラリsqlalchemyで利用可能なコネクションプーリングの実装について調べてみた | DevelopersIO

    CX事業部@大阪の岩田です。Python向けのORMライブラリsqlalchemyは標準でコネクションプーリングの実装が組み込まれており、create_engine()を呼出す際の名前付き引数poolclassの指定によってコネクションプーリングの実装を切り替えることができます。先日コネクションプーリングの実装について調べる機会があったので、内容をご紹介します。 環境 今回利用した環境です。 OS X 10.14.6 Python 3.8.2 sqlalchemy 1.3.16 pymysql 0.9.3 利用できるコネクションプーリングの実装 sqlalchemyは標準で以下のコネクションプーリングの実装を提供しています。 QueuePool NullPool SingletonThreadPool StaticPool AssertionPool 例としてNullPoolを使う場合は

    PythonのORMライブラリsqlalchemyで利用可能なコネクションプーリングの実装について調べてみた | DevelopersIO
    uokada
    uokada 2020/05/11
  • 【AWS】EBSパフォーマンスを引き出すためのEC2インスタンスタイプ | DevelopersIO

    こんにちは、菊池です。 先日の機能アップデートで、EBSのProvisioned IOPS SSD(io1)の最大パフォーマンスが、32,000 IOPS、500MB/sに向上されたとアナウンスがありました。詳しくは以下のエントリを参照ください。 【新機能】Amazon EBSのProvisioned IOPS SSD(io1)の最大IOPSが32,000に向上しました データベースなど、定常的に高いIOパフォーマンスが必要な用途で利用している場合には、うれしいアップデートではないでしょうか。 早速、向上した上限にパフォーマンスに設定しようとする場合には、EC2のインスタンスタイプにもご注意ください。 EC2インスタンスのEBSパフォーマンス EBSのIOパフォーマンスは、そのタイプ(IO1、GP2など)によって決定されます。一方で、EC2にもインスタンスタイプによって発揮できるEBSの最

    【AWS】EBSパフォーマンスを引き出すためのEC2インスタンスタイプ | DevelopersIO
    uokada
    uokada 2020/05/08
  • [EC2] NVMe SSD ローカルストレージ搭載!C5dインスタンスが登場しました | DevelopersIO

    これまでのM3やI2、I3のインスタンスストアはその利用有無によって追加のコストはかかりませんでしたが、C5とC5dには価格差があることに注意が必要です。 C5dインスタンスを起動してみた それでは、C5dインスタンスを起動してみます。 バージニアリージョンを選択して、新規EC2インスタンスを起動しよとすると、C5dの各インスタンスタイプが選択可能になっています。 今回はc5d.largeを選択します。ストレージの設定では、「ephemeral0」が自動で割り当てされています。 ローカルストレージの利用 起動したインスタンスに接続して、ローカルストレージを設定し利用可能にします。以下、環境はAmazon Linux 2018.03.0 を使用しています。 何もせずに起動した状態では、まだマウントされていません。 $ df -h ファイルシス サイズ 使用 残り 使用% マウント位置 dev

    [EC2] NVMe SSD ローカルストレージ搭載!C5dインスタンスが登場しました | DevelopersIO
  • 3分で作る、スケジュール実行するLambda | DevelopersIO

    スケジュール実行するLambdaを、AWS製の Chalice というサーバーレスアプリケーションフレームワークを使ってサクッと構築したいと思います。Chalice はPython製のツールで開発言語もPythonに限られますが、軽量なフレームワークとなっており、学習コストが低くとっつきやすくなっています。API Gatewayと一緒に使われることが多いかと思いますが、各種イベントソースとの連携にも使えます。 環境 macOS Catalina 10.15.4 Python 3.7.7 $ sw_vers ProductName: Mac OS X ProductVersion: 10.15.4 BuildVersion: 19E287 $ python3 -VV Python 3.7.7 (default, Mar 10 2020, 15:43:33) [Clang 11.0.0 (cl

    3分で作る、スケジュール実行するLambda | DevelopersIO
  • PythonのコードをプロファイルしてLambdaのコストを最適化しよう! | DevelopersIO

    CX事業部@大阪の岩田です。 とある環境で稼働しているLambda(Python)の利用費が予想以上に高く、コスト削減案を検討する機会がありました。Pythonのプロファイルツールを使うのは初めてだったのですが、ツールを組み合わせることで、サクッと改善案を見つけることができたのでツールの使い方を簡単にご紹介します。 分析対象のコード こんな感じのコードが分析対象です。実際にはもっと色々と複雑なことをやっていますが、分かりやすいように処理の大枠だけ残してガッツリ改変しています。これだけ見れば改善箇所は一目瞭然なのですが、実際にはもっと色々な処理があり、パット見では改善点が分かりにくい状態でした。 import json import logging import boto3 logger = logging.getLogger() def handler(event, context):

    PythonのコードをプロファイルしてLambdaのコストを最適化しよう! | DevelopersIO
  • 社内で行ったビジネスライティング講座資料を公開します | DevelopersIO

    オペレーション部 江口です。 先日、社内でビジネスライティングについてオンラインで講義する機会があったので、その資料を公開しておきたいと思います。 いわゆる技術文書というよりは、メールやSlackなど、相手とやり取りを行う際の文章作成を主に考えた資料となっていますので、その点ご承知おきください。 背景 講義を行ったのは、アカウント周りの作業を行うアカウントチームに対してでした。チームの業務内でメールでの顧客とのやり取りやSlackでの社内でのコミュニケーションなど、文章を作成する機会が多く、その際の書き方に課題を感じている方が多いようだったので、少しでも助けになればと思いこの講座を企画しました。 私は別に人に自慢できるほど文章がうまいわけではないですが、約20年のエンジニアのキャリアで顧客とのやり取りや技術文書の作成などをそこそこの数こなしてきました。先輩や上司などからいろいろな指摘を貰い

    社内で行ったビジネスライティング講座資料を公開します | DevelopersIO
  • 【Python】sqlparseを使ってDDL以外のSQLファイルを抽出する | DevelopersIO

    データアナリティクス事業部の貞松です。 最近、データ分析環境絡みで特定のプロジェクトに含まれるSQLファイルをパースして解析したい要件が発生しました。 記事では、上記の要件に対応する為に使用したsqlparseというライブラリについてご紹介すると共に、sqlparseを使って、任意のディレクトリ配下のSQLファイルからDDL(CREATE TABLE)でないファイルを抽出する方法を解説します。 sqlparseとは sqlparseは非検証SQLパーサー(処理対象のSQL文の正当性は検証しない)のpythonライブラリです。 GitHub - andialbrecht/sqlparse: A non-validating SQL parser module for Python サポートされているPythonバージョンは3.4以降で、インストールはpipで行います。 pip insta

    【Python】sqlparseを使ってDDL以外のSQLファイルを抽出する | DevelopersIO
  • エンジニアが技術登壇する時に考えるべき事 | DevelopersIO

    社内の登壇勉強会で登壇したときの資料です。基的にはまだ登壇にあまり慣れていない人向けの内容になってますが、当日参加した他のベテラン登壇者の資料も紹介しているので、誰にでも参考になると思います。 「みんな、登壇するとき、何に気をつけて喋ってんの?すげぇ聞きたい」 そんな素朴な疑問から、「登壇勉強会〜それぞれの流儀がそこにある〜」という社内イベントを企画しました。登壇者は自分含めて3人。 当日他の登壇者(藤村、塩谷)という歴戦のツワモノの発表を聞いていて思ったんですが、はっきり言って登壇って100人100様です。めっちゃ個性がでまくります。 唯一の正解なんてなく、それぞれが独自のやり方で登壇の技を磨いているんだなぁと心底思いました。これ自分が企画した勉強会でしたが、自分が一番楽しんでたと確信してます。このブログでは、自分が普段登壇する時に気をつけているところを主観丸出しで書いてます。「それぞ

    エンジニアが技術登壇する時に考えるべき事 | DevelopersIO
  • AWS アップデート職人になるための Tips | DevelopersIO

    バタバタ・・・ばたんっ! リビングから響く遠慮のない生活音に眠りから引き摺り起こされる。ベッドの脇に落ちたスマホを手で探りあて、人工的な眩しさを遮るように薄く瞼を開く。 「(・・・5時15分か。)」 通学に一時間かかる長女は毎朝この時間に起きてはバスケの朝練に向かう。部活の愚痴を吐くものの、それなりに楽しんでやってるようだ。 光というにはあまりにも弱い外の明かりをたよりに、ベッドの横に視線をやる。五歳と七歳のチビは何も聞こえた様子もなく、布団を蹴り飛ばした格好のまま寝ている。のせられた小さな足をそっと下ろし、また蹴り飛ばされるであろう布団をかけた。 もうひと眠りしようか、、などと考えながら再びスマホを手に取りアプリを開いた。 「(あぁ・・・アップデート出てんなぁ。。)」 「・・・」 ガバッ! もう一度眠りへ引きずり込もうとする布団の温もりを断ち切るため、必要以上の大きな動作で身を起こし、そ

    AWS アップデート職人になるための Tips | DevelopersIO
  • [Mackerel]ログローテーション運用時のログ監視で抑えておきたい「State」オプション | DevelopersIO

    今回の記事ではMackerelを使ったログ監視における「State」という概念をログローテーションのパターン毎の検証も交えてまとめておきたいと思います。 はじめに こんにちは。大阪オフィスの林です。 みなさま、AWSの監視に何を使っていますでしょうか?弊社ではMackerelを利用した監視オプションサービスを提供しています。今回の記事ではMackerelを使ったログ監視における「State」という概念を検証交えてまとめておきたいと思います。またログ監視について下記の記事も併せてご覧頂ければと思います。 「State」とは? Mackerelでは「State」オプションを使う(デフォルトで有効)ことによって、ログのチェック完了位置(バイト数)を「stateファイル」に出力し記録しておき、次回以降は前回チェック完了位置(バイト数)以降の出力差分に対して、ログのチェックを実施することが出来ます。

    [Mackerel]ログローテーション運用時のログ監視で抑えておきたい「State」オプション | DevelopersIO
  • [レポート] AWS LambdaとJavaのベストプラクティス #SVS403 #reinvent | DevelopersIO

    SVS403 : Best practices for AWS Lambda and Java はじめに この記事はSVS403 Best practices for AWS Lambda and Javaのセッションレポートです。 スライドと動画はそれぞれ下記で公開されています。 スライド 動画 セッション概要 In this session, we follow a customer’s journey as they optimize an AWS Lambda function written in Java to meet their cold start time requirements. We start from a simple yet slow PoC and walk through all of the changes, tricks, and trade-off

    [レポート] AWS LambdaとJavaのベストプラクティス #SVS403 #reinvent | DevelopersIO
  • AWS SAM (AWS Serverless Application Model) で実現するカナリアリリース! | DevelopersIO

    どうやらSAMのデプロイメントでは、常にベースバージョン(prod)にデプロイされるようです。 で、先程3回目のSAMのデプロイメントがエラーになった理由ですが、こちらのドキュメントの最後の方に理由が記載されています。 Canary がステージで有効になっていると、デプロイは Canary リリースのデプロイになります。Canary 設定がステージから削除されるまで、ステージは非 Canary のデプロイに関連付けることはできません。 悲しい結末 結論として、 API Gateway Canary パターン をSAMのデプロイフローで利用するのは無理っぽいです。。。 理由は、 AWS SAMでCanarySettingは設定はできるが、カナリアバージョンへのデプロイが実質機能しない 仮に上記が可能だとしても、、、 API Gatewayの設定が変更されている必要がある ( = Lambda

    AWS SAM (AWS Serverless Application Model) で実現するカナリアリリース! | DevelopersIO
  • CORS(Cross-Origin Resource Sharing)によるクロスドメイン通信の傾向と対策 | DevelopersIO

    CORS(Cross-Origin Resource Sharing)って何? CORS(Cross-Origin Resource Sharing)は、その名の通り、ブラウザがオリジン(HTMLを読み込んだサーバのこと)以外のサーバからデータを取得する仕組みです。各社のブラウザには、クロスドメイン通信を拒否する仕組みが実装されています。これは、クロスサイトスクリプティングを防止するためです。Aというサイトに訪問したのに、Bというサイトに向けて個人情報を送っていたというのは困りますよね。例えば、オリジンから読み込んだHTML内のJavaScriptでJSONデータを読み込むとしましょう。JSONデータが同じサーバにあれば普通に読み込めますが、別のサーバにある場合は読み込めません。まぁ実際のところはJSONPという仕組みを使ってできちゃったりしますが、抜け道的なやり方で使われていました。CO

  • CodeDeploy pushコマンドは裏で何をやっている? | DevelopersIO

    AWSのデプロイ自動化サービスCodeDeployのチュートリアルでは、デプロイするコードを $ aws deploy pushコマンドでS3にアップロードし、(アップロードしたコードベースは「リビジョン」と呼ばれます)、管理画面からリビジョンを指定してデプロイを実行するのが一般的です。 では、この$ aws deploy pushコマンドは裏で何をやっているのでしょうか? deploy pushを実行してみる $ aws deploy pushを実際に実行してみましょう。 $ aws deploy push --application-name foo --description "test" --s3-location s3://YOUR-BUCKET/cd/test.zip To deploy with this revision, run: aws deploy create-de

    CodeDeploy pushコマンドは裏で何をやっている? | DevelopersIO
  • AWS IAMポリシーを理解する | DevelopersIO

    はじめに こんにちは、川原です。 AWSのIAMサービスでは、各AWSサービスへの操作をアクセス制御するために「ポリシー」という概念があります。 AWSのドキュメントを読んでいると、ポリシーにはいくつか種類があることに気付くかと思います。ブログではそれらのポリシーについて整理してみたいと思います。 ポリシーの基 ポリシーは基的に、「誰が」「どのAWSサービスの」「どのリソースに対して」「どんな操作を」「許可する(許可しない)」、といったことをJSON形式で記述します。 記述したポリシーをユーザー(IAMユーザー、IAMグループ、IAMロール)や、AWSリソースに関連づけることで、アクセス制御を実現しています。 例えば、以下のJSONはAWS側で用意しているAmazonS3ReadOnlyAccessという名前のポリシーです(後述するユーザーベースポリシーのAWS管理ポリシーに該当)。

    AWS IAMポリシーを理解する | DevelopersIO