アナリティクス強化月間 Athena ACID トランザクション + Iceberg

midnight480
AWS エバンジェリストシリーズ AWSの基礎を学ぼう アナリティクス強化月間 Athena ACID トランザクション + Iceberg プレビュー提供発表記事 Apache Iceberg による Amazon Athena ACID トランザクション (プレビュー) を発表 投稿日: Nov 29, 2021 一般公開発表記事 Apache Iceberg を利用した Amazon Athena ACID トランザクションの一般提供の開始を発表 投稿日: Apr 5, 2022 この新機能は、Athena の SQL のデータ操作言語 (DML) に、挿入、更新、削除、タイムトラベルのオペレーションを追加します。 Amazon Athena Amazon Athena Time Travel and Version Travel Queries タイムトラベル:特定データの○時間前、○日前などを参照する際に利用 詳しくはこちら▶ Time Travel and Version Travel Queries Apache Iceberg Apache Iceberg 参考 CPU使用率90%を超える高負荷がLNEのHive Metastoreで発生 Hive table formatの課題はApache Icebergで解消

温故知新編 データレイク総集編

midnight480
AWS エバンジェリストシリーズ AWSの基礎を学ぼう 温故知新編 データレイク総集編 座学パート Amazon Redshift https://aws.amazon.com/jp/redshift/ カラムナ型データベース JDBCでの接続も可能 魔改造されたPostgreSQLのような印象で取り扱う 独自のカスタマイズを加えている 詳しく知りたい方 ▶ フューチャー技術ブログ - Amazon Redshiftの仕様を調べてみた AWS Glue https://aws.amazon.com/jp/glue/ サーバレスETL(Exact, Transform, Load) 取り出し 加工 転送(取り込み、保存) 以前の課題 ウォームアップインスタンスからインスタンスを取り出して10分程度時間を要していたが現在は1分程度になった Pythonの知識が必要だったが、Glue StudioやAWS Glue DataBrewでGUIでの操作が可能になった データカタログ ETL処理を行う際に、srcがデータベース以外の非構造データ(S3 objectなど)をテーブルとして見せる必要がある Amazon Athena https://aws.amazon.com/jp/athena/ SQLで確認が可能 Amazon Athena の SQL リファレンス 内部で稼働しているエンジンは Presto 以前はS3が中心だったが、Amazon Athena Federated QueryによりJDBC、ODBCで対応するデータソースも利用可能になった Amazon S3 Select https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/selecting-content-from-objects.html S3上でObjectを直接参照(Parquet、CSV、JSON…) ハンズオンパート https://github.com/harunobukameda/Amazon-Redshift-Spectrum-AWS-Glue-Amazon-Athena-Amazon-S3-Select (もしこのブログを見て実施される方で、GitHubアカウントをお持ちの方は上記のリポジトリからForkしてください) 実施環境(Region)はN.Virginia, Tokyoを推奨 まとめ 本日はRedShiftの復習(更新に追いつけていない)のため、参加を目的としていました。 「あれ、こんな設定あったけな?」が復習できたのでよかったです。 Glue、Athenaについては個人的に過去ハマったときにいろいろと学びました。 当時、AWS ClientVPNで接続してきたユーザがDirectConnectで接続しているオンプレミスの環境へアクセスした際に、 どういう通信を行っているのかを調査する必要が出てきたので、VPC Flowlogsを設定しました。

AWS App Runner VPC Supportを試してみた

midnight480
教材 New for App Runner – VPC Support リリースされたことは知っていましたが、触ってこなかったです。。 背景 DevAx::connect 番外編 「AWS App Runner 1周年記念」 ちょうどイベントで取り扱われていることもあり、それならばと触ってみようということが目的です。 実際にやってみた AWS公式ブログを参考に実施するとハマりポイントが2点ありましたので、先に紹介します。 注意点1 RDSインスタンスの設定 To simplify capacity management for this database, I use Amazon Aurora Serverless. In the RDS console, I create an Amazon Aurora MySQL-Compatible database. For the Capacity type, I choose Serverless. To simplify connecting later, I enable AWS Identity and Access Management (IAM) database authentication. ブログではAurora MySQL Serverless を選択しIAM DB認証を利用と記載がありますが、

AWS Organizationsのメンバアカウント削除サービスアップデートを試した

