- 1. VMware Cloud on AWS上の仮想マシンからAmazon Time Sync Serviceを利用する
- 2. Redshift Serverlessを試してみた(起動編)
- 3. AWS CDK Python を使ってみる
- 4. AWS CLI VPC
- 5. コンテナ技術に乗り遅れた者の備忘録
- 6. Amplify CLIを使って、Amplifyプロジェクトを作成する方法
- 7. LambdaのコードとCFnテンプレートの環境変数を同時に変更すると一瞬死ぬかも
- 8. Step Functionsの並行(Parallel)状態における入出力処理
- 9. 【Athena】IS NULLやIS NOT NULLが効かない
- 10. RI・SavingsPlansを購入禁止にするポリシー
- 11. Amazon Provided DNS (Amazon Route 53 Resolver) とは
- 12. Amazon VPC traffic mirroring とは
- 13. カスタムメトリクスを自前で取得してCloudWatchに送信してみた。
- 14. CloudWatch Syntheticsを使用してAPI監視を実現する
- 15. AWS IAMで未使用者のアクセスキーを無効する
- 16. AWS上で起動するNode-REDでのメール送信方法
- 17. Redshift Serverless に provisioned cluster から移行してみた
- 18. 【備忘録】EC2 ubuntu内でDockerのhttpd(Apache)コンテナを起動してアクセスしても、403 Forbiddenとなる問題
- 19. AWS SDK for PHP: DynamoDB だけ? リトライを 10 回する件
- 20. WorkSpacesにエプリクスをダウンロードする方法
VMware Cloud on AWS上の仮想マシンからAmazon Time Sync Serviceを利用する
# はじめに
AWS では Amazon Time Sync Service という NTP サービスを追加料金を支払う事なく利用できます。VMware Cloud on AWS(VMC)においても、この Amazon Time Sync Service を追加料金なしで利用できる事をご存知でしたでしょうか?
今回は Amazon Time Sync Service の概要説明と、VMware Cloud on AWS 上の仮想マシンからの利用方法について解説してみます。# 目次
1. [Amazon Time Sync Service とは](#amazon-time-sync-service-とは)
1. [VMC における Amazon Time Sync Service の利用](#vmc-における-amazon-time-sync-service-の利用)
1. [コンピュートゲートウェイにファイアウォールルールの追加](#コンピュートゲートウェイにファイアウォールルールの追加)
Redshift Serverlessを試してみた(起動編)
# 背景
少し前ですが、2022/7/28にRedshift ServerlessがGAになったので試してみたいと思います。
なお、プレビュー版から比較してコンピューティングのコストを削減しているとのこと。# まとめ
– Redshift Serverlessは、サーバスペックやクラスタ、パラメータの設定等が不要ですぐに立ち上げることができます。
– クエリを実行するには、クエリエディタv2から行います。クエリエディタ(v1)からは接続ができないようでした。# 概要
## Redshift Serverlessとは
データウェアハウスインフラストラクチャを管理しなくても、分析の実行とスケールが簡単になります。
データウェアハウスのキャパシティーを自動的にプロビジョニングしてインテリジェントにスケールし、要求が極めて厳しく予測不能なワークロードであっても、高速なパフォーマンスを提供します。
使用した分についてのみ、料金を支払う。## 特徴
### データから数秒でインサイトを得る
データウェアハウスインフラストラクチャの管理について心配する必要はない。### 一貫した高性
AWS CDK Python を使ってみる
## 準備
必要なツール類の確認
“`
$ node -v
v16.16.0
$ cdk –version
2.32.1 (build 79cbe95)
$ python –version
Python 3.7.10
“`ディレクトリ(cdk)を作成し、移動する。
“`
mkdir cdk && cd cdk
“``cdk init` コマンドでプロジェクトを作成する。
“`
cdk init sample-app –language python
“`仮想環境のアクティベート化。
“`
source .venv/bin/activate
“`aws-cdk-lib と construct
AWS CLI VPC
## はじめに
AWS CLIでVPCにEC2を作成し疎通の確認を取ります。
CLIの勉強をしたのでアウトプット目的です。## 対象者
この記事は下記のような人を対象にしています。– 駆け出しエンジニア
– AWS CLIについて全くわからない方、勉強したい方## 環境
CLIで作業をしますので以下環境です。
“`
// OSとバージョンの確認
cat /etc/system-release
Amazon Linux release 2 (Karoo)// シェルとバージョンの確認
bash –version \
| head -1
GNU bash, バージョン 4.2.46(2)-release (x86_64-redhat-linux-gnu)// AWS CLIのバージョンの確認
aws –version
aws-cli/1.20.56 Python/3.7.10 Linux/4.14.246-187.474.amzn2.x86_64 botocore/1.21.56
“`## 段落
①VPCの作成
②サブネットの作成
③セキュリティグル
コンテナ技術に乗り遅れた者の備忘録
# 目的
開発者としては必須知識となりつつあるコンテナ技術についての学習メモとなります。
今回はAWSのECSについて学んでいきます。## コンテナの活用目的
インフラストラクチャの効率的な構築運用を実現し、
プロダクト開発シーンを取り巻く多様な開発環境の変化に対応する。## 活用するメリット
* インフラ管理における無駄な作業を削減
→ アプリケーション開発にリソースを集中できる
* インフラ環境のカスタマイズが容易である
→ ユーザーの要件に応じて多様な開発環境を実現できる
* 高速なスケーリングが可能となり、パフォーマンスの調整が可能
→ サービス需要に応え、機会損失を防ぐ
* フルマネージドでパッケージの脆弱性スキャンが可能となる
→ ユーザーの安心や情報資産を守り、被害を未然に防ぐ※ AWS ECSではDockerをサポートしているため、Dockerコンテナの実行、及び管理が可能
# なぜESCを使うのか?
* 通常コンテナを動かす際はVM上で”docker run”コマンドを実行する
→ VMを複数管理している場
Amplify CLIを使って、Amplifyプロジェクトを作成する方法
はいさい!ちゅらデータぬオースティンやいびーん!
# 概要
Amplify CLIを使って、ローカルでAmplifyのプロジェクトと開発環境を設置する方法を紹介します。## 背景
### Amplifyとは
GCPのFirebaseと似て、AWSの各機能を一つにまとめるために作られたサービスです。### なぜCLIを使うのか
Amplifyにはコンソールがありますが、正式ドキュメントの多くは、コンソールによる操作より、CLIによる操作を元に用意されています。なので、CLIの使い方からAmplifyに入っていった方が後々助かると、筆者は考えます!
# Amplify CLIをインストールする
まずは、CLIをインストールしておきます。https://docs.amplify.aws/cli/start/install/
### npmでグローバル・インストールする
“`
npm install -g @aws-amplify/cli
“`### curlでインストール
個人的にはnpmのグローバルインストールを避けたいのでこちらの方がおすすめです。
“`
LambdaのコードとCFnテンプレートの環境変数を同時に変更すると一瞬死ぬかも
# はじめに
Lambda関数をデプロイする際、CloudFormation(以下、CFn)を利用される方も多いと思います。
今まで知らなかったのですが、Lambda関数に乗せるソースコードとCFnテンプレートの両方で環境変数名を同時に変更するとダウンタイムが発生する場合があったので、備忘録として検証記事を書きます。# 使用するCFnテンプレート
今回の検証に利用する、最小構成のLambda関数をデプロイするためのCFnテンプレートです。
Lambda関数のリソース定義において、Environmentに`HOGE: 1234`を追加し、Codeに`HOGE`を参照するPythonコードを直接書いています。“` minimum_template.yml
AWSTemplateFormatVersion: 2010-09-09Resources:
LambdaFunction:
Type: AWS::Lambda::Function
Properties:
Runtime: python3.9
FunctionName: hoge
Step Functionsの並行(Parallel)状態における入出力処理
# この記事は何?
StepFunctionsを利用して、並行状態の入出力処理について得た知見についてこのメモにまとめます。
# Step Functionsとは?
> step Functions は、AWS Lambda 関数およびその他のビジネスクリティカルなアプリケーションを構築するための AWS のサービスを組み合わせることができるサーバーレスオーケストレーションサービスです。Step Functions のグラフィカルコンソールでは、アプリケーションのワークフローを一連のイベント駆動型ステップとして確認できます。
https://docs.aws.amazon.com/ja_jp/step-functions/latest/dg/welcome.htmlサーバレスでワークフローを実装することができるAWSのサービスです。特にAWSのサービスとは相性がよく、AWSのAPIの呼び出しはStepFunctionsの機能として組み込まれているため、AWSを管理するワークフローであればローコードでの実装が可能です。
類似ツールとしてはApache Airflowがありま
【Athena】IS NULLやIS NOT NULLが効かない
# AthenaのWHERE句でIS NULLがうまく効かない
AthenaのSQLの条件でIS NULLとIS NOT NULLを書いても想定してた値が取れないため困惑していました。
例えば`count(x)`はprestoのドキュメント通りnullを考慮してくれており、値としてはnullは認識しているようには見えています。
行によってはによっては正しく判定されているところもあったので更によくわからないのですが、とにかくnullの条件がうまく聞きませんでした。>
Returns the number of non-null input values. https://prestodb.io/docs/current/functions/aggregate.html
# lengthで代替案
しょうがないので別の方法を取ることにして、今回は空文字があってもそれも無視することにしたので
“`sql
length(column_name) > 0
“`と記述することで空文字とnullは0が帰ってくるはずで、それだけを取り除くことが
RI・SavingsPlansを購入禁止にするポリシー
# やりたい事
マルチアカウント環境で勝手にRI・SavingsPlansを購入して欲しくない“`
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “Statement1”,
“Effect”: “Deny”,
“Action”: [
“ec2:PurchaseReservedInstancesOffering”,
“savingsplans:CreateSavingsPlan”,
“elasticache:PurchaseReservedCacheNodesOffering”,
“es:PurchaseReservedElasticsearchInstanceOffering”,
“redshift:PurchaseReservedNodeOffering”,
Amazon Provided DNS (Amazon Route 53 Resolver) とは
## 勉強前イメージ
AWSのDNS?route53とは違うの?
## 調査
### Amazon Provided DNS とは
VPCを使用する際にDNSサーバを指定しなければVPCにデフォルトで用意されるDNSのサーバを使っています。
以前はAmazon Provided DNSと呼ばれていましたが
現在はAmazon Route 53 Resolverと呼ばれるみたいです。
VPC内の名前解決を行うために使用されます。第4オクテッドに+2した値が入ります。
例えばVPCが「10.0.0.0/16」であれば「10.0.0.2/32」のIPアドレスを持ちます。
このDNSサーバがフォワーダー(中継)とフルサービスリゾルバ(クライアントに応答を返す)の役割をします。使用する際は以下を確認してください
– VPC : DNS解決 → 有効
– DHCPオプションセット : ドメインネームサーバ AmazonProvidedDNS になってること![image (1).png](https://qiita-image-store.s3.ap-northeast-1.
Amazon VPC traffic mirroring とは
## 勉強前イメージ
トラフィックミラーリングできるの?
## 調査
### Amazon VPC traffic mirroring とは
AWSのリソースに対して来たトラフィックを別のENIやNLBに複製して流すことが出来ます。
VPCの機能でスケールも可能です。### Amazon VPC traffic mirroring のメリット
– ネットワークやセキュリティ上の異常を検出
あるリソースに対して来たトラフィックを検出ツールに流すことが出来ます。
それによって迅速に攻撃を検出して対応ができます。– 問題のトラブルシューティング
リリース前のテストなどの目的で
実際に来ているアクセスをミラーリングして事前にアプリケーションで確認ができます。
リリース前に実際のトラフィックでテストをすることでリリース時の障害を防ぐことが出来ます。### 用語
– ミラーターゲット
複製先のリソースを指定します。
その際にターゲットはENIとNLB、ゲートウェイロードバランサーのエンドポイントを指定できます。
EC2などに流したい場合はENIを指定してそれをアタッチ
カスタムメトリクスを自前で取得してCloudWatchに送信してみた。
# 目次
[1.はじめに](#1-はじめに)
[2.やりたいこと](#2-やりたいこと)
[3.環境](#3-環境)
[4.結論](#4-結論)
[5.手順](#5-手順)
[6.おわりに](#6-おわりに)
[7.参考](#7-参考)# 1. はじめに
こんにちは。
私はAWSの資格取得に向け日々勉強していますが、CloudWatchにカスタムメトリクスを自前で取得して送信する手法があることを学びましたので実装しました。# 2. やりたいこと
カスタムメトリクスであるディスク使用率とメモリ使用率を取得してCloudWatchに送信するスクリプトを作成します。
さらに送信したカスタムメトリクスに対してCloudWatchアラームと連携させ監視する仕組みを構築します。# 3. 環境
Amazon Linux2# 4. 結論
* カスタムメトリクスを取得してCloudWatchに送信できる。
* 取得したカスタムメトリクスをCloudWatchアラームと連携できる。# 5. 手順
## スクリプトを作成
ディスク使用率とメモリ使用率を取得し、カスタムメトリクスとしてCl
CloudWatch Syntheticsを使用してAPI監視を実現する
# はじめに
本記事はAWS環境でCloudWatch Syntheticsを使用して、API監視を行うための方法について記載しています。クラウド環境におけるシステム監視を行うためには、クラウドを提供するサービスプロバイダーによってビルトインされたモニタリングシステムや、Datadogなどサードパーティ製ツールを使用するなどの手段があります。
AWSではモニタリングシステムとしてCloudWatchが無料で利用できます。
Syntheticsの監視についてもサードパーティ製ツールを使用せずに、コストを下げてAWSでインテグレーションしたモニタリングシステムを構築できます。一見便利そうなSyntheticsですが、仕様が分かりにくかったり、痒い所に手が届かない部分もあります。
本記事ではSyntheticsを使ってたナレッジについてまとめました。## CloudWatch Synthetics
日本ではAPIなどエンドポイントに対する監視のことを外形監視といった表現が多いですが、AWSはDatadogと同じ**Synthetics**と呼び、CloudWatchの**Syn
AWS IAMで未使用者のアクセスキーを無効する
# 背景
AWS認定資格の学習中に、「未使用期間が90日以上経過したIAMユーザーのユーザーアクセスキーを無効する作業を自動化するには?」という問題がありました。
AWSの設定のみで実現できないルーチンワーク的なセキュリティ処理をLambda関数などで作成するという解答はAWS認定試験の問題集などに散見されるのですが、具体的にどうやるのかの情報があまりヒットしないので、自分で作って確認してみることにしました。# 目次
1. [選択肢](#Chapter1)
1. [実現方法](#Chapter2)
1. [参考文献](#reference)# 選択肢
1. 管理コンソールのIAMサービスからIAMユーザーの利用状況をダウンロードし、90日以上経過したユーザーをピックアップし、無効化する
手動操作、および目視確認のため、自動化には程遠い
→却下
2. AWS CLIで以下のコマンドを実行する
“`
$ aws iam generate-credential-report
$ aws iam get-credential
AWS上で起動するNode-REDでのメール送信方法
ちょっと前にやった案件で結果苦労したんで、備忘録として残します。
ちょっと前のことなんで、記憶曖昧なところありますが、ご容赦ください。AWSのEC2(WindowsServer2019)上にNode-RED環境を作り、そこからお客さんの会社メールアドレスへ添付ファイルをつけてAWSのSESを経由してメールする必要があって。。
gmailの送信方法は出てくるんですけど、こういったAWS環境上からの送信方法ってググっても意外に出てこなくて、けっこう苦労しました。やり方は主に2つです。
1. Node-REDのライブラリを使って送る。
2. Powershellでメール送信処理を書いて、Node-REDで送る。上記1の方法ですが、Node-REDの公式から[こういうような](https://flows.nodered.org/node/node-red-contrib-aws-ses-send-raw)追加のライブラリをダウンロードして使うってのが手っ取り早いです。
自分も手軽にできないかなとおもってライブラリダウンロードして使ってみたのですが、ノードに宛先とか設定してノードを実
Redshift Serverless に provisioned cluster から移行してみた
# はじめに
[Redshift Serverless が 7/13 に GA ](https://aws.amazon.com/jp/blogs/news/amazon-redshift-serverless-now-generally-available-with-new-capabilities/)されました。従来の Redshift (provisioned cluster) では、クラスターを構成するインフラを意識しながらデプロイする方式でした。Redshift Serverless ではインフラ管理が不要となり、より簡単に、より運用負担を軽減してご利用いただけます。データを準備して Redshift Serverless に取り込むだけで分析ができ、料金は使用した分だけ発生します。これにより、利用頻度が少ない分析処理や夜間のみ実行されるワークロードなど、データウェアハウスを常時利用しないユースケースの場合に、効果的にご利用いただけます。
従来の provisioned cluster でサポートされている機能のほとんどは、Redshift Serverless でサポー
【備忘録】EC2 ubuntu内でDockerのhttpd(Apache)コンテナを起動してアクセスしても、403 Forbiddenとなる問題
# 現象
EC2内で、[ドキュメント](https://docs.docker.com/engine/install/ubuntu/)通りにubuntu内にDocker Engineの立ち上げ。
`/home/ubuntu`でhttpdのDockerコンテナを[ドキュメント](https://hub.docker.com/_/httpd)通りに起動
“`
$ docker run -dit –name my-apache-app -p 8080:80 -v “$PWD”:/usr/local/apache2/htdocs/ httpd:2.4
“`WEBサーバとして`http://[EC2のpublic IPv4]:8080`にアクセスしたが、403 Forbidden。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/496036/aae64906-c82a-247d-661f-bf75da91a7d4.png)
ちなみに、[さわって学ぶクラウドインフラ docker
AWS SDK for PHP: DynamoDB だけ? リトライを 10 回する件
参考) [retries – AWS SDK for PHP](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/guide_configuration.html#config-retries)
## 概要
リファレンス上リトライのデフォルトは以下のとおり(のはず)だが、DynamoDB のときだけ(?) 10 回リトライしている。
– retry_mode: legacy
– max_attempts: 3## 例
### DynamoDB (リトライ未指定)
“`php
$ddbClient = new Aws\DynamoDb\DynamoDbClient([
‘region’ => ‘ap-northeast-1’,
‘version’ => ‘2012-08-10’,
‘endpoint’ => ‘http://192.168.1.1’, // 応答なし
‘http’ => [
‘connect_timeout’ => 3,
],
])
WorkSpacesにエプリクスをダウンロードする方法
https://www.eclipse.org/downloads/packages/
ダウンロード方法
https://iteng-pom.com/archives/721