Yuta NakataのBlog

Python / AWS / ITについて役立つ情報を発信します

IT

立ち上げ時のSaaS/Webアプリに役立つサービスまとめ

私自身、立ち上げ期のSaaSサービス・Webサービスの開発、個人開発を通じて学んだ立ち上げ期に役に立つサービスをまとめます。 そもそも、なぜ立ち上げ期で役に立つのか? サービス立ち上げ時は、とにかく爆速でコンテンツの充実・プロダクトの中身を作ってい…

CfnでS3バケットを作成・削除、再作成すると、QuickSightのアクセス権外れるらしい

概要と結論 生じた問題 QuickSightのセキュリティ・アクセス権限から、特定のS3バケットを選択して、このバケットを使っています。 CloudFormationを用いて、 S3バケットの作成 を行ったのち、アクセス権の追加を行い、S3バケットを作成したCloudFormationを…

Webサービスとラスター/ベクトルデータについて考える

Webサービスにおけるラスター・ベクトルデータの使い分けについて考えようと思います。 私自身、MapboxやOpen Street Mapを通じて、地理情報データを扱う機会が多いです。 ラスターデータとは? .tif .png といったグリッド形式のデータです。 ベクトルデー…

Mapboxで複数のRaster Tileを同時にセットアップしたい。

やりたいこと Mapboxを使って、複数のタイルデータを同時に表示したい。 ここでは、仮として表示したいタイルサーバーAを、 http://a.example.com/tiles/{z}/{x}/{y}.png とし、 表示したいタイルサーバーBを、 http://b.hoge.com/tiles/{z}/{x}/{y}.png と…

Pythonマスターへの近道: きれいなコードでプロになる

現場のエンジニア目線でPythonのコードの書き方について、初学者から未経験エンジニアに知ってもらいたい内容です。 一般的な話が多く、現場のスタイルに制限されるものではないので色々なところで使えるかと思います。 やってほしくないこと 変数名をカタカ…

【バックグラウンドプロセス】計算時間の長いタスクはお任せしよう

課題背景 このような場面はありますでしょうか? プログラムAを使って、計算を回したい! ただし、このプログラムは計算時間が長く、待っているのが嫌だ! このときに役に立つのが、バックグラウンドプロセスです。 バックグラウンドプロセスとは? ユーザー…

Lambdaでサードパーティライブラリを爆速で使う方法

ランキング参加中Python ランキング参加中AWS (Amazon Web Services) やりたいこと AWS Lambdaでサードパーティ製のライブラリを使う方法についてです。 今回はPythonを取り上げます。 結論 公式で出しているレイヤーを使う すでに公開されているレイヤーを…

AWSコストを半分に削減した方法

はじめに 弊社でAWSを使ったシステム開発をメインにしています。 年末の大掃除ということで、日頃使っているサービスのコスト見直しを行い、月数千ドルの削減を行いました。 はじめに、我々のチームで使っているAWSアカウントは下記のようなユースケースで使…

2023年買ってよかったオススメ技術書4選

2023年、最後の記事になります。 記事をお読みなってくれた方、ありがとうございました! 今年1年読んだ本の中で、特に勉強になったものを紹介したいと思います。 1. Vue 3 フロントエンド開発の教科書 2. 達人プログラマー第2版 3. オブジェクト指向UIデザ…

QuickSightでWe cannot update the IAM Role. The reason could be one or more from the followingのエラー解決法

事象と経緯 QuickSightを用いてデータの可視化を行っています。 データセットとして、Athenaを使っており、セキュリティとアクセス権限から書き込み権限を追加しています。 起こったエラーとしては、対象バケットにアクセス権を追加した後に、下記のような書…

PR前にやって欲しいこと3選

現代のソフトウェア開発ではかかせないGit/GitHub。 GitHubを使ったチーム開発は、現代ではマストだと思います。 そこで、現場のエンジニア目線でこれだけはやっておいてほしい3選を紹介します。 他にも、色々言いたいことはありますが、、、、まずは、これ…

lru_cacheを理解する(Python)

ランキング参加中Python 結論 具体例 使い方のイメージ 結論 pythonには、lru_cacheと呼ばれる標準機能があります。 個人的に、納得できる解説がなかったので、ここにまとめます。 結論、下記のようにまとめられます。 言葉で説明すると、 メソッドのある引…

AWS EBS(Elastic Block Store)はEC2を止めても課金されます

ランキング参加中AWS (Amazon Web Services) Cost Explolerで状況確認 EBSの課金を停止する EBSと料金について 表題の件について解説していきます。 結論としては、 AWS EBS(Elastic Block Store)は、アタッチしているEC2を停止しても課金されます。なので…

AWS Lambdaで複数のファイルを並列で取得する

ランキング参加中Python ランキング参加中AWS (Amazon Web Services) 今日は、AWS Lambda, Python, 並列処理について書こうと思います。 背景 プログラム 背景 Lamdaでデータをダウンロードする時間を圧縮したい! プログラム 下記の例では、awswranglerを用…

LambdaでBoto3/Pandasを使うのをやめて、awswrangler(aws-sdk-pandas)を使いましょう

ランキング参加中Python ランキング参加中AWS (Amazon Web Services) 1. awswranglerってなに? 2. Boto3/Pandasではなく、awswranglerを使う実践的なコード 2-1. boto3/pandasを使う場合 2-2. awswranglerを使う場合 3. なんでawswrangler? 4. 参考文献 1.…

テスト駆動開発の始め方

結局、テスト駆動開発とは何でしょうか? 結論 普通の開発の仕方との違い 参考文献 テスト駆動開発(Kent Beck) テスト駆動Python 結論 まずは、結論です。 テスト駆動開発とは、 ①テストを書き、 ②テストが通るようにプログラムを書き、 ③テストが通ったら…

達人プログラマーのTipsまとめ

先日、達人プログラマー第2版を読みました。 新卒2年目(ソフトウェア開発5年目)として、目から鱗の金言が多かったので、Tipsを一覧にしてまとめました。 また、ダウンロードできるように以下にPDF版も載せておきます。 https://drive.google.com/file/d…

ベクトルデータ・ラスターデータから任意の緯度経度のデータを抽出する方法

課題背景 地理情報系のデータを扱う際、ベクトルデータとラスターデータがあります。 これらのデータは、度々巨大であることが多く、素直にデータを読み込むと、読み込み処理が重いという現象があります。 そこで、今回は、大きなデータであっても、データサ…

StepFunctionの基礎と概要【サンプルコード付き】

StepFunctionsとは? 概要 ハンズオン 今回やること 勉強教材 StepFunctionsとは? 概要 StepFunctionsとは、AWSのサービスの一つです。 複数のAWSサービスを簡単に組み合わせ・自動化でき、計算機リソースを分散・並列化させつつ大規模計算を可能にすること…

AWS利用コストをSlackに通知させるツールを作る

はじめに 弊社では、基本的にAWSをベースに開発をしており、クラウド・サーバーレスが基本になっています。 この環境は、様々な面でメリットをもたらす一方で、従量課金型のサービスであるパブリッククラウドにて、予期せぬ出来事が起きないように、利用料金…

Webにおける位置情報技術の概要

はじめに 仕事柄、位置情報を使ったApplicationを作ることが多く、今回Webの世界における位置情報について体系的に学習したいと思い、一冊購入して勉強しました。この記事では、Google MapやOpen Street Map, Mapbox, MaplibreなどのMap情報とWebの世界につ…