AWS Global Acceleratorとは?

AWS Global AcceleratorはALB, NLB, EC2などのコンポーネントの前段に配置することで、可用性とパフォーマンスを改善してくれるネットワークサービス

既存のALBに追加したり、ALB新規作成時に追加できる

### 使ってみる
– Create accelerator
– Listenerを80 TCPに設定します
– Endpointに対象リージョンのEC2を紐付ける

Global Acceleratorを作成すると、Static IPアドレス2つとDNSが作られる。
なるほど、なんとなくイメージはわかったかも。

AWS Aurora入門

Amazon Auroraとは?
-> MySQL及びPostgreSQLに互換性を持った完全マネージド型のリレーショナルデータベース
-> MySQLの5倍、PostgreSQLの3倍のスループットを発揮
-> ストレージは10GBから最大64TBまで自動スケール

### 構成
Primary/Secondary構成とは異なり、クラスタ単位で構成される
クラスタエンドポイント、読み取りエンドポイント、カスタムエンドポイントがある

### 実際に作ってみる
– 前準備のrds-subnet-groupとrds security group作るまでに少し時間がかかった…

$ sudo yum install https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
$ rpm –import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
$ sudo yum install –enablerepo=mysql80-community mysql-community-server

$ mysql -h database-1.hoge.ap-northeast-1.rds.amazonaws.com –ssl-ca=.ssh/rds-ca-2019-root.pem -u admin -p

うおおおおおおおおおお
なんか超久しぶりだから焦りまくった…

Auroraでregional clusterとwriter instanceの違いがイマイチよくわからんが…
keep going

AWS Batchとは?

AWSのフルマネージド型バッチ処理実行サービスのこと
– 最適なコンピューティングリソースの動的プロビジョニングができる
– 「ジョブ」という概念を定義しておき多岐に渡る処理を管理実行できる

事前に定義したジョブ定義をキューで管理、処理
複数の子ジョブを実行させる事が出来る

AWS Batchの用語
– jobs, job definitions, job queues, compute environments
– マルチノード並列ジョブ: 複数のインスタンスにまたがるジョブ

とりあえず触ってみる

– create compute environment

job definitionsを設定する

あれええええ なんか違うなーーーーーーーーーwwww

AWS EventBridgeとは

AWS内外でのイベントをトリガーにLambdaなどを動かせるhubがEventBridgeらしい。
PagerDutyを触ってみたがよく分からないので、とりあえず動かしてみることに。

service providerをAWS, service nameをEC2として、Event typeでEC2 Instance State-change Notificationで Specific stateがstoppedとなったら、Lambda functionを実行するようruleを作成できる。

scheduleとcron expressionを使うと、cronと同じようなことができる

ふむ、なるほどー

AWS DirectConnectとは

AWSが提供する専用接続サービスでユーザのネットワーク環境からAWSまでのインターネットを経由せずにプライベートな接続を確立する
エクイニクス社の「TY2(東京)」、「OS1(大阪)」およびアット東京社の「CC1(東京)」のAWS Direct Connectロケーションを利用できる

AWS DirectConnectは、インターネット回線を利用しないで接続する方法

GitLabとは?

GitLabはGitLab社が公開しているGitサービス
無料で利用できるCEと有料で利用できるEEがある
Githubの後発として開発されたサービス
グループプライベートリポジトリを作れる

### Githubとの違い
– 他のツールとの連携が充実
– デザインはGithubの方が操作しやすいが、Gitlabはトレンドに沿っている
– ジョブの実行ができる
– 安定性はGithubの方が安定している
– ユーザー数はGithubは5600万人以上(2021)、Gitlabは10万人(2017)でダントツにGithubの方が多い
– GitLab独自のCI/CDが提供されている(Java関連のCI/CDも人気)

– リポジトリのグルーピングが好評

git commitしてmergeする

github使ってると、なんか変な感じだな

AWS Secret ManagerをPython3で使ってみる

Secret Managerを使っていきます。
今回はkeyとvalueにします。

secret nameも設定します。

RDSのpassだとrotationができるらしい。このrotationって機能は面白いですね。

iamでSecret Managerのread/writeの権限を付与します。

### Pythonで取得してみる
$ pip3 install boto3
L boto3.client の書き方は、s3へのget/uploadとほぼ同じ。あとは、client.get_secret_valueとするだけ。

import boto3
import base64
from botocore.exceptions import ClientError
 
accesskey = ""
secretkey = ""
region = "ap-northeast-1"
secret_name = "stg/beta/name"

  
client = boto3.client('secretsmanager', aws_access_key_id=accesskey, aws_secret_access_key= secretkey, region_name=region)
  
