AWS関連のことを調べてみた2023年09月23日

AWS関連のことを調べてみた2023年09月23日

AWS CDK – Context

# Context

CloudFormation の Parameters のように使える機能。
コンテキスト値は、アプリ、スタック、コンストラクトに関連付けることができるキーと値のペアです。
キーは文字列で、値は JSON でサポートされている任意の型(数値、文字列、配列、オブジェクト)を使用することが可能。

# Context の提供方法

6 つある。

1. 現在の AWS アカウントから自動的に提供
2. CDK コマンドの –context オプションで指定
3. プロジェクトの cdk.context.json ファイルに記述
4. プロジェクトの cdk.json ファイルの context キー
5. ~/.cdk.json ファイルの context キー
6. construct.node.setContext メソッドで使用

# Context の取得方法

`construct.node.tryGetContext` を使用して Context値を取得します。

# Context methods

|methods|説明|
|—|—|
|

元記事を表示

AWS, Terraform, Next.js(Typescript), Rails, Docker, Vercel, Github Actions, Firebaseを使用してポートフォリオを作成しました。

# 概要
同棲しているカップル専用の家計簿アプリを作りました。
レスポンシブ対応です。
現在開発中で全然完成していませんが、完成時期が見えないので一旦就職活動用にまとめました。

開発者のプロフィール情報、お問い合わせは[こちら](https://codeto.jp)からお願いします。

# サイト
こちらが開発したWebアプリのリンクです。
[Pairly(ペアリー) – 同棲カップル専用の家計簿アプリ](https://app.pairly.life/)

:::note alert
**注意**
現在開発中のためパートナー招待が使用できません。
投稿データの同期を確認されたい方は下記のテストアカウントをご利用ください。
:::

### テストユーザー1
【メールアドレス】tarou@test.com
【パスワード】123456

### テストユーザー2
【メールアドレス】hanako@test.com
【パスワード】123456

:::note info
テストユーザー1で投稿すると、テストユーザー2に同期されてデータを閲覧

元記事を表示

【参加レポート】AWS 秋の Observability 祭り

# はじめに

AWS Startup Loftにて、Observabilityに着目した「AWS 秋の Observability 祭り」というイベントが開催されました

https://aws-startup-lofts.com/apj/loft/tokyo/event/36f197e6-2c86-455c-86d4-55143aec406b

Observabilityがキーワードになっているため、CloudWatchに関連する話が多かったです
ただ、Observabilityについて改めて考えるという意味でも、とても勉強になるイベントでした

後ほどAWSさんから公式にブログが公表されるとのことですが、最速版として参加レポートを残しておきます

※以下、「Observability」を適宜「O11y」と略して記載します

# [AWSセッション] Amazon CloudWatchはじめとしたObservabilityの最近のアップデート紹介

– O11yはなぜ必要か?
– システムの構造が複雑になってきている
– 「理由が未知、原因も未知」の問題が発

元記事を表示

「Amazon QuickSight で Amazon SageMaker 機械学習予測を視覚化する」のブログ記事の実施時の注意点

## 概要
SageMakerとQuickSigthでの連携ということで、以下のサイトの通り実施してみたが、2023年9月22日時点ではエラーが発生してしまうため、その注意点のメモ。

### ブログ記事
https://aws.amazon.com/jp/blogs/news/making-machine-learning-predictions-in-amazon-quicksight-and-amazon-sagemaker/

### 実施で使うソースがあるGitHub
https://github.com/aws-samples/quicksight-sagemaker-integration-blog.git

### 修正点
ブログ記事のほうの「ノートブックを実行する」という項で、以下のJupyterファイルを使って実行するが、ところどころエラーになる。

quicksight-sagemaker-integration/customer_churn.ipynb

#### In 2番目
“`python
import pandas as pd
import numpy

元記事を表示

既存のPyTorchモデルをAmazon SageMakerのリアルタイム推論エンドポイントにデプロイする

# はじめに
この記事は以下のような人を対象としています。
– リアルタイム性が重視されるPyTorchの推論環境をオンプレに構築したが、AWSに移行したい人
– SageMakerでトレーニングしたPyTorchモデルをSageMakerのリアルタイム推論エンドポイントにデプロイしたい人

# 前提
– 推論可能なPyTorchのモデルファイル及びそれを使った推論用のPythonコードが既に手元にあること
– 開発環境でJupyter Notebookが使えること
– 開発環境でBoto3を使用するための認証情報が設定されていること
– SageMakerの操作に必要な権限が付与されていること

# Amazon SageMakerとは
AWS環境上でMLパイプラインを構築できるサービスです。
機械学習モデルのトレーニングや推論に必要な環境の構築を、専用のコンピューティング環境(Amazon SageMaker MLインスタンス上で稼働するコンテナ)上でフルマネージドに行うことができます。

公式デベロッパーガイド:[Amazon SageMakerとは](https://docs.

元記事を表示

IAM Identity Centerの所属するグループ名のリスト

aws identitystore list-groups –identity-store-id d-fafads
{
“Groups”: [
{
“GroupId”: “f4be72bd356d”,
“DisplayName”: “test_fadsp”,
“IdentityStoreId”: “d-9adsf0”
},
{
“GroupId”: “67244a28-fafdas97e34”,
“DisplayName”: “fad”,
“Description”: “fads”,
“IdentityStoreId”: “d-95fa6e10”
}
]
}

元記事を表示

AWS環境からOCIリソースのAPI操作(Secrets Managerを使用)

## 概要
AWS EC2からPythonを使用してOCIリソースのAPI操作(Computeの開始操作)を行います。
OCI資格情報について下記の投稿ではEC2内に配置していましたが、今回の記事ではSecrets Managerを使用してEC2内にはOCI資格情報を保存しないためセキュリティを高めています。

[AWS環境からOCIリソースのAPI操作](https://qiita.com/tktk2712/items/7ae9080471ae4935cb13)

## 構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/d9c956eb-d7a4-08a2-9476-81d1349f1901.png)

## 設定手順
* AWS Secrets Managerへのアクセス許可
EC2からAWS Secrets Managerへのアクセス許可付与します。
付与方法については公式情報等を参考に設定するためここでは割愛します。
[AWS Secrets Manager の

元記事を表示

GitHub ActionsでAWS CDKが動かなくてハマった話

# 書いてあること
GitHub ActionsでAWSのCDKを使ってデプロイの差分を取得しようとしたらエラーが出て解決に数日かかってしまった。
ネットで調べても解決策がヒットせず、色々試行錯誤してようやく解決した。
もし同じような問題が起きて困っている人は参考にしてほしい。

# エラーが出るCIのファイル
“`yaml:ci.yml
name: CI

on:
pull_request:
branches: [main]

jobs:
diff:
name: Diff
runs-on: ubuntu-latest

steps:
– uses: actions/checkout@v3
– uses: actions/setup-node@v3
with:
node-version: ’18.x’

– name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@

元記事を表示

CognitoをOIDCの外部プロバイダーとして設定する

# 背景
社内でAzureAD(今はEntraID?)と連携したアプリケーションが複数あり、新しくアプリケーションを作るたびにAzureAD Appを作らなければならなかった。それぞれのアプリケーションで許可されるユーザーが同じものが多かったため統合したかった。

# 前提
– 筆者は認証周りに疎く調べながらやったため、BestPracticeではない(と思う)
– Cognitoの利用経験あり
– 導入先のWebアプリケーションもCognitoによる認証を導入することとする。
※OIDCとして提供できるのでCognito以外のFrameworkやServiceでも利用可能(だと思う)

# 図解
“`mermaid
%% ここに全体のフロー図

sequenceDiagram
autonumber
%% Entities

actor user as User
participant app as Application
participant appc as App Cognito
participant lpc as Cognito as OIDC

元記事を表示

AWS CloudShellでの対話的操作で手軽にboto3を試すには

# はじめに

この記事では、AWS CloudShellでPythonのSDK、boto3を対話的に使用する方法を解説します。

CloudShellには、Pythonとboto3がプリインストールされています。さらに、CloudShellはマネージメントコンソールから認証情報を引き継ぐため、boto3に認証情報を明示的に渡す必要がありません。これにより、セットアップが不要です。

また、この手法は、AWSリソースの操作だけでなく、boto3のAPIを試す際にも非常に便利です。

# AWS CloudShellとは

AWS CloudShellは、マネージメントコンソールから直接アクセスできる、ブラウザベースのシェル環境です。AWS CLIや各種SDK、その他のシェルユーティリティをプリインストールされた状態で使用することができます。

https://docs.aws.amazon.com/ja_jp/cloudshell/latest/userguide/welcome.html

# boto3とは

boto3は、AWS SDKのPython版であり、AWSのリソースにプ

元記事を表示

めんどうくさそうなAWS Cloudformationの使い方を学ぶ

## まえがき
AWS Cloudformationを初めて使用した際のメモを整理し、Cloudformationはめんどくさそうという意識のハードルを下げる内容にまとめました。

## AWS Cloudformationの説明
AWSリソースの構築を自動化するサービス。
リソース情報を記載したJSONかYAMLのフォーマットをテンプレートとし、それを読み込ませることで自動的な構築が可能。
Cloudformation自体は無料。構築したリソース自体の料金は別途発生します。

テンプレートから同じ環境を再構成できるのでリソースの構築が簡単です。
同様にリソースの削除も容易にできます。

## とりあえず試してみる

### テンプレートの準備
* [AWSドキュメントのCloudFormationユーザーガイド > テンプレートリファレンス> AWS Identity and Access Management > AWS::IAM::User ](
https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuid

元記事を表示

【AWS Batch】ジョブ定義のコマンドでDBの環境変数を使う時!

# 概要
AWS Batchのジョブではコマンドを記載して実行することができます。
DB接続情報の環境変数を使って、RDSへ繋ぐコマンドを作成していたのですが、何度かミスがあったので失敗パターンと成功パターンを記載します。

## 前提

以下が全て環境変数としてジョブ定義で設定されている前提です。
※コンソールからジョブ定義を作るときは手動入力できますし、CloudFormation使うときはテンプレートに直打ちするかSecret Managerから取ってくるなどの方法があります。

– RDS_HOST
– RDS_PORT
– RDS_USERNAME
– RDS_PASSWORD
– RDS_DB_NAME

上記のDB接続情報を利用して、`InsertCustomerProcedure`というあらかじめDBに登録しておいたプロシージャを呼び出します。

# 成功パターン

“`
[“sh”,”-c”,”mysql -h $RDS_HOST -P $RDS_PORT -u $RDS_USERNAME -p$RDS_PASSWORD -D $RDS_DB_NAME -e \”

元記事を表示

YouTubeで再生地点指定するのってどうしてんの??

# はじめに
YouTube大好き!!
週に17時間26分見るくらい好き!!
この時間を法律の勉強に充てれば大体4年で司法試験に合格できる。

最近気になってるのが
履歴から動画再生したら前停止したとこから再生できるんだけど?!?!?!?!
めっちゃ便利なんで?!これなんで?!

# 目的
YTSwiftyPlayerの基本的な使用法を学ぶ。
evaluateJavaScriptメソッドの使用法を理解する。
YouTube動画のシーク操作を理解する。

# YoutubeKit
### 結論から言うとよくわからんかった
でも[YoutubeKit](https://github.com/rinov/YoutubeKit)というライブラリを見つけた。
この中にシークバーに関するメソッドも存在したのでそこから想像してみたいと思

元記事を表示

Private subnetに存在するECS taskから外部ネットワークに通信する

## Private subnetとは
awsではinternet gatewayがアタッチされていないsubnetのことを**private subnet**と呼んでいます。
ここでは通常internetから直接アクセスされたくないDatabaseなどを配置し、public subnetに存在するインスタンスからのみの通信を許可するというのが一番ポピュラーなユースケースです。

## Private subnetから通信したい
そんなPrivate subnet内にサーバを配置し、そこから外部へ通信したい場合があります。
主にはprivate subnet内のDBへ何らかしらの処理を定期的に実行したいなどでしょうか。そんな時にECSからsubnet外への通信を行いたい場合があります。
例えばECSをprivate subnet内で実行しながら、
・ssm/secret managerからパラメータを取得したい
・ECRからイメージを取得したい
・cloudwatchlogに書き込みをしたい
・s3とのデータやり取りをしたい

## やり方は2つ
・NAT gatway
・(おすすめ)

元記事を表示

AWS環境からOCIリソースのAPI操作

## 概要
AWS EC2からPythonを使用してOCIリソースのAPI操作を行います。
今回はOCI上のComputeに対して開始操作を行います。

## 構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/1c29e7ca-f145-fec3-f82a-ab9e204da0d6.png)

## 設定手順
* OCI資格情報取得
OCIリソース操作可能なOCIユーザーIDの資格情報を取得します。
今回は既存のユーザーIDのトークンベースの認証を行っておりますので通常の資格情報よりもトークンが資格情報に付加されています。
参考:
[CLIでのトークンベースの認証](https://docs.oracle.com/ja-jp/iaas/Content/API/SDKDocs/clitoken.htm)

通常のAPI認証の資格情報設定は以下リンクの3-1. CLI構成ファイルの設定を参照してください。
[コマンドライン(CLI)でOCIを操作する](https://or

元記事を表示

Amazon CloudWatchを使用してOCI Computeを監視

## 概要
Amazon CloudWatchを使用してOCI上に起動したComputeのCPU/Memory/Disk監視やlog取得を行います。

## 構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/c82a512b-e8de-c02b-e9ab-b5fd23ab9690.png)

## 設定手順
* CloudWatch Agent導入
AWS Systems Managerを使用してCloudWatch Agentを導入します。
参考
[AWS Systems Manager を使用した CloudWatch エージェントのインストール](https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/installing-cloudwatch-agent-ssm.html)

AWS マネジメントコンソールにログインして、AWS Systems Manager > Run comm

元記事を表示

AWS Skill Builder で無料でAWSを勉強する

AWSについてのオンラインレッスンが受けられる『[AWS Skill Builder](https://skillbuilder.aws/jp)』を始めてみました。
無料アカウントでも300以上(英語版は600以上)のコースが受講できます。

https://skillbuilder.aws/jp

AWSアカウントとは別物のAmazonアカウントで登録するなど、少しややこしかったので、登録の仕方からコースの選び方までをまとめます。

# 無料アカウントを作成
AWSのアカウントでログインしようとすると、「このEメールアドレスを持つアカウントが見つかりません」と怒られて、最初からつまづきます。
『AWS Skill Builder』には、AWSアカウントではなく、Amazonアカウントでログインする必要があります。Amazonアカウントを持っていなければ、作成しましょう。
![スクリーンショット 2023-09-15 17.47.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3556627/762

元記事を表示

AWS Systems Managerを使用してOCI Computeを管理

## 概要
AWS Systems Managerを使用してOCI上に起動したComputeを管理します。

## 構成
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/b6b897e6-b198-12fe-6ac7-52a8a21bc692.png)

## 設定手順
* アクティベーション
AWS マネジメントコンソールにログインして、AWS Systems Manager > ハイブリッドアクティベーションを選択してアクティベーションを作成するを押下
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2730992/2cd1f116-0027-ac93-51de-1f35b1592676.png)

説明とインスタンス名を入力してアクティベーションの作成を押下
![image.png](https://qiita-image-store.s3.ap-northeast-

元記事を表示

AWS CDKもまずは環境構築から

AWS CDKを使ってみよう!と意気込んだものの、利用するための環境がなければどうしようもありません。
Cloud9を使うのも一つの手ですが、今回はWSL2(Ubuntu)を使って環境を整えていきます。

## バージョン管理ツールの導入

バージョン管理にはasdfを利用します。
細かい手順や別環境への導入はasdfのガイドを見ながら行うのが良いかと思います。
https://asdf-vm.com/guide/getting-started.html
~~~
apt install curl git
git clone https://github.com/asdf-vm/asdf.git ~/.asdf –branch v0.13.1
~~~

~/.bashrcの末尾に以下の2行を追加します。
~~~
. “$HOME/.asdf/asdf.sh”
. “$HOME/.asdf/completions/asdf.bash”
~~~

asdfの導入はこれで完了です?

## aws-cdkのインストール

記事を書いているときのAWS CDKのプライマリ言語はTypeScri

元記事を表示

Laravel10 ViteをEC2上で自動更新するための設定

Larvel10では、フロントエンド・ビルドツールとして、Viteが採用されています。
Mixへ戻すことも可能ですが、Viteはビルドも早く、利用していても快適ですので、是非利用をお勧めします。

ただし、AWSのEC2上で開発を行う際など、そのままの設定では、

“`
$ npm run dev
“`
を利用した自動更新のコマンドで失敗します。

この自動更新が正常に行うようにするためには vite.config を以下のように修正する必要があります。

“`js:vite.config.js

import { defineConfig } from ‘vite’;
import laravel from ‘laravel-vite-plugin’;

export default defineConfig({
plugins: [
laravel({
input: [‘resources/css/app.css’, ‘resources/js/app.js’],
refresh: true,

元記事を表示

OTHERカテゴリの最新記事