- 1. 筋トレを継続したい!(AWS Lambda × Python × ChatGPT でLINEbot作成)
- 2. 半年ぶりにAWS&Pythonのハンズオンやってみた。
- 3. TerraformでFCM Webプッシュ通知の環境を構築する
- 4. DynamoDBのカーディナリティが高いとは?
- 5. AWS CLF入門 – スケーリング編
- 6. 【AWS CLF-C02】AWS Certified Cloud Practitioner受験合格体験記
- 7. AWSで定期実行するバッチの作成方法(Terraformで作成)
- 8. 【AWS】awscli IAMユーザーに付与された権限を確認する
- 9. 【QuickSight】招待メールからログイン出来ないUserがいた場合の確認ポイント
- 10. Amazon Linux2でのLAMPのインストール
- 11. Pytestを用いたAPIテストを初めて実装した時の話
- 12. 変革を牽引するクラウドネイティブエンジニアのすすめ
- 13. RDSについて勉強
- 14. せっかくAWSの勉強をするので、インフラの基礎から勉強してみることにした #3
- 15. AWS SAMの基本的な使い方
- 16. 【AWS】Raspberry Pi 4をIoTCoreに接続する
- 17. ECSのCPU使用率が100%を超える理由
- 18. Amazon Linuxコンテナーでmountコマンドを使いたい
- 19. AWS Jam 社内展開のノウハウ
- 20. リファレンスアーキテクチャを学ぶ – Amazon Location Service編
筋トレを継続したい!(AWS Lambda × Python × ChatGPT でLINEbot作成)
# 筋肉ムキムキになりたい!!
1度くらい筋肉には憧れたことはあるだろう…
そしてトレーニングを始める人もいるだろう…
しかし、続かない…
そこで、筋トレを継続するための、**筋トレbot**を作成しました!# 開発環境
AWS Lambda
Python 3.12# トレーニングメニュー
トレーニングメニューを自分で考えるのは面倒ですよね。
そこで、ChatGPTにお願いして、トレーニングメニューを考えてもらおう!![image0 (1).jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3682615/74b9ba69-6594-941d-ffde-ac88146299e2.jpeg)
いい感じのメニューを提案してくれましたね。
# 筋トレ後は褒めてもらおう
ただトレーニングをこなしていくだけだと、モチベーションが保てませんよね。
トレーニングが終わった後は、トレーニングしたことを報告して、褒めてもらおう!![image1.jpeg](https://qiita-i
半年ぶりにAWS&Pythonのハンズオンやってみた。
内容
・趣旨目標
・使えるサービス
・参考サイト
・環境・EC2の作成、キーペアの作成
・SSH接続
・VSCodeから接続、ファイルなどの作成## 趣旨目標
AWSを活用して簡単なWebアプリ(Hello World)をSSH通信でデプロイして、手を動かして学ぶ。## 使えるサービス
EC2,Python,VSCode,Ubuntu## 参考サイト:
## 環境
Windows11,Python,VSCode(これらはセットアップ済みとして進めます。)## EC2の作成、キーペアの作成
Ubuntuを選んでキーペア作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/750d7c13-6ed8-1e0e-a193-54e3d7aafa4d.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com
TerraformでFCM Webプッシュ通知の環境を構築する
## はじめに
FCM([FirebaseCloudMessaging](https://firebase.google.com/docs/cloud-messaging?hl=ja))でWebプッシュ通知を送信する環境をTerraformで構築しました。
– 通知受取側:PWA(Nuxt3)
– 通知送信側:AWS Lambda(Python)Pythonから送信するので、[FirebaseAdminSDK](https://firebase.google.com/docs/reference/admin?hl=ja)も使えるようにします。
バックエンドは私の場合はLambdaですが、他の場合でもFCMの環境作成自体は同じです。コンソールから構築する記事はたくさんあったのですが、Terraformでの実装例が全然ないのと、普段AWSを主に使っているのでGCPの理解が足りず割と苦労しました。
FirebaseとTerraformの公式ドキュメントを参考にしています。
https://firebase.google.com/docs/projects/terraform/
DynamoDBのカーディナリティが高いとは?
## はじめに
DynamoDBの勉強中、パーティションキーはカーディナリティの高いものを選択することが重要だよ、とAWS公式ドキュメントに書いてあったのを見ました。https://docs.aws.amazon.com/ja_jp/amazondynamodb/latest/developerguide/data-modeling.html
いや、そもそもカーディナリティが高いって何?と前提から理解できていなかったので、
カーディナリティとは何なのかというところから調べました。
結果、カーディナリティについて理解できたので共有します。## 想定読者
カーディナリティについてあまり分かっていない人## カーディナリティとは
カーディナリティとは、カラムに格納されるバリエーションの数を指します。
つまり、カーディナリティが高いほど、カラムには多くの異なる値が格納されていることを意味します。#### カーディナリティが低い例・高い例
以下に示すような、フルーツの収穫テーブルがあったとします。| Harvest Date | Fruit Name |
|——–
AWS CLF入門 – スケーリング編
## はじめに
AWS CLF (AWS Certified Cloud Practitioner) を取得した際の学習記録をアウトプットとして以下に記す。## リンク
[ネットワーク](https://qiita.com/yashiuri/items/31b2c9c3c49c2584cd01)
[セキュリティ](https://qiita.com/yashiuri01/items/73e5310b09ff41912862)
[コンピューティング](https://qiita.com/yashiuri01/items/9eaf71a1590e7815f9ef)
[コンテナ](https://qiita.com/yashiuri01/items/708b57ee179ae29e72a9)
[スケーリング]() ←今ここ
[ストレージ]()
[データベース]()
[メッセージ]()
[モニタリング]()
[デプロイ]()
[コストとサポート]()
[移行とイノーベーション]()
[AWS製品群一覧]()# **Amazon EC2 Auto Scaling**
– アプリケーショ
【AWS CLF-C02】AWS Certified Cloud Practitioner受験合格体験記
## はじめに
2024年2月 AWS Certified Cloud Practitioner(CLF-C02)に合格しましたので、受験合格体験記を記載します。
何かの参考になれば幸いです。## 試験学習開始時の状況
試験学習開始時の状況は以下の通りです。
– AWSの実務経験は1年程度
– 2~3年ほど前にSAA(ソリューションアーキテクト–アソシエイト)の試験学習をしていたことがある
– インフラエンジニアとして従事## 試験学習でやったこと
試験学習は2023年11月下旬頃から開始しました。
試験受験までの実質的な学習期間は1ヶ月位かと考えています。また、以前SAAの学習をしていたこともあり、ある程度はAWSについて既に把握している所は多々ありましたので、その時の内容を思い出しながら進めて行きました。
※AWS Well-Architected Frameworkの柱は、5本だったはずでしたが6本目の柱が追加されている等の新たな発見が有りました。
以下に試験対策として行った事項を時系列で記載していきます。
### テキストの購入
2023年9月に、C02へ試験
AWSで定期実行するバッチの作成方法(Terraformで作成)
## AWSにおけるバッチ処理
「AWS バッチ処理」で検索すると、AWS Batchを用いたバッチコンピューティングの情報が多くヒットします。
しかし、実際の業務では定期的に実行されるバッチ処理の方がよく利用されると思います。
本記事ではAWSを用いて定期実行するバッチ処理を作成したいと思います。## AWSでバッチ処理を実施するときの選択肢
以下の3パターンが考えられます|No |方式 |メリット |デメリット |
|—|—|—|—|
|1 |EC2上でCronを動かす |長時間のバッチを実行可能
OSやサーバのスペックの自由度が高い|サーバのメンテナンスが必要(セキュリティパッチなど)
バッチが動いていない時間も課金が発生する|
|2 |EventBridge + Lambda |サーバのメンテナンスが不要
3つの中で料金が一番安い
環境構築が容易
デフォルトで同時実行が1,000まで可能 |15分以内にバッチを終わる必要がある
大きなメモリを割り当てられない|
|**3** |**EventBridge
【AWS】awscli IAMユーザーに付与された権限を確認する
# 目的
AWSでの開発に必要不可欠なIAMユーザーですが、発行してもらったIAMユーザーで作業中に
「権限エラーになった:sob:」
という経験をほとんどの方がされていると思います。そんな時に、そのIAMユーザーに割り当てられた権限をAWS CLIで確認する方法を備忘として残します。
AWSコンソール上からももちろん確認は可能です。
AWS CLIを使用するメリットとしては、
– 文字として出力しておくことで状況のエビデンスが取得できる
– 管理者等へ権限の確認や変更依頼をする時に、結局文字情報が必要になることが多い
– JSONで出力されるので、バッチ処理とか運用自動化とかにもうまく使えるかも・・・?辺りかなと思います。
ただしこのやり方はIAM権限の読み取り(ReadOnlyAccessとか)を許可してもらえている前提であり、作業に必要なリソースしか見せてもらえない厳しい現場の場合は管理者に確認するしかありません・・・。
:::note info
AWS CLIが使用できる環境が既にある前提で話を進めます。
:::## IAM ユーザーに直接アタッチされている
【QuickSight】招待メールからログイン出来ないUserがいた場合の確認ポイント
# はじめに
Amazon QuickSightの招待メールを関係者に送付してログイン確認をお願いした際に、1名のみ招待メールからどうしてもログインができず解決に苦戦しておりました:worried:
そこでサポートに問い合わせた結果、原因と解決方法が盲点でしたのでこの学びをTipsとしてまとめておきたいと思います:pencil2:
# 発生した事象
新規アドレス宛に招待メールを送付していましたが、「ユーザー名はこのアカウントに既に存在します」のエラー文が表示されました。
そこで、一度ユーザーから削除し再度招待メールを送付しログインを試みましたが同じ結果でした:tired_face:
▼QuickSightのログイン画面
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3550351/83900ea9-f1a3-a5db-d787-528054a9b45a.png)▼QuickSightの管理画面
何度確認しても、ログインした形跡はありませんでした。
![image.png]
Amazon Linux2でのLAMPのインストール
内容
・趣旨目標
・使用できるサービス
・参考サイト
・VPC作成
・EC2の作成
・LAMP サーバーを準備
・データベースサーバーをセキュリティで保護
・リソースの削除## 趣旨目標
手を動かして学ぶ!手動でサーバーを準備!## 使用できるサービス
VPC,EC2
※気になった箇所だけ記載して、大分端折って記載しています。## 参考サイト(これに従って作成します。):
https://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/ec2-lamp-amazon-linux-2.html
## VPC作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3518951/8425bc15-8335-b0d3-0074-593241615886.png)## EC2の作成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/
Pytestを用いたAPIテストを初めて実装した時の話
## はじめに
業務で自身が作成したAPIらへの単体テストを実施する際に、pytestを初めて利用しテストコードを作成したので、技術共有と自身の備忘録もかねて書いてみようと思います。## pytestってなに
pytestはPython言語を用いてテストコードを作成できるオープンソースのフレームワークの1つです。pytestを用いてテストコードを書いていきます。
[pytest公式サイト](https://docs.pytest.org/en/latest/index.html)素直な使ってみた感想ですが、0からの利用でもわかりやすかったです。今回はAPIを呼び出すテストを実施しましたが、pythonで書かれたコード自体へのテストコードの実装も同じように実装可能です。
## テスト実施の構成図
今回はAWS環境で作成したAPIGatewayを通した単体テスト実施となります。APIGatewayにつながるLamdba関数内から他のAWSサービス、または外部サービスへつながっています。
変革を牽引するクラウドネイティブエンジニアのすすめ## はじめに
最近、ビジネスとテクノロジーの交差点にある『トリリオンゲーム』を読んで、感銘を受けています。その深い洞察に感銘を受けました。特にエンジニアの方々には、新しい視点を得るためにも一読をお勧めします。はい。ということで、どーも、のぶこふです。
さて、ヘーシャは代表が言っている通り「クラウドネイティブなエンジニアの育成」に力を入れています。
本記事では、このクラウドネイティブなエンジニアとは何か、そしてなぜそれが現代のビジネスにおいて不可欠なのかについて、私の視点を交えて深く掘り下げていきたいと思います。## クラウドネイティブとは
さて、クラウドネイティブの定義から始めましょう。
この用語は、技術者だけでなく、ビジネスリーダーにも理解され始めています。
そこで私が日頃から頼りにしているAIアシスタント「GPT-4 Turbo」に基本的な定義を尋ねてみました。
※本記事も十二分に活用させていただいています。
※タイトルも考えてもらっているので、いつもよりも堅苦しいかも—
のぶこふ「クラウドネイティブとはなんでしょうか?」
のぶこふ「また、クラウドネイティブ
RDSについて勉強
メモメモ
## [RDS]DBサーバを構築する
RDSは、フルマネージドなリレーショナルデータベースのサービス– コア機能の開発に注力できるように設計されている
– 設定できる項目には制限があり、DBパラメータグループ、DBオプショングループ、DBサブネットグループが用意されている### 特徴
– 高い可用性
– パフォーマンスの向上
– 運用負荷の軽減
### 構築手順– VPCからサブネットを作成
– EC2からセキュリティーグループを作成
– RDSへ移動してサブネットグループの作成
– パラメータグループの作成
– オプショングループの作成
– RDSの作成
– エンジンオプションの選択
– テンプレート選択
– 設定
– DBインスタンスサイズ選択
– ストレージ選択
– 可用性と耐久性の選択
– 接続の選択→自身で作成したVPC
– サブネットグループ選択
– セキュリティーグループ選択
– アベイラビリティーゾーン選択
– パラメータグループ選択
– オプショングループ選択
– バックアップの自動バックアップ及び保持期間などの選択
– モニタリングの選択
せっかくAWSの勉強をするので、インフラの基礎から勉強してみることにした #3
備忘録です。
## Webサーバー構築(EC2)
### EC2とは
Elastic Compute Cloud の略。AWSクラウド上の仮想サーバー。インスタンスというのはEC2から建てられたサーバーのこと– 特徴
– 数分で起動し、1時間または秒単位の従量課金
– サーバーの追加・削除、マシンスペック変更も数分で可能
– OSより上のレイヤについては自由に設定できる
– 大まかな作成手順– AMIの選択
– インスタンスタイプの選択
– ストレージの追加
– セキュリティグループの設定
– SSHキーペアの設定
### AMIとは
Amazon Machin Image。インスタンス起動に必要なっ情報が入ったOSのイメージ。サーバーのテンプレートのようなもの– 特徴
– AWSやサードパーティがAMIを提供
– 自前のカスタムAMIも作成可能
– カスタムAMIから何台でもEC2インスタンスを起動可能
### インスタンスタイプとは
サーバーのスペックを定義したもの– 概要
– インスタンスタイプにより、CPU
AWS SAMの基本的な使い方
# AWS SAMの基本的な使い方
AWSのServerless Application Model(SAM)は、サーバーレスアプリケーションの開発とデプロイを簡単にするフレームワークです。
この記事では、SAMを使用してサーバーレスアプリケーションを開発、テスト、デプロイする基本的なコマンドを紹介します。## はじめに
AWS SAMは、AWSのサービスを利用してサーバーレスアプリケーションを構築するためのツールです。
SAMを使用することで、Lambda関数、API Gateway、DynamoDBなどのAWSリソースを簡単に定義し、デプロイできます。## アプリケーションの開発
### アプリケーション初期化
“`
$ sam init
“`### アプリケーション構築
“`
$ sam build
“`### アプリケーションをデプロイ
“`
$ sam deploy –guided
“`### アプリケーション実行
“`
$ sam list endpoints –output json
“`### Lambda関数とやり取
【AWS】Raspberry Pi 4をIoTCoreに接続する
# はじめに
最近Raspberry Pi 4を購入したので、改めてIoT Coreで学習しようと思い、まずは接続するところから始めました。
今回はサンプルアプリケーションを動かしてPub/Subを行えるところまでとなります。# 環境
– Raspberry Pi 4
– Windows 11# 実装
## Raspberry Piに必要なツール/ライブラリをインストール
– OSの更新
– ライブラリのインストール
– cmake
– libssl-dev
– ツールのインストール
– Git
– AWS IoT Device SDK for Python
-Pythonのインストール今回は初めてRaspberry Piを起動したこともあり、OSの更新にとても時間がかかりました。
ライブラリについては既にインストール済みのものもあり、時間はあまりかかりませんでした。## 証明書の発行
### AWS IoTポリシーの作成
①[ポリシー]を押下
![image.png](https://qiita-image-store.
ECSのCPU使用率が100%を超える理由
# はじめに
AWSのCloudWatchメトリクスでECSのCPU使用率を見ていて、CPU使用率と一言で言っても種類があったり、CPU使用率が100%を超えていることがあって一体どうなっているのかと思ったりしたので、ECSのCPU使用率について整理した。
# ECSのCPU使用率は2種類
ECSのCPU使用率は2種類ある。
#### ①クラスターCPU使用率
クラスターのタスクが使用しているCPUユニット数の合計 ×100 / クラスターのコンテナインスタンスに登録されているCPUユニット数の合計▼CloudWatchメトリクスで選択するディメンション
・ClusterName#### ②サービスCPU使用率
タスクが使用しているCPUユニット数の合計 ×100 / (タスクが予約しているCPUユニット数の合計×タスク数)▼CloudWatchメトリクスで選択するディメンション
・ClusterName
・ServiceName# クラスターCPU使用率の注意点
クラスターCPU使用率は、あくまでコンテナインスタンス全体で利用可能なCPUユニット数のうち
Amazon Linuxコンテナーでmountコマンドを使いたい
dockerhubに存在するamazonlinuxイメージを指定して起動したAmazon Linuxコンテナーは非常に小さく、mountコマンドさえ入っていない。
Redhat系OSでmountコマンドが含まれるパッケージ名を調べたので、メモとしてここに記録して置く。“`bash
# yum install bind
“`上記の通り、yumでbindパッケージをインストールすれば、mountコマンドが使用可能となる。
### 経緯
昨年、一般公開された[Mountpoint for Amazon S3](https://github.com/awslabs/mountpoint-s3/)をamazonlinuxコンテナー上で試すことが出来たのは良かったが、マウントしたS3バケットをアンマウントするにはumountコマンドが必要となり、amazonlinuxコンテナーにはumountコマンドが入っておらず、少し困ってしまった。
ちなみに、amazonlinuxイメージの現時点の最新(latest)は2023.3.20240131.0となるが、このバージョンはyumが正常動
AWS Jam 社内展開のノウハウ
AWS Jam体験会をふまえて、社内展開を行いましたので、そのノウハウについて記しておきます。
AWS Jamについては[前回の記事](https://qiita.com/yosimitu/items/7423f7d6d383e112fea3)を参考にしてください。
:::note info
参加者はSkill Builderのライセンスを持っている人が対象となりますが、個人で購入したものではなく、企業単位で購入するなどして、企業のテナント内で管理されているライセンスが必要となります。それゆえ、誰しも参加できるわけでなく、かつテナント内でというのが参加のハードルを上げてしまうことになります。将来的に、他のハンズオンと同様にJamやGame Dayの開催ができるようになることを強く希望します。
:::# 事前準備
### 企画書の作成
『AWS Jam Onboarding Guide』を参考にして企画立案を行います。* ユースケースとプランニング
今回は以下のようにしました。
* 目的:AWS知識の習熟度見極めと今後のスキルアップ
* 人選:SAAを取得したが実
リファレンスアーキテクチャを学ぶ – Amazon Location Service編
■ 記事の目的
アーキテクチャ設計において”なぜこれなのか?”を説明するのって結構難しいなと思う機会があり、そうした時に拠り所となるのが”実際他所ではどう使われているか”といった実績になると考えた。
[AWS アーキテクチャセンター](https://aws.amazon.com/jp/architecture/?cards-all.sort-by=item.additionalFields.sortDate&cards-all.sort-order=desc&awsf.content-type=*all&awsf.methodology=*all&awsf.tech-category=*all&awsf.industries=*all&awsf.business-category=*all)を端から眺めてみて、サービス自体の理解を深めるとともにアーキテクチャパターンを調査してまとめる。# Amazon Location Service
フルマネージドの位置情報サービス(Location Based Service(LBS))。以下の機能がサポート[^1],