try:
    get_secret_value_response = client.get_secret_value(
        SecretId=secret_name
    )
except ClientError as e:
    if e.response['Error']['Code'] == 'DecryptionFailureException':
        raise e
    elif e.response['Error']['Code'] == 'InternalServiceErrorException':
        raise e
    elif e.response['Error']['Code'] == 'InvalidParameterException':
        raise e
    elif e.response['Error']['Code'] == 'InvalidRequestException':
        raise e
    elif e.response['Error']['Code'] == 'ResourceNotFoundException':
        raise e
else:
    if 'SecretString' in get_secret_value_response:
        secret = get_secret_value_response['SecretString']
    else:
        decoded_binary_secret = base64.b64decode(get_secret_value_response['SecretBinary'])

print(get_secret_value_response)

response
{‘ARN’: ‘arn:aws:secretsmanager:ap-northeast-1:702423327513:secret:stg/beta/name-FgtB23’, ‘Name’: ‘stg/beta/name’, ‘VersionId’: ‘cbe2dfcb-2e5b-4032-a919-a6213f3436db’, ‘SecretString’: ‘{“name”:”hpscript”}’, ‘VersionStages’: [‘AWSCURRENT’], ‘CreatedDate’: datetime.datetime(2022, 2, 11, 23, 43, 4, 732000, tzinfo=tzlocal()), ‘ResponseMetadata’: {‘RequestId’: ‘3c41a108-4cee-46a4-aa9f-af3d2252637c’, ‘HTTPStatusCode’: 200, ‘HTTPHeaders’: {‘x-amzn-requestid’: ‘3c41a108-4cee-46a4-aa9f-af3d2252637c’, ‘content-type’: ‘application/x-amz-json-1.1’, ‘content-length’: ‘265’, ‘date’: ‘Sat, 12 Feb 2022 00:02:59 GMT’}, ‘RetryAttempts’: 0}}

おおおおおおおおおおおおおおおおおおおお

AWS Secret Managerとは?

機密情報の管理を簡単にするAWSマネージド・サービス
アプリケーション内のハードコードされた機密情報を削除する
JSONで格納できる。最大4096バイト。
e.g. サーバ名、IPアドレス、ポート番号、データベース接続情報、APIキーなど

機密情報の構造

メタ情報
– 機密情報の名前、説明、ARN
– 暗号化、複合化に利用するAWS Key
バージョン情報
– 変更時には新バージョンが作成される
– 各バージョンには暗号化された値のコピーが保持
– 機密情報がローテーション上のどこにあるかを識別するステージングラベルが添付

月額$0.40
1万APIコールで$0.05

リクエストが多い場合は考慮する必要がある。

[AWS Glacier] 入門

アーカイブ削除をロック

{
	"Version": "2012-10-17",
	"Statement": [
		{
			"Effect": "Deny",
			"Principal" : {
				"AWS" : "*"
			},
			"Action": "glacier:DeleteArchive",
			"Resource": "arn:aws:glacier:ap-northeast-1:00000000000:vaults/naata-Glacier"
		}
	]
}

1. Create Vault
2. Enable notifications and create a new SNS topic
3. Event Notifications Details
Glacier-event-test
Archive Retrieval Job Complete : on
Vault Inventory Retrieval Job Complete : on

### S3のGlacier自動アーカイブ機能を設定する
S3のGlacier自動アーカイブ機能は頻繁に使用するデータはS3に保存しておき、ルールを設定して自動的に古くなったデータをGlacierのストレージにアーカイブする

1. S3に任意のフォルダを作成する
2. Create Lifecycle rule


ライフサイクルルールを設定して運用するイメージはわかった。

[AWS Glacier] 基礎

GlacierはS3の中でも長期保存向けのサービス
Glacier(氷河)は使用頻度の低いファイルを長期的に保存するためのサービス
1GBあたり$0.004/月とS3の$0.019/月 より安い

### アーカイブ
AWS S3 Glacierではアーカイブに保存される
個別容量は40TB以下まで
アーカイブに入れたファイルは変更不可

### ボールド
コンテナとしてアーカイブをAWS S3 Glacierにまとめてグループ化することができる

[重要]データの取り出しに約4~5時間かかる

– すぐにダウンロードしなければならないファイルやよく取り出すファイルなどはAmazon S3
– ほとんど取り出す機会がないデータやダウンロードに時間が掛かってもいいデータはAmazon Glacier

なるほどー 
なんか どうなってんだコレは…