- 1. 【AWS】新卒フロントエンジニアがAWS CLFに1ヶ月で合格した方法
- 2. Route 53 Resolver DNS Firewall とは
- 3. AWS Lambda でLine bot を作成する
- 4. AWS CLIを使用する際にMFAを強制する方法
- 5. API Gatewayを使ってWebSocketで遊んでみた。(with cdk、Vue3)
- 6. AWS全サービスの簡単な説明 #3
- 7. AWSのサービス #2
- 8. AWS(Amazon Web Service)とは? #1
- 9. Cloud9でRails7の環境構築を行う
- 10. [AWS.3] Lambda関数へのトリガー追加 (API Gateway)
- 11. VMware Cloud on AWS上の仮想マシンからAmazon Time Sync Serviceを利用する
- 12. Redshift Serverlessを試してみた(起動編)
- 13. AWS CDK Python を使ってみる
- 14. AWS CLI VPC
- 15. コンテナ技術に乗り遅れた者の備忘録
- 16. Amplify CLIを使って、Amplifyプロジェクトを作成する方法
- 17. LambdaのコードとCFnテンプレートの環境変数を同時に変更すると一瞬死ぬかも
- 18. Step Functionsの並行(Parallel)状態における入出力処理
- 19. 【Athena】IS NULLやIS NOT NULLが効かない
- 20. RI・SavingsPlansを購入禁止にするポリシー
【AWS】新卒フロントエンジニアがAWS CLFに1ヶ月で合格した方法
# はじめに
2022年4月、新卒で自社開発企業に入社し、フロントエンドエンジニアとして毎日Vue.jsを書いている新卒エンジニアです。
新卒フロントエンジニアながら、AWS CLF(クラウドプラクティショナー)を1ヶ月で取得することができました。
なので取得までに何をしたのかをまとめてみたいと思います。ちなみにAWSの経験は「AWS Jumpstart for NewGrads」という新卒向けのAWS研修にて3日間アーキテクチャを構築したくらいです。
そのためエンジニアなら誰でもサクッと合格できるレベルの資格かと思います。# なぜAWS CLFを取得しようと思ったのか
– インフラやバックエンドの仕事をしているわけではないが、個人開発では少しインフラやバックエンドを少し経験したり、もともとAWSに興味があり、改めて体系的に学習しようと思ったため
– 今後のキャリアの選択肢を広げるため
– **会社から報奨金が出るため**やっぱ報奨金が出るだけで一気にやる気は高まりますよね。(笑)
また、直近のキャリアではあまりAWSに触れることは少ないかもしれないですが、AWSの知識があ
Route 53 Resolver DNS Firewall とは
## 勉強前イメージ
Route 53 Resolver って昨日やったやつじゃなかったっけ?
## 調査
### Route 53 Resolver DNS Firewall とは
VPCから [Route 53 Resolver](https://qiita.com/miyuki_samitani/items/59e9c9ff432a750d728e) に対するアウトバウンドのDNSのクエリを見て
特定のドメイン名に対するクエリをブロックすることができます。
VPCから悪意のあるドメインに対するDNSのクエリをブロックして、信頼できるDNDのクエリのみ許可するfirewallになります。
[DNSトンネリング](https://qiita.com/miyuki_samitani/items/dd5d81cf539467578fd2) の対策になります。### Route 53 Resolver DNS Firewallで防ぐもの
[Route 53 Resolver](https://qiita.com/miyuki_samitani/items/59e9c9ff43
AWS Lambda でLine bot を作成する
Line bot を作成し、自動でメッセージを送受信する方法を解説します。
## LINE Developersコンソールからチャネルを作成
下記手順を参考にLINE Developersコンソールからチャネルを作成します。
[LINE Developersコンソールでチャネルを作成する](https://developers.line.biz/ja/docs/messaging-api/getting-started/#using-console)– [LINE Developersコンソール](https://developers.line.biz/console/)へログイン
– `Messaging API`のチャンネルを作成
![image](https://user-images.githubusercontent.com/38905609/181906073-e2371056-01c9-4329-abf1-5e3334fdc3f0.png)## Webhook用のLambda関数を作成する
?これより先は下記記事の内容を前提とします
[REST AP
AWS CLIを使用する際にMFAを強制する方法
## 目的
– これまでマネジメントコンソールからしかAWSを操作したことがなく、AWS CLIを色々と試してみようと思った。AWS認定試験向けでもラボ試験が増えたので、CLIの習得は必須である。
– 簡単な検証や操作性の確認を行うだけでも、不正アクセスされると困るので、AWS CLIを使用する際はMFAを強制したい。
– パスワードを用いたマネジメントコンソールかへのアクセスは、MFAデバイスの割り当てを行うだけで、サインインにはMFAが強制される。一方でアクセスキーを用いたAWS CLI等でのプログラムによるアクセスでは、MFAが強制されない。
– 安全にAWS CLIでアクセスしたいのにMFAを強制したいと思い、MFA設定時の挙動、設定方法の確認を行った。## 設定方法
「MFAによる認証が行われてない場合、全てのアクションを拒否する」ポリシーを作成し、ユーザーやグループにアタッチするだけ。“`json
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Sid”: “Test
API Gatewayを使ってWebSocketで遊んでみた。(with cdk、Vue3)
# 私の中のWebSocket
`WebSocket`とは、私的に**用語は知っていて概略は解ってるけどよく知らない事の一つ**になります。
クライアント側とサーバー側で双方向にやり取りできる技術という事は聞いています。チャットなどで使用されているという事は知っていますが、本質的にどんな技術で、どんな事に使えるのか実際に試す事で肌で感じてみたいと常々思っていました。# きっかけ
そんな中こちらの記事を見つけました。AWS上で簡単に試せそうと思い、やってみる事にしました。
https://qiita.com/G-awa/items/472bc1a9d46178f3d7a4
https://github.com/aws-samples/simple-websockets-chat-app
# 目標
今回は、前述の記事を参考にしつつ、以下のポイントを満たすように改造していきたいと覆います。
– サーバーサイドだけでなく、クライアントサイドも構築する。
– チャットルームを複数設けて、入室や退室の制御をやれるようにする。
– LambdaやAPIGateway部分などAWSリ
AWS全サービスの簡単な説明 #3
# AWSのサービス
## サーバー関連
### Amazon EC2
仮想サーバー
### Amazon Elastic Container Service
Dockerコンテナの実行および管理
### Amazon Lightsail
仮想サーバーとネットワーク一式の起動と管理
### AWS Batch
バッチジョブの実行
### Amazon VPC
ネットワーク環境
### Amazon API Gateway
WebAPIを構築するサービス
### Amazon CloudFront
コンテンツキャッシュサービス(CDN)
### Amazon Route 53
DNSサービス
### Amazon Direct Connect
AWSネットワークに専用線で接続
### AWS Transit Gateway
VPC同士などの接続
### Elastic Load Balancing(ELB)
負荷分散装置
### Amazon Simple Email Service(SES)
メールサービス
### Amazon GameLift
ゲームホスティングサービス
###
AWSのサービス #2
# 165種類以上のサービスを提供
AWSではITに関わるインフラのほとんどのサービスが提供されている。## 目的別にさまざまなサービスを提供
・Webサービスを作りたい
サーバー(EC2)
サーバーOS(AMI)
IPアドレス(Elastic IP)
ストレージ(S3)
ドメイン(Route 53)
DBサーバ(RDS)・コンテンツを配信したい
サーバー(EC2)
キャッシュレスサーバー(CloudFront)
IPアドレス(Elastic IP)
ドメイン(Route 53)・機械学習をしたい
機械学習モデル(machine Learning SageMaker)
画像動画認識(Rekognition)
音声認識(Transcribe,Lex)## AWSの代表サービス
### Amazon EC2(Amazon Elastic Compute Cloud)
Amazon EC2は、コンピューティングキャパシティを提供するサービス。サーバー、OS、ソフトウェアなどの一式レンタルができる。
### Amazon S3(Amazon Simple Storage Se
AWS(Amazon Web Service)とは? #1
Amazon Web Service(AWS)・・クラウドコンピューティングサービス
(簡単なイメージ)
サーバーやネットワークをインターネット経由で貸してくれるサービス
AWSはさまざまなサービスを提供しているので組み合わせ次第で、あらゆるアプリケーションやインフラを実現できる
ex)コンピューティング、ストレージ、データベース、分析、ネットワーキング、モバイル、開発者ツール、管理ツール、IoT、セキュリティ、エンタープライズアプリケーションAWSの特徴
・システム運用に必要なサービス一式を借りられる
今までバラバラの事業者から借りていたインフラを一括で借りられるようになった。
・サービスを組み合わせやすい
AWS内で複数のサービスを組み合わせ、サービスを構築することが容易にできる
年々サービス館の連携が強化されている。もちろんAWS外のシステムとの連携も可能。
・従量制なので使う分だけ借りられる
自分が必要だと思う分だけ借りられる
・専門家でなくても使える
あまり技術が詳しくなくても操作できる、さまざまな仕組みが備わってる
・日本語と日本円の支払いに対応
・セキュリティの基準
Cloud9でRails7の環境構築を行う
## 前提
– 学習用途のRailsプロジェクトを想定しています
– Rubyの環境構築を行なっていること(前回の記事で手順を記載しています)https://qiita.com/chiepon115/items/eeea61818e0e8701f747
– Version
– Ruby 3.0.2
– Rails 7.0.0## Railsプロジェクトの作成
### Railsのインストール
– `gem install rails -v 7.0.0 -N`でRails7.0.0をインストール### Railsプロジェクトの作成
– `mkdir rails_projects`でRailsプロジェクト用フォルダを作成
– `rails _7.0.0_ new hello`でRailsプロジェクト作成
– Railsのバージョン7.0.0を指定してインストール
– `hello`という名前のプロジェクトで作成
[AWS.3] Lambda関数へのトリガー追加 (API Gateway)# 1. 概要
AWS.1 および AWS.2 は、すでに広まっている情報を思いっ切り焼き直した記事でした。
もう少し高度なサンプルも予定していますが、その前に作成済みの Lambda 関数を Amazon API Gateway に対応させてインターネットから簡便に呼び出せるようにしておきます。## Amazon API Gateway とは
バックエンドで動くビジネスロジックへアクセスするための「フロントドア」として機能する仕組み、とのことです。
具体的には RESTful API や WebSocket API の作成・公開・管理 を一手に担い、Lambda 関数をはじめとするビジネスロジックへアクセする「API」を提供します。Amazon API Gateway
https://aws.amazon.com/jp/api-gateway/### Lambda プロキシ統合について
API Gateway を利用する際は、クライアントから渡される情報を「呼び出し先のロジックがアクセスできる領域」へマッピングする必要がありました。
マッピングの考え方自体はともかく、定義
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”,