midnight480
2022-03-30のアップデート AWS Organizations User Guide - Removing a member account from your organization AWS Organizations > API reference > CloseAccount なにがかわったのか 🎉管理アカウントからメンバアカウントを削除(解約)することが可能に🎉 これまで AWSアカウントの解約を行う場合は、それぞれのrootユーザ(メールアドレス)でログインを行う必要がありました これから AWS Organizaitonsの管理アカウントから削除することが可能になりました 実際にメンバアカウントを作成して削除してみた メールアドレス作成 エイリアス対応しているメールアドレス Gmailの場合 hogehoge@gmail.com の場合、+aliasを付与したhogehoge+alias@gmail.com とすると文字列は別物のメールアドレスとして認識されます。メールが届く宛先はhogehoge@gmail.com となります AWSの無料枠(1年間有効)はAWS Organizationsの管理アカウント単位で計算されますので、エイリアスを使って複数のアカウントを作っても同じOrganizationsに所属させると無料枠は適用されません。 AWSは、Gmailのエイリアスで別のメールアドレスとして認識しますが、他の利用するサービスによってはエイリアスを不可とする場合もあります。 専用のメーリングリスト 複数のGmailを作成してもよいですし、グループウェア(Gooogle Workspace, M365)があればメーリングリストは無料で作成可能です。 本日は後者で進めています アカウント作成 管理アカウントからメンバアカウントを作成 メンバアカウントを新規で作成します。 新規作成時はRoot直下に作成されます。 今回は特定の組織(OU:Organization Unit)にのみSCPを適用します。(今回は02-PublicHandson) アカウント削除 除外(Remove) 現在所属しているAWS Organizationsの組織から離脱させるときに利用 移動(Move) 現在所属しているAWS Organizationsの組織内で移動させるときに利用 閉じる(Close) メンバーアカウントを停止させるときに利用 ポップアップが表示されチェックボックスとアカウントIDを入力 閉鎖要求が行われリソース削除処理が実行 しばらくすると停止 ユースケース 一つの組織内で利用する際にルートアカウントの基本的権限を剥奪 AWS Organizationsから新規でメンバーアカウントを作成する場合は、パスワードはAWSが自動で作成する64文字となります。 AWS Organizations User Guide - Creating an AWS account in your organization When you create an account, AWS Organizations initially assigns a long (64 characters), complex, randomly generated password to the root user.

「ポストモーテム みずほ銀行システム障害 事後検証報告」を読んでみての感想

midnight480
この記事は書評ではなく、筆者自身の過去経験や考えの記事となっています。ご了承ください。 書籍 ポストモーテム みずほ銀行システム障害 事後検証報告 ポストモーテム - postmortemについて 言葉の意味としては、「検死解剖」に該当しますが、 ことITでは「事後分析」という意味合いで使われています。 このポストモーテムはGoogleが提唱したSRE(Site Reliability Engineering)で記載されたことで、 今では業界では一般的に意味が通じることになっているかと思います。 SRE サイトリライアビリティエンジニアリング――Googleの信頼性を支えるエンジニアリングチーム この Postmortem に関する記載はGoogleが公開していますので、 さらに知りたい方は次のサイトに訪れてみてください。 インシデント発生時の対応記録表のサンプルもあります。 Google - Postmortem Culture: Learning from Failure 「The cost of failure is education.」とは、正しくそのとおりだと思います。 私自身も自ら失敗を引き起こすこともありましたし、また巻き込まれたこともあり、 この書籍を読みながら、「あのときは〜」や「近いことがあったな〜」など思い返すとともに、 そういった経験を偶然にも積み重ねることができたことで、 今のエンジニアの端くれとして生きている自分があるのかなと思います。 過去に参加した翔泳社主催のデベロッパーサミットでも以下のようなセッションがあり、 「そうだよなぁ」と思いました。 トラブルこそ成長の機会――「手のかからない」インフラを目指してオンプレからクラウドに移行した60日間の奮闘【デブサミ2020】 機会は平等ではない=成長する機会は平等には訪れない。 大事なことは積極性=成長する機会を得るには、やはり積極性が必要。 一歩踏み出す勇気=トラブルが発生していたら、進んで手を貸そう。 書籍を読んで振り返ってみた アプリケーションタイムアウト 当初読んでいるときは、 機器で異常な状態になっていたのでアプリケーション側で想定時間を超えたと見ていました。 どうも読みすすめるとアプリケーションが 最小 の時間でタイムアウトを設定していたことで、 ネットワーク機器自体は規定の 最大 の時間を掛けて切り替わった後、 アプリケーション側で時間内に応答がなくサービスが止まったとありました。 これは実装時に 最大 時間で設計・実装していれば防ぐことができてのではないか?と思います。 また、経路におけるそれぞれのタイムアウトをきちんと把握することが必要で、 例えば、一般的なWebアプリケーションでロードバランサ-Webサーバ間、 Webサーバ-APサーバ間などのそれぞれのタイムアウト値が異なっていないか、 異なっている場合は、想定されるクライアントへの影響はどういったものがあるかといったことが挙げられるかと思います。 そういった情報が可視化、記録されている情報へ即座にキャッチできる状況としておくことの重要性を改めて認識しました。 テスト不十分 本番環境での切り替え作業で、実行可能な件数が上限に達したためDBの更新ができなかったとありました。 テストで実測した想定件数に対して、実際に本番環境で実行した件数が多かったため、発生しているものですが、 書籍では踏み込んでいないので不明なところが、どうやってその想定件数でテストしたものを良しとしたかです。 テストをする上でパターンは仕様を満たしているか1、など色々とあると思いますが、 実際の件数が多かったため、というのは最近のシステムでは聞いたことがありませんでした。

