タグ

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

  • GitHub Actions の Workflow 実行内で Ref(ブランチ名)を取得する方法 | DevelopersIO

    確認してみた 次のような Workflow file で確認してみます。 .github/workflows/echo.yml on: push: pull_request: jobs: echo: runs-on: ubuntu-latest steps: - run: | echo '1' $GITHUB_REF echo '2' ${{ github.ref }} echo '3' ${{ github.ref_name }} echo '4' ${{ github.head_ref }} echo '5' ${{ github.base_ref }} 2から4については、Workflow 内で利用可能なgithubcontext を使用しています。 github-context - Contexts - GitHub Docs Push Eventの場合 Push Event Tr

    GitHub Actions の Workflow 実行内で Ref(ブランチ名)を取得する方法 | DevelopersIO
  • AWS CLIで旧NAT ゲートウェイのEIPを新しいNAT ゲートウェイで再利用してみた | DevelopersIO

    はじめに こんにちは、AWS事業コンサルティング部の酒井です。 対向システムのIP制限の関係でElastic IP(EIP)を流用する必要があったので、手順をまとめてみました。 皆さんの環境構築の参考になれば幸いです。 Elastic IPの再利用手順 1.既存のNAT Gatewayの削除 EIPの関連付けのみを解除することができないので、NAT Gatewayを削除します。 $ aws ec2 delete-nat-gateway --nat-gateway-id {NatGatewayId} { "NatGatewayId": "nat-xxxxxxxxxxxxxxxxx" } ※1aws ec2 disassociate-addressコマンドを実行すると、以下のエラーになります。 $ aws ec2 disassociate-address --association-id

    AWS CLIで旧NAT ゲートウェイのEIPを新しいNAT ゲートウェイで再利用してみた | DevelopersIO
  • Python でアプリ開発できる Flet を触ってみた | DevelopersIO

    こんにちは、森田です。 最近周りの人から Python でアプリ開発のできる Flet について教えてもらい、面白そうなのでチュートリアルをやってみました。 よかったら参考にしてみてください。 Flet とは Flet は、フロントエンド開発の経験がなくても、簡単に Web、デスクトップ、モバイル アプリケーションを開発できるフレームワークです。 開発はPythonで行うことができ、内部的には、Flutter を利用しているようです。 標準でウィジェットが用意されているため、フロントの開発を行うことなく、少ない労力で、アプリとして動作させることができます。 Python で複雑すぎないアプリを作りたい場合にピッタリのフレームワークとなります。 やってみた 記事では、チュートリアルに従って、電卓アプリを作ってみます。 なお、記事では、Mac Python 3.8.13にて行います。 ライ

    Python でアプリ開発できる Flet を触ってみた | DevelopersIO
  • RailsライクなRustのWebフレームワーク 「Loco」 | DevelopersIO

    Introcusion つい先日、「Rust版のRails」ともいわれている、 Locoというフレームワークを教えてもらいました。 Railsは昔ちょっとさわった程度なのですが、 Rustで手軽にRailsライクなアプリ開発はおもしろそうなので、 試してみました。 Loco? Locoについて簡単に説明します。 このblog記事で、Locoって何? なんでRustなの?とか誰のためのフレームワーク?みたいなことが書いてあります。 軽く説明すると、↓です。 Locoって何? Loco は、Rails からインスピレーションを得た Rust用のWebフレームワーク ほぼすべての Rails 機能が含まれている Controllerとaxum経由のルーティング ActiveRecordライクにSeaORMでモデル操作 rrgenでコード生成 その他いろいろ。詳しくは元記事で RubyでいいならR

    RailsライクなRustのWebフレームワーク 「Loco」 | DevelopersIO
  • 【負荷試験】ISUCONの練習環境 private-isu をAWS上に構築してみた | DevelopersIO

    こんにちは、ゲームソリューション部の入井です。 最近、負荷試験やパフォーマンスチューニングの勉強のために以下の書籍を読んでいます。 達人が教えるWebパフォーマンスチューニング 〜ISUCONから学ぶ高速化の実践 | | Amazon このの中でprivate-isuという負荷試験の練習ができる環境が紹介されていたのを見て、実際にAWS上で構築してみたので、今回はその手順について書いていきます。 private-isuとは LINE株式会社が主催するISUCON(Iikanjini Speed Up Contest)というイベントがあります。これは、『お題となるWebサービスを決められたレギュレーションの中で限界まで高速化を図るチューニングバトル』という内容の大会で、毎年様々な企業から参加者が集まって盛り上がっており、今年も11月25日に開催することが予告されています。 ISUCON13

    【負荷試験】ISUCONの練習環境 private-isu をAWS上に構築してみた | DevelopersIO
  • ECSに必要なVPCエンドポイントまとめ(2022年版) | DevelopersIO

    その他エンドポイント 以下のエンドポイントは構成によって必要になります。 CloudWatch Logs エンドポイント(com.amazonaws.region.logs) Secrets Manager エンドポイント(com.amazonaws.region.secretsmanager) Systems Manager エンドポイント(com.amazonaws.region.ssm, com.amazonaws.region.ssmmessages) ECSのエンドポイント解説 表に記載した通りです。EC2の場合はVPCエンドポイントが必要な一方、Fargateでは必要ありません。 EC2ではコンテナエージェントがECSサービスと通信する必要があるため、VPCエンドポイントが必要になっています。 ECRのエンドポイント解説 コンテナイメージをECRに保存している場合はECRへのエ

    ECSに必要なVPCエンドポイントまとめ(2022年版) | DevelopersIO
  • 分散データシステム入門の決定版『データ指向アプリケーションデザイン』をたった30分で学んでみた #DataEngineeringStudy | DevelopersIO

    基調講演「30分でわかるデータ指向アプリケーションデザイン」 ・ スピーカー 斉藤 太郎氏  Twitter:@taroleo / Github:@xerial Principal Software Engineer , Treasure Data 東京大学理学部情報科学科卒。情報理工学 Ph.D。データベース、大規模ゲノムデータ処理の研究に従事。その後、スタートアップであるTreasure Dataに加わり、アメリカ、シリコンバレーを拠点に活動中。日データベース学会上林奨励賞受賞。OSSを中心にプログラミングやデータ処理を簡単にするためのプロダクトを作成している。 「30分でわかるデータ指向アプリケーションデザイン」最新の論文にも触れながら、分散データシステムの世界の魅力を伝えていきます。後半、@tagomoris https://t.co/TQ2TnsFIOT… — Taro L.

    分散データシステム入門の決定版『データ指向アプリケーションデザイン』をたった30分で学んでみた #DataEngineeringStudy | DevelopersIO
  • gRPCを使ってRust – JavaScript通信 | DevelopersIO

    Introduction RPCは昔からあるクライアント−サーバー間の通信手法です。 サーバで実装されている関数をクライアントから呼んで実行します。 最近ではHTTP/HTTPSでクラサバ間通信をして、 フォーマットにXML(XML-RPC)やJSON(JSON-RPC)を利用するのが 多いようです。 (直近で私は使った記憶がないですが) 上記のRPCは各技術がメジャーなので採用しやすいですが、 パフォーマンスがそこまで高くなかったり バイナリデータが扱いにくかったりします。 そういった問題点を解決するために開発されたのが、 Google発のRPCであるgRPCです。 gRPC? gRPCはハイパフォーマンスなオープンソースのRPCフレームワークです。 Googleが開発したRPC技術(Stubby)が元となって開発され、オープンソース化されました。 現在はCNCFによって開発が進められて

    gRPCを使ってRust – JavaScript通信 | DevelopersIO
  • 【2021年】AWS全サービスまとめ | DevelopersIO

    こんにちは。サービスグループの武田です。このエントリは、2018年から公開しているAWS全サービスまとめの2021年版です。 こんにちは。サービスグループの武田です。 このエントリは、2018年から毎年公開している AWS全サービスまとめの2021年版 です。昨年までのものは次のリンクからたどってください。 AWSにはたくさんのサービスがありますが、「結局このサービスってなんなの?」という疑問を自分なりに理解するためにまとめました。 今回もマネジメントコンソールを開き、「サービス」の一覧をもとに一覧化しました。そのため、プレビュー版など一覧に載っていないサービスは含まれていません。また2020年にまとめたもののアップデート版ということで、新しくカテゴリに追加されたサービスには[New]、文章を更新したものには[Update]を付けました。ちなみにサービス数は 205個 です。 まとめるにあ

    【2021年】AWS全サービスまとめ | DevelopersIO
    u_engine
    u_engine 2021/01/07
  • 既存のAWS環境を後からTerraformでコード化する | DevelopersIO

    はじめに こんにちは、岩城です。 既存のAWS環境をTerraformでコード化する機会がありました。その際、Terraform素人であったため、コード化する流れを掴むまでに少し時間が掛かりました。 同じような方に向けて、備忘録として残しておきます。 用語解説 Infrastructure as Codeを実現するためのツール コードからインフラの構築/変更/バージョン管理を行える HashiCorp社が開発、オープンソース版とエンタープライズ版がある AWS、Azure、GCPを始めとするメジャーなクラウドプロバイダをサポートしている Providers 各クラウドの管理ツールで使わずにTerraformで管理できる AWS: Cloud Formation Azure: Resource Manager GCP: Deployment Manager コミュニティが活発でリリースが早い

    既存のAWS環境を後からTerraformでコード化する | DevelopersIO
  • [AWS]RHEL7 よくある初期構築設定のコマンド詰め合わせ | DevelopersIO

    RHEL公式ドキュメントを引用した、RHEL7のよくある初期設定コマンド詰め合わせパックです。AWSの初期設定でご利用できるような情報も付加してます!! コンニチハ、千葉です。 昔こんな記事を書きましたが、今回はRHEL7版をお届けします。RHEL公式ドキュメントを引用していますので、野良ではない情報をお届けします。確認コマンドも載せてますのでご利用ください。 [AWS]RHEL6初期構築設定・コマンド詰め合わせ はじめに 初期構築っていっても色々あると思いますが、私がやりたかった対象は以下です。 ホスト名 時刻同期 文字コード タイムゾーン 初期設定 タイムゾーン タイムゾーンは、timedatectl set-timezoneで設定します。 $ sudo timedatectl set-timezone Asia/Tokyo 設定した内容を確認してみます。localがJSTに設定されま

    [AWS]RHEL7 よくある初期構築設定のコマンド詰め合わせ | DevelopersIO
  • 【登壇資料】Elixir/OTPを使った分散アプリケーションについて話してきました #cm_osaka | DevelopersIO

    2017年5月12日(金)、クラスメソッド株式会社 大阪オフィスにて【大阪オフィス開催一周年勉強会】第四回 Go&Elixirで作る分散アプリケーションが開催されました。 スピーカーとして参加しましたのでレポートします。 勉強会の概要については以下を参照ください。 【 大阪オフィス開設1周年!! 】クラスメソッドの開発を知る!全7回勉強会開催 Elixir/OTPを使った分散アプリケーション 分散アプリケーションを作る上で、Elixir/OTPを使うことの利点やその特徴についてお話ししました。 スケーラビリティとフォールトトレランス OTPを使ったアプリケーションの設計 別ホストで起動しているノードとのメッセージ通信 Failover & Takeover 最後に セッション終了後、同会場で懇親会が開催されました。 参加者の皆様とアプリケーションの並列処理や分散処理についていろいろ意見交換

    【登壇資料】Elixir/OTPを使った分散アプリケーションについて話してきました #cm_osaka | DevelopersIO
  • systemd超入門 | DevelopersIO

    これはとある勉強会用の資料です。スライド作るのが面倒臭くなったのでブログにすることにしました。 Systemdとは Systemdは、Linuxの起動処理やシステム管理を行う仕組みです。 Linuxの起動処理 Linuxの起動はざっくりと以下の4段階によって行われます。 電源投入によりBIOSが起動する。 BIOSからブートローダーが呼び出される。 ブートローダーがLinuxカーネルを起動する。 Linuxカーネルがinitプロセス(PID 1)を起動する。 このinitプロセスが、Linuxの起動処理を司ります。古くから使われていたのがSysvinitで、Sysvinitの代替えとして近年Ubuntuなどで採用されていたのがUpstartです。そしてFedora 15やCentOS 7、Red Hat Enterprise Linux 7で採用されたのがSystemdです。 System

    systemd超入門 | DevelopersIO
    u_engine
    u_engine 2018/04/10
    “はじめてのsystemdサービス管理ガイド”
  • はじめてのsystemdサービス管理ガイド | DevelopersIO

    はじめに MarketplaceでCentOS 7 AMIがリリースされましたね!(ex. Amazon EC2 CentOS 7 AMIファーストインプレッション) ということで、これはもう格的にsystemdを学ばないとあかん、という危機感に駆られた次第です。systemdは"system and service manager"なので、電源やロケールなどのシステム部分の管理も可能ですが、差し当たってEC2で使う上で最低限押さえとかなければいかないのはサービス管理になるでしょう。そこでsystemdを操作するためのコマンドであるsystemctlを使って、サービスを管理する方法についてまとめました。 systemdサービス管理 systemdでは、これまでサービス起動スクリプトで定義されていたものがUnitという形で定義されますので、サービスの管理=Unitの管理となります。 有効化

    はじめてのsystemdサービス管理ガイド | DevelopersIO
  • ヘッドレスChromeの自動化ツール「Chromeless」を使って自動テストを実施する #serverless #adventcalendar | DevelopersIO

    ヘッドレスChromeの自動化ツール「Chromeless」を使って自動テストを実施する #serverless #adventcalendar ヘッドレスChromeでシンプルに自動テストを行う Google Chromeのバージョン59から標準搭載された、ヘッドレスモード(GUIがないモード)。コマンドラインからヘッドレスブラウザを立ち上げることができ、スクリーンショットの撮影を行ったりDOMを出力したりすることができます。自動化の可能性に満ち溢れた機能です。 ヘッドレスChromeの導入については、次の公式ドキュメントが詳しいです。 ヘッドレス Chrome ことはじめ  |  Web  |  Google Developers ドキュメントを読んでいただくと分かると思いますが、様々なことが可能なため指示の記述が少し冗長な面があります。 そこでヘッドレスChromeを用いた自動化処理

    ヘッドレスChromeの自動化ツール「Chromeless」を使って自動テストを実施する #serverless #adventcalendar | DevelopersIO
  • エンジニアのための無料で使えるドローイングツールまとめ | DevelopersIO

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

    エンジニアのための無料で使えるドローイングツールまとめ | DevelopersIO
  • Edeliverを使ってElixirアプリケーションをデプロイする | DevelopersIO

    Elixirアプリケーションのデプロイツールはedeliverが一番人気のようです。 edeliverはRubyのCapistranoのようなツールです。 今回はedeliverを使ってPhoenixアプリケーションをEC2のサーバにデプロイします。 edeliverの仕組み edeliverはビルド専用のマシンでアプリケーションをビルドし、productionサーバにデプロイします。 内部ではDistilleryというリリースパッケージを作成するツールを利用しています。 デプロイフローを図にすると以下のようになります。 ビルドサーバには事前にErlang, Elixir, NodeJSをインストールする必要があります。 セットアップ ssh-agentの設定 edeliverはversion管理にgitを使用します。 ビルドサーバでgitを使ってチェックアウトするためにssh-agent

    Edeliverを使ってElixirアプリケーションをデプロイする | DevelopersIO
  • Angular と Akka Streams で多対多のビデオチャット作った – Media Source Extensions 利用 | DevelopersIO

    リアルタイムコミュニケーションといえば WebRTC が思いつきますが、STUNサーバやTURNサーバといったコンポーネントを設置するのが大変そうで気が進まなかったため Akka Streams で実装を進めます。 実装の流れ 多対多のビデオチャットを実装するにあたり、いきなり全部やろうとすると確実に進まないだろうということで、いくつかのステップへ分けることにしました。まずは Media Source Extensions を使ってみるところからはじめ、徐々に多対多の仕組みへ近づけていくことにします。 録画した自分の映像をそのまま表示する 録画した自分の映像をサーバー経由で表示する 多対多を実現するために、参加者を動的に管理できるようにする 途中参加へ反応して動的にビデオコンポーネントを作成する 1. 録画した自分の映像をそのまま表示する Media Source Extensionsが

    Angular と Akka Streams で多対多のビデオチャット作った – Media Source Extensions 利用 | DevelopersIO
  • MySQL のサブクエリって、ほんとに遅いの? | DevelopersIO

    こんにちは、みかみです。 今日のクラスメソッドのAWSおみくじ、RDS(t1.micro)でしたー!(昨日は Aurora!@@v はじめに 前職@アプリ開発時、MySQL のクエリチューニングをさせていただく機会がありました。 ユーザー入力のキーワードで全文検索 → 見つかったレコードを返すのですが、所要時間、約3分。。 Apache タイムアウトして画面真っ白。。。(泣きそうでした><。 EXPLAINで実行計画を調べた際に、select_typeにはクエリの種類が表示されるのだが、代表的なサブクエリには次の3つのパターンがある。 SUBQUERY DEPENDENT SUBQUERY DERIVED 結論から言おう。遅いのは2番目、DEPENDENT SUBQUERYである。DEPENDENT SUBQUERYとはいわゆる相関サブクエリに相当するもので、サブクエリにおいて外部クエリの

    MySQL のサブクエリって、ほんとに遅いの? | DevelopersIO
  • Elixirのノード接続とメッセージ通信 | DevelopersIO

    Elixirでプログラミングをするときは頻繁にプロセス間でメッセージ通信を行います。 Elixirのプロセスはネットワークに透過的なため、別ノード(別VM)へのプロセスへメッセージを送信することができます。 また、別ホスト(別サーバ)で動いているプロセスへも送信できます。 今回は異なるVM間、異なるホスト間のメッセージ通信を試してみます。 ノード接続 メッセージ通信を行うノード同士で接続します。 まず最初に名前付きでノードを起動しましょう。 (@以降の内容はホストネームです。hostname -s で確認できます) $ iex --sname foo iex(foo@kanmo)> 次に別のターミナルウィンドウを開き、同じく名前付きのノードを起動します。 $ iex --sname bar iex(bar@kanmo)> それでは、ノード同士で接続します。 iex(foo@kanmo)>

    Elixirのノード接続とメッセージ通信 | DevelopersIO