- 1. 【AWS】請求書の内訳が気になったお話
- 2. kubernetesについて、登場人物をまとめてみた。
- 3. Kubernetes
- 4. 【AWS】CloudWatchでEC2インスタンスを自動起動・自動停止する
- 5. AWS SSOを試してみた
- 6. [Python]RSS取得した情報を翻訳してslackに投稿する
- 7. localstackをローカル環境に立ち上げてみる
- 8. API実装案件での学び
- 9. Workload Identity連携で、AWS Cloud9からPythonでGCP操作
- 10. ローカルにてLambda関数を組む二つ方法まとめ(VSCode,Pycharmなど)
- 11. AWSで気づいたら課金されていたから調べた
- 12. 【boto3】API Gateway経由で一定時間以上起動しているEC2インスタンスを検知し、ユーザーに通知する
- 13. API Gateway の Lambda オーソライザーをやってみた
- 14. 【MongoDB】0から調べたMongoDB
- 15. できるだけ安くブログを立ち上げたいので色々比較してみた
- 16. Certificate Authority Authentication (CAA) エラーにより、1 つ以上のドメイン名が検証に失敗しました。
- 17. ECSをApp Meshで管理する際の、メッシュ内外の通信パターンについて
- 18. 【初心者】機械学習の分類・回帰の実装方法を試してみた
- 19. 平日に起動するLambda関数を作成してみた
- 20. Cloudfront + S3 + API GatewayでSPAとAPIを公開する時のTips
【AWS】請求書の内訳が気になったお話
## 記事の対象
インフラの勉強をしたいけど、AWSの料金が心配な方## 経緯
請求書で金額がどーんと上がっている月があり、心配になったため、改めて料金の確認を行うことにしました。## 注意点
あくまで個人で触る範囲でしか調べていないです。
**情報に漏れがある可能性もあるので、参考程度に見て頂けると幸いです。**## 作業しているうちに3000円になっていた話
ある月の請求書確認すると、、、
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1705928/c9a448ee-6f38-d454-c434-b4b3ca827aee.png)先月まで0円に近かったのに、急に料金が上がっていることに気づきました。
思い当たる節はいくつかあります。
1、EC2インスタンスたくさん起動させたままだった・・・
2、ドメイン取得したりした・・・このあたりが怪しいですが、せっかくなので内訳をしっかり確認してみました。
## EC2
請求書を見ると、予想通り無料枠を超えていたよ
kubernetesについて、登場人物をまとめてみた。
## コンテナオーケストレーションとは?
Docker Swarm、Mesos、Kubernetesに代表される、複数のコンテナをうまく管理するための仕組み。
コンテナが動作するマシンが一つだと、マシンの故障とともに中で動くシステムもダウンしてしまうため、一つのアプリケーションを複数のコンテナに分けて、複数のマシン上で動作させたい。マシンごとのスペック格差も是正したい。こういった悩みを解決するのがコンテナオーケストレーションツール。## Kubernetesとは
Googleによって開発された、コンテナ化したアプリケーションのデプロイ、スケーリング及び管理を行うための、オープンソースのコンテナオーケストレーションシステム。
…要するにDockerコンテナをうまいことやってくれる無料のシステム。## Kubernetesが誕生した歴史
“Kubernetes”(クベルネテス)は、ギリシャ語で航海長または水先案内人を意味し、サイバネティクス(人工頭脳学)の語源でもある。Kubernetesは、当初Joe Beda、Brendan Burns、Craig McLuckieの3人
Kubernetes
# 【Kubernetes】
Kubernetesを実務で扱っていきたい。## Kubernetes
– 宣言的な構成管理と自動化を促進し、コンテナ化されたワークロードやサービスを管理するための、ポータブルで拡張性のあるオープンソースのプラットフォーム## Kubernetesのコンポーネント
– Kubernetesをデプロイすると、クラスターが展開
– Kubernetesクラスターは、 コンテナ化されたアプリケーションを実行するノードと呼ばれるワーカーマシンの集合
– すべてのクラスターには少なくとも1つのワーカーノードがある
– ワーカーノードは、アプリケーションのコンポーネントであるPodをホスト
– Pod:Kubernetes上の最小単位
– 1つ又は複数コンテナを持つ
– ネットワークやストレージを共有リソースとして持つ
– マスターノードは、クラスター内のワーカーノードとPodを管理
– 複数のマスターノードを使用して、クラスターにフェイルオーバーと高可用性を提供
– ワー
【AWS】CloudWatchでEC2インスタンスを自動起動・自動停止する
# CloudWatchでEC2インスタンスを自動起動・自動停止する
本記事ではEC2 インスタンスを自動で起動・停止させる方法を紹介します。
必要な時だけインスタンスを起動するように設定することができます。## IAMロールの準備
まずは、CloudWatch EventsからSSMを操作するためのIAMを作成します。
IAMのロール→ロールの作成と進みます。
![スクリーンショット 2022-06-04 16.13.35.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318577/4fdab0e4-ef77-0a1a-3c06-58421a01f0cb.png)
ユースケースの選択でCloudWatch Eventsを選択して次へをクリックします。
![スクリーンショット 2022-06-05 17.25.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/318577/30e5ab89-7d66-f853-2
AWS SSOを試してみた
# 背景・目的
最近、シングルサインオンを調べる機会があったので、AWS SSOについて触れてみたいと思います。# まとめ
– AWS SSOは、ユーザを管理するIDプールの機能と、アクセス権限セットを管理する機能、アクセス権限セットを割り当てる機能、SaaSが提供しているを有している。
– IDプールには、AWS SSOがデフォルトで利用され、それ以外にMicrosoft Active Directoryや、外部IDプロバイダーなど指定ができる。
– SSOアプリケーションには、AWSサービスの他に、クラウドアプリケーションを指定し管理することができる。# 概要
## AWS SSOとは?
– すべてのAWSアカウントとクラウドアプリケーションへのSSOアクセスを一元管理することを用意にするクラウドベースのシングルサインオンサービス。
– 具体的には、AWS組織内のすべてのAWSアカウントにわたるSSOアクセスとユーザ権限を管理するのに役立つ。
– 一般的に使用されるサードパーティーサービスとしてのSaaSアプリケーション、SSO統合アプリケーション、SAML2.0をサポー
[Python]RSS取得した情報を翻訳してslackに投稿する
# はじめに
当方はしがないバショウカジキなので、情報収集にSNSはあまり活用できていません。
代わりにslackにRSS feedを流して眺めています。外国語のサイトのfeedも購読しているのですが、外国語を読むのは母国語を読むのとは頭の使い方が違うので、記事が大量に配信されるようなサイトだとつい読むのをサボりがちです。
読むかどうかの取捨選択がもう少し簡単になるよう、RSSで配信される内容を翻訳してからslackに投稿する処理を作ることにしました。
~~(実は[Zapier](https://zapier.com/apps/rss/integrations/rss/11886/translate-new-rss-feed-items-and-post-them-to-custom-rss-feeds)に同じことをやって翻訳feedを生成できるテンプレートがあるみたいなんですが(使ったことはない)、せっかくやる気になったので自分で作ります。)~~
# どういうものができますか?
## Beforeslackにあるアプリを利用したRSS feed投稿はこういったもので
localstackをローカル環境に立ち上げてみる
# 前提
AWSのCLIコマンドを学習する目的でlocalstackを立ち上げます。
プログラムの動作確認用にも使えます。# 環境
– macOS 11.6.4
– docker-compose: 2.0.0
– localstack: 0.14.3(執筆時点で最新)# 手順
### docker-compose.xmlを任意のディレクトリに作成する。
以下にdocker-compose.ymlがあるのでこちらを参考に作成。
https://github.com/localstack/localstack/blob/master/docker-compose.yml“`docker-compose.yml
version: “3.8”services:
localstack:
container_name: “localstack”
image: localstack/localstack:0.14.3
ports:
– 4566:4566
environment:
– SERVICES=s3, sqs
API実装案件での学び
## 概要
最近LaravelでAPI実装案件を一通り要件定義から一通り経験することが出来ましたので学びを振り返ろうと思います。(理解が間違っていたらご指摘ください。あと、自分用振り返り記事なので読みにくいかもですがご容赦ください。)
案件概要の詳細は省きますが、ある特殊な条件で仕様される単純なCRUD機能が使えるAPIの作成でした。### リリースまではざっくりと下記の流れ
要件定義→キックオフ→設計書作成(API等)→実装→インフラ構築→リリース
何もかも初めての事だったので手探りで進めていきました。
仕様の自由度が高く自分でどの機能を実装するか決められたのですが、お客様に自分が考えた機能と仕様を説明する時に緊張した記憶があります。笑## 案件を通して学んだ事一覧
– RESTful API
– JWT(認証) ACL(認可)
– クリーンアーキテクチャ
– AWSインフラ構築上記項目についてこれからざっくり振り返ります。
## RESTful API
– API
– REST
– OpenAPI### API
ある機能を公開しているソフトウェアとその機能
Workload Identity連携で、AWS Cloud9からPythonでGCP操作
# はじめに
AWSからGCPの操作がセキュアにできるWorkload Identity連携を、Cloud9上からPythonで試してみたので記事にしました。# まとめ
– 認証ファイルのパスを、環境変数`GOOGLE_APPLICATION_CREDENTIALS`にセットする
– 対象プロジェクトを指定するために、別途環境変数`GCLOUD_PROJECT`にセット
– Cloud9から行う場合は、使用しているEC2にIAMロールを付与して使う
– Pythonライブラリをインストールする際、ローカルにインストールする`pip install -t .`だとうまくいかない# 参考
GCP側の手順やCloud9の設定は以下のページが詳しいです。https://tech.nri-net.com/entry/2021/07/01/111020
# やったこと
## GCP側
前回の記事をそのままやっています。https://qiita.com/a_b_/items/f30b85be4f44ed1f620c#gcp%E5%81%B4
こちらで作られたファイルをそ
ローカルにてLambda関数を組む二つ方法まとめ(VSCode,Pycharmなど)
方法としては下記の2種類です。
# 1、Dockerを利用してローカルで実行
手順は[この記事](https://qiita.com/zukakosan/items/9c01aba5ff537382c856)の通りですが、実際設定・実行する時は二つ問題が発見しました。
①VSCodeにの`app.py`ファイルには`Run Locally | Debug Locally | Configure`が表示せず、代わりに`AWS: Add Debug Configuration | AWS: Edit Debug Configuration`が表示しました。記事の[ここに書いている内容](https://qiita.com/zukakosan/items/9c01aba5ff537382c856#vscodeでlambdaをローカルテスト)と違います。なんか仕様変更らしいです。
`Add Debug Configuration`或いは`Edit Debug Configuration`をクリックしたら、`launch.json`デバッグ設定を追加しまして、`Edit SAM Debug C
AWSで気づいたら課金されていたから調べた
# AWSから請求来た
AWSで何となくインスタンスを作って遊んだのが1年前。その後何となくほかの無料サービスも使った気がする。
1年くらい放置していたらなぜが請求が来るようになった。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2218589/f73df9c2-ea46-d2ad-7d30-8b63ca377045.png)# 原因を調べるが見つからない
請求止めたい。まずはEC2インスタンスが残ってないか調べてみた。
サービス>コンピューティング>EC2>ダッシュボードの画面を開く。
・・・インスタンスは「0」と表示されている。
どうも放置したままのインスタンスはなさそうだ。次にググったりしながらAWSコスト管理で、何に課金されているか調査してみた。
サービス>コスト管理>Cost Exploereの画面を開く。
・・・「EC2その他」に$1.9ほどコストが発生している。インスタンスないのに?
EC2のオプションとか生き残っているのかな?
データだけ残
【boto3】API Gateway経由で一定時間以上起動しているEC2インスタンスを検知し、ユーザーに通知する
# はじめに
ご覧いただきありがとうございます。
業務の中でAmazon SageMakerを利用しているお客様と話すことがあります。
使用するノートブックインスタンスのスペックが高いので、起動し続けるとお金がかかります。連続稼働時間を検知して自動通知を行えないかと試行錯誤する中で、そもそも普段使用しているEC2インスタンスの連続稼働時間を検知してユーザー通知する方法についても検討を行いました。
Lambdaを使用して「EC2インスタンスが一定時間以上稼働しているか確認して、1時間以上稼働していたらユーザー通知を行う」という検証を行ってみました。
# 概要
(★)がついているセクションは、手を動かして頂く項目です。
1. 今回の構成
2. 下準備(★)
3. EC2の連続稼働時間を検知するには?(★)
4. EC2をSysmtes Managerで扱えるようにする(★)
5. LambdaからEC2の連続稼働時間を取得する(★)
6. 稼働時間が一定時間を超えた場合、SNS通知を管理者に送る(★)
7. API Gatewayを経由した手動実行(★)
8. (おまけ
API Gateway の Lambda オーソライザーをやってみた
# はじめに
API Gateway を使うとインターネット上に REST API を公開できます。インターネット上に公開する際に、特定のユーザーやシステムにのみアクセスを制限させたい場合があります。そういったときには、API Gateway の認証機能が便利に使えます。
API Gateway の認証機能にはいくつか種類があります。
– リソースポリシー
– IAM アクセス許可
– Lambda オーソライザー
– Cognito オーソライザーそれぞれの詳細が気になる方は、次の AWS Document をチェックしてみてください。
https://docs.aws.amazon.com/ja_jp/apigateway/latest/developerguide/apigateway-control-access-to-api.html今回は、Lambda オーソライザーを触っていきたいと思います。Lambda オーソライザーを使うことで、API Gateway に独自の認証機能を付与することが出来ます。
Lambda オーソライザーのざっくりイメージはこんな感
【MongoDB】0から調べたMongoDB
## きっかけ
– とある案件でAWS DocumentDBを構築することになり、検証も兼ねてクエリ等実行する必要があったため、書籍を読んで勉強しました。## 注意
– 書籍(英語)を読みながらメモをとったため、そもそもの理解が間違えている可能性もありますので、参考にされる際はご留意ください。### 基礎コンセプト
– ドキュメント
– RDBの行に当たる
– キーはデータ型、大文字小文字で区別される
– キーの重複は不可
– コレクション
– RDBのテーブルに当たる
– Dynamic Schema(コレクション内に異なる形のドキュメントを持つ)
– コレクションを組織するためにサブコレクションという命名方法が使える(.で分ける。eg) blog.posts, blog.authors`)
– 機能上のメリットはなし### ツール
– MongoDB shell
– MongoDB client
– Shellによる基本操作(CRUD)
– Create
– `db.movies.insertOne({name : “hogehoge”})`
できるだけ安くブログを立ち上げたいので色々比較してみた
# はじめに
ブログ立ち上げてうきうきアフィリエイト生活!ってところはまだ見当がつかないけど
ブログ立ち上げるとなると
・サーバ構築
・WordPressセットアップ
・ドメイン取得
・アフィリエイト契約
・Googleアナリティクス設定
などが実践的に試せそうだな!って思ったので。実益も兼ねて挑戦しようと思う。# 先に結論:amazon LightSail × WordPressでの構築がオススメ
ある程度、技術的に明るい人ならこの方式が一番いいかなって思いました。
「ブログ書きたいだけなんで、他は何も考えたくないんやー」って人はきっとConoHa WINGがいいんだろうと思いました。# 選択肢を調べてみよう
こちらでは、ConoHa WINGの「WordPressかんたんセットアップ」を活用してのブログ構築を推奨している。
「WINGパックのベーシックプラン(1年契約、月額931円)」を契約したらいいよってことだそうです。https://liberaluni.com/blog-3steps
こちらはもう少し技術的な要素が多く、amazon LightSai
Certificate Authority Authentication (CAA) エラーにより、1 つ以上のドメイン名が検証に失敗しました。
# はじめに
Xserverで管理しているドメインのサブドメインに対してACMの証明書をリクエスト。
この際表題のエラーが発生。# 原因
すでに他サービスで当該ドメインの証明書が発行されている。
今回は別チームが開発中のShopifyアプリで当該サブドメインのSSL設定が既にされてあった。# 参考:CAAとは?
https://help.sakura.ad.jp/ssl/2347/?article_anchor=js-nav-0
ECSをApp Meshで管理する際の、メッシュ内外の通信パターンについて
Elastic Container Service (ECS)をApp Meshで管理する際の以下通信パターンについて、自分なりの理解を整理
– メッシュ外 -> メッシュ内
– メッシュ内 -> メッシュ内
– メッシュ内 -> メッシュ外## App Meshとは
App Meshは、AWS上においてサービスメッシュを提供するサービスです
サービスメッシュそのものについては、YouTubeにてAWS Japanの公式があげている[こちら](https://www.youtube.com/watch?v=ZwfdLAClzsc)の動画がわかりやすいですApp Meshは「仮想サービス」、「仮想ゲートウェイ」、「仮想ノード」、「仮想ルータ」などといった要素で構成されており、
これらの繋がりは[こちら](https://aws.amazon.com/jp/blogs/containers/introducing-ingress-support-in-aws-app-mesh/?nc1=h_ls)の公式ブログに載っているアーキテクチャ図がシンプルでわかりやすいです本記事において
【初心者】機械学習の分類・回帰の実装方法を試してみた
# 背景・目的
私は、現在データエンジニアリングを生業としています。普段は、データ基盤の構築や、パフォーマンスチューニングなどビックデータに関する業務に従事しています。
ビックデータの収集や、蓄積、分析などの環境構築の経験はそこそこありますが、機械学習による予測や分類などのスキルは持ち合わせていませんでした。
今まで機械学習を避け続けてきましたが、一念発起し学ぼうと思います。学び方としては、AWS Certified Machine Learning – Specialty(以降、ML試験という。)の勉強を通して、理解を深めていきます。ML試験のガイドの第2分野に、探索的データ解析が登場しましたのでそこから学びたいと思います。
今回は、**機械学習の用途や種類**について学びたいと思います。
> 3.1 ビジネス上の課題を機械学習の課題として捉え直す
> 機械学習を使用する/使用しないタイミングを判断する
> 教師あり学習と教師なし学習の違いを知るなお、過去の機械学習の調べてみたシリースは下記にまとめています。
– 2.探索的データ分析
– 2.1.モデリング用のデータをサ
平日に起動するLambda関数を作成してみた
## 概要
平日の営業時間は処理を実行したいが、土日祝日は処理を動かしたくないケースがあるかと思います。
そこで平日のみLambdaを実行し、土日祝日はLambdaを実行しないようにする構成をCloudFormationで作成します。## 今回の構成を作成する前に
まずは、月~金に処理を実行し、土日は処理を実行しない場合の構成をCloudFormationで作成してみます。
### 構成
構成としては以下のようなシンプルな形になります。![構成図-1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/87924/78cd9af3-d899-dd43-3133-902f7c0122a3.png)
### リソースの作成に使用するファイル
リソースの作成には以下のテンプレートを使用します。“`template.yaml
AWSTemplateFormatVersion: ‘2010-09-09’
Description: “Periodic Execution Function Templ
Cloudfront + S3 + API GatewayでSPAとAPIを公開する時のTips
良くあるこのパターンですが、自分なりに辿り着いたプラクティスを紹介しておきます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/33070/b35f713b-1eb6-dcaa-59a3-01107fb26fef.png)
## 先に結論
– SPA: Cloudfront Functionsを使って拡張子付きのパスを/index.htmlに変更する
– API: Behaviorで/apiをAPI Gatewayに向ける## 背景
今まで、Cloudfront + S3 でVueやAngular等のSPAアプリケーションを公開する場合、
存在しないパスにリクエストすることで、S3が403もしくは404を返す。
そのため、Cloudfront側でカスタムエラーページを作成し、/index.htmlにリダイレクトするような設定をしていた。### よくある悩み1(SPAのパス問題)
本来キャッチすべき404があった場合でも気にせずリダイレクトされてしまう。
例えばCSSやJSの