特別編 Amplify Studio ハンズオン

midnight480
AWS エバンジェリストシリーズ AWSの基礎を学ぼう 特別編 Amplify Studio ハンズオン Figma 私自身はデザイン界隈を詳しくないのですが、 Figmaについて調べるとよくAdobe XDに関する記事が出てきます。 このあたりはデザイナーさんのスキル、好みになるのかなと思います。 Figma Pricing Adobe XD Plan on endless creativity. AWS Amplify , AWS Amplify Studio AWS Amplifyの本日実施環境 Node.js v16で一部WARNINGが表示されるため、本日(2022-03-26)イベントではNode.js v14で実施 Cloud9は正式にサポートはしていないものの、様々な環境で実施されることを踏まえてCloud9で実施 AWS Amplify Studio – 最小限のプログラミングでFigmaからフルスタックのReactアプリを実現 Handson Zenn.dev(Book) https://zenn.dev/shigeru_oda/books/521fa5a5a9c558c6275d (トラブルシューティング)Node Package のインストール不足 エラーメッセージ例 npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! amplify-homes@0.1.0 build: `react-scripts build` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the amplify-homes@0.

AWS 特別編 Amazon MSKハンズオン

midnight480
AWS エバンジェリストシリーズ AWSの基礎を学ぼう 特別編 Amazon MSKハンズオン Amazon Managed Streaming for Apache Kafka (MSK) Amazon Managed Streaming for Apache Kafka (MSK) Apache Kafka 公式サイト https://kafka.apache.org/ クラウドにおけるキューの使い方 AWSにおけるSQS/EventBridge/Kinesisなど 疎結合アーキテクチャを構成する上で、Web/APサーバの中に保存せずに処理を冗長性、可用性をもたせるうえで必要な機能 Web/APサーバにデータを保存せずに、接続しているクライアントのセッション情報やステートレスな構成 そこでキュー管理することで、誰が、どこまで、どういう処理を行っているのかを把握 Kinesis Producer/Consumer Pull型 SNS/SQS Publisher/Subscriber Push型(fan out型) Handson リポジトリ https://github.com/harunobukameda/Amazon-MSK Fork先 https://github.com/midnight480/Amazon-MSK カスタム作成 ノードの分散など細かい制御可能 ストレージ Kinesisは3AZごとに自動で分散配置してくれる Kafkaは自分でブローカーとなるインスタンスを定義する必要がある Producer $ bin/kafka-topics.sh --create --zookeeper z-3.msktutorialcluster.jw517k.c1.kafka.us-west-2.amazonaws.com:2181,z-2.msktutorialcluster.jw517k.c1.kafka.us-we st-2.amazonaws.com:2181,z-1.msktutorialcluster.jw517k.c1.kafka.us-west-2.amazonaws.com:2181 --replication-factor 3 --partitions 1 --topic MSKTutorialTopic Created topic MSKTutorialTopic. $ $ $ ./kafka-console-producer.sh --broker-list b-3.msktutorialcluster.jw517k.c1.kafka.us-west-2.amazonaws.com:9092,b-2.msktutorialcluster.jw517k.c1.kafka.us-west-2.amazonaws .com:9092,b-1.msktutorialcluster.jw517k.c1.kafka.us-west-2.amazonaws.com:9092 --producer.config client.

