Yuta NakataのBlog

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

2024-01-01から1年間の記事一覧

Athenaのパフォーマンスを上げる【Performance Tuning of Amazon Athena】

背景・前提 施策1. パーティションを使う 施策2. 読み込ませるデータを圧縮する 施策3. ファイル数を分割する 施策3. 結合を最適化する 施策4. LIKE句の使用は控える 施策5. 近似関数を使う 施策6. 必要ない列は含めない 施策6. クエリ結果を再利用 最後に …

netcdfファイルを軽量化する方法

背景 netCDFは、多次元データを格納するのに便利な拡張子です。 気象、海洋、気候の世界では広く使われています。 一方で、このデータの課題として、多次元配列が故にファイルサイズが大きくなることが挙げられます。 これにより、データの読み込み時にメモ…

技術ブログを1年間続けたみた結果

先日、私のところに以下のようなメールが届きました。 いつの間にか、このブログを初めて1年間経っていたようです。 そこで、今回は 技術ブログを始めた背景 技術ブログのメリット・デメリット アクセス数 などについて、まとめていきます。 技術ブログを始…

【コピペでOK】EC2にPython3.12を入れる

ランキング参加中AWS (Amazon Web Services) ランキング参加中Python 背景 EC2はデフォルトでは、PythonのVersionが非常に古いです。 そこで、EC2のVersionUpを試みるも環境構築に苦戦するケースが散見されます。 巷にあふれる同様のHow To記事も見かけます…

cartopy逆引き大全

ランキング参加中Python 0. 背景 1. cartopyをinstallする 2-1. 海岸線を描く 2-2. 緯度・軽度線を描く 2-3. 国境線を描く 2-4. 表示されるエリアを日本域だけにする 2-5. 複数のグラフを作成する 2-6. 海や陸地に色をつける 2-7. パラパラ漫画(.gif)を作成…

【1000倍早くなるPython高速化】for文とベクトル志向演算で計算比較してみた

ランキング参加中Python 背景 Python高速化のテクニック、ベクトル志向演算でどれだけ高速ができるか検証してみました。 高速化の題材は、for文ループを用いて、どれだけ差がでるかを検証してみました。 Python高速化については、以下を参照してください。 w…

【脱初心者】Python初心者コードあるある

ランキング参加中Python 背景 Python初心者あるあるをまとめます。 また、その改善策も合わせて紹介します。 あるある1:多重forループ for i in range(10): for j in range(10): for k in range(10): print(i, j, k) 本当に多重ループが必要でしょうか?よ…

pytestで考えるテストケース

背景 テストコードを書いてください このときにどんなテストコードを書けばいいでしょうか? 具体例をベースにテストケースの考え方について、本記事では考えます。 テストの種類 テストには、 単体テスト 結合テスト システムテスト 等があります。 ここで…

【初心者向け】コンピュータサイエンスがわからない人のための、EC2のインスタンスの選び方

ランキング参加中AWS (Amazon Web Services) 背景 EC2インスタンスの選び方について、メモリとか、CPUとかよくわからない人向けにまとめます。 そのため、各EC2インスタンスタイプの正確な説明はしません。 また、玄人から見ると、雑な説明になっています。 …

【爆速Python】今すぐ使えるPythonを高速化する方法

ランキング参加中Python 背景 2024年6月24日に「爆速Python」が出版されました。 Pythonユーザーにとって、「高速化」は常に求められる処理であり、本書から今すぐ使えるテクニックを抽出しようと思います。 データ分析を高速化するテクニック 本書を通じて…

うるう年の計算はPythonに任せよう

ランキング参加中Python サマリー うるう年に伴う計算(日数計算や月合計時間の計算)は自前で書かない(calenderライブラリを使う) うるう年の定義は正確には4年に1回ではないので、ロジックミスが起きる 自前で作ると、コードの可読性が下がるので、レビ…

CloudFormationを用いて、AWS WafをCloudFrontに紐づける方法

この記事について 取り扱う内容 AWS WAFをCloudFormationを用いてdeployする deployされたAWS WAFをCloudFrontに紐づける方法 取り扱わない内容 CloudFormationの使い方 AWS WAFにおけるRule設定 Wafのソースコード Resources: Waf: Type: AWS::WAFv2::WebAC…

AWS Sysops Administrator Associate (SOA-C02)に合格するまでの話

はじめに AWS Sysops Administrator Associate (SOA-C02)に2024/06/16に受験し、合格しました。 SAAの勉強法・試験対策に比べて、SOAの情報は少なく、今後SOAを受験される方向けに参考になれば幸いです。 筆者のAWS経験 Webエンジニアとして、毎日AWSを使っ…

【サンプルコード有】今日から始めるpytest

