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

AWS関連のことを調べてみた2021年12月23日
目次

2022年版 未経験でAWS SAAを受験する前に確認して欲しいこと

#はじめに
久々の投稿になります。
AWSソリューションアーキテクトアソシエイト(以下AWS SAAとする)を受験する前にこれだけを知っておけば対策ができて1発合格したかもしれないと後悔をしました。今後受験される方は是非参考にしてほしいです。

#投稿者の当時のレベル
経験年数 4か月
EC2の構築
RDSの構築
Route53のDNS設定
セキュリティグループのポート番号の役割
以上です。

#当時の試験対策
AWS Cloud Tech(有料会員)400問のみ
模試は90%以上を維持
無論、答えを丸暗記ではなく解説をしっかり読んで何故それが答えなのかを
答えれるレベルまで模試を繰り返し対策をしました。

`ここからが本題です。3つ大きく分けて説明します。`

#その1 AWS SAAの本当の試験範囲を知っているますか?
下記のURLを必ず見て下さい。試験範囲が公開されています
[公式より抜粋 AWS SAA試験範囲](https://d1.awsstatic.com/ja_JP/training-and-certification/docs-sa-assoc/AWS

元記事を表示

CloudFrontの署名付きURLを使ってS3にファイルをアップロードする

# 概要
CloudFrontの署名付きURLを使ってS3にアップロードしたファイルをブラウザから直接ダウンロードする方法は調べるといくつか出てくるが、アップロードの情報が少なかったので備忘録として書いておく。

今回はS3のpresigned-urlを使ってファイルアップロードするのではなくCloudFront経由でファイルアップロードする必要があった。
BackendをGolangで作っており、署名付きURL実装もGolangで実装していたため、SDKのリファレンスを眺めていたが関連しそうなものがなかった。

# 結論
CloudFrontに署名付きURLの設定を行うと自動的にS3のバケットポリシーを追加してくれるが、そこにActionを追加してから生成した署名付きURLにputでリクエストするだけで良かった。

“`json
{
“Version”: “2008-10-17”,
“Id”: “PolicyForCloudFrontPrivateContent”,
“Statement”: [
{
“Sid”: “1

元記事を表示

Step Functionsの実行分をすべて自動で再実行するには

この記事は、ケーシーエスキャロット [Advent Calendar 2021](https://qiita.com/advent-calendar/2021/kcscarrot)の24日目の記事です。:champagne:

# Step Functionsとは
本当にざっくり紹介しますと、
各処理(Lambda関数/Fargateタスク/その他AWSサービス等々)を
指定した順番通りに、
処理実行フローを作成できるAWSのサービス(サーバーレス)です。

処理結果での分岐や他にも色々フローに追加できます。

処理の流れも分かりやすく可視化してくれて、
どのイベントまで処理が走っているのか?も確認出来ます。
[AWS公式サイト](https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/welcome.html)

# 定義の例

本当に基礎的な例ですが、例えば、

* 開始
* Lambda関数(test1) 実効
* parameterに渡されるid毎に処理実行
* Lambda関数(test1)の結果判定

元記事を表示

AWS DataSyncでS3から別AWSアカウントのEFSへデータ転送する

# はじめに
このドキュメントでは、アカウントAに作成されたS3にあるデータを
アカウントBにあるEFSへDataSyncを使ってデータ同期する方法をterraformのコードとともに記載します。

同一アカウント内での資料はたくさん見かけましたが
クロスアカウントでS3 to EFSな資料を見かけなかったので備忘録として残しておきます。

以下の4ステップです。
1. 転送元AWSアカウントでS3を作成する
2. 転送先AWSアカウントでEFSとDataSync用のRoleを作成する
3. 転送元AWSアカウントで作ったS3にクロスアカウントの設定を適用する
4. 転送先AWSアカウントでEFSのLocationおよびTaskを作成する

なお、ソースとなる環境がNFSやSMBのみな場合はDataSync Agentを使う必要があります。
今回はせっかくなのでエージェントレスな方式が取れないか、を検証した結果になります。

# モチベーション
以下のような状態でした。

* 社内環境で稼働しているNFSサーバをクラウドへ移行したい
* 移行先としてEFSに目をつけた
* ただし

元記事を表示

Apache Kafka(MSK)の設定を変更する簡単な方法

# 目的

MSKを使うとkafkaサーバを立ち上げるところまでは簡単なのですが、
具体的な設定変更の手順が不明瞭だったためまとめです。

## Dockerコンテナの起動

設定変更用のクライアントを利用するために、サーバ用のコンテナが必要になります。
redisと同様ですが分かりにくさがあります。

“`bash
docker run -it –rm bitnami/kafka bash
“`

以下、コンテナ内の操作です。

## 設定ファイルの作成

`–command-config` のフォーマットが設定ファイル名のため作成します。
接続にSSLを利用する際の設定例です。

“`bash
echo ‘security.protocol=SSL’ > /tmp/kfk
“`

## 利用例

[公式ドキュメント](https://kafka.apache.org/quickstart) 通りにコマンドを流す準備ができました。
よく使うコマンドの利用例です。

ヘルプの表示

“`bash
kafka-topics.sh \
–command-config /

元記事を表示

JAWSUG_CLI専門支部 AWS Security Token Service (STS)ハンズオンのまとめ

# はじめに

12/20の昼と夜にJAWSUG_CLI専門支部で開催された、AWS Security Token Service (AWS STS)のハンズオンをやってみました。STSの主な機能とそのコマンドについて書こうと思います。

### イベントページ

https://jawsug-cli.connpass.com/event/230425/

https://jawsug-cli.connpass.com/event/233827/

# AWS Security Token Service (AWS STS) とは

– AWS リソースへのアクセスをコントロールできる一時的セキュリティ認証情報を持つ、信頼されたユーザーを作成および提供する。
– リスクになりうるIAMユーザーを発行しないようにするため、使用期限の短いセキュリティ認証。

# STSの主な機能

## 認証情報取得

### get-access-key-info

事前にIAMユーザのアクセスキーIDを取得して、変数${IAM_ACCESS_KEY_ID}に格納します。
`aws sts get-

元記事を表示

AWSの社内研修歴5年の講師が、研修環境準備のノウハウを公開します

# 初めに
この記事は、[NTTテクノクロス Advent Calendar 2021](https://qiita.com/advent-calendar/2021/ntt-tx) の23日目です。

NTT テクノクロスの渡邉です。
普段はAWSやコンテナ関連の業務に携わっております。ときおり[社外向けブログ](https://www.ntt-tx.co.jp/column/aws_gameday_online_apn_vol2/211122/)執筆や、ソフト道場のAWS分野(IaaS, PaaS)の講師なども担当しております。
今年は新しくECS、EKSを中心としたコンテナ研修を立ち上げ、12/15に無事開催し、**この原稿を落としそうになっています。**

という訳で当初の予定を変更し、今回は社内研修の準備のノウハウを公開します。

## 準備したい環境
(ざっくりした)絵と共に、研修実施に必要な環境構成を一緒に考えてみましょう。
![qiita_sekkei.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.

元記事を表示

スキップマッチングを使用して Auto Scaling グループを更新する

# はじめに

DX技術本部の `yu-yama` です。

https://aws.amazon.com/jp/about-aws/whats-new/2021/08/amazon-ec2-auto-scaling-enhances-instance-refresh-configuration-checks-launch-template-validation-amazon-eventbridge-notifications/

の記事の

> **インスタンスに目的の設定が既に存在する場合、そのインスタンスの置換をインスタンス更新で回避できるようになりました。**この機能を使用すると、目的の設定に一致する設定のインスタンスをスキップすることによって、迅速なロールフォワードやロールバックが可能になります。この追加のインスタンス更新コントロールは、インスタンス更新が失敗した場合や完了前にキャンセルされた場合に ASG を更新する際に便利です。この機能は、EC2 起動テンプレートを使用して目的のインスタンス構成設定を定義します。

の部分の解説をします。

## これまでは

以下の構成

元記事を表示

nuxtアプリケーションをcircleCIを使ってS3へデプロイする方法。

# はじめに
この記事は[ペライチアドベントカレンダーの23日目](https://qiita.com/advent-calendar/2021/peraichi)の記事です。

20日目の記事に書きましたインフラ構成でnuxtアプリケーションの環境を構築しており、今回はその環境へアプリケーションをデプロイする設定のお話です。

# 前提
– PRがmainブランチにマージされたら本番環境へ自動でデプロイされるようにしたい。
– デプロイ時にテストを回してすべて合格すること担保したい。
– ciツールはcircleCIを利用する。
– テスト用環境には開発者が指定のブランチをデプロイできるようにしたい。

# やったこと
– circleCIの設定ファイル作成
– dotenvの設定
– circleCIへ環境変数の登録
– ローカル環境からのデプロイ
– 本番への自動デプロイ

# circleCIの設定ファイル作成
今回このような設定ファイルとしました。

“`config.yml
version: 2

defaults: &defaults
working_direc

元記事を表示

AWS CLIで Web サイトを構築、管理、運用する(23日目)

23 日目!
今日は、AWS Lambda 関数を作ってみます。
もちろん、AWS CLIで。

# 23日目の要約
サーバレスコンピューティング!

# AWS CLI の準備
このあたりをみて、好きなバージョンとお使いのOSにあった環境設定をしてくださいね。
なんなら、 AWS CloudShell で実行するのも楽でよいと思います。
この記事シリーズは、AWS CloudShell で実行し、実行例を載せています。

バージョン1
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv1.html

バージョン2
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/install-cliv2.html

# 概要
AWS Lambda 関数を作成します

# さあ、やってみよう!
## AWS Lambda 関数用の IAM ロールを作る
Lambda 関数がログを出力するために使う IAM ロールを作っていきます。
まずは “`iam cr

元記事を表示

サブスクリプションフィルターで、あるLambdaの出力したログを、別のLambdaに渡す

[フューチャー Advent Calendar 2021](https://qiita.com/advent-calendar/2021/future)の23日目の記事です。

昨日は、[@hayao0727](https://qiita.com/hayao0727) さんによる
[AxumでGoのチュートリアル「Writing Web Application」をやってみた](https://qiita.com/hayao0727/items/d05b4c3c0b05d219c3bc) でした。

私自身、今年のフューチャーのアドカレ枠では既に2本投稿しているのですが、ラストに向けてガンバっていきます。

投稿した2本はこちら

– [AWS KMSとOpenSSLでエンベロープ暗号化](https://qiita.com/RuyPKG/items/21d397516c2df2f0c45a)
– [【入門】QuickSight × S3 でデータ可視化](https://qiita.com/RuyPKG/items/c32282fe57c33346a534)

# はじめに
みなさんは

元記事を表示

【AWS初学者向け】AWS Amplify Stadioをさわってみた

#はじめに
[システムアイ Advent Calendar 2021](https://qiita.com/advent-calendar/2021/systemi) 23日目の記事です。

2021年12月2日に発表されたAWSの新サービス『AWS Amplify Studio』(以降Amplify Studio)がテック系メディアを中心に話題になっていますね。
従来の『Amplify Admin UI』の後継ということですが特徴としては、

+ フルスタックのウェブアプリとモバイルアプリを構築するためのビジュアル開発環境
+ ブラウザのWebデザインツール[『Figma』](https://www.figma.com/)のデザインからReactコードを生成

などがあるようです。

「FigmaからReactコード生成」できる点が気になる、とAWSもReactも経験ほぼゼロな私が公式チュートリアルを参考に『Amplify Studio』をさわってみました。

なお、『Amplify Studio』については他のQiita Advent Calendarでも複数取り上げられていますが

元記事を表示

AWS CloudShell 上の vi エディタでインデントの自動挿入なしでペーストする方法

# はじめに

みなさん、こんにちは。AWS CloudShell を使っているとファイルにペーストした際、勝手にインデントが入って「あー!」っとなったことの一度くらいはあるのではないでしょうか。今回はそんなときの解決方法を紹介していきたいと思います。

![01-auto-indent.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613908/a054bed0-2fbe-7389-605a-934fc1d5b572.gif)

# インデントの自動挿入なしでペーストする方法

いくつか方法はありますが、解の1つは「ペーストモードを使う」です。編集モードへ入る前に `:set paste` もしくは `:set paste!` を実行しましょう。ペーストモードにすると出力例のようにインデントが追加されずに期待通りの動きになりますね。

![02-paste-mode.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/613

元記事を表示

Glueでファイルをまとめる方法について

# 背景・目的
– S3上に100KB程度のファイルが、数千程度あった。このファイルをAthenaで参照したいが[Amazon Athena のパフォーマンスチューニング Tips トップ 10(4. ファイルサイズを最適化する)](https://aws.amazon.com/jp/blogs/news/top-10-performance-tuning-tips-for-amazon-athena/)(※1)から逸脱していた。
– 本ページでは、Glueで128MB以上のファイルを作成する(まとめる)方法を検証する。

※1
> データ読み込みが並列で行われ、データブロックがシーケンシャルに読み込まれる場合に、クエリが効率的に実行されます。分割可能なファイルフォーマットであるようにしておくことで、ファイルの大きさに関わらず並列処理が行われます。

> ただしファイルサイズが非常に小さい場合、特に 128MB 未満の場合には、実行エンジンは S3ファイルのオープン、ディレクトリのリスト表示、オブジェクトメタデータの取得、データ転送のセットアップ、ファイルヘッダーの読み込み、圧縮ディ

元記事を表示

AWS IoTの設定方法 with Spresense LTE

#概要

世の中では、IoT(Internet of Things)の言葉が良く見られているが、サーバーの代表例であるAWSと通信デバイス機器(ここではSpresenseを利用)との接続を試してみた。Spresenseのlte_awsiotサンプルのユーザーガイドにもAWSの具体的な設定方法の記載もなく、AWSのドキュメントは初めて使うものには少し要点がわかりにくかったので、テスト接続できるまでの内容を整理してまとめてみた。

#内容

####AWSサーバー設定

1. AWSアカウント作成(ルートアカウント)
2. AWSIoTの設定
– 証明書
– ポリシー設定
– モノ(Thing)設定

####Spresense lte_awsiotサンプルの準備

1. コードの準備
2. Configの設定
– Sim情報の設定
– AWSIoT情報の設定
3. コードのビルド
4. 実行

####AWSサーバーでのグラフ確認

1.モニタリングの表示確認

##環境

####通信デバイス

– [Spresenseメインボード](https://www.switch-

元記事を表示

Raspberry PiとAWS IoT Eventsを連携させてデバイスの状態エラーをメール通知する

![Screen Shot 2021-12-22 at 0.51.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/198011/2e8e900b-5595-0c93-c38c-13b5cc7fd084.png)

# はじめに

[前回](https://qiita.com/dsonoda/items/1c29497e2c8088296e88)はエッジデバイス側のデータがクラウドに送信されるまでを確認した。
今回はクラウド側の構成を拡張し、エッジデバイス(Raspberry Pi)のイベントを検出して任意のアクション実行につなげるAWS IoT Eventsとの連携を試してみる。

# 目指すゴール

![002_GGV2_and_Rpi.drawio (1).png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/198011/2f7c2ad9-db65-b1dd-71d4-703fd55bde15.png)

エッジデバイ

元記事を表示

AWS上にTanzu Community Editionでk8sクラスタを構築してみた

## 概要

先日、VMware製品のTanzuについて資料を眺めていました。[Tanzu公式ドキュメント](https://tanzu.vmware.com/jp/tanzu)

実機で使用感を確かめたくなり調べていたところ、Tanzuには`Tanzu Community Edition` と呼ばれる無償版が提供されており、本記事はこちらを使ってみた記録です。

個人環境にクラスタを建てるリソースがなく、今回はAWS上でTansuを建ててみて、使用感を確かめてました。(個人的には、VMware製品の知見がほぼないので、いずれはVSphere上にTanzuを建てる構成もやりたいと思っています。)

## やりたいこと

* AWS上で、Tanzu Community Editionでk8sクラスタを構築してみる
* AWS上で複数台クラスタを建て、マルチクラスタ構成の使用感を確かめてみる
* 複数クラスタを一括して管理する機能である`Tanzu Mission Control` は無償版がないため、使ってみたいが今回は実施しない

## 想定読者
* Tanzuの特長を、実機の挙動

元記事を表示

AssumeRoleを自分なりに理解する~「勇者」と「伝説の剣」と「妖精」の物語~

AssumeRole、繰り返し学習する度にゲシュタルト崩壊して分からなくなり、ふり出しに戻ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1723719/bb3f0fcc-f7b0-3dec-2643-75e097e9d655.png)

:::note info
「AssumeRoleなんもわからん」から「なんとなくわかった」になるのを目的としているため、正確さにかける表現がある場合があります。正しい情報はAWS公式ドキュメントをご参照ください。
:::
※[チバユキさんの伝説のブログ](https://dev.classmethod.jp/articles/iam-role-passrole-assumerole/)に多大な影響を受け、この記事を書いています。

#1.IAMポリシー3種類
まずIAMポリシーの種類をおさえる。
##1-1.ユーザーベースのポリシー
– 「IAMユーザ」「IAMグループ」「IAMロール」に関連づけることができるポリシー
– 別名「アイデンティテ

元記事を表示

AWS Auroraのwriterとreaderで一部パラメータに差異があったので調査してみた

# 概要
AWS Auroraのwriterとreaderでパラメータを確認したところ、差分があったので調査してみました。
RDSに直接入ってパラメータを確認した所、一部パラメータがreaderは「MyISAM」になっているので気になったというのが経緯です。

## writer

“`
+————————————–+——–+
| Variable_name | Value |
+————————————–+——–+
| default_storage_engine | InnoDB |
| default_tmp_storage_engine | InnoDB |
| disabled_storage_engines | |
| ignore_default_storage_engine_errors | OFF |
| i

元記事を表示

メモ:CodePipelineでDockerImageを作る

CI/CDツールはAWSのCodePipelineを軽く使った事があるので、一応備忘録として書いておく。
(jenkisは使った事がないが、別途見ておきたい)

# CodePipeline
基本的には

* コード管理であるgit (CodeCommitやGitHub)
* ビルド、テストを行う(CodeBuildもしくはJenkis。ECRにPushする)
* デプロイはCodeDeployでECSでリリースなど

のセットをpipelineで作成する。
起動トリガーはgitへのPushやS3へのファイルアップロード等が選択可能
途中で停止させて、ボタンを押さないと進まないようにすることも可能

# 設定方法

terraformで作成する場合を想定する。Formationでも大差はない、はず?
少し前のバージョンで書いたコードなので今のterraformで使う場合は修正が必要か。

まずはaws_codebuild_projectでビルドプロジェクトを作成する。
var.やlocal.は変数設定している箇所。
ECRやCodeCommitのリポジトリは既に存在しているという前提。

元記事を表示

OTHERカテゴリの最新記事