個人的なRedmineを立ち上げてみる

midnight480
Redmine 知名度はプロジェクト管理ツールの中でも相当なものかと思いますが、 公式サイトでは以下の機能が参考までに紹介されています。 Multiple projects support Flexible role based access control Flexible issue tracking system Gantt chart and calendar News, documents & files management Feeds & email notifications Per project wiki Per project forums Time tracking Custom fields for issues, time-entries, projects and users SCM integration (SVN, CVS, Git, Mercurial and Bazaar) Issue creation via email Multiple LDAP authentication support User self-registration support Multilanguage support Multiple databases support Redmineの日本語コミュニティ Redmine.JP https://redmine.

Hugoでこのブログができあがるまでの軌跡

midnight480
このブログができるまで 過去 Qiitaで記事を書き始めていましたが、 そのうち、情報が散在しているので一つにまとめたいなと思うことが出てきました。 Qiita.com - mid480 Zenn.dev - mid480 準備 ドメイン取得 あまり手間を掛けたくなかったのでムームードメインか、お名前.comかで悩んでいたのですが、 ドメインプロテクション(管理画面にログインする際のワンタイムキー発行)等の機能で、 お名前.comにしました。 ただ1年間の更新が終わるまでにGoogle Domainへ移行することを試みようと思います お名前.com https://www.onamae.com/ 費用の内訳 項目 費用 .com 1円 Whois情報公開代行 0円 Whois情報公開代行メール転送オプション 330円 ドメインプロテクション 1,078円 Webホスティング基盤 Free Plan 個人的に2021年にアカウント開設して放置 https://www.netlify.com/ Free Plan( 100 GB bandwidth, 300 build minutes) を超えるようなことがあればVercel移行も考えます ブログベース HTML/CSSに手間を掛けたくない MarkDownで書けると嬉しい https://gohugo.io/ ツールインストールも容易(Win/Mac) https://gohugo.io/getting-started/installing/ コマンドラインで制御可能 https://gohugo.io/commands/hugo_new_site/ hugo new site ${Directory-Name} で初期設定 hugo new post/*.md で新規記事 hugo serve で localhost:1313 のローカル確認 hugo で ./${Directory-Name}/public に静的サイトを生成 この public フォルダを公開指定するだけ ブログテーマ https://github.

Python3認定に向けて

midnight480
きっかけ Developer Summit 2022 今年実施予定のPython新上位試験と模擬問題の解説と稟議に役立つ市場データの解説 受験宣言して教科書のPython本をもらおう!(応募は2022年3月末日まで) 宣言 「2022年4月末までにPython3エンジニア認定基礎試験を受験します!」 私とPython TECH PLAY 【少人数制!】名刺画像から文字を自動抽出し、名刺データを管理するWebアプリケーションを作ろう! 初めてflaskを使うためPythonで動かして、スクリプト言語でWebアプリケーションが動くの…?という驚きでした。 個人勉強 Django Girls flask以外にPythonで動くWebフレームワークを探していたらDjangoがいいぞ、という言葉に操られ、 まずは勉強してみようと思いました。 業務活用前の検証 aws-lambda-func-from-s3-to-es 業務でCSVをElasticSearchに取り込む必要があり、何度もファイルを置き直しても取り込みができるように、 S3イベントを検知してAWS Lambdaを呼び出し、取り込むようなものを作りました。(Python2…orz) さいごのひとおし Open Source Conference 2022 「『サイバーセキュリティプログラミング 第2版』を翻訳した話」「Raspberry Pi で温湿度センサーDHT11を使って室内温湿度を計測しslack通知をしてみた」 Pycon JPから登壇されていた 片寄さん(@selina787b)の発表を見て、 自分もRaspberry Pi 3B+とDHT22があるものの活用に迷っていたことと、 最近SORCOM SIMと AK-020をアクティベーションしたこともあり、 遊んでみようかなと思ったことです。 片寄さん(@selina787b)の発表資料 Raspberry Pi で温湿度センサーDHT11を使って室内温湿度を計測しslack通知をしてみた(外部リンク) まさかのボトルが届いた ある日家で仕事をしていたら、「ピンポーン」と鳴って「郵便局でーす」と… 「なにか依頼していたかなー?」と思ったら、箱が届きました💦 ありがとうございます!!🙇 まとめ ということで、Pythonは2を中心にかじっていたもののきちんと学び直しをする上で、 Python3の認定されることを目標に勉強していこうと思います。