ランキング参加中Python 背景 Pythonユーザー初級〜中級者の方にとって、 書いたコードの正しさを効率的にテストしたい と考えるのではないでしょうか。 Pythonには、テストフレームワークはいくつもありますが、pytestの人気が高いことは明らかです。 そこ…

【サンプルコード有・コピペで行ける】EC2, ALB, CloudFrontをCloudFormationを使って書く

背景 EC2、ALB、Cloudfrontを使ってリソースをデプロイしたい。 めちゃくちゃあるあるな構成(SAAの試験に出てきそうなぐらい)なので、巷にそれらしい記事はいっぱいある。 しかし、、 マネコン操作があったり EC2とALBのみ 等、以外と同じことをしている記…

プログラミングコードの書き方一つでAWSのクラウドコストは大きく減らせる話【数値計算偏】

ランキング参加中AWS (Amazon Web Services) 背景 AWSを用いた数値計算は往々にして行われているかと思います。 計算にあたって、コンピューティングリソースは、EC2、ECS、Lambdaなど様々な選択肢があるかと思います。 一方で、数値計算をクラウド環境で行…

【最速】Cartopy / Matplotlibで最速で日本語を使う方法

ランキング参加中Python 結論 フォントはこだわらない、だけど日本語は使いたいそこのあなたへ! 解決策1 import matplotlib.pyplot as plt import cartopy.crs as ccrs plt.rcParams["font.family"] = "Osaka" plt.title("これで日本語が使えるはずです") …

GitHub Galaxy Tokyo 2024に参加してきました

今回は、GitHub Galaxy Tokyo 2024に参加してきましたので、プロダクトセッション・ビジネスセッションを通じて得られた学びをこちらにまとめていきたいと思います。 github.registration.goldcast.io テクノロジー 新規Updateについて Copilot WorkSpace 全…

【Vue】実際の現場でよく使うイベントをまとめてみた

本記事のPoint Vueでは、 @イベント名="メソッド名" 等様々なイベントがあります。 ただし、イベントによっては実際の現場で使われないものもあります。 たとえば、 <template> <div id="app"> <input type="text" v-bind:value="Name" v-on:input="changeName"> {{Name}} </div> </template> のように、 v-model = v-bind + v-on など、v-modelで書けるのであればそち…

Step Functionsにて、次のStateに進めなかったエラーの話とその回避策について

ランキング参加中AWS (Amazon Web Services) 謎エラーの概要 StepFunctionsにて発生したエラー Lambda の処理が正常に完了した。が、次のStateに進むことができず。 エラー文としては、Timeoutと表記される ただし、このエラーは一度きり確認されたのち、同…

AWS Lambdaのランタイムサポートが終わるとどうなるか?

Lambdaのランタイムサポートが終わるとどうなる? AWS Lambdaは、FaaS(Function as a Service)、サーバーレスサービスの実現において非常に重要な役割を担っています。 一方で、サポートするランタイムの変遷も早く、適宜Version Upを行っていく必要性が求…

AWS/boto3でRate Exceeded の回避方法

結論 import boto3 from botocore.config import Config config = Config(retries = { 'max_attempts': 10, 'mode': 'standard' } ) client = boto3.client('s3', config=config) でOKです。 巷では、 pip install retrying https://github.com/rholder/retr…

python3.12でnpm iをすると、エラーになる話

問題 npm iを叩くと以下のようなエラーに遭遇 npm WARN deprecated @npmcli/move-file@1.1.2: This functionality has been moved to @npmcli/fs npm WARN deprecated stringify-package@1.0.1: This module is not used anymore, and has been replaced by …

【2024年最新版】シドニー国際空港のAMEXラウンジはなくなりました

結論 シドニー国際空港のAMEXラウンジは、Plaza Premiumラウンジとなっており、AMEXカードでは入れませんでした(実際に行って確認しましたがダメでした)。 詳細 シドニー国際空港には、AMEXラウンジがあることで有名です。 このラウンジでは、AMEXセンチュ…

【爆速】pythonを使って、ポリゴンデータから地点データを取得する方法

はじめに ベクトルデータからデータを切り出す方法は以前、こちらでも紹介しました。 www.yuta-nakata.net 今回は、より高速に・Tipsも交えて追加の内容があるのでご紹介します。 結論 import pandas as pd import shapely # 取得したい緯度・経度 lon = 135…

LambdaでPandasを高速化するための方法

Lambda(Python)でPandasを使ってる方は、多いのではないのでしょうか? 弊社では、サーバーレスがファーストチョイスとしてよく使われるため、Lambdaの出現頻度が高いです。 このPandasですが、Lambdaの世界(FaaS)で使う際の高速化の方法についてお教えて…

立ち上げ時の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 と…