AWS関連のことを調べてみた2022年06月03日

AWS関連のことを調べてみた2022年06月03日

CloudCraftとは

## Cloudcraftとは

CloudCraftは、[CloudCraft Inc](https://www.cloudcraft.co/ “CloudCraft”) が提供しているダイアグラム作成(作図)製品です。

### CloudCraftの機能一覧
:::note info
ドラッグ&度ラップによる操作

 様々なオブジェクトをダイアグラム上へ配置し、組織図などを簡単に編集できる
:::

:::note info
テンプレート

 各種フローチャートなどのテンプレートを利用して、効率的に図を作成できる
:::

:::note info
ダッシュボード

 全ての図を一元管理するダッシュボードを提供し、チームで利用するパーツなどを共有フォルダで管理できる
:::

:::note info
ファイルのインポート・エクスポート

他の作図ツールから図形ファイルをインポートしたり、作成した図をPDF、画像、ベクター形式などのファイルとしてエクスポートしたりできる
:::

:::note info
変更履歴

 変更履歴を保存し、改訂前のバージョンに戻したり、参照した

元記事を表示

【AWS-CDK】CodePipelineでGithubにpush⇨ビルド⇨ECSにデプロイを自動化する

# はじめに
前回記事[「お名前.comで購入したドメインを使ってALBでECSにホストベースルーティングする」](https://qiita.com/theFirstPenguin/items/fb223859d6e7b31b192c)を拡張してデプロイパイプラインまで作ります。

# 全体図
![スクリーンショット 2022-06-03 10.30.12.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/572098/ca158b66-164d-a881-0b1a-cb49e046ba70.png)

# 前提
- お名前.comでドメイン(example.com)を購入済み
- Route53でexample.comのホストゾーンを作成し、そのNSレコードをお名前.comで設定
- ECRのプライベートリポジトリを作成後、アプリのイメージをpush済
- (今回追加)GithubのトークンなどをSecretManagerに保存済

https://blog.i-tale.jp/2020/04/13_

元記事を表示

AWS-CDK pipelinesでCloudFormation templateが一定のサイズを超えるとエラーになる

aws-cdkの以下issueで言及されている内容で、かなり前から話題になっているようです。

https://github.com/aws/aws-cdk/issues/12372

### 事象
CDKに機能追加をして、生成されるテンプレートが一定のサイズを超えると、以下のようなエラーが発生しました。
“`
Template format error: YAML not well-formed. (line 2528, column 49) (Service: AmazonCloudFormation; Status Code: 400; Error Code: ValidationError
“`
手元の環境では51KBまでは問題なく、それを超えるとエラーになるようでした。
エラーメッセージの`line`が指しているのはファイルの末端箇所で、そこが特段変わっているような感じはありません。
以下のコメントで言われている通りです。

https://github.com/aws/aws-cdk/issues/12372#issuecomment-797494427

### 環境

元記事を表示

【AWS】LaravelアプリをEC2デプロイ⑤【SNS / Chatbot編】

# 0. はじめに
大阪のLaravel初学者サウナーこと、kazumakishimoto([@kazuma_dev](https://twitter.com/kazuma_dev))です!
自動デプロイ(CodeDeploy)の開始と終了を`SNS / Chatbot`で`Slack通知`させる方法です。

## 0-1. 前回記事
– 【AWS】LaravelアプリをEC2デプロイ【まとめ編】

https://qiita.com/kazumakishimoto/items/e0e109fca443a4acd2a1

– 【AWS】LaravelアプリをEC2デプロイ①【CloudFormation / EC2 / RDS編】

https://qiita.com/kazumakishimoto/items/0859a5a365b226c1b43a

– 【AWS】LaravelアプリをEC2デプロイ②【Route53編】

https://qiita.com/kazumakishimoto/items/825f8c5f94d0160b2364

– 【AWS】Laravelアプリ

元記事を表示

【AWS】LaravelアプリをEC2デプロイ④【CircleCI / CodeDeploy編】

# 0. はじめに
大阪のLaravel初学者サウナーこと、kazumakishimoto([@kazuma_dev](https://twitter.com/kazuma_dev))です!
`CircleCI / CodeDeploy`の自動デプロイ方法です。

## 0-1. 前回記事
– 【AWS】LaravelアプリをEC2デプロイ【まとめ編】

https://qiita.com/kazumakishimoto/items/e0e109fca443a4acd2a1

– 【AWS】LaravelアプリをEC2デプロイ①【CloudFormation / EC2 / RDS編】

https://qiita.com/kazumakishimoto/items/0859a5a365b226c1b43a

– 【AWS】LaravelアプリをEC2デプロイ②【Route53編】

https://qiita.com/kazumakishimoto/items/825f8c5f94d0160b2364

– 【AWS】LaravelアプリをEC2デプロイ③【ACM / ELB編】

元記事を表示

【PostgreSQL】RDS (AWS) で 既存の DB を C ロケールで作り直す方法

# はじめに
AWS で RDS の DB を作成すると、デフォルトで作成できる DB の環境は、”lc_collate” と “lc_ctype” が C になってない。(GUI でポチポチ作成した場合)
その為、名前 (カナ) 列とかを昇順ソートすると思い通りのソートにならない!!
C ロケール DB の作成方法と、すでにデータがある場合のデータ移行コマンド (ダンプとリストア) を記載します。
※既存の DB のロケールを C にしたいと思いますが、できないようです……

#### 下記の環境を想定しています
“`
– RDS(AWS)
– PostgreSQL 13
– ssh 接続で RDS を操作
“`

# もくじ
– ロケール状態確認
– PostgreSQL インストール
– RDS 接続確認
– ダンプ
– DB 作成
– リストア
– リネーム

## ロケール状態確認
現在の状態を確認するコマンド
うちの DB に限って…と思ったときに a5mk2 とかで実行
lc_ctype や lc_collate は何になっていますか…
“`
SELECT nam

元記事を表示

lambda_runtimeのレスポンスオブジェクト作成に使えるクレートを作った話

ServerlessFramework のプラグインである [serverless-rust](https://www.serverless.com/plugins/serverless-rust) を使用して、API GatewayとAWS Lambdaを使ったAPIを作成しようとしていた。

Rustでラムダ関数を作成するのに便利なクレートはないだろうか?と調べたところ、[lambda_runtime](https://crates.io/crates/lambda_runtime) なるものを見つけた。
おおこれは便利だ、とサンプルコードをそのまま使用してみた。何かあれば修正してデプロイすれば良いし、無料枠を潰すほど実行することもないだろう。できればデプロイにかかる時間を有料枠で買えればよかったが…

[紆余曲折](https://qiita.com/mwataame/items/5247a1deb98e68561413)あったものの、serverlessコマンドで無事APIを作成することはできたようだ。
試しに実行してみよう。

“`
$ curl https://xx

元記事を表示

今さらRustランタイムを使用してAWS Lambdaで関数を作成してみたのだが…

### はじめに

– 基本的にAWSのラムダはRuby2.7ランタイムでServerlessFrameworkを用いてデプロイしている。
– Rust言語でラムダ関数をデプロイできると聞いていたものの試したことはなく、思い出したのでせっかうだから試してみたら、意外と躓いてしまった。
– 結果的に大した話ではなかったのだが、同じ沼にはまってしまっている人がいないとも限らないので残しておく。

### 実行環境

– Ubuntu20.04 on WSL2
– rustup 1.24.3 (ce5817a94 2021-05-31)
– cargo 1.56.0 (4ed5d137b 2021-10-04)
– serverless@3.4.0
– serverless-rust@0.3.8

# 普通にラムダ関数を作る

### コードの用意

AWSがRust向けのSDKを提供してくれているので、いつもお世話になっているrusotoではなく、lambda_runtimeというクレートを使用する。

“`toml:Cargo.toml
[package]
name = “lambda

元記事を表示

S3にフロントエンド環境を構築してみた

[こちらの記事](https://qiita.com/tToyoshima/items/dbb0a4c3540226c318cc)の続きです。

今回はフロントエンド環境の実行環境を構築し、セキュリティ設定をします。

## 構成のおさらい(バックエンド含む)
### EC2
Webアプリのバックエンドを実行します。
今回はJavaのjarファイルを常時実行し、フロント側から実行されたAPIを処理します。
RDSに構築されたデータベースとデータをやりとりします。
今回はSpringBootで実装しています。
なお、HTTPS接続したいために、SSLを有効にしています。
その際、今回はテスト環境のため自己署名証明書を使っています。

### RDS
Webアプリのデータベースを担います。
今回はPostgreSQLです。

### S3
Webアプリのフロントエンドを配置します。
静的ウェブサイトとして設定し、エンドポイントにアクセスすることでフロント側の画面を表示します。
今回はVue.jsを用いて画面を作成します。

## S3の実行環境構築
### アップロード
今回はVue.js

元記事を表示

ECSでタスクが起動しない時にコンテナの中身を見たい!

## 概要
FargateでRailsアプリをデプロイしたのですが、ローカルでは発生しないエラーが表示されてしまう!
コンテナの中身が見たいけど、タスクが立ち上がれないから見れない!!
そんな時に実施した方法です。

## やり方
タスク定義を作成する際にエントリポイントとコマンドに下記の様に設定する。
– エントリポイント
– “` [“sh”,”-c”] “`
– コマンド
– “` [“df -h && while true; do echo \\\”RUNNING\\\”; done”] “`

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/155615/48851dfa-cfba-46e1-49e0-553efbf9f227.png)

タスクが起動したらECS Execでコンテナ内に入って、お好きにコマンドを実行してください!

## 説明
コマンド内で無限ループを行っているだけです。

## 参考
https://docs.aws.amazon.c

元記事を表示

AmazonLexを使ってWebチャットボットを作ってみた

Webサイトにチャットボットを設置したいと思い、試しにAmazonLexを使って構築してみました。

:::note
AWSアカウントはすでに持っている想定で記述しています。
:::

# 手順
1. CloudFormationを立ち上げる
1. 必要な設定をしてセットアップを実行
1. 試しに使ってみる
1. スニペットを自身のWebサイトに設置
1. AmazonLexの設定を変更する

# CloudFormationを立ち上げる
GitHubにCloudFormationを使って必要なサービスをインストールする方法が載っていましたのでこちらを利用しました。

https://github.com/aws-samples/aws-lex-web-ui

GitHubページにある以下の一覧からTokyoを選択するとCloudFormationが立ち上がります。

![スクリーンショット 2022-06-02 16.53.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1926542/9b55b

元記事を表示

Cloud Formationで環境構築してStep FunctionsからAthenaを動かすときにはまった話

# はじめに
AWSで環境構築するときCloud Formationを使うことは多いかと思います。
今回AthenaをStep Functionsから動かそうとした際にはまった点があるため備忘録代わりに記事にしておきます。

# 構成
雑にですが以下のようなもの
* Step Function
* Athena

# はまったポイント
Athenaを動かす際にWorkGroupが必要となります。
自前で用意しなければ初期状態で存在しているprimaryがあり使われるようになっているかと思います。
今回は自前で用意したWorkGroupを使おうとしたところ、取り込み自体は出来るがクエリ実行時にエラーになるという状況に陥りました。

# 何が悪かったか
以下は問題なかったところ
* WorkGroupの作成の記載は問題なさそう(公式のドキュメントを見ても問題なさそう)
* Step Functionsでのステートマシンには権限は問題なく付いていそう

問題のあったところ
* 実際の挙動を書いていたステート部分でクエリ実行を書いていたタスク内にWorkGroupを指定できていなかったため

元記事を表示

Baseline Environment on AWS(BLEA)ざっくり説明

# CDKざっくり説明
プログラム言語でAWSのリソースを定義出来ます。
JavaScript、TypeScript、Python、Java、C#、Go(開発者プレビュー)がサポートされています。
コードをデプロイするとCloudFormation(CFn)のスタックが作成されAWSリソースが作成されます。
CFnで書いくのと比べて可読性が高く、コード量を減らすことが出来ます。

# BLEAざっくり説明

https://aws.amazon.com/jp/blogs/news/announcing-baseline-environment-on-aws/

AWSのセキュリティのベストプラクティスを実装したテンプレートです。CDKで実装されています。
ガバナンスベース(共通設定)とゲストシステム(システム固有の設定)の2層になっています。
提供されているガバナンスベースのテンプレートをデプロイすると下記リソースが自動的に作成されます。また標準的なゲストシステムのサンプルも提供されています。
環境によるカスタマイズは必要ですが、標準的なセキュリティ設定適用の自動化が可能になります。

元記事を表示

LambdaでWorkSpacesの情報を取得する

# 前提
* 今回取得するのはWorkSpacesのコンピュータ名とユーザ名の一覧のみ
* 結果はcsvファイルに保存
* Lambda Python3.9で実行

# 処理
“`
response = client.describe_workspaces()
ALL_INFO = response[‘Workspaces’]
file = “/tmp/LIST.csv”

with open(file, “w”, newline=”,encoding=”utf-8″) as f:
writer = csv.writer(f)
for INFO in ALL_INFO:
COMPUTERNAME = INFO[“ComputerName”]
USER_NAME = INFO[“UserName”]
REQUIRED_INFORMATION = []
REQUIRED_INFORMATION.append(COMPUTERNA

元記事を表示

【AWS】AWS ソリューションアーキテクトアソシエイト(SAA) 合格までの勉強方法と振り返り

# はじめに
AWSの資格である『AWSソリューションアーキテクトアソシエイト(AWS SAA)』試験に合格したため、勉強方法などを簡単に書きます。

# まずやるべきこと

勉強方法などを考える前にまずやるべきは、受験日を決めることです。
目標達成までの期限を決めることで、勉強の計画が立てやすくなります。
試験日は何回か変更することができるので、
まずは試験日を決めてそれからいつまでに何を勉強するかを決めると良いと思います。

# どんな教材で勉強したか? (50~60時間くらい)
①[【2022年版】これだけでOK! AWS 認定ソリューションアーキテクト – アソシエイト試験突破講座](https://www.udemy.com/course/aws-associate/)
 →85%くらいまで進めて、テスト用の勉強 (②以降) に切り替えました。

②[AWS認定ソリューションアーキテクト アソシエイト試験:短期突破講座(300問の演習問題)](https://www.udemy.com/course/aws-uoyc/)
 →本番レベルの模試1650問を分析し、必要最低限の

元記事を表示

AWS Cloud9でPython環境構築 ※編集中

本記事はAWS Cloud9の学習を始めた筆者が、備忘録として残したい内容を記述します。

■AWSアカウント作成
リンクよりAWSアカウント作成を行う。
https://aws.amazon.com/jp/register-flow/

■Cloud9環境作成
AWSマネジメントコンソールにサインインし、画面上部より「cloud9」を検索する。

「Create environment」をクリック

設定を確認し「Create environment」をクリック

■Pythonをアップデート
既定のバージョンが古いのでアップデートを実施。
既定のバージョン:Python 3.7.10

アップデートは以下の記事を参考にした。
(https://ponsuke-tarou.hatenablog.com/entry/2021/02/22/174431)

(Pythonのバージョンを3.10.4にアップデートは調査中)

■Python実行
・コマンドラインから実行
 1.コマンドラインに「python」を打ち込みEnter
 2.「>>>」が表示されたらOK
 3.試しに「pr

元記事を表示

Route53

追記予定

元記事を表示

AWS CDKをDenoで動かす3 デプロイ編

https://qiita.com/rinfield/items/49b89005678da188c214

https://qiita.com/rinfield/items/5496e7d1884a9d4593da

の続きでDenoでCDKを動かしていきます

## 要約
– CDKコードがDenoだったとしてもちゃんとAWSにデプロイできる(CDK CLIがnodeだけど)

## synth以外はどうなんだ?

これまで`cdk synth`は試していましたが実際のAWS環境に対する変更はしていませんでした。
`cdk.out`がキチンと出力されている上、CDK CLIは依然nodeで動作しているので動くかと予想していますが念のため確認します。

前提として`aws configure`を済ませておきます。

デプロイするコードはこちら

https://github.com/rinfield/cdk-deno/tree/192182bffe063e5cb7a8d78cb97f533291b2319f

### cdk bootstrap
“`console
$ cdk b

元記事を表示

【AWS】関数URLを利用して外部からLambda関数を呼び出す

# 1.はじめに
どうも、ARIの名古屋支社に勤務している愛知県民です♪
(/・ω・)/

2022年4月6日にLambda関数に「関数URL」という機能が追加されたようです。

https://aws.amazon.com/jp/about-aws/whats-new/2022/04/aws-lambda-function-urls-built-in-https-endpoints/

一言でいうと、API Gatewayの設定なしで外部からLambda関数を呼べるみたいです!
そこで今回は**Lambda関数の関数URLの使い方を説明したいと思います♪**
AWSについて勉強中の方の参考になれば幸いです。
(*^^)v

# 2.用語の説明
## 2.1.Lambdaとは
LambdaとはAWSのサービスの1つで、コードを書くだけで即実行ができるサービスのことです。
サーバの設定等が不要なため、便利です。

ただし、15分以上続けて実行することはできないため、
複雑なアプリケーションの場合はEC2やECRでの実行が必要となります。

# 3.前提条件
* Lambda関数が作成済で

元記事を表示

EC2とRDSでバックエンド環境を構築してみた

[こちらの記事](https://qiita.com/t-tysm/items/2fe4d878d8cfeecd9107)の続きです。

今回はバックエンド環境のセキュリティグループの設定および、
EC2、RDSそれぞれの実行環境を構築します。

## 構成(フロントエンド含む)
### EC2
Webアプリのバックエンドを実行します。
今回はJavaのjarファイルを常時実行し、フロント側から実行されたAPIを処理します。
RDSに構築されたデータベースとデータをやりとりします。
今回はSpringBootで実装しています。
なお、HTTPS接続したいために、SSLを有効にしています。
その際、今回はテスト環境のため自己署名証明書を使っています。

### RDS
Webアプリのデータベースを担います。
今回はPostgreSQLです。

### S3
Webアプリのフロントエンドを配置します。
静的ウェブサイトとして設定し、エンドポイントにアクセスすることでフロント側の画面を表示します。
今回はVue.jsを用いて画面を作成します。

## セキュリティグループの設定
### EC

元記事を表示

OTHERカテゴリの最新記事