- 1. Spring BootのプロジェクトをAWSで公開するまで
- 2. AWS QuickSightがDatabricksをサポートしました!
- 3. HTTPS化(Django+Gunicorn+Nginx+EC2編)〜前編:ロードバランサー作成
- 4. The Turning point with the AWS
- 5. AWS CDK(TypeScript) + AWS SAMでImageタイプのLambdaをローカル実行する
- 6. AWS CLIで所望のEC2インスタンスを探す方法
- 7. FastAPI+Serverless FrameworkでCognito認証情報を処理内で取得
- 8. AWS CLI で SSO ログインを使用する方法
- 9. Terraformを使ってROSA(Red Hat OpenShift Service)をデプロイしてみる
- 10. SQS(FIFO) – Lambda構成の備忘録
- 11. devcontainer を利用して Java(Amazon Corretto) + Localstack の開発環境をつくってみた
- 12. AWS Lambda + Translate で翻訳機能使ってみた! サーバレス編No.1
- 13. node で AWS Lambda Layers 使ってる奴は今すぐ作り直せ
- 14. AWS認定のバッジ連携ができなくなっていたのを何とかした話
- 15. 【AWS】CloudWatchの料金体系を調べてみた
- 16. 開発環境で開発したWordPressテーマをGitHubからPullして本番環境にリリース 🙂
- 17. amplify push と戦う2
- 18. AWS S3に保存してあるファイルをPYTHONで直接読みこむ方法
- 19. AWSの無料期間が終了するのでEC2からlambdaに移行した
- 20. Redshift Serverless の監査ログについて
Spring BootのプロジェクトをAWSで公開するまで
## 目的
この記事では以下2点を目的にしている
* Spring Boot 開発環境の構築
* 自作したwebサービスをAWS上で公開## Spring Bootを使う開発環境の構築
この章でやることは3つ
* Javaのinstall
* Spring Bootの雛形ダウンロード
* 実際の動作確認### Javaのinstall
Spring Bootを開発する上で必要なのことはJavaをinstallすることだけでOK今回はsdkmanを使用する。
sdkmanの導入は[こちら](https://sdkman.io/install)から1. installできるjavaのリストを見る
`$ sdk list java`1. listの中から好きなバージョンを選んでインストールする(11.0.17-amzn をinstallする場合)
`$ sdk install java 11.0.17-amzn`1. バージョンを確認する
`$ java -version`
11.0.17-amzn の場合 下記のように出ればOK
“`
openjdk ve
AWS QuickSightがDatabricksをサポートしました!
これも長らくお待たせしました!です。
https://aws.amazon.com/about-aws/whats-new/2022/11/amazon-quicksight-supports-connectivity-databricks/
Databricksレイクハウスに格納されているデータを用いて、QuickSightによる可視化が可能となりました。
# Databricks側の設定
1. QuickSightから接続する[SQLウェアハウス](https://qiita.com/taka_yayoi/items/23d7789198c2dcd66381)を作成して起動します。
1. **接続の詳細**を開き、サーバーのホスト名、ポート、HTTPパスをコピーしておきます。
![Screen Shot 2022-11-22 at 8.57.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/42bb2ad3-0a51-bc9f-f0e3-33212d552973.png)
HTTPS化(Django+Gunicorn+Nginx+EC2編)〜前編:ロードバランサー作成
# 概要
ACMの機能で発行したSSL証明書をELBに適用することにより、インターネットからELBまでのトラフィックをHTTPS通信にすることが可能となります。
HTTPS通信はSSL/TLSプロトコルにより暗号化されたhttp通信のため、個人情報など秘匿性が求められる情報の盗聴や改ざんを防ぐことに役立ちます。変更前、変更後の構成イメージは以下の通り。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/427357/72716059-8e57-e1d4-d735-8235129d766e.png)
HTTPS化を行うにはそこそこの手順があり、間違えるとどう直せば良いのかわからなくなってしまいます。
何を、どこまでやったのか、確認しながら行うようにしてください。まずは段階的にロードバランサーの作成から行っていきます。
※既にEC2インスタンス上にDjangoアプリケーションが動いている前提で進めていきます。なお、以降では
・仮想環境名 : venv_private_diary
The Turning point with the AWS
# AWS Experience consists of physical and virtual spaces
#### Let’s start with from where it BeganThe Question came in my mind
![AmaAmazonEC2_OGP.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2956999/7c664a38-5c97-1c68-ece3-75cc6f5805ed.png){ I have 1.5 yr exp in Data analysis and security . but I want to move on AWS so which certification will be beneficial for me as a entry level in any organization. please,I want your valuable suggestion.Company hire only Experience can
AWS CDK(TypeScript) + AWS SAMでImageタイプのLambdaをローカル実行する
## 概要
– `sam local ***`(invokeやstart-apiなど)を実行する前に、`sam build -t cdk.out/***.template.json`を実行することでローカルでDockerイメージをビルド出来る
– TypeScriptやJavaScriptのイメージを作成したい場合、pnpmのワークスペース機能を有効+[shared-workspace-lockfile](https://pnpm.io/ja/npmrc#shared-workspace-lockfile)設定を`false`にする、という選択肢がある## 0. 動機など
まず、極力ローカル環境でLambdaなどの開発を進めたい状況とする。
その際、AWS CDKとAWS SAMを組み合わせることでLambdaなどをローカル実行する機能があり、それを使うと開発が便利になる。
ZipタイプのLambdaの場合、公式デベロッパーガイドの[AWS SAMとAWS CDKの開始方法](https://docs.aws.amazon.com/ja_jp/serverless-appl
AWS CLIで所望のEC2インスタンスを探す方法
# はじめに
* AWS上で多数の仮想マシン(EC2)を起動していると、どのような仮想マシンが存在し、どのような状態なのかがパッと分からないことがあります。
* そこで今回は、AWS CLIを使って仮想マシンの一覧を取得した後、リストを絞り込んで所望のインスタンスを探す方法をまとめてみました。# 前提条件
* 以下のページの内容に沿って、AWS CLIの初期設定が行われていることが前提となります。
* 出力フォーマットは「JSON」としています。https://qiita.com/nkojima/items/19e4a098aaf9205115c0
# 基本のコマンド
* [AWSの公式リファレンス](https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-services-ec2-instances.html#listing-instances)にも書かれているように、`aws ec2 describe-instances`というコマンドを使えばEC2インスタンスの一覧を取得できます。
“`shel
FastAPI+Serverless FrameworkでCognito認証情報を処理内で取得
タイトルの通り、FastAPIで開発したAPIにServerless Frameworkの `authorizer` で設定したCognito認証の情報をPython内で使う方法です。
ほぼ最小構成で書いてます。
# FastAPI+Mangum(Python)
利用しているパッケージです。“`pyproject.toml
#省略
[tool.poetry.dependencies]
python = “^3.8”
fastapi = “^0.87.0”
mangum = “^0.16.0”
#省略
“``/auth` というCognito認証情報だけ返すAPIです。
“`http.py
from fastapi import FastAPI
from mangum import Mangum
from starlette.requests import Requestapp = FastAPI()
@app.get(“/auth”)
def get_auth(request: Request):
# Cognitoの認証情報がrequest変数
AWS CLI で SSO ログインを使用する方法
# 注意
この記事は AWS CLI に SSO を「手動」で設定するための方法です。
手動、自動の方法ともに以下の AWS 公式ページに記載があります。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-sso.html私の環境ではなぜか自動設定ができず手動で行ったため、その際の手順をまとめます。
# AWS CLI のインストール
まずは aws cli をインストール。
ここでは方法に関しては省略するので、以下の AWS 公式ページなどを参考にしてください。
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/getting-started-install.html# 必要な情報
– AWS SSO ログイン情報
– AWS SSO のスタート URL(`https://{my-sso-portal.awsapps.com}/start`)
– AWS SSO のユーザーが作成されているリージョン
– AWS SSO アカウン
Terraformを使ってROSA(Red Hat OpenShift Service)をデプロイしてみる
# はじめに
OpenShiftのマネージドサービスであるROSA(Red Hat OpenShift Service on AWS)をデプロイするにあたり、他のAWSリソースと同様にTerraformを使ってIaC化できると嬉しいなーと思い調べたところ、Custom Providerとして[terraform-provider-ocm](https://github.com/openshift-online/terraform-provider-ocm)が公開されていたので、こちらを使ってROSAをデプロイしてみようと思います。:::note warn
注意
* [リポジトリのREADME](https://github.com/openshift-online/terraform-provider-ocm)にも記載がありますが、`terraform-provider-ocm`は現在 0.1 であり、機能は完全ではなく、下位互換性の保証はないことをご理解のうえ利用ください。
:::# 前提条件
* MacOS
* 各種CLIをインストール済み
* aws
*
SQS(FIFO) – Lambda構成の備忘録
# SQS(FIFO) – Lambda構成の備忘録
AWS歴5-6年なのにSQSを一度も触ったことがなく。。。
AssociateやPro資格は全て取得したので、多少のドキュメントレベルの知識ならあると思うんですが。
触る経験がないことが心残りでした。そんな中、やっとSQSのキュートリガーを使ったLambdaの構成を検証する機会が舞い降りたので!
自分の備忘録がてらにメモを残します。## 構成
![screenshot.78.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/236355/eaf3b382-52b8-ef0a-a5cf-ff65b38ccffa.jpeg)
## CFnコード(yaml)
### IAM Role
“`yaml
AWSTemplateFormatVersion: ‘2010-09-09’
Description: [TEST] IAM Role for Lambda.
Parameters:
RoleName:
Type: String
devcontainer を利用して Java(Amazon Corretto) + Localstack の開発環境をつくってみた
devcontainer の Java の事前定義済みコンテナ構成では、Microsoft Build of OpenJDK が利用されています。
Amazon Corretto と Localstack を利用したかったので、devcontainer の設定を変えて開発環境をつくってみました。
動作確認としては Amazon SQS を Localstack 上に構成して、送受信を行いました。
## 前提とする環境
– WSL2 および Docker がインストール済み
– [WSL2 + Docker で作る Docker 環境](https://qiita.com/ichi-ken/items/5a04a732524c72ff809a)## 動作確認用プロジェクトの作成
[Spring Initializr](https://start.spring.io/)を利用してプロジェクトを作成します。
画面からも作成することができますが、今回は curl から作成しました(パラメータは`curl https://start.spring.io`から確認することができ
AWS Lambda + Translate で翻訳機能使ってみた! サーバレス編No.1
*この記事はawsハンズオンビギナーズをやってみて復習として作成しています
https://pages.awscloud.com/JAPAN-event-OE-Hands-on-for-Beginners-Serverless-1-2022-reg-event.html?trk=aws_introduction_page
今回は、Lambdaをテスト実行してその結果を英訳できるところまでをやります。
## 1 Lambda関数の作成
以下の画面から「関数の作成」ボタンをクリックします。
![スクリーンショット 2022-11-20 15.46.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1686037/a3aec48b-ffb2-c6ec-24fb-e142114865ae.png)
~設定項目~
1,任意の関数名を入力
2,ランタイムの設定(今回はpython3.7にしました)
3,アーキテクチャは「x86_64」を選択![スクリーンショット 2022-11-20 16.00
node で AWS Lambda Layers 使ってる奴は今すぐ作り直せ
# TL; DR
– AWS Lambda Layers の内側で AWS SDK を require してると死ぬので Lambda Layer を使ってはいけない。
# AWS Lambda で nodejs 18 のサポートが始まりました
これによって `Runtime.NODEJS_16_X` から `Runtime.NODEJS_18_X` にできるのですが `Runtime.NODEJS_18_X` からは `AWS SDK for JavaScript v2` が実行環境上に存在しなくなり `AWS SDK for JavaScript v3` のみが実行環境上に存在します。
そのため Lambda Layer で `AWS SDK for JavaScript v2` を require する手段がなくなるので死にます。
これなら大人しく `AWS Lambda` ごとに esbuild などでくっつけていた方がまだマシでした。
少なくとも nodejs で Lambda Layer を利用する必要は全くなく、下手に利用すると AWS 側の都合で悲惨なことに
AWS認定のバッジ連携ができなくなっていたのを何とかした話
# はじめに
AWS認定は、Credlyというサイトに情報連携する事で、デジタルバッジが獲得できます。
https://www.credly.com/
今回は、前回投稿の
https://qiita.com/Syoji_Yonemoto/items/882c8dada1a4bcaf2121
でも、軽く触れましたが、2022/08 に取得した、『SAP on AWS – Specialty』のデジタルバッジが発行されなくなっていたので、サポートに問い合わせて解決した、お話。
# 前提
![自動承認.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281768/2f559b6b-41bd-7c2c-7051-a12f16cbdd5b.jpeg)
![デジタルバッジ.JPG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/281768/d2143df7-cde9-4cd7-1b0e-e651ac1c3b19.jpeg)
【AWS】CloudWatchの料金体系を調べてみた
#### 今回の内容
今まで何度もAWSのCloudWatchを仕事&プライベートで触っていますが、CloudWatchって「なんかお金かかるなあ…」と思うことが多かったので、CloudWatchの料金について調べることにしました。
なお、自分の認識が誤っている可能性もあるので、必ず詳細は自分で確認をお願いします。
#### 参考
– [Amazon CloudWatchの料金](https://aws.amazon.com/jp/cloudwatch/pricing/)
– [AWS Pricing Calculator](https://calculator.aws/#/)
– AWSの各サービスの課金額を計算できる公式サイト#### 扱うサービス
CloudWatchにはいろいろサービスがありますが、今回は以下のサービスのみ対象にします– メトリクス
– ダッシュボード
– アラーム
– ログ
– イベント#### 前提
– 金額は全て月額です。
– 1ドル140円と
開発環境で開発したWordPressテーマをGitHubからPullして本番環境にリリース 🙂
前回の記事では、開発したものをGitにどんどんコミット、GitHubのリモートリポジトリにプッシュしておりました。
今日は、ついにテーマが完成したので、リモートリポジトリから本番サーバにPullして、無事本番サーバへのリリースを終えました。初めて自分で自分の開発環境で開発したものをリリースして嬉しいホクホクの気持ちを残すために書きます:relaxed: あ、ちがう、、、。作業の記録のために!書きます。
# 1.本番サーバにてgit init
git initし、.gitファイルを作成しました。ここで迷ったのが、git initする場所。
ちょっとよく仕組みが分かっていないままで申し訳ない(誰に?自分に)のですが、pullする側と、pushする側、は、同じ場所に.gitファイルがあったほうがいいかなと思ったので、開発環境で作った場所と同じ場所に.gitファイルをつくりました。# 2. 本番サーバにてgitの設定
初期設定です(そのサーバでもともとしてあればしなくてOKなはず)
~~~
git config –global user.name “your_user_name”
amplify push と戦う2
# 症状の確認方法
amplify pushで出てくるメッセージではあんまり役に立たないので以下の方法で確認するamplify>アプリ>Backend environments>環境のアクション>詳細を表示>最新のデプロイアクティビティ>CloudFormation
イベントタグを選択する
(状況の理由に「User Initiated」があるのでそれが、push開始っぽい)# 症状1
“`
Resource handler returned message: “1 validation error detected: Value ‘[xxxxxxxArn]’ at ‘layers’ failed to satisfy constraint: Member must satisfy constraint: [Member must have length less than or equal to 140, Member must have length greater than or equal to 1, Member must satisfy regular exp
AWS S3に保存してあるファイルをPYTHONで直接読みこむ方法
s3からファイルに書き込まない、ダウンロードしないで直接読み込んで何かする
# CSVの場合
– utf-8
– csv.readerを使う“`py
import csv
import ioimport boto3
s3_client = boto3.client(“s3″)
csv_s3_object = s3_client.get_object(Bucket=”bucket name”, Key=”key~csvのパス~”)
with io.TextIOWrapper(
io.BytesIO(csv_s3_object[“Body”].read()), encoding=”utf-8″
) as csv_file_io:
reader = csv.reader(csv_file_io, delimiter=”,”)
for record in reader:
print(record[0], record[1])
“`# jpgの場合
– Image.openする“`py
import os
from
AWSの無料期間が終了するのでEC2からlambdaに移行した
## EC2の無料期間が終了してしまう(まずい)
AWSのEC2を使って、アニメの配信通知をつぶやく[Twitterボット]()を動かしているのですが、私のアカウントのAWS無料期間が2022年12月で終わってしまうため、その後は毎月約3000円の料金が発生してしまいます(もったいない!)。
費用圧縮のためにLambdaに移行しようと作業していた所、つまづいた箇所がいくつかありました。
同じようなことで困っている方の参考になればと思います。### lambda(ラムダ)で出来ること
> Lambda は必要に応じて関数を実行し、1 日あたり数個から 1 秒あたり数千個のリクエストまで自動的にスケーリングします。課金は実際に消費したコンピューティング時間に対してのみ発生します。コードが実行されていない場合、料金は発生しません。引用元:[Amazon](https://docs.aws.amazon.com/ja_jp/lambda/latest/dg/welcome.html)
## 1) フォルダごと圧縮しても動かない
lambdaでは、プログラムを「lambda_funct
Redshift Serverless の監査ログについて
Redshift Serverless は監査ログ取得をオンにすることで、CloudWatch Logs に監査ログを出力することが可能です。
## 監査ログの種類
監査ログとして取得可能なのは、以下の 3 種類です。
|監査ログの種類|説明|
|:–|:–|
|接続ログ|認証試行、接続、切断をログに記録します。|
|ユーザーログ|データベースのユーザー定義の変更に関する情報をログに記録します。|
|ユーザーアクティビティログ|各クエリをデータベースで実行される前にログに記録します。ユーザーアクティビティログについては、監査ログ設定の他、データベースパラメータ `enable_user_activity_logging` も有効にする必要がありますが、Redshift Serverless 名前空間作成時、もしくは既存の名前空間の変更でユーザーアクティビティログ有効化時に自動で有効化されます。|各種ログの詳細は以下ドキュメントを参照ください。
https://docs.aws.amazon.com/ja_jp/redshift/latest/mgmt/serverles