- 1. ラズパイとAWS IoTを使った見守りシステム自作で学んだこと(2)見守りProjectの設計(名前の設定)
- 2. Amazon Location Serviceで作成したMapをWebアプリに埋め込む
- 3. 【AWS】【GCP】AWSとGCP間のキーなし認証を試みる(1) GCP→AWS
- 4. Serverless frameworkでGoをデプロイしたらPath errorが発生する
- 5. なるべく手間をかけず(Amplifyも使わず)にサーバーレスでCognitoユーザーがAWSマネジメントコンソールへログインできるようにする
- 6. Nuxt.js(3) で作ったアプリをAWS Lambda 1つで公開する
- 7. 固定グローバルIPアドレスを付与
- 8. AWS CLIでAWS SES のテンプレート登録しようとしたら「Error parsing parameter ‘cli-input-json’: Invalid JSON received.」がでる
- 9. Node.js v12 を使用している Lambda をリストアップ
- 10. 【受験記録】AWS Certified Database – Specialty (DBS-C01)
- 11. 第5回 The Twelve-Factor App on AWS & Django(AWSで初期設定をしようー前編)
- 12. 【AWS】EC2 起動テンプレート(Launch Templates)を使ってみた
- 13. AWS SAA を初受験する方のために
- 14. 完全未経験が2ヶ月半で一からWebアプリを作ったお話
- 15. AWS AmplifyUI+Vueでユーザー認証してみる(後編)。
- 16. Load Balancerの仕組み、構成
- 17. ECSのCapacity Providerとは??
- 18. OurPhotoの技術スタックを一挙公開!~改善活動の積み重ねでサービスの拡充を担う~
- 19. kubernetesでデプロイの更新をしたがPendingで止まってしまう
- 20. EKSでconnectex: a socket operation was attempted to an unreachable networkというエラーが出る
ラズパイとAWS IoTを使った見守りシステム自作で学んだこと(2)見守りProjectの設計(名前の設定)
[ラズパイとAWS IoTを使った見守りシステム自作で学んだこと(1)概要の説明](https://qiita.com/nsaito9628/items/ff9743e471592f38a463)からの続きです。今回も概要説明の続きになります。
本稿では、この「見守りProject」の設計書を作ります。
大上段で設計と言いましたが大げさなものではなく
* Project
* モノ(ラズパイ)
* 録画したmp4をuploadするS3のBucketの3種類、最大で6個の名前を決めて、cliの対話実行でdeployに必要な設定ファイルを出力します。
以下、若干分かり難い説明になりますが、やることは**最大6個の名前を決めて出力するだけ**です。
## Projectで使う名前を決める
[リポジトリー](https://github.com/nsaito9628/Monitoring-system-with-Raspberry-Pi-and-AWS)のProjectを実装するのに必要なパラメーター(名前)は次の3種類です。
* Project名
* モノの名前(ラズパイの名前)
Amazon Location Serviceで作成したMapをWebアプリに埋め込む
## はじめに
Uber Eatsやタクシー配車アプリ「GO」をはじめリアルタイム位置情報を使ったサービスが続々と出てきています。今回はアプリケーションにロケーションを素早く、簡単に追加できるAmazon Location Serviceを試してみました。
## Amazon Location Serviceの概要Amazon Location Serciceの機能は大きく以下の5つになります。
– マップ
– インデックスの配置
– ルート計算ツール
– ジオフェンスのコレクション
– トラッカー## マップを試してみる
Amazon Location ServiceではAWSコンソールで作成したMapを簡単にアプリケーションに埋め込むことができます。
以下ではJavascriptでマップを表示する設定を行いました。#### MySampleMapという名前のMapを作成
まずはWebアプリに表示したマップをAWSコンソールで作成していきます。用意されているものを選択していくだけなのでとても簡単です。![スクリーンショット 2022-08-22 22.08.05
【AWS】【GCP】AWSとGCP間のキーなし認証を試みる(1) GCP→AWS
# 1. はじめに
AWSとGCP、マルチクラウド間の接続に悩まされたことはありませんか?もしこのような業務要件を聞かれたときに、最初はAWS側のIAM Userでアクセスキーを発行して、それをGCP側に渡して、GCP側がこのアクセスキーのを使ってAWSのサービスを接続するということを思い浮かびませんか?
もちろんこのやり方ではできるですが、アクセスキーの漏洩リスクがあり、それでセキュリティの低下や、運用上の煩雑に繋がりそうなので、極力アクセスキーを発行しないかわりに、ロールを使うことはクラウドのベストプラクティスになります。
そこで、なんとGCPとAWS間は非常によいお友達であることを発見し、AWSのIAMロールでGCPとキーなし認証できます!
# 2. 早速ネタバレ
AWS側IAMのウェブアイデンティティで、GCP側のサービスアカウントを指定することできます。それで、GCP→AWSでは、AWSのIAM Roleを使って、STSでGCPへ接続することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1
Serverless frameworkでGoをデプロイしたらPath errorが発生する
# はじめに
この記事は2022年8月にまとめていた「細かいつまずいたことをメモしておく(8月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください# 問題
https://blog.mmmcorp.co.jp/blog/2020/06/07/aws-lambda-with-golang-gin/
https://zenn.dev/sti320a/articles/f60aa3ef305075
この記事をみて設定をしていたがいざデプロイすると以下のエラーが発生
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/810513/982f825a-772f-921b-3286-d61806242e96.png)
# 解決方法
“`Makefile
build:
go mod download
env CGO_ENABLED=0 GOARCH=amd64 GOOS=linux go build -ldflags=”-s -w” -o bi
なるべく手間をかけず(Amplifyも使わず)にサーバーレスでCognitoユーザーがAWSマネジメントコンソールへログインできるようにする
# 経緯
タイトルの通りで、私の関わっているサービスで最近わりと切実に実現する必要があったのですが、ググってみてもそのものズバリの情報がなかなか見当たらず、調査にけっこう時間がかかってしまったので他の方々や後の自分が迷いなく実現できるように書き残しておきます。もっと良いやり方があるよという方は教えてください。
# 前提条件
– ユーザーにAWSマネジメントコンソールを使わせたい
– ユーザーはCLIでなく、ブラウザ(ログイン画面)でログインさせたい
– 事情があってAWS SSOに連携するIdPを使えない、使わない
– ログイン画面のためだけにウェブアプリを作りたくない
– サーバーの運用はなるべくしたくない
– IAMユーザーは発行したくない(セキュリティリスクの問題です。IAMユーザーを発行しても良いという場合はそれで解決です。この後を読む必要はありません。お疲れ様でした!)
– 運用チームがCognitoユーザープールでメンテナンスできる程度のユーザー規模(うちの場合は予想2桁程度なので余裕)Cognito ログイン画面 などでググるとAmplifyが良くヒットするので
Nuxt.js(3) で作ったアプリをAWS Lambda 1つで公開する
# 備忘録
“`nuxt.config.ts
export default defineNuxtConfig({
nitro: {
preset: “aws-lambda”,
serveStatic: true,
},
})
“`Lambda Functions URLを使用する
APIGateWayでもできるらしいのだが、自分の場合上手くいかなかった。
※.output/public/_nuxt配下のアセットの公開がAPI GateWayの場合UrlにStageの値が入る為、上手く折り合いをつけれなかった
解消出来たらよりいいのになと思っています。https://github.com/nuxt/framework/issues/3586
“`serverless.yml
service: nitro-sampleprovider:
name: aws
runtime: nodejs16.x
region: ap-northeast-1package:
patterns:
– “!**”
固定グローバルIPアドレスを付与
# Elastic IPアドレスとは
**Elastic IPアドレス**はAWSが提供する静的なグローバルIPv4アドレス。
EC2のインスタンスは、**停止して起動し直すとグローバルIPアドレスが変わってしまう**。これではサーバーとして使用できないので、**固定のIPアドレスをインスタンスに結びつける必要がある**。この時に使用するのが、**Elastic IPアドレス**。
# Elastic IPアドレスの確保と結び付け
**Elastic IPアドレスは、AWSアカウントに結び付けられる**
要は、インスタンス単位でないので、IPアドレスを割り当てたインスタンスを削除しても確保したIPアドレスはそのままAWSアカウントが持ち続けられる。
確保したIPアドレスは別のインスタンスやネットワークに結びつけ直すことができるまた、インスタンスに最初に割り当てられるグローバルIPアドレス(起動のたびに変化するIPアドレス)は、Elastic IPアドレスを割り当てると、AWSのパブリックIPv4アドレスのプール(インスタンスに割り当てるために確保されているIPアドレス)に戻される。
AWS CLIでAWS SES のテンプレート登録しようとしたら「Error parsing parameter ‘cli-input-json’: Invalid JSON received.」がでる
## 環境
Win10 cmd## 問題
AWS cliでSESのテンプレート登録しようとして、下記実行
“`
aws ses create-template –cli-input-json ./test.json
“`
登録されず、
Error parsing parameter ‘cli-input-json’: Invalid JSON received.
のエラーが出る。。## 答え
いらないと思って消してたが、file://がいるらしい。。。
“`
aws ses create-template –cli-input-json file://test.json
“`
Node.js v12 を使用している Lambda をリストアップ
aws-cli で Node.js v12 を使用している Lambda をリストアップする方法です。
AWS SSO を使用している場合の方法になります。# AWS CLI の準備
aws cli のインストール手順は省略。
aws sso のスタート画面を開く。
対象のアカウントの Command line or programmatic access から “`Option 1: Set AWS environment variables“` をコピー
ターミナルでペーストしてそのまま実行。“`
>export AWS_ACCESS_KEY_ID=”ACCESSKEYID”
export AWS_SECRET_ACCESS_KEY=”SECRETACCESSKEY”
export AWS_SESSION_TOKEN=”SESSIONTOKEN”
“`# コマンドの実行
以下のコマンドを実行。
リージョン、Node.js のバージョンは適宜変更して実行。
“`
aws lambda list-functions –function-version ALL
【受験記録】AWS Certified Database – Specialty (DBS-C01)
## 前提
– 6年目エンジニア
– アプリケーション開発メイン
– インフラは少しだけ
– AWS CLF, Associate3つ, SAP, DAS, ANS, MLSは保持
– 受験日 2022/8/11##試験結果
点数:804点/750点/1000点(取得スコア/合格ボーダー/満点スコア)
スコアパフォーマンス: 全セクションで”コンピテンシーを満たしている”## 試験感想
– RDS, Auroraの比率が高め
– 7割程度くらいの印象
– RDSではできず、Auroraだけできること(クローンなど)はちゃんと理解した方がよさそう
– アクセス制御はNW(SGなど)で
– 個人的にバックアップや暗号化の部分がいまいちなままだった– DynamoDB
– スキーマ設計(PK, SK, インデックス)、各種ユニットの計算などがでていた印象
– アクセス制御はIAMロールで– 時間には余裕がある
– 自分が解いた時は約1時間程度で1周、見直し含めて1時間半程度で完了
第5回 The Twelve-Factor App on AWS & Django(AWSで初期設定をしようー前編)
# 目次
– [第1回 The Twelve-Factor App on AWS & Django(The Twelve-Factor Appとは)](https://qiita.com/satsuma0711/items/3b928d0e5670a633f9d8)
– [第2回 The Twelve-Factor App on AWS & Django(バックエンドAPIを作ろう)](https://qiita.com/satsuma0711/items/850d57ad1557d0f8dddb)
– [第3回 The Twelve-Factor App on AWS & Django(フロントエンドSPAを作ろう)](https://qiita.com/satsuma0711/items/67d35253a237c976415f)
– [第4回 The Twelve-Factor App on AWS & Django(AWSのアカウントを作成しよう)]()
– 第5回 The Twelve-Factor App on AWS & Django(AWSで初期設定をしようー前編) ←
【AWS】EC2 起動テンプレート(Launch Templates)を使ってみた
お仕事にて**Launch Templates**というワードが出た瞬間に、
ろ、ろーんちてんぷーと…?となり、これはいかんと思ったので、
今回使ってみようと思います。知らないワードだったので少し身構えましたが、EC2の延長上にある機能であり、
名前の通りEC2の起動をテンプレート化するだけのものなので、大いに親しみのもてる機能です。今回のテンプレートでは以下の2パターンに派生することをイメージして作っていきます。
**①インスタンスを入れ替える**
**②インスタンスをスケールアウトする**# ①起動テンプレートの作成
基本的には**起動テンプレートの設定に含めない**、
つまり都度起動時に自由に設定できるになっているので、
ここは固定させてもよいかもというところだけ固定化させていきます。なお、起動テンプレートはバージョン管理できるので、
ここでの設定は**後から変更することもできます**。まずは、起動テンプレート作成画面を出します。
EC2→インスタンス→起動テンプレート→起動テンプレート作成
![スクリーンショット 2022-08-21 23.17.08.
AWS SAA を初受験する方のために
# 初めに
この記事は、非ソフトウェアエンジニアが AWS Certified Solutions Architect – Associate (SAA-C02) に合格するためにどのように取り組み、どう感じたのかをまとめた体験記になります。SAA を受験する方が勉強する際の参考になればと思っています。:::note alert
SAA-C03 が最新であり、試験ガイドに記載の内容は SAA-C02 と大きく異なるのでご注意ください。SAA-C03 の試験ガイドは以下を参照ください。https://d1.awsstatic.com/ja_JP/training-and-certification/docs-sa-assoc/AWS-Certified-Solutions-Architect-Associate_Exam-Guide_C03.pdf
:::
# エビデンス
初めて SAA を受験し、合格した結果です。* [AWS 認定デジタルバッジ](https://www.credly.com/badges/ee7006fd-f01e-4b25-9963-63411ac
完全未経験が2ヶ月半で一からWebアプリを作ったお話
# はじめに
ポートフォリオとして作成したWebアプリの紹介記事です。
アプリを作成する際に自分が何を考えて作成したのか、その過程をご紹介します。
苦労したことや楽しかったことなどもまとめましたので、是非最後まで読んでいただければと思います!# 簡単に自己紹介
* 商社の営業マンとして働く29歳
* ポートフォリオ作成前は、Progateで基礎学習、Railsチュートリアルを一通りした程度# アプリの概要と開発背景
### アプリ概要
* 自分の欲しいものを管理して支出予測するアプリです。
* サービス名は『Wantest』にしました。
* 欲しいものを登録して一覧化し、その合計金額を表示させます。### 開発背景
* アプリの制作理由
みなさんは欲しいものを買うか迷ったり、欲しいものを買ってみて後悔した経験はありませんか?
私自身、本を買っても読まなかったり、ゲームを買っても結局やらなかったりと、買って後悔した経験が多々あります笑。
このアプリはそんな経験を少しでも減らせればという思いで開発に至りました。* 誰のどんな課題を解決するか
**欲しいものを買うか迷っている
AWS AmplifyUI+Vueでユーザー認証してみる(後編)。
# 前説
[AWS AmplifyUI+Vueでユーザー認証してみる(前編)。](https://qiita.com/silverbox/items/d3c5c19221d2aa8a83ae)の続き記事になります。
前編では、Amplifyのプロジェクトを新規作成し、ユーザー認証のUIコンポーネントを追加してみる所まで行いました。
今回の記事では、その情報を参考に、既存のVueプロジェクトにユーザー認証用のAmplifyUIコンポーネントを適用する所まで行います。# AmplifyUIコンポーネント導入に必要な内容確認
まず、前編の記事で、AmplifyUIを追加した事で発生した変化を確認します。
増えたファイルは以下の2つです。こちらはAmplifyプロジェクトとしての情報を保持している様です。
– amplify/backend/auth/myamplifyproject*********/cli-inputs.json
– amplify/backend/backend-config.json認証関係の情報が追加されたのは以下のファイルです。
– amplify/b
Load Balancerの仕組み、構成
# TL;DR
https://www.kanzennirikaisita.com/posts/aws-alb-concepts
![スクリーンショット 2022-08-21 18.05.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/276522/37bcc219-a27e-2fb8-2486-c4126b9a4abf.png)# ロードバランサー
負荷分散システム。トラフィックを複数のターゲット(EC2 インスタンス、コンテナ、IP アドレス、Lambda 関数、仮想アプライアンスなど)に分散させることで以下のメリットがある
## 特徴
### 高可用性
多数のAZに配布したEC2インスタンスなどにトラフィックを分散するので、一つのAZがダウンしてもユーザーのアプリケーションは問題なく使える。### 統合性
ELBはいろんなAWSサービスと一緒に使用できる
– Auto Scaling:拡張性管理及びワークロード分散業務を効率的に可能。
– Route 53:一緒に使うことでD
ECSのCapacity Providerとは??
# Capacity Provider
ECSのタスクを実行するインフラを決定するもの# Capacity Provider strategy
複数のCapacity Providerをタスクにどのように適用するかの組み合わせ方法> キャパシティープロバイダーを使用して、クラスター内のタスクで使用するインフラストラクチャを管理できます。各クラスターには、1 つ以上のキャパシティープロバイダーがあり、さらにオプションとして、デフォルトのキャパシティープロバイダー戦略がある。
キャパシティープロバイダー戦略は、
**クラスターの複数のキャパシティープロバイダー間にタスクを分散する方法**
を決定します。
スタンドアロンタスクを実行するか、サービスを作成するときは、クラスターのデフォルトのキャパシティープロバイダー戦略を使用するか、クラスターのデフォルト戦略をオーバーライドするキャパシティープロバイダー戦略を指定できます。# Capacity Providerの概念
Capacity Providerは以下のコンポーネントで構成されている
## Capacity Provid
OurPhotoの技術スタックを一挙公開!~改善活動の積み重ねでサービスの拡充を担う~
こんにちは!エンジニアの小西です。
出張撮影マッチングサービス「OurPhoto(アワーフォト)」で開発リーダーを担っています。OurPhotoは、2020年11月にM&Aにてうるるグループにジョインしました。
グループジョイン後、OurPhoto開発チーム最初の1年間は、ソースコードの技術的負債の解消や、インフラ基盤・ ログ基盤の構築など、画面上では見えない部分の改善活動(システムリファクタリング)を中心に実施してきました。そして今年は、OurPhotoサービス拡大のため、新規機能の追加や目に見える部分の改善活動をメインで行っています。
今回は、そんなOurPhotoシステムの裏側をお話ししたいと思います。
## OurPhotoとは
写真を撮ってほしい個人と写真を撮りたいフォトグラファーをつなげるマッチングサービスです。https://our-photo.co/
サービス特性として、以下があります。
– 大量の画像データを扱う(保存 & 表示)
– 画像データは、フォトグラファーが撮影した品質を保った状態でユーザに届ける必要がある
– 写真撮影需要・イベントの多い
kubernetesでデプロイの更新をしたがPendingで止まってしまう
# はじめに
この記事は2022年3月にまとめていた「細かいつまずいたことをメモしておく(3月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください# 問題
デプロイを更新したのにKubernetesがPendingで止まってしまっていた
# 解決方法
ポッドに対してresourcesを2つ定義していたのが原因だった。
コンテナを1つのポッドに2つ立ててたのでそれぞれにリソース設定をしていた
EKSでconnectex: a socket operation was attempted to an unreachable networkというエラーが出る
# はじめに
この記事は2022年3月にまとめていた「細かいつまずいたことをメモしておく(3月編)をそれぞれ投稿した内容になります
解決方法が最新でない可能性もありますのでご了承ください# 問題
「Kubernetes on AWS アプリケーションエンジニア本番環境へ備える」という本のP42のコマンドでエラーが発生した
“`
connectex: a socket operation was attempted to an unreachable network
“`# 解決方法
これはAWS CLIがインストールされていない、またはAWS Configureがされていないことが原因でした
AWS CLIは自動で環境変数が設定されるようですが、私は手動でいれることで動くようになりました“`
C:\Program Files\Amazon\AWSCLIV2
“`また、Credentialも他の設定があるせいで以下のエラーになってたので、メモ帳で修正しました
また書籍通りだとクラスターのバージョンでエラーになります
“`
error: invalid