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

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

Databricksにおける顧客管理VPC(実践編)

> [Databricksクイックスタートガイド](https://qiita.com/taka_yayoi/items/125231c126a602693610)のコンテンツです。

# はじめに

本書はDatabricks環境構築の際に使用する[顧客管理VPC](https://qiita.com/taka_yayoi/items/f23bd799e1960e2eccbe)の作成手順をまとめたものです。本書で示しているものはあくまで一例です。お客様の要件に応じて構成を変更してください。

本書では、以下の構成でVPCを作成します。
![Picture1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/1ef5b0aa-c8c9-6540-e1a9-b119ad2db42f.png)

> **注意** 本書では、[PrivateLink](https://qiita.com/taka_yayoi/items/c6bdbb6452f6a0895961)を使用しない構成を説明しています。

元記事を表示

Databricks on AWSにおけるアカウントのセットアップとワークスペースのデプロイメント(実践編)

> [Databricksクイックスタートガイド](https://qiita.com/taka_yayoi/items/125231c126a602693610)のコンテンツです。

# はじめに

このドキュメントは[Set up your Databricks account and deploy a workspace | Databricks on AWS](https://docs.databricks.com/getting-started/account-setup.html) [2021/5/23時点]の翻訳に加え、作業内容の理解を深めるために弊社で実施した作業のログを追記及び、オンラインドキュメントの一部を使用して補足説明したものです。仕様変更等により内容は予告なく変更される場合があります。
![Picture1.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1168882/fedf965f-1029-d6ba-4190-16bc15ce41cf.png)

# Databricks

元記事を表示

FargateでWordpressのcronを実行する

#はじめに
fargateでWordpressのcronを実行する際の構成をまとめておきます。

#wp-cronについて
WordPressのジョブの定期実行(一定時間ごとの処理)の仕組みは、デフォルトではwp-cronと呼ばれる方法を利用しています。これは、Webアクセスをトリガーとし、現在実行すべき処理がないかどうかをその都度確認するものです。

しかし、アクセスがない場合、ジョブの定期実行により呼ばれる”予約投稿”が、時間を過ぎても投稿されません。
また、アクセスの多いサイトであればオーバーヘッドも気になります。

そこで、リアルタイムに処理する必要がある場合には、wp-cronからサーバー側の通常のcronに移行します。

#前提条件
– Fargateの構築
こちらの記事を作成ずみです。

https://qiita.com/holdout0521/items/bde67b8334f3362c8009

#構成

“`
.
├── Dockerfile
├── docker-compose.yml
├── cron.root
├── run.sh
└── html

元記事を表示

Cloud9からCloudFormationにデプロイするときに発生したエラー

#エラーコード

“`
Error: Failed to create/update the stack: {スタック名}, Waiter
StackCreateComplete failed: Waiter encountered a terminal failure state: For
expression “Stacks[].StackStatus” we matched expected path: “ROLLBACK_COMPLETE” at least once

“`
このエラーコードの上には、エラー発生原因がある。そこのエラーコードは

“`
CREATE_FAILED AWS::IAM::Role ServerlessFunctionRole Syntax errors in policy.
(Service: AmazonIdentity

元記事を表示

AWSで別アカウントの管理コンソールにロール切り替えで簡単に行き来する

###1.統括するアカウントを準備
IAMユーザーを作成

###2.統括されるアカウントにIAMロールを作成

####ロール名
下記にしておく
arn:aws:iam::xxxx:role/administrator-for-external-access-role
作成の際はユースケースはEC2でOK
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469267/d1881580-8f51-2604-0158-0e05ca37c0ec.png)

####アタッチするポリシー(一例)
Billing
AdministratorAccess

####信頼関係

**信頼されたエンティティ:**
ロールを引き受けることができるようにしたい統括するアカウントで準備したIAMユーザー
**条件:**
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/469267/b4ad034b-3085-c0

元記事を表示

StorageGateway構築時のメモ

下記記事でstoarge gatewayを作成したときの検証メモ

https://qiita.com/instant_baby/items/9cb44db98e93a93cce93

storage gateway用のAMIを使用して起動する場合の/rootは80GB以上じゃないとそもそも起動しない

“`
aws_instance.sdw_test: Creating…

│ Error: Error launching source instance: InvalidBlockDeviceMapping: Volume of size 10GB is smaller than snapshot ‘snap-02697e01242efad59’, expect size >= 80GB
│ status code: 400, request id: d8980776-68ee-4bde-9fcb-0a55277cca15

│ with aws_instance.sdw_test,
│ on ec2_sgw.tf line 5, in resource “a

元記事を表示

ELBのスティッキーセッションについて

## 勉強前イメージ

スティッキーがわからない・・・

## 調査

### ELBのスティッキーセッションについて

ELBがサーバにアクセスを振り分けるとき、
デフォルトであればELB配下のインスタンスに均一に分散させるため、一つのインスタンスにずっとつなぐということはできません。
しかし、cookieの情報を元に一定のインスタンスで処理させることができます。

### cookieの有効期限の設定の種類

以下の2つあります。

– ロードバランサーが生成したCookie
– アプリケーションベースのCookie

デフォルトでは均等に負荷分散させるようにスティッキーセッションはオフになっているので、
設定を変更しないといけません。

### そもそもの背景

なぜスティッキーセッションを必要とするのかですが、
普通のwebサーバだと特に気にせず負荷分散を點せればよいですが
セッション管理をしているシステム等はセッションの途中でサーバが変わってしまうとややこしくなってしまいます。
そこでスティッキーセッションを行い、同一セッションについては同じサーバで処理するようにすると
簡単

元記事を表示

StepFunctionsだけで無駄に壮大な4bit加算器を作ったよ

StepFunctionsはお好きですか?はい、私は好きです。

先日Workflow Studioもできて、複雑なフローも簡単に作れるようになりました。
それを駆使して4bit加算器(4bitの数値2つを足し合わせる回路)を作ってみたのでご報告です。

## StepFunctionsで論理回路

先日、なんだか眠れないなーと布団の中でゴロゴロしてたらふと天啓を得ました。
「StepFunctionsで論理回路が作れるぞ」という天啓を。

ということで、そこから起きてNOT, AND, OR回路を作ってみました。ノッてしまって午前3時まで眠れませんでした…。

### NOT回路

![step_functions_4bit_adder_not.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/39565/d8b240fe-c489-f04b-15bb-ae4618575ced.jpeg)

これがNOT回路です。

![step_functions_4bit_adder_or_flow.jpg](htt

元記事を表示

【合格体験記】AWS未経験の大学生が1ヶ月半くらいでAWS SAA-C02に合格した話

## はじめに

現在大学3年でAWSに関して未経験の僕が1ヶ月半くらい勉強して取得したAWS 認定ソリューションアーキテクト – アソシエイト(AWS SAA-C02)の合格体験記です。
勉強法や使用した教材などを紹介するのでお役に立てたら幸いです。

## なぜ受験したのか
受験した背景としては、現在開発中である**AWS有資格者限定プラットフォーム[engineed](https://info.engineed.io/engineer/)**に自分自身も登録したいと思ったからです。
engineedに登録するためならSAAより一段階易しいCloud Practitionerでもよかったのですが、AWSの各種サービスに関して網羅的に理解したかったのでSAAを受験することにしました。

## 試験概要

### 問題数
65問。
65問のうち15問が採点対象外で、採点対象外の問題は今後の試験の問題の参考にされるとのこと。
そのため、50問の正答率で合否が決まるが、採点対象外の問題との区別は受験者からはできないようになっています。

### 回答形式

– 多肢選択式:正しい選択肢が

元記事を表示

【AWS/EC2/Amazon Linux2】curl: (60) SSL certificate problem: certificate has expired

## 背景

AWS EC2(Amazon Linux2)上で、最新のGoogle Chromeをダウンロードしようと
下記Curlコマンドを実行しました。

“`terminal
sudo curl https://intoli.com/install-google-chrome.sh | bash
“`

すると、タイトルにも記載したエラーが出ました。

“`terminal
curl: (60) SSL certificate problem: certificate has expired
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the we

元記事を表示

eksctlコマンドでEKSのクラスターを作成する

eksctlコマンドを使ってEKSのクラスターを作成した際のメモ。
クラスター作成時に自動生成されたAWSリソースについてもまとめる。

## 準備
#### 前提

* awscliがインストール&設定済みであること
* AWSのリージョンは`ap-northeast-1`
* kubectlがインストール済みであること
* 実行環境
* macOS Big Sur バージョン11.5.1

#### eksctlのインストール
インストール

brew install eksctl

バージョンが`0.67.0`以上であることを確認

eksctl version

## クラスターの作成
[公式ドキュメント](https://docs.aws.amazon.com/ja_jp/eks/latest/userguide/create-cluster.html)に習い、以下のコマンドを実行

eksctl create cluster –name –version 1.21 –with-oidc –without-nodegro

元記事を表示

AWS MQTT永続的セッションのタイムアウト

AWS IoT と AWS IoT Device SDK は、MQTT サービス品質 (QoS) の
レベル 0 と 1 をサポートしています。

QoS1は最低1回以上の送信を保証するものですが
永続的セッションを利用することで実現が可能です。
例えばクライアントの切断中に Publish されたメッセージを受信したい場合などに利用します。

## MQTT 永続的セッションの使用

cleanSession フラグを 0 (false) に設定し IoT Core へ接続する必要があります。
またセッションが残存している場合のみ有効です。

[https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/mqtt.html#mqtt-persistent-sessions](https://docs.aws.amazon.com/ja_jp/iot/latest/developerguide/mqtt.html#mqtt-persistent-sessions)

>永続セッションは、クライアントによって承認されていない、

元記事を表示

【AWS】EC2のログをOpsworksを用いてCloudWatchへ転送する。

# はじめに
アプリケーションのログをCloudWatchへ転送することが出来ると、
**Logs insightsで統計的な分析が出来たり、
CloudWatch Alermと連携させて特定のlogを検出すれば通知させたり**することが出来ます。

今回は**Opsworks**でEC2を管理している場合での、CloudWatchへのログの転送方法を紹介します。

# 転送方法
Opsworksでは`Stack`という概念があり、Stackの中に`Layers`と呼ばれる管理単位があり、この中でEC2インスタンスを管理します。
(Stack > Layers > EC2インスタンス という関係)

CloudWatchへの転送の設定は`Layers`の設定変更のページで行います。
※ インスタンス単位で設定するワケではないので、対象となるLayers内で管理されているEC2全てでCloudWatchへの転送設定が反映されます。

対象となるLayersを選択、`CloudWatch Logs` タブを開き、Editボタンを押します。
![スクリーンショット 2021-10-19

元記事を表示

cloudwatch logs の サブスクリプションフィルタ とは

## 勉強前イメージ

なんかのフィルタ?サブスクリプション?

## 調査

### cloudwatch logs の サブスクリプションフィルタ とは

cloudwatch logsのサブスクリプションフィルタとは
cloudwatch logsに出力されたログデータを特定の文字列を含むデータなどをリアルタイムに検知し、
kinesis や lambda などにログを転送できる機能になります。
サブスクリプションフィルタを使用すると、あるログを出力されていて「Error」が含まれると
lambdaからチャットなどに流すことができるようになります。

### どういう構成で使われる?

例えば以下のような構成で使われます。

1. あるログをずっと取得しています。
2. cloudwatch logs のサブスクリプションフィルタで error という文字列があれば
3. lambdaにログを送ります。
4. そのログからチャットに通知を行います。

![12021-11-04 # cloudwatch logs の サブスクリプションフィルタ とは – diagrams.net

元記事を表示

An error occurred (NoSuchKey) when calling the GetObject operation: The specified key does not exist.

#エラーの訳
指定されたキーは存在しないよ

#コード
“`Python
bucket_name = ‘xxx’
object_key_name = ‘xxx.json’
s3 = boto3.resource(
‘s3′,
region_name=’ap-northeast-1’,
aws_access_key_id = ‘xxx’,
aws_secret_access_key = ‘xxx’,
)

bucket = s3.Bucket(bucket_name)
obj = bucket.Object(object_key_name)

response = obj.get()
body = response[‘Body’].read()

json.loads(body.decode(‘utf-8’))
“`

#エラー
“`
An error occurred (NoSuchKey) when calling th

元記事を表示

未経験からRails,AWS,Docker,CircleCI,GitHubでポートフォリオ作成しました

はじめに

未経験から**Ruby on Rails**, **AWS**, **Docker**, **CircleCI**, **GitHub**を一から学習し、Webアプリを作成してみました。

この記事ではアプリの紹介や実装機能、開発する上での苦労した点をお伝えします。
ポートフォリオをアップデートした際にはこちらの記事も更新していきます。

アプリの概要

エンジニアが作成したポートフォリオを投稿、共有できるSNSアプリです。

– エンジニアの為のポートフォリオ共有サイトがない。
– 既存の投稿サイトだとポートフォリオが埋もれてしまう。

これらの問題を解決するために「Portfoliofor」というサービスを開発しました。
URLは下記

元記事を表示

AWSで開発用アカウントのIAM権限(結局Admin)

## はじめに
AWSを使ってシステムのプロトタイプを作成していると、Roleをリソースに付与するなどの作業で、その都度IAM権限が必要になる。
ので、ちょいちょい「xxxの権限必要なんですけど…」との問い合わせをもらうことになる。

– LambdaでS3やCloudWatchのトリガーを受け取るためのロール付与
– GlueでS3をクロールするためにS3アクセスのポリシーを作成
– ECSで自動起動・停止の設定をする
– etc…

## 最初は都度対応していたが…

[IAM でのセキュリティのベストプラクティス](https://docs.aws.amazon.com/ja_jp/IAM/latest/UserGuide/best-practices.html)

この辺を読んで、最初は以下の対応で済ませていた。

– 開発者用ユーザーグループを作成
– 開発用ポリシーをユーザーグループに付与して、ポリシーを編集して権限を随時追加

編集していたポリシーの例。

“`json
   ~
{
“Effect”: “Allow”,

元記事を表示

RDSメンテナンス、PHDやメールで通知されないものも取得&通知するLambda

RDSのメンテナンス情報はその全てがメールやPHD(Personal Health Dashboard)に通知されるわけではありません(サポート確認済み)。そのようなものも把握したい場合は [describe-pending-maintenance-actions](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-pending-maintenance-actions.html) コマンドで取得する方法があります。

ということで describe-pending-maintenance-actions して結果が空でなければ、SNSに通知するLambdaを書いてみました。 [CloudFormationのテンプレート](https://gist.github.com/shu85t/cc304146b0e05a32a7439a7b3f042a5e) としてまとめています。

定期実行しておけば、これまでPHDやメールだけでは把握ができなかったメンテナンス情報も拾えます。

# 構成
![構成.png](htt

元記事を表示

AWSパブリックIPにドメインを関連させてかつhttpsにする方法

##手順
・まずドメインを外部で手に入れる(私はお名前.comを使用した)
・Route53でホストゾーンを作成。
・ネームサーバーを設定する
・ACMで証明書を発行する(バージニア北部で行うこと)
・Cloudfrontでディストリビューションを作成する。
  →オリジンドメインはEC2のパブリックIPv4DNSを貼り付ける
・Route53の設定を変更(typeAでレコードセットを作成、エイリアスを”はい”にする。

参考になった動画は

ほとんどこの通り実行したらできましたが、freenomを使用せずお名前.comを使用したこと。
Cloudfrontでディストリビューションを作成していなかったことが相違点としてあったため自分なりにおかえながら実行してみた。しっかりポートフォリオサイトを保護された通信環境のもとにおけたので嬉しかったです!!

元記事を表示

Amazon Step FunctionsのWorkflow StudioでParallel, Map, Choise状態の入出力を見る

# はじめに
 本記事では、Amazon Step FunctionsのWorkflow StudioでParallel, Map, Choise状態を含むステートマシンを作成し、その入出力を見ていきます。Step Functionsでは、Parallelで静的並列処理、Mapで動的並列処理を実現することができます。

 本記事の特徴は以下です。

* Workflow Studioを使ってグラフィカルに作る
* Parallel, Map, Choise状態とLambda関数を使用
* 実践的な処理というよりは、入出力を明確にするテスト的な処理を作る
* LambdaでPythonを使用しますが、簡単すぎるコードしかないため未経験者でも問題ありません

 以下の内容は含まれません。

* ASL(次節で説明)を使って作る方法

# Step Functionsとは?
 サーバレスオーケストレーションサービスと [公式][1] では言われています。分かり易く言い換えると、サーバレスなAWSサービス(主に [AWS Lambda][2] )をつなげて1つのワークフローを作成できるサービス

元記事を表示

OTHERカテゴリの最新記事